Compare commits
16 Commits
mod-1
...
stable-0.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa41f383cc | ||
|
|
81ea719329 | ||
|
|
498d062657 | ||
|
|
480d01fe9d | ||
|
|
38ec3ec0ca | ||
|
|
0dd70fb461 | ||
|
|
123e5998a9 | ||
|
|
9e21c8597f | ||
|
|
aa4db7f789 | ||
|
|
9b63e4d745 | ||
|
|
dfe6e2f216 | ||
|
|
0c7ff7477b | ||
|
|
a1fc5cd809 | ||
|
|
7af9ff68ad | ||
|
|
c2fb501f4e | ||
|
|
2736783bf3 |
12
CHANGELOG.md
12
CHANGELOG.md
@@ -1,6 +1,18 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## 0.4.1 - 2018-07-28
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Make app compatible with Nextcloud 14
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix bug with file upload on unlimited quota
|
||||||
|
- Fix issue on MySQL databases that don't support 4-byte characters
|
||||||
|
- Fix check when assigning users
|
||||||
|
|
||||||
## 0.4.0 - 2018-07-11
|
## 0.4.0 - 2018-07-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
- 🚀 Get your project organized
|
- 🚀 Get your project organized
|
||||||
|
|
||||||
</description>
|
</description>
|
||||||
<version>0.4.0</version>
|
<version>0.4.1</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author>Julius Härtl</author>
|
<author>Julius Härtl</author>
|
||||||
<namespace>Deck</namespace>
|
<namespace>Deck</namespace>
|
||||||
|
|||||||
38
css/comp-13.scss
Normal file
38
css/comp-13.scss
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#content-wrapper #content {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
#app-content {
|
||||||
|
flex-grow: 1;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
&.details-visible {
|
||||||
|
margin-right: 500px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#app-sidebar {
|
||||||
|
right: -500px;
|
||||||
|
max-width: 100%;
|
||||||
|
width: 500px;
|
||||||
|
display:flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
&.details-visible {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#content[class*='app-'] * {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.snapjs-left) {
|
||||||
|
.app-navigation-hide {
|
||||||
|
#app-content {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
}
|
||||||
|
#app-navigation {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -70,6 +70,26 @@ input.input-inline {
|
|||||||
cursor: text;
|
cursor: text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic app layout
|
||||||
|
*/
|
||||||
|
|
||||||
|
#content {
|
||||||
|
height: 100%;
|
||||||
|
min-height: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app.app-deck {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#app-content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Navigation sidebar
|
* Navigation sidebar
|
||||||
*/
|
*/
|
||||||
@@ -238,7 +258,7 @@ input.input-inline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#app-navigation-toggle {
|
#app-navigation-toggle-custom {
|
||||||
width: 44px;
|
width: 44px;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@@ -617,17 +637,6 @@ input.input-inline {
|
|||||||
/**
|
/**
|
||||||
* App sidebar
|
* App sidebar
|
||||||
*/
|
*/
|
||||||
#app-sidebar {
|
|
||||||
right: -500px;
|
|
||||||
max-width: 100%;
|
|
||||||
width: 500px;
|
|
||||||
display:flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
&.details-visible {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#sidebar-header {
|
#sidebar-header {
|
||||||
h3 {
|
h3 {
|
||||||
@@ -922,16 +931,6 @@ input.input-inline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#app-content {
|
|
||||||
overflow: hidden;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
&.details-visible {
|
|
||||||
margin-right: 500px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.labels {
|
.labels {
|
||||||
display: block;
|
display: block;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -1434,3 +1433,22 @@ input.input-inline {
|
|||||||
.ui-select-dropdown.select2-drop-active {
|
.ui-select-dropdown.select2-drop-active {
|
||||||
opacity: 1 !important;
|
opacity: 1 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom app sidebar handling
|
||||||
|
*/
|
||||||
|
body:not(.snapjs-left) {
|
||||||
|
.app-navigation-hide {
|
||||||
|
#app-content {
|
||||||
|
margin-left: 0 !important; /* overwrite margin since we want the translateX to handle it*/
|
||||||
|
}
|
||||||
|
#app-navigation {
|
||||||
|
transform: translateX(-300px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (max-width: 768px) {
|
||||||
|
#app-navigation-toggle-custom {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -71,8 +71,9 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
|
|||||||
tab: {value: 0, dynamic: true},
|
tab: {value: 0, dynamic: true},
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'sidebarView': {
|
'sidebarView@': {
|
||||||
templateUrl: '/board.sidebarView.html'
|
templateUrl: '/board.sidebarView.html',
|
||||||
|
controller: 'BoardController'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -82,7 +83,7 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
|
|||||||
tab: {value: 0, dynamic: true},
|
tab: {value: 0, dynamic: true},
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'sidebarView': {
|
'sidebarView@': {
|
||||||
templateUrl: '/card.sidebarView.html',
|
templateUrl: '/card.sidebarView.html',
|
||||||
controller: 'CardController'
|
controller: 'CardController'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,26 +56,6 @@ app.run(function ($document, $rootScope, $transitions, BoardService) {
|
|||||||
OC.filePath('deck', 'img', 'app-512.png')
|
OC.filePath('deck', 'img', 'app-512.png')
|
||||||
);
|
);
|
||||||
|
|
||||||
$('#app-navigation-toggle').off('click');
|
|
||||||
// App sidebar on mobile
|
|
||||||
var snapper = new Snap({
|
|
||||||
element: document.getElementById('app-content'),
|
|
||||||
disable: 'right',
|
|
||||||
maxPosition: 250,
|
|
||||||
touchToDrag: false
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#app-navigation-toggle').click(function () {
|
|
||||||
if ($(window).width() > 768) {
|
|
||||||
$('#app-navigation').toggle('hidden');
|
|
||||||
} else {
|
|
||||||
if (snapper.state().state === 'left') {
|
|
||||||
snapper.close();
|
|
||||||
} else {
|
|
||||||
snapper.open('left');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Select all elements with data-toggle="tooltips" in the document
|
// Select all elements with data-toggle="tooltips" in the document
|
||||||
$('body').tooltip({
|
$('body').tooltip({
|
||||||
selector: '[data-toggle="tooltip"]'
|
selector: '[data-toggle="tooltip"]'
|
||||||
|
|||||||
@@ -30,4 +30,13 @@ app.controller('AppController', function ($scope, $location, $http, $log, $rootS
|
|||||||
$scope.sidebar = $rootScope.sidebar;
|
$scope.sidebar = $rootScope.sidebar;
|
||||||
$scope.user = oc_current_user;
|
$scope.user = oc_current_user;
|
||||||
$rootScope.config = JSON.parse($attrs.config);
|
$rootScope.config = JSON.parse($attrs.config);
|
||||||
|
|
||||||
|
$scope.appNavigationHide = false;
|
||||||
|
|
||||||
|
$scope.toggleSidebar = function() {
|
||||||
|
if ($(window).width() > 768) {
|
||||||
|
$scope.appNavigationHide = !$scope.appNavigationHide;
|
||||||
|
console.log($scope.appNavigationHide);
|
||||||
|
}
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
23
l10n/cs.js
23
l10n/cs.js
@@ -6,20 +6,35 @@ OC.L10N.register(
|
|||||||
"Remove user from card" : "Odebrat uživatele z karty",
|
"Remove user from card" : "Odebrat uživatele z karty",
|
||||||
"Hours" : "Hodiny",
|
"Hours" : "Hodiny",
|
||||||
"Minutes" : "Minuty",
|
"Minutes" : "Minuty",
|
||||||
|
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
|
||||||
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
|
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
|
||||||
|
"Personal" : "Osobní",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
||||||
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
||||||
|
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.",
|
||||||
"Finished" : "Dokončeno",
|
"Finished" : "Dokončeno",
|
||||||
"To review" : "K revizi",
|
"To review" : "K revizi",
|
||||||
"Action needed" : "Nutná akce",
|
"Action needed" : "Nutná akce",
|
||||||
"Later" : "Později",
|
"Later" : "Později",
|
||||||
|
"To do" : "Udělat",
|
||||||
|
"Doing" : "Provádím",
|
||||||
|
"Done" : "Hotovo",
|
||||||
|
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||||
|
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||||
|
"Example Task 1" : "První úkol pro ukázku",
|
||||||
"The file was uploaded" : "Soubor byl nahrán",
|
"The file was uploaded" : "Soubor byl nahrán",
|
||||||
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini",
|
||||||
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML",
|
||||||
|
"The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
|
||||||
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
||||||
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
||||||
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
||||||
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
||||||
|
"No file uploaded or file size exceeds maximum of %s" : "Soubor nebyl nahrán nebo jeho velikost přesáhla %s",
|
||||||
"Deck" : "Balík",
|
"Deck" : "Balík",
|
||||||
|
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní management ve stylu Kanban.",
|
||||||
|
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, jenž je zaintegrovaný do Nextcloudu.\n\n\n- 📥 Vložte a uspořádejte své úkoly do karet\n- 📄 Zapište si dodatečné poznámky \n- 🔖 Přilepte štítek pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přátely nebo rodinou\n- 🚀 Dostaťe svůj projekt pod kontrolu",
|
||||||
"Add a new stack" : "Přidat nový zásobník",
|
"Add a new stack" : "Přidat nový zásobník",
|
||||||
"Submit" : "Odeslat",
|
"Submit" : "Odeslat",
|
||||||
"Show archived cards" : "Zobrazit archivované karty",
|
"Show archived cards" : "Zobrazit archivované karty",
|
||||||
@@ -27,6 +42,7 @@ OC.L10N.register(
|
|||||||
"Board details" : "Detaily desky",
|
"Board details" : "Detaily desky",
|
||||||
"All Boards" : "Všechny desky",
|
"All Boards" : "Všechny desky",
|
||||||
"Archived boards" : "Archivované desky",
|
"Archived boards" : "Archivované desky",
|
||||||
|
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
|
||||||
"Archive" : "Archiv",
|
"Archive" : "Archiv",
|
||||||
"Unarchive" : "Zrušit archivování",
|
"Unarchive" : "Zrušit archivování",
|
||||||
"Enter a card title" : "Zadejte nadpis karty",
|
"Enter a card title" : "Zadejte nadpis karty",
|
||||||
@@ -55,9 +71,14 @@ OC.L10N.register(
|
|||||||
"Delete board" : "Smazat desku",
|
"Delete board" : "Smazat desku",
|
||||||
"Reset" : "Obnovit",
|
"Reset" : "Obnovit",
|
||||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
||||||
"Create new board" : "VYtvořit ovou desku",
|
"Create new board" : "Vytvořit novou desku",
|
||||||
"New board title" : "Nadpis nové desky",
|
"New board title" : "Nadpis nové desky",
|
||||||
|
"Select an attachment" : "Vybrat přílohu",
|
||||||
|
"Cancel upload" : "Zrušit nahrávání",
|
||||||
"by" : "od",
|
"by" : "od",
|
||||||
|
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Vrátit smazání souboru - v opačném případě bude soubor trvale smazán při dalším běhu cronjobu.",
|
||||||
|
"Undo file deletion" : "Vzít zpět smazání souboru",
|
||||||
|
"Insert the file into the description" : "Vložte soubor do popisku.",
|
||||||
"Modified:" : "Upraveno:",
|
"Modified:" : "Upraveno:",
|
||||||
"Created:" : "Vytvořeno:",
|
"Created:" : "Vytvořeno:",
|
||||||
"Choose a tag" : "Vyberte štítek",
|
"Choose a tag" : "Vyberte štítek",
|
||||||
|
|||||||
23
l10n/cs.json
23
l10n/cs.json
@@ -4,20 +4,35 @@
|
|||||||
"Remove user from card" : "Odebrat uživatele z karty",
|
"Remove user from card" : "Odebrat uživatele z karty",
|
||||||
"Hours" : "Hodiny",
|
"Hours" : "Hodiny",
|
||||||
"Minutes" : "Minuty",
|
"Minutes" : "Minuty",
|
||||||
|
"Maximum file size of {size} exceeded" : "U souboru {size} překročena nejvyšší umožněná velikost",
|
||||||
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
|
"Are you sure you want to delete the stack with all of its data?" : "Opravdu chcete smazat stack a všechna data v něm?",
|
||||||
|
"Personal" : "Osobní",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "U karty \"%s\" z tabule \"%s\" nastalo plánované datum dokončení.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tabule \"%s\" s vámi byla nasdílena uživatelem %s.",
|
||||||
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
"{user} has shared the board %s with you." : "{user} s vámi nasdílel tabuli %s.",
|
||||||
|
"No data was provided to create an attachment." : "Žádná data k vytvoření přílohy.",
|
||||||
"Finished" : "Dokončeno",
|
"Finished" : "Dokončeno",
|
||||||
"To review" : "K revizi",
|
"To review" : "K revizi",
|
||||||
"Action needed" : "Nutná akce",
|
"Action needed" : "Nutná akce",
|
||||||
"Later" : "Později",
|
"Later" : "Později",
|
||||||
|
"To do" : "Udělat",
|
||||||
|
"Doing" : "Provádím",
|
||||||
|
"Done" : "Hotovo",
|
||||||
|
"Example Task 3" : "Třetí úkol pro ukázku",
|
||||||
|
"Example Task 2" : "Druhý úkol pro ukázku",
|
||||||
|
"Example Task 1" : "První úkol pro ukázku",
|
||||||
"The file was uploaded" : "Soubor byl nahrán",
|
"The file was uploaded" : "Soubor byl nahrán",
|
||||||
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini",
|
||||||
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný ve formuláři HTML",
|
||||||
|
"The file was only partially uploaded" : "Soubor byl nahrán pouze z části",
|
||||||
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
"No file was uploaded" : "Nebyl nahrán žádný soubor",
|
||||||
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
|
||||||
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
|
||||||
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
|
||||||
|
"No file uploaded or file size exceeds maximum of %s" : "Soubor nebyl nahrán nebo jeho velikost přesáhla %s",
|
||||||
"Deck" : "Balík",
|
"Deck" : "Balík",
|
||||||
|
"A kanban style project and personal management tool for Nextcloud" : "Nástroj pro projektový a osobní management ve stylu Kanban.",
|
||||||
|
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 🚀 Get your project organized" : "Karty jsou nástroj zacílený na osobní nebo projektové plánování týmů v Kanban stylu, jenž je zaintegrovaný do Nextcloudu.\n\n\n- 📥 Vložte a uspořádejte své úkoly do karet\n- 📄 Zapište si dodatečné poznámky \n- 🔖 Přilepte štítek pro ještě lepší organizaci\n- 👥 Sdílejte se svým týmem, přátely nebo rodinou\n- 🚀 Dostaťe svůj projekt pod kontrolu",
|
||||||
"Add a new stack" : "Přidat nový zásobník",
|
"Add a new stack" : "Přidat nový zásobník",
|
||||||
"Submit" : "Odeslat",
|
"Submit" : "Odeslat",
|
||||||
"Show archived cards" : "Zobrazit archivované karty",
|
"Show archived cards" : "Zobrazit archivované karty",
|
||||||
@@ -25,6 +40,7 @@
|
|||||||
"Board details" : "Detaily desky",
|
"Board details" : "Detaily desky",
|
||||||
"All Boards" : "Všechny desky",
|
"All Boards" : "Všechny desky",
|
||||||
"Archived boards" : "Archivované desky",
|
"Archived boards" : "Archivované desky",
|
||||||
|
"Drop your files here to upload it to the card" : "Přetáhněte soubor sem, pokud jej chcete připojit ke kartě.",
|
||||||
"Archive" : "Archiv",
|
"Archive" : "Archiv",
|
||||||
"Unarchive" : "Zrušit archivování",
|
"Unarchive" : "Zrušit archivování",
|
||||||
"Enter a card title" : "Zadejte nadpis karty",
|
"Enter a card title" : "Zadejte nadpis karty",
|
||||||
@@ -53,9 +69,14 @@
|
|||||||
"Delete board" : "Smazat desku",
|
"Delete board" : "Smazat desku",
|
||||||
"Reset" : "Obnovit",
|
"Reset" : "Obnovit",
|
||||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Vrátit smazání tabule - Tabule bude jinak trvale odstraněna během příštího běhu cronjobu.",
|
||||||
"Create new board" : "VYtvořit ovou desku",
|
"Create new board" : "Vytvořit novou desku",
|
||||||
"New board title" : "Nadpis nové desky",
|
"New board title" : "Nadpis nové desky",
|
||||||
|
"Select an attachment" : "Vybrat přílohu",
|
||||||
|
"Cancel upload" : "Zrušit nahrávání",
|
||||||
"by" : "od",
|
"by" : "od",
|
||||||
|
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Vrátit smazání souboru - v opačném případě bude soubor trvale smazán při dalším běhu cronjobu.",
|
||||||
|
"Undo file deletion" : "Vzít zpět smazání souboru",
|
||||||
|
"Insert the file into the description" : "Vložte soubor do popisku.",
|
||||||
"Modified:" : "Upraveno:",
|
"Modified:" : "Upraveno:",
|
||||||
"Created:" : "Vytvořeno:",
|
"Created:" : "Vytvořeno:",
|
||||||
"Choose a tag" : "Vyberte štítek",
|
"Choose a tag" : "Vyberte štítek",
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ OC.L10N.register(
|
|||||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Cofnij usunięcie tablicy - w innym przypadku tablica zostanie usunięta przy kolejnym wykonaniu zadania cron.",
|
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Cofnij usunięcie tablicy - w innym przypadku tablica zostanie usunięta przy kolejnym wykonaniu zadania cron.",
|
||||||
"Create new board" : "Utwórz nową tablicę",
|
"Create new board" : "Utwórz nową tablicę",
|
||||||
"New board title" : "Tytuł nowej tablicy",
|
"New board title" : "Tytuł nowej tablicy",
|
||||||
|
"Cancel upload" : "Anuluj wysyłanie",
|
||||||
"by" : "przez",
|
"by" : "przez",
|
||||||
"Modified:" : "Zmodyfikowano:",
|
"Modified:" : "Zmodyfikowano:",
|
||||||
"Created:" : "Utworzono:",
|
"Created:" : "Utworzono:",
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Cofnij usunięcie tablicy - w innym przypadku tablica zostanie usunięta przy kolejnym wykonaniu zadania cron.",
|
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Cofnij usunięcie tablicy - w innym przypadku tablica zostanie usunięta przy kolejnym wykonaniu zadania cron.",
|
||||||
"Create new board" : "Utwórz nową tablicę",
|
"Create new board" : "Utwórz nową tablicę",
|
||||||
"New board title" : "Tytuł nowej tablicy",
|
"New board title" : "Tytuł nowej tablicy",
|
||||||
|
"Cancel upload" : "Anuluj wysyłanie",
|
||||||
"by" : "przez",
|
"by" : "przez",
|
||||||
"Modified:" : "Zmodyfikowano:",
|
"Modified:" : "Zmodyfikowano:",
|
||||||
"Created:" : "Utworzono:",
|
"Created:" : "Utworzono:",
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ OC.L10N.register(
|
|||||||
"To review" : "Na posúdenie",
|
"To review" : "Na posúdenie",
|
||||||
"Action needed" : "Potrebná akcia",
|
"Action needed" : "Potrebná akcia",
|
||||||
"Later" : "Neskôr",
|
"Later" : "Neskôr",
|
||||||
|
"The file was uploaded" : "Súbor bol nahraný",
|
||||||
"Deck" : "Tabuľa",
|
"Deck" : "Tabuľa",
|
||||||
"Add a new stack" : "Pridať nový stoh",
|
"Add a new stack" : "Pridať nový stoh",
|
||||||
"Submit" : "Odoslať",
|
"Submit" : "Odoslať",
|
||||||
@@ -61,6 +62,7 @@ OC.L10N.register(
|
|||||||
"Click to set" : "Kliknite pre nastavenie",
|
"Click to set" : "Kliknite pre nastavenie",
|
||||||
"Remove due date" : "Odstrániť do dátumu",
|
"Remove due date" : "Odstrániť do dátumu",
|
||||||
"Description" : "Popis",
|
"Description" : "Popis",
|
||||||
|
"Attachments" : "Prílohy",
|
||||||
"Saved" : "Uložené",
|
"Saved" : "Uložené",
|
||||||
"Unsaved changes" : "Neuložené zmeny",
|
"Unsaved changes" : "Neuložené zmeny",
|
||||||
"Formatting help" : "Pomoc pri formátovaní",
|
"Formatting help" : "Pomoc pri formátovaní",
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
"To review" : "Na posúdenie",
|
"To review" : "Na posúdenie",
|
||||||
"Action needed" : "Potrebná akcia",
|
"Action needed" : "Potrebná akcia",
|
||||||
"Later" : "Neskôr",
|
"Later" : "Neskôr",
|
||||||
|
"The file was uploaded" : "Súbor bol nahraný",
|
||||||
"Deck" : "Tabuľa",
|
"Deck" : "Tabuľa",
|
||||||
"Add a new stack" : "Pridať nový stoh",
|
"Add a new stack" : "Pridať nový stoh",
|
||||||
"Submit" : "Odoslať",
|
"Submit" : "Odoslať",
|
||||||
@@ -59,6 +60,7 @@
|
|||||||
"Click to set" : "Kliknite pre nastavenie",
|
"Click to set" : "Kliknite pre nastavenie",
|
||||||
"Remove due date" : "Odstrániť do dátumu",
|
"Remove due date" : "Odstrániť do dátumu",
|
||||||
"Description" : "Popis",
|
"Description" : "Popis",
|
||||||
|
"Attachments" : "Prílohy",
|
||||||
"Saved" : "Uložené",
|
"Saved" : "Uložené",
|
||||||
"Unsaved changes" : "Neuložené zmeny",
|
"Unsaved changes" : "Neuložené zmeny",
|
||||||
"Formatting help" : "Pomoc pri formátovaní",
|
"Formatting help" : "Pomoc pri formátovaní",
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ OC.L10N.register(
|
|||||||
"Minutes" : "Минути",
|
"Minutes" : "Минути",
|
||||||
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
|
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
|
||||||
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
|
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
|
||||||
|
"Personal" : "Лично",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
|
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
|
||||||
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
|
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
|
||||||
@@ -16,6 +17,12 @@ OC.L10N.register(
|
|||||||
"To review" : "Треба прегледати",
|
"To review" : "Треба прегледати",
|
||||||
"Action needed" : "Потребна акција",
|
"Action needed" : "Потребна акција",
|
||||||
"Later" : "После",
|
"Later" : "После",
|
||||||
|
"To do" : "За урадити",
|
||||||
|
"Doing" : "Ради се",
|
||||||
|
"Done" : "Готово",
|
||||||
|
"Example Task 3" : "Пример задатка 3",
|
||||||
|
"Example Task 2" : "Пример задатка 2",
|
||||||
|
"Example Task 1" : "Пример задатка 1",
|
||||||
"The file was uploaded" : "Фајл је отпремљен",
|
"The file was uploaded" : "Фајл је отпремљен",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"Minutes" : "Минути",
|
"Minutes" : "Минути",
|
||||||
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
|
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
|
||||||
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
|
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
|
||||||
|
"Personal" : "Лично",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
|
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
|
||||||
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
|
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
|
||||||
@@ -14,6 +15,12 @@
|
|||||||
"To review" : "Треба прегледати",
|
"To review" : "Треба прегледати",
|
||||||
"Action needed" : "Потребна акција",
|
"Action needed" : "Потребна акција",
|
||||||
"Later" : "После",
|
"Later" : "После",
|
||||||
|
"To do" : "За урадити",
|
||||||
|
"Doing" : "Ради се",
|
||||||
|
"Done" : "Готово",
|
||||||
|
"Example Task 3" : "Пример задатка 3",
|
||||||
|
"Example Task 2" : "Пример задатка 2",
|
||||||
|
"Example Task 1" : "Пример задатка 1",
|
||||||
"The file was uploaded" : "Фајл је отпремљен",
|
"The file was uploaded" : "Фајл је отпремљен",
|
||||||
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
|
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
|
||||||
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
|
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ class Application extends App {
|
|||||||
return $container->getServer()->getConfig()->getSystemValue('dbtype', 'sqlite');
|
return $container->getServer()->getConfig()->getSystemValue('dbtype', 'sqlite');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$container->registerService('database4ByteSupport', function($container) {
|
||||||
|
return $container->getServer()->getDatabaseConnection()->supports4ByteText();
|
||||||
|
});
|
||||||
|
|
||||||
// Delete user/group acl entries when they get deleted
|
// Delete user/group acl entries when they get deleted
|
||||||
/** @var IUserManager $userManager */
|
/** @var IUserManager $userManager */
|
||||||
$userManager = $server->getUserManager();
|
$userManager = $server->getUserManager();
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class PageController extends Controller {
|
|||||||
public function index() {
|
public function index() {
|
||||||
$params = [
|
$params = [
|
||||||
'user' => $this->userId,
|
'user' => $this->userId,
|
||||||
'maxUploadSize' => \OCP\Util::uploadLimit(),
|
'maxUploadSize' => (int)\OCP\Util::uploadLimit(),
|
||||||
];
|
];
|
||||||
return new TemplateResponse('deck', 'main', $params);
|
return new TemplateResponse('deck', 'main', $params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,29 +38,40 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
/** @var IManager */
|
/** @var IManager */
|
||||||
private $notificationManager;
|
private $notificationManager;
|
||||||
private $databaseType;
|
private $databaseType;
|
||||||
|
private $database4ByteSupport;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IDBConnection $db,
|
IDBConnection $db,
|
||||||
LabelMapper $labelMapper,
|
LabelMapper $labelMapper,
|
||||||
IUserManager $userManager,
|
IUserManager $userManager,
|
||||||
IManager $notificationManager,
|
IManager $notificationManager,
|
||||||
$databaseType = 'sqlite'
|
$databaseType = 'sqlite',
|
||||||
|
$database4ByteSupport = true
|
||||||
) {
|
) {
|
||||||
parent::__construct($db, 'deck_cards', Card::class);
|
parent::__construct($db, 'deck_cards', Card::class);
|
||||||
$this->labelMapper = $labelMapper;
|
$this->labelMapper = $labelMapper;
|
||||||
$this->userManager = $userManager;
|
$this->userManager = $userManager;
|
||||||
$this->notificationManager = $notificationManager;
|
$this->notificationManager = $notificationManager;
|
||||||
$this->databaseType = $databaseType;
|
$this->databaseType = $databaseType;
|
||||||
|
$this->database4ByteSupport = $database4ByteSupport;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function insert(Entity $entity) {
|
public function insert(Entity $entity) {
|
||||||
$entity->setDatabaseType($this->databaseType);
|
$entity->setDatabaseType($this->databaseType);
|
||||||
$entity->setCreatedAt(time());
|
$entity->setCreatedAt(time());
|
||||||
$entity->setLastModified(time());
|
$entity->setLastModified(time());
|
||||||
|
if (!$this->database4ByteSupport) {
|
||||||
|
$description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription());
|
||||||
|
$entity->setDescription($description);
|
||||||
|
}
|
||||||
return parent::insert($entity);
|
return parent::insert($entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(Entity $entity, $updateModified = true) {
|
public function update(Entity $entity, $updateModified = true) {
|
||||||
|
if (!$this->database4ByteSupport) {
|
||||||
|
$description = preg_replace('/[\x{10000}-\x{10FFFF}]/u', "\xEF\xBF\xBD", $entity->getDescription());
|
||||||
|
$entity->setDescription($description);
|
||||||
|
}
|
||||||
$entity->setDatabaseType($this->databaseType);
|
$entity->setDatabaseType($this->databaseType);
|
||||||
|
|
||||||
if ($updateModified) {
|
if ($updateModified) {
|
||||||
|
|||||||
@@ -195,6 +195,7 @@ class CardService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function assignUser($cardId, $userId) {
|
public function assignUser($cardId, $userId) {
|
||||||
|
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||||
$assignments = $this->assignedUsersMapper->find($cardId);
|
$assignments = $this->assignedUsersMapper->find($cardId);
|
||||||
foreach ($assignments as $assignment) {
|
foreach ($assignments as $assignment) {
|
||||||
if ($assignment->getParticipant() === $userId) {
|
if ($assignment->getParticipant() === $userId) {
|
||||||
@@ -208,6 +209,7 @@ class CardService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function unassignUser($cardId, $userId) {
|
public function unassignUser($cardId, $userId) {
|
||||||
|
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_EDIT);
|
||||||
$assignments = $this->assignedUsersMapper->find($cardId);
|
$assignments = $this->assignedUsersMapper->find($cardId);
|
||||||
foreach ($assignments as $assignment) {
|
foreach ($assignments as $assignment) {
|
||||||
if ($assignment->getParticipant() === $userId) {
|
if ($assignment->getParticipant() === $userId) {
|
||||||
|
|||||||
@@ -28,32 +28,30 @@ Util::addScript('deck', 'build/vendor');
|
|||||||
|
|
||||||
Util::addStyle('deck', 'style');
|
Util::addStyle('deck', 'style');
|
||||||
Util::addScript('deck', 'build/deck');
|
Util::addScript('deck', 'build/deck');
|
||||||
|
|
||||||
|
if (\OC_Util::getVersion()[0] < 14) {
|
||||||
|
Util::addStyle('deck', 'comp-13');
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div id="app" class="app-deck" data-ng-app="Deck" ng-controller="AppController" ng-cloak config="<?php p(json_encode($_)); ?>">
|
<div class="app app-deck" data-ng-app="Deck" ng-controller="AppController" ng-cloak config="<?php p(json_encode($_)); ?>" ng-class="{'app-navigation-hide': appNavigationHide}">
|
||||||
|
|
||||||
<div id="app-navigation" data-ng-controller="ListController" ng-init="initSidebar()">
|
<div id="app-navigation" data-ng-controller="ListController" ng-init="initSidebar()">
|
||||||
<?php print_unescaped($this->inc('part.navigation')); ?>
|
<?php print_unescaped($this->inc('part.navigation')); ?>
|
||||||
<?php /* print_unescaped($this->inc('part.settings')); */ ?>
|
<?php /* print_unescaped($this->inc('part.settings')); */ ?>
|
||||||
</div>
|
</div>
|
||||||
<div id="app-content" ng-class="{ 'details-visible': sidebar.show }">
|
<div id="app-content" ng-class="{ 'details-visible': sidebar.show }"><div id="app-navigation-toggle-custom" class="icon-menu" ng-click="toggleSidebar()"></div><div ui-view></div></div>
|
||||||
<div ui-view></div>
|
<div id="app-sidebar" ng-class="{ 'details-visible': sidebar.show }" ng-if="sidebar.show" class="details-view scroll-container" ui-view="sidebarView"></div>
|
||||||
</div>
|
|
||||||
<route-loading-indicator></route-loading-indicator>
|
<route-loading-indicator></route-loading-indicator>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/ng-template" id="/boardlist.mainView.html">
|
<script type="text/ng-template" id="/boardlist.mainView.html">
|
||||||
<?php print_unescaped($this->inc('part.boardlist')); ?>
|
<?php print_unescaped($this->inc('part.boardlist')); ?>
|
||||||
</script>
|
</script>
|
||||||
<script type="text/ng-template" id="/board.sidebarView.html">
|
<script type="text/ng-template" id="/board.sidebarView.html">
|
||||||
<?php print_unescaped($this->inc('part.board.sidebarView')); ?>
|
<?php print_unescaped($this->inc('part.board.sidebarView')); ?>
|
||||||
</script>
|
</script>
|
||||||
<script type="text/ng-template" id="/board.mainView.html">
|
|
||||||
<?php print_unescaped($this->inc('part.board.mainView')); ?>
|
|
||||||
</script>
|
|
||||||
<script type="text/ng-template" id="/board.html">
|
<script type="text/ng-template" id="/board.html">
|
||||||
<?php print_unescaped($this->inc('part.board')); ?>
|
<?php print_unescaped($this->inc('part.board.mainView')); ?>
|
||||||
</script>
|
</script>
|
||||||
<script type="text/ng-template" id="/card.sidebarView.html">
|
<script type="text/ng-template" id="/card.sidebarView.html">
|
||||||
<?php print_unescaped($this->inc('part.card')); ?>
|
<?php print_unescaped($this->inc('part.card')); ?>
|
||||||
@@ -62,4 +60,4 @@ Util::addScript('deck', 'build/deck');
|
|||||||
<?php print_unescaped($this->inc('part.card.attachments')); ?>
|
<?php print_unescaped($this->inc('part.card.attachments')); ?>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -37,7 +37,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="board" class="scroll-container" ng-click="sidebar.show=false" ui-sref="board" ng-class="{'card-selected': params.cardId}">
|
<div id="board" class="scroll-container" ng-click="sidebar.show=false" ui-sref="board" ng-class="{'card-selected': params.cardId}">
|
||||||
{{ cardOpen }}
|
|
||||||
<search on-search="search" class="ng-hide"></search>
|
<search on-search="search" class="ng-hide"></search>
|
||||||
|
|
||||||
<div id="innerBoard" data-ng-model="stacks" data-as-sortable="sortOptionsStack">
|
<div id="innerBoard" data-ng-model="stacks" data-as-sortable="sortOptionsStack">
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
<?php print_unescaped($this->inc('part.board.mainView')); ?>
|
|
||||||
<div id="app-sidebar" class="details-view scroll-container"
|
|
||||||
ng-class="{ 'details-visible': sidebar.show }" ui-view="sidebarView">
|
|
||||||
</div>
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<div nv-file-drop="" uploader="uploader" class="drop-zone" options="{cardId: cardservice.getCurrent().id}">
|
<div nv-file-drop="" uploader="fileservice.uploader" class="drop-zone" options="{cardId: cardservice.getCurrent().id}">
|
||||||
<div class="drop-indicator" nv-file-over uploader="uploader">
|
<div class="drop-indicator" nv-file-over uploader="fileservice.uploader">
|
||||||
<p><?php p($l->t('Drop your files here to upload it to the card')); ?></p>
|
<p><?php p($l->t('Drop your files here to upload it to the card')); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div id="board-status" ng-if="statusservice.active">
|
<div id="board-status" ng-if="statusservice.active">
|
||||||
@@ -97,8 +97,8 @@
|
|||||||
<span class="save-indicator saved"><?php p($l->t('Saved')); ?></span>
|
<span class="save-indicator saved"><?php p($l->t('Saved')); ?></span>
|
||||||
<span class="save-indicator unsaved"><?php p($l->t('Unsaved changes')); ?></span>
|
<span class="save-indicator unsaved"><?php p($l->t('Unsaved changes')); ?></span>
|
||||||
<a ng-if="params.tab === 0" href="https://github.com/nextcloud/deck/wiki/Markdown-Help" target="_blank" class="icon icon-help" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Formatting help')); ?>"><span class="hidden-visually"><?php p($l->t('Formatting help')); ?></span></a>
|
<a ng-if="params.tab === 0" href="https://github.com/nextcloud/deck/wiki/Markdown-Help" target="_blank" class="icon icon-help" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Formatting help')); ?>"><span class="hidden-visually"><?php p($l->t('Formatting help')); ?></span></a>
|
||||||
<label ng-if="params.tab === 1" for="attachment-upload" class="button icon-upload" ng-class="{'icon-loading-small': uploader.isUploading}" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Upload attachment')); ?>"></label>
|
<label ng-if="params.tab === 1" for="attachment-upload" class="button icon-upload" ng-class="{'icon-loading-small': fileservice.uploader.isUploading}" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Upload attachment')); ?>"></label>
|
||||||
<input id="attachment-upload" type="file" nv-file-select="" uploader="uploader" class="hidden" options="{cardId: cardservice.getCurrent().id}"/>
|
<input id="attachment-upload" type="file" nv-file-select="" uploader="fileservice.uploader" class="hidden" options="{cardId: cardservice.getCurrent().id}"/>
|
||||||
<input ng-if="status.cardEditDescription" type="button" ng-mousedown="status.continueEdit = true; status.selectAttachment = true;" class="icon-files-dark" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Insert attachment')); ?>"/>
|
<input ng-if="status.cardEditDescription" type="button" ng-mousedown="status.continueEdit = true; status.selectAttachment = true;" class="icon-files-dark" data-toggle="tooltip" data-placement="left" title="<?php p($l->t('Insert attachment')); ?>"/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user