Compare commits

..

7 Commits

Author SHA1 Message Date
Jakob
998e5281d2 Merge branch 'master' into removeCommentCheck 2020-09-28 14:10:56 +02:00
Jakob Röhrl
7135f8162d remove comment check
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-09-23 14:57:32 +02:00
Jakob Röhrl
ff14afbe11 Merge branch 'master' of https://github.com/nextcloud/deck 2020-09-23 14:09:33 +02:00
Jakob Röhrl
b9d2e9c791 Revert "consistent naming"
This reverts commit a1bd13d960.
2020-09-23 13:21:23 +02:00
Jakob Röhrl
a1bd13d960 consistent naming
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-09-23 13:20:20 +02:00
Jakob Röhrl
6d5ddd4e2c Revert "consistent naming"
This reverts commit a34e8feb33.
2020-09-23 12:49:52 +02:00
Jakob Röhrl
a34e8feb33 consistent naming
Signed-off-by: Jakob Röhrl <jakob.roehrl@web.de>
2020-09-23 12:44:30 +02:00
8 changed files with 4 additions and 212 deletions

View File

@@ -121,7 +121,6 @@ OC.L10N.register(
"Apply filter" : "Primijeni filtar",
"Filter by tag" : "Filtriraj prema oznaci",
"Filter by assigned user" : "Filtriraj prema dodijeljenom korisniku",
"Unassigned" : "Nedodijeljeno",
"Filter by due date" : "Filtriraj prema datumu dospijeća",
"Overdue" : "Kasni",
"Next 24 hours" : "Sljedeća 24 sata",
@@ -134,8 +133,6 @@ OC.L10N.register(
"Toggle compact mode" : "Prebaci u kompaktni način rada",
"Details" : "Pojedinosti",
"Loading board" : "Učitavanje ploče",
"No lists available" : "Nema dostupnih popisa",
"Create a new list to add cards to this board" : "Stvorite novi popis kako biste dodali kartice na ovu ploču",
"Board not found" : "Ploča nije pronađena",
"Sharing" : "Dijeljenje",
"Tags" : "Oznake",

View File

@@ -119,7 +119,6 @@
"Apply filter" : "Primijeni filtar",
"Filter by tag" : "Filtriraj prema oznaci",
"Filter by assigned user" : "Filtriraj prema dodijeljenom korisniku",
"Unassigned" : "Nedodijeljeno",
"Filter by due date" : "Filtriraj prema datumu dospijeća",
"Overdue" : "Kasni",
"Next 24 hours" : "Sljedeća 24 sata",
@@ -132,8 +131,6 @@
"Toggle compact mode" : "Prebaci u kompaktni način rada",
"Details" : "Pojedinosti",
"Loading board" : "Učitavanje ploče",
"No lists available" : "Nema dostupnih popisa",
"Create a new list to add cards to this board" : "Stvorite novi popis kako biste dodali kartice na ovu ploču",
"Board not found" : "Ploča nije pronađena",
"Sharing" : "Dijeljenje",
"Tags" : "Oznake",

View File

@@ -191,7 +191,6 @@ OC.L10N.register(
"Select Date" : "Tarih Seçin",
"Modified" : "Değiştirilme",
"Created" : "Oluşturulma",
"The title cannot be empty." : "Başlık boş olamaz.",
"No comments yet. Begin the discussion!" : "Henüz bir yorum yapılmamış. Tartışmayı başlatın!",
"Save" : "Kaydet",
"The comment cannot be empty." : "Yorum boş olamaz.",
@@ -217,7 +216,6 @@ OC.L10N.register(
"Show boards in calendar/tasks" : "Takvimler ve görevlerde panolar görüntülensin",
"Limit deck usage of groups" : "Tahtayı şu gruplar kullanabilsin",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Tahta kullanımı gruplar ile sınırlandığında belirtilen grupların üyesi olmayan kişiler kendi tahtalarını oluşturamaz. Bu kullanıcılar ancak kendileri ile paylaşılan tahtalar üzerinde çalışabilir.",
"Board name" : "Pano adı",
"Edit board" : "Panoyu sil",
"Clone board " : "Panoyu kopyala",
"Unarchive board " : "Panoyu arşivden çıkar",

View File

@@ -189,7 +189,6 @@
"Select Date" : "Tarih Seçin",
"Modified" : "Değiştirilme",
"Created" : "Oluşturulma",
"The title cannot be empty." : "Başlık boş olamaz.",
"No comments yet. Begin the discussion!" : "Henüz bir yorum yapılmamış. Tartışmayı başlatın!",
"Save" : "Kaydet",
"The comment cannot be empty." : "Yorum boş olamaz.",
@@ -215,7 +214,6 @@
"Show boards in calendar/tasks" : "Takvimler ve görevlerde panolar görüntülensin",
"Limit deck usage of groups" : "Tahtayı şu gruplar kullanabilsin",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Tahta kullanımı gruplar ile sınırlandığında belirtilen grupların üyesi olmayan kişiler kendi tahtalarını oluşturamaz. Bu kullanıcılar ancak kendileri ile paylaşılan tahtalar üzerinde çalışabilir.",
"Board name" : "Pano adı",
"Edit board" : "Panoyu sil",
"Clone board " : "Panoyu kopyala",
"Unarchive board " : "Panoyu arşivden çıkar",

View File

@@ -78,8 +78,8 @@ class CardController extends Controller {
* @param int $order
* @return \OCP\AppFramework\Db\Entity
*/
public function create($title, $stackId, $type = 'plain', $order = 999, $description = '', $duedate = null) {
return $this->cardService->create($title, $stackId, $type, $order, $this->userId, $description, $duedate);
public function create($title, $stackId, $type = 'plain', $order = 999) {
return $this->cardService->create($title, $stackId, $type, $order, $this->userId);
}
/**

View File

@@ -32,11 +32,6 @@
</div>
<div v-if="overviewName" class="board-title">
<h2><a href="#">{{ overviewName }}</a></h2>
<Actions>
<ActionButton icon="icon-add" @click.stop="modalShow=true">
{{ t('deck', 'Add card on today') }}
</ActionButton>
</Actions>
</div>
<div v-if="board" class="board-actions">
<div v-if="canManage && !showArchived && !board.archived"
@@ -198,8 +193,6 @@
</Actions>
</div>
</div>
<ControlsModal :modal-show="modalShow" />
</div>
</template>
@@ -207,12 +200,11 @@
import { mapState, mapGetters } from 'vuex'
import { Actions, ActionButton, Popover, Avatar } from '@nextcloud/vue'
import labelStyle from '../mixins/labelStyle'
import ControlsModal from './ControlsModal'
export default {
name: 'Controls',
components: {
Actions, ActionButton, Popover, Avatar, ControlsModal,
Actions, ActionButton, Popover, Avatar,
},
mixins: [ labelStyle ],
props: {
@@ -234,12 +226,6 @@ export default {
showArchived: false,
isAddStackVisible: false,
filter: { tags: [], users: [], due: '', unassigned: false },
modalShow: false,
selectedBoard: '',
selectedStack: '',
stacksFromBoard: [],
newCardTitle: '',
}
},
@@ -247,8 +233,6 @@ export default {
...mapGetters([
'canEdit',
'canManage',
'lastBoardId',
'lastListId',
]),
...mapState({
compactMode: state => state.compactMode,
@@ -273,15 +257,6 @@ export default {
labelsSorted() {
return [...this.board.labels].sort((a, b) => (a.title < b.title) ? -1 : 1)
},
boards() {
return this.$store.getters.boards
},
addCardSetRequiredFields() {
if (this.selectedBoard === '' || this.selectedStack === '' || this.newCardTitle.trim() === '') {
return false
}
return true
},
},
watch: {
board() {
@@ -344,10 +319,6 @@ export default {
</script>
<style lang="scss" scoped>
#new-stack-input-main {
width: 100%;
}
.controls {
display: flex;

View File

@@ -1,168 +0,0 @@
<!--
* @copyright Copyright (c) 2020 Jakob Röhrl <jakob.roehrl@web.de>
*
* @author Jakob Röhrl <jakob.roehrl@web.de>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License 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 License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
-->
<template>
<Modal v-if="modalShow" :title="t('deck', 'Add card on Today')" @close="modalShow=false">
<div class="modal__content">
{{ lastBoardId - selectedBoard }}
{{ lastListId }}
<h3>{{ t('deck', 'Add card on Today') }}</h3>
<Multiselect v-model="selectedBoard"
:placeholder="t('deck', 'Select a board')"
:options="boards"
:max-height="100"
label="title"
@select="loadStacksFromBoard" />
<Multiselect v-model="selectedStack"
:placeholder="t('deck', 'Select a list')"
:options="stacksFromBoard"
:max-height="100"
label="title" />
<label for="new-stack-input-main" class="hidden-visually">{{ t('deck', 'Add card on Today') }}</label>
<input id="new-stack-input-main"
ref="newCardInput"
v-model="newCardTitle"
v-focus
type="text"
class="no-close"
:placeholder="t('deck', 'Card name')">
<button :disabled="!addCardSetRequiredFields" class="primary" @click="addCard">
{{ t('deck', 'Add card') }}
</button>
<button @click="modalShow=false">
{{ t('deck', 'Cancel') }}
</button>
</div>
</Modal>
</template>
<script>
import { Modal, Multiselect } from '@nextcloud/vue'
import labelStyle from '../mixins/labelStyle'
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
import { showError } from '@nextcloud/dialogs'
export default {
name: 'ControlsModal',
components: {
Modal, Multiselect,
},
mixins: [ labelStyle ],
props: {
modalShow: {
default: false,
type: Boolean,
},
},
data() {
return {
selectedBoard: '',
selectedStack: '',
stacksFromBoard: [],
newCardTitle: '',
lastBoardId: localStorage.getItem('deck.lastBoardId'),
lastListId: localStorage.getItem('deck.lastListId'),
}
},
computed: {
boards() {
return this.$store.getters.boards
},
addCardSetRequiredFields() {
if (this.selectedBoard === '' || this.selectedStack === '' || this.newCardTitle.trim() === '') {
return false
}
return true
},
},
mounted() {
this.setLastBoardId()
},
methods: {
setLastBoardId() {
if (this.lastBoardId === null || this.lastBoardId === 0) {
this.selectedBoard = ''
return
}
this.selectedBoard = this.selectedBoard = this.boards.filter(board => {
return board.id === this.lastBoardId
})
},
async loadStacksFromBoard(selectedBoard) {
try {
const url = generateUrl('/apps/deck/stacks/' + selectedBoard.id)
const response = await axios.get(url)
this.stacksFromBoard = response.data
} catch (err) {
return err
}
},
async addCard() {
try {
const today = new Date()
today.setHours(23, 59, 59, 999)
await this.$store.dispatch('addCard', {
title: this.newCardTitle,
stackId: this.selectedStack.id,
boardId: this.selectedBoard.id,
duedate: today.toISOString(),
})
this.newCardTitle = ''
localStorage.setItem('deck.lastBoardId', this.selectedBoard.id)
localStorage.setItem('deck.lastListId', this.selectedStack.id)
} catch (e) {
showError('Could not create card: ' + e.response.data.message)
}
// this.modalShow = false
},
},
}
</script>
<style lang="scss" scoped>
#new-stack-input-main {
width: 100%;
}
.modal__content {
width: 25vw;
min-width: 250px;
min-height: 120px;
text-align: center;
margin: 20px 20px 100px 20px;
.multiselect {
margin-bottom: 10px;
}
}
.modal__content button {
float: right;
margin-top: 50px;
}
</style>

View File

@@ -179,7 +179,7 @@
<CardSidebarTabAttachments :card="currentCard" />
</AppSidebarTab>
<AppSidebarTab v-if="hasComments"
<AppSidebarTab
id="comments"
:order="2"
:name="t('deck', 'Comments')"
@@ -283,7 +283,6 @@ export default {
descriptionSaveTimeout: null,
descriptionSaving: false,
hasActivity: capabilities && capabilities.activity,
hasComments: !!OC.appswebroots['comments'],
modalShow: false,
lang: {
days: getDayNamesMin(),