Compare commits
5 Commits
d06cfc3d70
...
91479b263b
Author | SHA1 | Date |
---|---|---|
renovate | 91479b263b | |
waza-ari | f0d695e789 | |
kolaente | 95276ceebe | |
kolaente | 1558921f42 | |
kolaente | bf5088e546 |
|
@ -21,7 +21,7 @@ describe('Project View Table', () => {
|
|||
TaskFactory.create(1)
|
||||
cy.visit('/projects/1/3')
|
||||
|
||||
cy.get('.project-table .filter-container .items .button')
|
||||
cy.get('.project-table .filter-container .button')
|
||||
.contains('Columns')
|
||||
.click()
|
||||
cy.get('.project-table .filter-container .card.columns-filter .card-content .fancycheckbox')
|
||||
|
|
|
@ -157,7 +157,7 @@
|
|||
"caniuse-lite": "1.0.30001605",
|
||||
"css-has-pseudo": "6.0.3",
|
||||
"csstype": "3.1.3",
|
||||
"cypress": "13.7.1",
|
||||
"cypress": "13.7.2",
|
||||
"esbuild": "0.20.2",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-plugin-vue": "9.24.0",
|
||||
|
|
|
@ -245,13 +245,13 @@ dependencies:
|
|||
devDependencies:
|
||||
'@4tw/cypress-drag-drop':
|
||||
specifier: 2.2.5
|
||||
version: 2.2.5(cypress@13.7.1)
|
||||
version: 2.2.5(cypress@13.7.2)
|
||||
'@cypress/vite-dev-server':
|
||||
specifier: 5.0.7
|
||||
version: 5.0.7
|
||||
'@cypress/vue':
|
||||
specifier: 6.0.0
|
||||
version: 6.0.0(cypress@13.7.1)(vue@3.4.21)
|
||||
version: 6.0.0(cypress@13.7.2)(vue@3.4.21)
|
||||
'@faker-js/faker':
|
||||
specifier: 8.4.1
|
||||
version: 8.4.1
|
||||
|
@ -328,8 +328,8 @@ devDependencies:
|
|||
specifier: 3.1.3
|
||||
version: 3.1.3
|
||||
cypress:
|
||||
specifier: 13.7.1
|
||||
version: 13.7.1
|
||||
specifier: 13.7.2
|
||||
version: 13.7.2
|
||||
esbuild:
|
||||
specifier: 0.20.2
|
||||
version: 0.20.2
|
||||
|
@ -405,12 +405,12 @@ devDependencies:
|
|||
|
||||
packages:
|
||||
|
||||
/@4tw/cypress-drag-drop@2.2.5(cypress@13.7.1):
|
||||
/@4tw/cypress-drag-drop@2.2.5(cypress@13.7.2):
|
||||
resolution: {integrity: sha512-3ghTmzhOmUqeN6U3QmUnKRUxI7OMLbJA4hHUY/eS/FhWJgxbiGgcaELbolWnBAOpajPXcsNQGYEj9brd59WH6A==}
|
||||
peerDependencies:
|
||||
cypress: 2 - 13
|
||||
dependencies:
|
||||
cypress: 13.7.1
|
||||
cypress: 13.7.2
|
||||
dev: true
|
||||
|
||||
/@aashutoshrathi/word-wrap@1.2.6:
|
||||
|
@ -2154,7 +2154,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@cypress/vue@6.0.0(cypress@13.7.1)(vue@3.4.21):
|
||||
/@cypress/vue@6.0.0(cypress@13.7.2)(vue@3.4.21):
|
||||
resolution: {integrity: sha512-KMfRw8y/kXn/RJqaDdFnYnW7YLk47313UE3Yip+sLDjILJ2kA0WEiEa6MYKe58v8TNRtwcRpUH5xAYVNs1N6/A==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
|
@ -2165,7 +2165,7 @@ packages:
|
|||
'@cypress/webpack-dev-server':
|
||||
optional: true
|
||||
dependencies:
|
||||
cypress: 13.7.1
|
||||
cypress: 13.7.2
|
||||
vue: 3.4.21(typescript@5.4.3)
|
||||
dev: true
|
||||
|
||||
|
@ -2628,7 +2628,7 @@ packages:
|
|||
jsonc-eslint-parser: 2.3.0
|
||||
magic-string: 0.30.7
|
||||
mlly: 1.4.2
|
||||
source-map-js: 1.1.0
|
||||
source-map-js: 1.2.0
|
||||
vue-i18n: 9.10.2(vue@3.4.21)
|
||||
yaml-eslint-parser: 1.2.2
|
||||
dev: false
|
||||
|
@ -2646,7 +2646,7 @@ packages:
|
|||
engines: {node: '>= 16'}
|
||||
dependencies:
|
||||
'@intlify/shared': 9.10.1
|
||||
source-map-js: 1.1.0
|
||||
source-map-js: 1.2.0
|
||||
dev: false
|
||||
|
||||
/@intlify/message-compiler@9.10.2:
|
||||
|
@ -4002,7 +4002,7 @@ packages:
|
|||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.7
|
||||
postcss: 8.4.38
|
||||
source-map-js: 1.1.0
|
||||
source-map-js: 1.2.0
|
||||
|
||||
/@vue/compiler-ssr@3.4.21:
|
||||
resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==}
|
||||
|
@ -5057,8 +5057,8 @@ packages:
|
|||
/csstype@3.1.3:
|
||||
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
||||
|
||||
/cypress@13.7.1:
|
||||
resolution: {integrity: sha512-4u/rpFNxOFCoFX/Z5h+uwlkBO4mWzAjveURi3vqdSu56HPvVdyGTxGw4XKGWt399Y1JwIn9E1L9uMXQpc0o55w==}
|
||||
/cypress@13.7.2:
|
||||
resolution: {integrity: sha512-FF5hFI5wlRIHY8urLZjJjj/YvfCBrRpglbZCLr/cYcL9MdDe0+5usa8kTIrDHthlEc9lwihbkb5dmwqBDNS2yw==}
|
||||
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
|
@ -9007,6 +9007,7 @@ packages:
|
|||
/source-map-js@1.1.0:
|
||||
resolution: {integrity: sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/source-map-js@1.2.0:
|
||||
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||
|
|
|
@ -16,9 +16,11 @@ import {useColorScheme} from '@/composables/useColorScheme'
|
|||
const {
|
||||
entityKind,
|
||||
entityId,
|
||||
disabled = false,
|
||||
} = defineProps<{
|
||||
entityKind: ReactionKind,
|
||||
entityId: number,
|
||||
disabled?: boolean,
|
||||
}>()
|
||||
|
||||
const authStore = useAuthStore()
|
||||
|
@ -143,11 +145,13 @@ async function toggleReaction(value: string) {
|
|||
v-tooltip="getReactionTooltip(users, value)"
|
||||
class="reaction-button"
|
||||
:class="{'current-user-has-reacted': hasCurrentUserReactedWithEmoji(value)}"
|
||||
:disabled
|
||||
@click="toggleReaction(value)"
|
||||
>
|
||||
{{ value }} {{ users.length }}
|
||||
</BaseButton>
|
||||
<BaseButton
|
||||
v-if="!disabled"
|
||||
ref="emojiPickerButtonRef"
|
||||
v-tooltip="$t('reaction.add')"
|
||||
class="reaction-button"
|
||||
|
|
|
@ -16,7 +16,22 @@
|
|||
:search-results="found"
|
||||
:label="searchLabel"
|
||||
@search="find"
|
||||
/>
|
||||
>
|
||||
<template #searchResult="{option: result}">
|
||||
<User
|
||||
v-if="shareType === 'user'"
|
||||
:avatar-size="24"
|
||||
:show-username="true"
|
||||
:user="result"
|
||||
/>
|
||||
<span
|
||||
v-else
|
||||
class="search-result"
|
||||
>
|
||||
{{ result.name }}
|
||||
</span>
|
||||
</template>
|
||||
</Multiselect>
|
||||
</p>
|
||||
<p class="control">
|
||||
<x-button @click="add()">
|
||||
|
@ -173,6 +188,7 @@ import Nothing from '@/components/misc/nothing.vue'
|
|||
import {success} from '@/message'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
import {useConfigStore} from '@/stores/config'
|
||||
import User from '@/components/misc/user.vue'
|
||||
|
||||
// FIXME: I think this whole thing can now only manage user/team sharing for projects? Maybe remove a little generalization?
|
||||
|
||||
|
|
|
@ -102,6 +102,7 @@
|
|||
class="mt-2"
|
||||
entity-kind="comments"
|
||||
:entity-id="c.id"
|
||||
:disabled="!canWrite"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -18,7 +18,7 @@ export function getDefaultTaskFilterParams(): TaskFilterParams {
|
|||
return {
|
||||
sort_by: ['position', 'id'],
|
||||
order_by: ['asc', 'desc'],
|
||||
filter: 'done = false',
|
||||
filter: '',
|
||||
filter_include_nulls: false,
|
||||
filter_timezone: '',
|
||||
s: '',
|
||||
|
|
|
@ -328,6 +328,7 @@
|
|||
entity-kind="tasks"
|
||||
:entity-id="task.id"
|
||||
class="details"
|
||||
:disabled="!canWrite"
|
||||
/>
|
||||
|
||||
<!-- Attachments -->
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
// Vikunja is a to-do list application to facilitate your life.
|
||||
// Copyright 2018-present Vikunja and contributors. All rights reserved.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public Licensee as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public Licensee for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public Licensee
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
package migration
|
||||
|
||||
import (
|
||||
"src.techknowlogick.com/xormigrate"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
type projectView20240329170952 struct {
|
||||
ID int64 `xorm:"autoincr not null unique pk" json:"id" param:"view"`
|
||||
Filter string `xorm:"text null default null" query:"filter" json:"filter"`
|
||||
ViewKind int `xorm:"not null" json:"view_kind"`
|
||||
}
|
||||
|
||||
func (projectView20240329170952) TableName() string {
|
||||
return "project_views"
|
||||
}
|
||||
|
||||
func init() {
|
||||
migrations = append(migrations, &xormigrate.Migration{
|
||||
ID: "20240329170952",
|
||||
Description: "Update default filter for list views to hide completed tasks",
|
||||
Migrate: func(tx *xorm.Engine) error {
|
||||
|
||||
// Update the filter for all list views to hide completed tasks unless the filter is already set
|
||||
_, err := tx.Where("view_kind = ? AND filter = ?", 0, "").Cols("filter").Update(&projectView20240329170952{Filter: "done = false"})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
},
|
||||
Rollback: func(tx *xorm.Engine) error {
|
||||
return nil
|
||||
},
|
||||
})
|
||||
}
|
|
@ -391,6 +391,7 @@ func CreateDefaultViewsForProject(s *xorm.Session, project *Project, a web.Auth,
|
|||
Title: "List",
|
||||
ViewKind: ProjectViewKindList,
|
||||
Position: 100,
|
||||
Filter: "done = false",
|
||||
}
|
||||
err = createProjectView(s, list, a, createBacklogBucket)
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in New Issue