|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"presets": [
|
||||
["env", { "modules": false }],
|
||||
"stage-3"
|
||||
]
|
||||
}
|
|
@ -7,6 +7,7 @@ css/*.map
|
|||
nbproject/
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
package-lock.json
|
||||
Thumbs.db
|
||||
yarn-error.log
|
||||
*.cmd
|
||||
|
|
|
@ -3,7 +3,7 @@ host = https://www.transifex.com
|
|||
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
|
||||
|
||||
[nextcloud.polls]
|
||||
file_filter = <lang>/polls.po
|
||||
source_file = templates/polls.pot
|
||||
file_filter = translationfiles/<lang>/polls.po
|
||||
source_file = translationfiles/templates/polls.pot
|
||||
source_lang = en
|
||||
type = PO
|
22
CHANGELOG.md
|
@ -5,11 +5,29 @@ All notable changes to this project will be documented in this file.
|
|||
## [0.9.0] - tbD
|
||||
|
||||
### Added
|
||||
|
||||
- create/edit page
|
||||
- rewrite as a vue app
|
||||
- improved UI
|
||||
- introduced new NC date time picker from vue-nextcloud
|
||||
- added option to forbid "maybe" vote
|
||||
|
||||
- vote page
|
||||
- made polls table scrollable
|
||||
- show new vote options after voting
|
||||
|
||||
### Changed
|
||||
- Compatibility to NC 14
|
||||
- Introduced vue
|
||||
- Changing database theme
|
||||
- Polls is a Nextcloud only app now. If you wish to proceed developing the ownCloud version, make a fork from the `stable-0.8` branch.
|
||||
|
||||
### Fixed
|
||||
- 'Edit poll' did not work from poll's details view #294
|
||||
- 'Edit poll' did not work from poll's details view (#294)
|
||||
- Bug which makes voting impossible after edit
|
||||
- Write escapes option texts to db (#341)
|
||||
- ... a lot more minor bugs
|
||||
|
||||
See https://github.com/nextcloud/polls/milestone/9?closed=1 for all changes and additions.
|
||||
|
||||
## [0.8.1] - 2018-01-19
|
||||
|
||||
|
|
27
Makefile
|
@ -49,12 +49,20 @@ appstore:
|
|||
mkdir -p $(build_source_directory)
|
||||
|
||||
rsync -a \
|
||||
--exclude="build" \
|
||||
--exclude="tests" \
|
||||
--exclude="Makefile" \
|
||||
--include="js/vendor" \
|
||||
--include="css/vendor" \
|
||||
--exclude="*.log" \
|
||||
--exclude="phpunit*xml" \
|
||||
--exclude=".*" \
|
||||
--exclude="bower.json" \
|
||||
--exclude="composer.*" \
|
||||
--exclude="ISSUE_TEMPLATE.md" \
|
||||
--exclude="karma.*" \
|
||||
--exclude="Makefile" \
|
||||
--exclude="package*" \
|
||||
--exclude="phpunit*xml" \
|
||||
--exclude="protractor.*" \
|
||||
--exclude="build" \
|
||||
--exclude="css/*.css" \
|
||||
--exclude="js/node_modules" \
|
||||
--exclude="js/tests" \
|
||||
--exclude="js/test" \
|
||||
|
@ -63,14 +71,13 @@ appstore:
|
|||
--exclude="js/bower.json" \
|
||||
--exclude="js/karma.*" \
|
||||
--exclude="js/protractor.*" \
|
||||
--exclude="package.json" \
|
||||
--exclude="bower.json" \
|
||||
--exclude="karma.*" \
|
||||
--exclude="protractor.*" \
|
||||
--exclude=".*" \
|
||||
--exclude="js/.*" \
|
||||
--exclude="l10n/.tx" \
|
||||
--exclude="l10n/no-php" \
|
||||
--exclude="node_modules" \
|
||||
--exclude="screenshots" \
|
||||
--exclude="src" \
|
||||
--exclude="tests" \
|
||||
--exclude="vendor" \
|
||||
./ $(build_source_directory)/$(app_name)
|
||||
|
||||
tar cvzf $(appstore_package_name).tar.gz --directory="$(build_source_directory)" $(app_name)
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
<admin>https://github.com/nextcloud/polls/blob/master/README.md</admin>
|
||||
</documentation>
|
||||
<category>tools</category>
|
||||
<category>social</category>
|
||||
<category>organization</category>
|
||||
<website>https://github.com/nextcloud/polls</website>
|
||||
<bugs>https://github.com/nextcloud/polls/issues</bugs>
|
||||
<repository type="git">https://github.com/nextcloud/polls.git</repository>
|
||||
|
@ -21,6 +23,6 @@
|
|||
<screenshot>https://raw.githubusercontent.com/nextcloud/polls/master/screenshots/vote.png</screenshot>
|
||||
<screenshot>https://raw.githubusercontent.com/nextcloud/polls/master/screenshots/edit-poll.png</screenshot>
|
||||
<dependencies>
|
||||
<nextcloud min-version="13" max-version="14" />
|
||||
<nextcloud min-version="14" max-version="14" />
|
||||
</dependencies>
|
||||
</info>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
|
||||
* @copyright Copyright (c] 2017 Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
|
||||
*
|
||||
* @author Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
|
||||
*
|
||||
|
@ -9,7 +9,7 @@
|
|||
* 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.
|
||||
* 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
|
||||
|
@ -21,19 +21,21 @@
|
|||
*
|
||||
*/
|
||||
|
||||
$app = new \OCA\Polls\AppInfo\Application();
|
||||
$app->registerRoutes($this, array(
|
||||
'routes' => array(
|
||||
array('name' => 'page#index', 'url' => '/', 'verb' => 'GET'),
|
||||
array('name' => 'page#goto_poll', 'url' => '/poll/{hash}', 'verb' => 'GET'),
|
||||
array('name' => 'page#edit_poll', 'url' => '/edit/{hash}', 'verb' => 'GET'),
|
||||
array('name' => 'page#create_poll', 'url' => '/create', 'verb' => 'GET'),
|
||||
array('name' => 'page#delete_poll', 'url' => '/delete', 'verb' => 'POST'),
|
||||
array('name' => 'page#update_poll', 'url' => '/update', 'verb' => 'POST'),
|
||||
array('name' => 'page#insert_poll', 'url' => '/insert', 'verb' => 'POST'),
|
||||
array('name' => 'page#insert_vote', 'url' => '/insert/vote', 'verb' => 'POST'),
|
||||
array('name' => 'page#insert_comment', 'url' => '/insert/comment', 'verb' => 'POST'),
|
||||
array('name' => 'page#search', 'url' => '/search', 'verb' => 'POST'),
|
||||
array('name' => 'page#get_display_name', 'url' => '/get/displayname', 'verb' => 'POST'),
|
||||
)
|
||||
));
|
||||
return [
|
||||
'routes' => [
|
||||
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
||||
['name' => 'page#goto_poll', 'url' => '/poll/{hash}', 'verb' => 'GET'],
|
||||
['name' => 'page#edit_poll', 'url' => '/edit/{hash}', 'verb' => 'GET'],
|
||||
['name' => 'page#create_poll', 'url' => '/create', 'verb' => 'GET'],
|
||||
['name' => 'page#delete_poll', 'url' => '/delete', 'verb' => 'POST'],
|
||||
['name' => 'page#update_poll', 'url' => '/update', 'verb' => 'POST'],
|
||||
['name' => 'page#insert_poll', 'url' => '/insert', 'verb' => 'POST'],
|
||||
['name' => 'page#insert_vote', 'url' => '/insert/vote', 'verb' => 'POST'],
|
||||
['name' => 'page#insert_comment', 'url' => '/insert/comment', 'verb' => 'POST'],
|
||||
['name' => 'page#search', 'url' => '/search', 'verb' => 'POST'],
|
||||
['name' => 'page#get_display_name', 'url' => '/get/displayname', 'verb' => 'POST'],
|
||||
['name' => 'api#write_poll', 'url' => '/write', 'verb' => 'POST'],
|
||||
['name' => 'api#get_poll', 'url' => '/get/poll/{hash}', 'verb' => 'GET'],
|
||||
['name' => 'api#get_site_users_and_groups', 'url' => '/get/siteusers', 'verb' => 'POST']
|
||||
]
|
||||
];
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
$hover-color: #f7f7f7;
|
||||
|
||||
$bg_no: #ffede9;
|
||||
$bg_maybe: #fcf7e1;
|
||||
$bg_unvoted: #fff4c8;
|
||||
$bg_yes: #ebf5d6;
|
||||
$bg_information: #b19c3e;
|
||||
|
||||
$fg_no: #f45573;
|
||||
$fg_maybe: #f0db98;
|
||||
$fg_unvoted: #f0db98;
|
||||
$fg_yes: #49bc49;
|
||||
|
||||
$bg_current_user: #f7f7f7;
|
||||
$fg_current_user: #0082c9;
|
|
@ -1,94 +0,0 @@
|
|||
.user-group-list {
|
||||
display: none;
|
||||
border: 1px solid #DDD;
|
||||
margin: 15px;
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
max-height: 150px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#sec_name {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.cl_access_item {
|
||||
padding: 5px;
|
||||
background-color: white;
|
||||
color: #333;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.cl_access_item:hover {
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
.cl_access_item.selected {
|
||||
background-color: #409AE7;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.cl_access_item.selected:hover {
|
||||
background-color: #FF6F6F;
|
||||
color: #FFF;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
textarea {
|
||||
min-height: 66px;
|
||||
}
|
||||
|
||||
.choices {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.choices td {
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
table td {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.text-row, .date-row {
|
||||
font-weight: bold;
|
||||
padding: 2px 5px;
|
||||
background-color: #337AB7;
|
||||
color: #FFF;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.text-row:hover, .date-row:hover {
|
||||
background-color: #ff6f6f;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
#selected-dates-table tr:first-child td {
|
||||
font-weight: bold;
|
||||
padding: 2px 5px;
|
||||
background-color: #337AB7;
|
||||
color: #FFF;
|
||||
|
||||
}
|
||||
|
||||
table .icon-close {
|
||||
cursor: pointer;
|
||||
background-color: #ffede9; /*red*/
|
||||
padding: 0 5px;
|
||||
background-image: url('../img/no-vote.svg');
|
||||
}
|
||||
|
||||
table .icon-checkmark {
|
||||
cursor: pointer;
|
||||
background-color: #ebf5d6; /*green*/
|
||||
padding: 0 5px;
|
||||
background-image: url('../img/yes-vote.svg');
|
||||
}
|
||||
|
||||
#expiration {
|
||||
max-width: 200px;
|
||||
}
|
||||
|
||||
#pollDesc {
|
||||
width: 100%;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-grow: 1;
|
||||
/* align-items: center; */
|
||||
&.align-centered {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
&.align-centered {
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-wrap {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.space-between {
|
||||
justify-content: space-between,
|
||||
}
|
||||
|
||||
.divider {
|
||||
width: 25px;
|
||||
border-left: 1px solid #ddd;
|
||||
background-color: #eee;
|
||||
border-right: 1px solid #ddd;
|
||||
background-image: url('/apps/polls/css/../img/toggle.svg?v=1');
|
||||
background-repeat: no-repeat;
|
||||
background-position-x: 5px;
|
||||
background-position-y: center;
|
||||
opacity: 0.5;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
|
@ -1,13 +1,10 @@
|
|||
$bg_no: #ffede9;
|
||||
$bg_yes: #ebf5d6;
|
||||
$fg_no: #f45573;
|
||||
$fg_yes: #49bc49;
|
||||
@import 'colors.scss';
|
||||
|
||||
$row-padding: 15px;
|
||||
$table-padding: 4px;
|
||||
|
||||
$date-width: 120px;
|
||||
$participants-width: 80px;
|
||||
$participants-width: 95px;
|
||||
$group-2-2-width: max($date-width, $participants-width);
|
||||
|
||||
$owner-width: 140px;
|
||||
|
@ -40,7 +37,7 @@ $mediabreak-3: $group-1-width + $owner-width + max($group-2-1-width, $group-2-2-
|
|||
|
||||
line-height: 2em;
|
||||
transition: background-color 0.3s ease;
|
||||
background-color: #fff;
|
||||
background-color: var(--color-main-background);
|
||||
min-height: 4em;
|
||||
border-bottom: 1px solid #eee;
|
||||
|
||||
|
@ -56,7 +53,7 @@ $mediabreak-3: $group-1-width + $owner-width + max($group-2-1-width, $group-2-2-
|
|||
&.table-body {
|
||||
&:hover, &:focus, &:active, &.mouseOver {
|
||||
transition: background-color 0.3s ease;
|
||||
background-color: #f8f8f8;
|
||||
background-color: $hover-color;
|
||||
}
|
||||
.flex-column.owner {
|
||||
display: flex;
|
||||
|
@ -79,7 +76,7 @@ $mediabreak-3: $group-1-width + $owner-width + max($group-2-1-width, $group-2-2-
|
|||
}
|
||||
|
||||
&.table-header {
|
||||
color: #999;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,10 @@ h1 {
|
|||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#app header {
|
||||
padding-top: 44px;
|
||||
#app, #create-poll {
|
||||
header {
|
||||
padding-top: 44px;
|
||||
}
|
||||
}
|
||||
|
||||
/* allow horizontal scrollbar
|
||||
|
@ -28,7 +30,6 @@ h1 {
|
|||
|
||||
#controls {
|
||||
// adopted from NC13 for compatibily with OC10 and NC11-NC12
|
||||
display: flex;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
|
@ -36,7 +37,7 @@ h1 {
|
|||
margin-top: 12px;
|
||||
}
|
||||
#breadcrump {
|
||||
flex-grow: 0;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
|
||||
div.crumb {
|
||||
|
@ -153,7 +154,7 @@ td.td_shown {
|
|||
}
|
||||
|
||||
.description {
|
||||
color: #888;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.cl_title {
|
||||
|
|
|
@ -0,0 +1,225 @@
|
|||
@import 'colors.scss';
|
||||
|
||||
$border_current_user: 2px solid;
|
||||
$border_user: 1px solid #ddd;
|
||||
$user-column-width: 265px;
|
||||
|
||||
#polls-sidebar {
|
||||
width: 520px;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 1;
|
||||
min-width: 300px;
|
||||
border-left: 1px solid var(--color-border);
|
||||
transition: margin-right 300ms;
|
||||
z-index: 500;
|
||||
> div, > ul {
|
||||
padding: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.authorRow {
|
||||
align-items: center;
|
||||
.author {
|
||||
margin-left: 8px;
|
||||
opacity: .5;
|
||||
flex-grow: 1;
|
||||
&.external {
|
||||
margin-right: 33px;
|
||||
opacity: 1;
|
||||
> input {
|
||||
width: 100%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.detailsView {
|
||||
z-index: 1000 !important;
|
||||
.close.flex-row {
|
||||
justify-content: flex-end;
|
||||
margin: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
.header.flex-row {
|
||||
flex-direction: row;
|
||||
flex-grow: 0;
|
||||
align-items: flex-start;
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
padding: 0 17px;
|
||||
}
|
||||
|
||||
.pollInformation {
|
||||
width: 220px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
padding-right: 15px;
|
||||
|
||||
.authorRow {
|
||||
.leftLabel {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.cloud {
|
||||
margin: 4px 0;
|
||||
|
||||
> span {
|
||||
color: #fff;
|
||||
margin: 2px;
|
||||
padding: 2px 4px;
|
||||
border-radius: 3px;
|
||||
float: left;
|
||||
text-shadow: 1px 1px #666;
|
||||
background-color: #aaa;
|
||||
|
||||
}
|
||||
.open {
|
||||
background-color: $fg_yes;
|
||||
}
|
||||
.expired {
|
||||
background-color: $fg_no;
|
||||
}
|
||||
.information {
|
||||
background-color: $bg_information;
|
||||
}
|
||||
}
|
||||
}
|
||||
#expired_info {
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
.pollActions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 15px;
|
||||
|
||||
.close {
|
||||
margin: 15px;
|
||||
background-position: right top;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
> ul > li {
|
||||
&:focus, &:hover, &.active, a.selected {
|
||||
&, > a {
|
||||
opacity: 1;
|
||||
box-shadow: inset 2px 0 #0082c9;
|
||||
}
|
||||
}
|
||||
|
||||
> a[class*="icon-"],
|
||||
> ul > li > a[class*="icon-"],
|
||||
> a[style*="background-image"],
|
||||
> ul > li > a[style*="background-image"] {
|
||||
padding-left: 44px;
|
||||
}
|
||||
|
||||
> a,
|
||||
> ul > li > a {
|
||||
background-size: 16px 16px;
|
||||
background-position: 14px center;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
justify-content: space-between;
|
||||
line-height: 44px;
|
||||
min-height: 44px;
|
||||
padding: 0 12px;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
color: #000;
|
||||
opacity: 0.57;
|
||||
flex: 1 1 0;
|
||||
z-index: 100;
|
||||
}
|
||||
a,
|
||||
.app-navigation-entry-deleted {
|
||||
padding-left: 44px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
#configurationsTabView {
|
||||
.configBox {
|
||||
padding: 8px 8px;
|
||||
|
||||
> .title {
|
||||
font-weight: bold;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
> div {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
input.hasDatepicker {
|
||||
margin-left:17px;
|
||||
}
|
||||
&.oneline {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
#commentsTabView {
|
||||
|
||||
.newCommentForm div.message:empty:before {
|
||||
content: attr(data-placeholder);
|
||||
color: grey;
|
||||
}
|
||||
#commentBox {
|
||||
border: 1px solid #dbdbdb;
|
||||
border-radius: 3px;
|
||||
padding: 7px 6px;
|
||||
margin: 3px 3px 3px 40px;
|
||||
cursor: text;
|
||||
}
|
||||
.comment {
|
||||
margin-bottom: 30px;
|
||||
|
||||
.comment-header {
|
||||
background-color: #EEE;
|
||||
border-bottom: 1px solid #DDD;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
|
||||
.comment-date {
|
||||
float: right;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.date {
|
||||
right: 0;
|
||||
top: 5px;
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
.message {
|
||||
margin-left: 40px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
|
||||
.new-comment {
|
||||
.submitComment {
|
||||
align-self: last baseline;
|
||||
width: 30px;
|
||||
margin: 0;
|
||||
padding: 7px 9px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
opacity: .3;
|
||||
}
|
||||
|
||||
.icon-loading-small {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
540
css/vote.scss
|
@ -1,17 +1,5 @@
|
|||
$bg_no: #ffede9;
|
||||
$bg_maybe: #fcf7e1;
|
||||
$bg_unvoted: #fff4c8;
|
||||
$bg_yes: #ebf5d6;
|
||||
$bg_information: #b19c3e;
|
||||
@import 'colors.scss';
|
||||
|
||||
$fg_no: #f45573;
|
||||
$fg_maybe: #f0db98;
|
||||
$fg_unvoted: #f0db98;
|
||||
$fg_yes: #49bc49;
|
||||
|
||||
|
||||
$bg_current_user: #f7f7f7;
|
||||
$fg_current_user: #0082c9;
|
||||
$border_current_user: 2px solid;
|
||||
$border_user: 1px solid #ddd;
|
||||
$user-column-width: 265px;
|
||||
|
@ -21,112 +9,109 @@ $user-column-width: 265px;
|
|||
}
|
||||
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
|
||||
}
|
||||
#votings {
|
||||
position: relative !important;
|
||||
.description {
|
||||
.expired-vote{
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
#app-content {
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
|
||||
#votings {
|
||||
position: relative !important;
|
||||
padding: 12px 17px;
|
||||
.table {
|
||||
overflow-x: auto;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
}
|
||||
padding: 12px 17px;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin-left: $user-column-width;
|
||||
padding: 0 17px;
|
||||
align-items: initial;
|
||||
.vote.option {
|
||||
.date-box {
|
||||
flex-grow: 1;
|
||||
.description {
|
||||
.expired-vote{
|
||||
color: var(--color-error);
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.header {
|
||||
margin-left: $user-column-width;
|
||||
padding: 0 17px;
|
||||
align-items: initial;
|
||||
|
||||
.date-box {
|
||||
padding: 0 2px;
|
||||
align-items: center;
|
||||
.month, .dayow {
|
||||
font-size: 1.2em;
|
||||
color: var(--color-text-lighter);
|
||||
}
|
||||
|
||||
.day {
|
||||
font-size: 1.8em;
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.counter {
|
||||
.counter {
|
||||
font-size: 18px;
|
||||
.yes, .no {
|
||||
margin: 0 2px;
|
||||
.svg {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
}
|
||||
}
|
||||
.yes {
|
||||
color: $fg_yes;
|
||||
.svg {
|
||||
background-image: url('../img/yes-vote.svg');
|
||||
}
|
||||
}
|
||||
.no {
|
||||
color: $fg_no;
|
||||
.svg {
|
||||
background-image: url('../img/no-vote.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.winner {
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
color: $fg_yes;
|
||||
}
|
||||
.vote.option {
|
||||
.date-box {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.counter {
|
||||
flex-grow: 0;
|
||||
height: 32px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.user {
|
||||
border-top: $border_user;
|
||||
height: 44px;
|
||||
padding: 0 17px;
|
||||
}
|
||||
.first {
|
||||
flex-grow: 0;
|
||||
height: 32px;
|
||||
}
|
||||
}
|
||||
}
|
||||
flex-shrink: 0;
|
||||
width: $user-column-width;
|
||||
}
|
||||
|
||||
.user {
|
||||
border-top: $border_user;
|
||||
height: 44px;
|
||||
padding: 0 17px;
|
||||
}
|
||||
|
||||
.first {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
width: $user-column-width;
|
||||
}
|
||||
|
||||
.vote, .poll-cell {
|
||||
flex-grow: 1;
|
||||
width: 85px;
|
||||
margin: 2px;
|
||||
align-items:center;
|
||||
}
|
||||
|
||||
.date-box {
|
||||
padding: 0 2px;
|
||||
align-items: center;
|
||||
.month, .dayow {
|
||||
font-size: 1.2em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.day {
|
||||
font-size: 1.8em;
|
||||
margin: 5px 0 5px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.winner {
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
color: $fg_yes;
|
||||
}
|
||||
|
||||
.counter {
|
||||
font-size: 18px;
|
||||
.yes, .no {
|
||||
margin: 0 2px;
|
||||
.svg {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
.vote, .poll-cell {
|
||||
flex-grow: 1;
|
||||
width: 85px;
|
||||
margin: 2px;
|
||||
align-items:center;
|
||||
}
|
||||
}
|
||||
.yes {
|
||||
color: $fg_yes;
|
||||
.svg {
|
||||
background-image: url('../img/yes-vote.svg');
|
||||
}
|
||||
}
|
||||
.no {
|
||||
color: $fg_no;
|
||||
.svg {
|
||||
background-image: url('../img/no-vote.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.name {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
@ -161,7 +146,7 @@ $user-column-width: 265px;
|
|||
&:before {
|
||||
content: attr(data-unvoted);
|
||||
color: $fg_no;
|
||||
font-size: 18px;
|
||||
font-size: 14px;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
line-height: 38px;
|
||||
|
@ -258,191 +243,6 @@ $user-column-width: 265px;
|
|||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.authorRow {
|
||||
position: relative;
|
||||
.author {
|
||||
margin-left: 8px;
|
||||
opacity: .5;
|
||||
flex-grow: 1;
|
||||
&.external {
|
||||
margin-right: 33px;
|
||||
opacity: 1;
|
||||
> input {
|
||||
width: 100%
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.detailsView {
|
||||
z-index: 1000 !important;
|
||||
.close.flex-row {
|
||||
justify-content: flex-end;
|
||||
margin: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
.header.flex-row {
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
margin-left: 0;
|
||||
margin-top:0;
|
||||
}
|
||||
|
||||
.pollInformation {
|
||||
width: 220px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
padding-right: 15px;
|
||||
|
||||
.authorRow {
|
||||
.leftLabel {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.cloud {
|
||||
margin: 4px 0;
|
||||
|
||||
> span {
|
||||
color: #fff;
|
||||
margin: 2px;
|
||||
padding: 2px 4px;
|
||||
border-radius: 3px;
|
||||
float: left;
|
||||
text-shadow: 1px 1px #666;
|
||||
background-color: #aaa;
|
||||
|
||||
}
|
||||
.open {
|
||||
background-color: $fg_yes;
|
||||
}
|
||||
.expired {
|
||||
background-color: $fg_no;
|
||||
}
|
||||
.information {
|
||||
background-color: $bg_information;
|
||||
}
|
||||
}
|
||||
}
|
||||
#expired_info {
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
.pollActions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 15px;
|
||||
|
||||
.close {
|
||||
margin: 15px;
|
||||
background-position: right top;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
> ul > li {
|
||||
&:focus, &:hover, &.active, a.selected {
|
||||
&, > a {
|
||||
opacity: 1;
|
||||
box-shadow: inset 2px 0 #0082c9;
|
||||
}
|
||||
}
|
||||
|
||||
> a[class*="icon-"],
|
||||
> ul > li > a[class*="icon-"],
|
||||
> a[style*="background-image"],
|
||||
> ul > li > a[style*="background-image"] {
|
||||
padding-left: 44px;
|
||||
}
|
||||
|
||||
> a,
|
||||
> ul > li > a {
|
||||
background-size: 16px 16px;
|
||||
background-position: 14px center;
|
||||
background-repeat: no-repeat;
|
||||
display: block;
|
||||
justify-content: space-between;
|
||||
line-height: 44px;
|
||||
min-height: 44px;
|
||||
padding: 0 12px;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
color: #000;
|
||||
opacity: 0.57;
|
||||
flex: 1 1 0;
|
||||
z-index: 100;
|
||||
}
|
||||
a,
|
||||
.app-navigation-entry-deleted {
|
||||
padding-left: 44px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#commentsTabView {
|
||||
|
||||
.newCommentForm div.message:empty:before {
|
||||
content: attr(data-placeholder);
|
||||
color: grey;
|
||||
}
|
||||
#commentBox {
|
||||
border: 1px solid #dbdbdb;
|
||||
border-radius: 3px;
|
||||
padding: 7px 6px;
|
||||
margin: 3px 3px 3px 40px;
|
||||
cursor: text;
|
||||
}
|
||||
.comment {
|
||||
margin-bottom: 30px;
|
||||
|
||||
.comment-header {
|
||||
background-color: #EEE;
|
||||
border-bottom: 1px solid #DDD;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
|
||||
.comment-date {
|
||||
float: right;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.date {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 5px;
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
.message {
|
||||
margin-left: 40px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
|
||||
.new-comment {
|
||||
.submitComment {
|
||||
align-self: last baseline;
|
||||
width: 30px;
|
||||
margin: 0;
|
||||
padding: 7px 9px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
opacity: .3;
|
||||
}
|
||||
|
||||
.icon-loading-small {
|
||||
float: left;
|
||||
margin-top: 10px;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: (768px) ) {
|
||||
#app-content {
|
||||
position: relative !important;
|
||||
|
@ -450,88 +250,94 @@ $user-column-width: 265px;
|
|||
}
|
||||
@media all and (max-width: (480px) ) {
|
||||
|
||||
#votings {
|
||||
#app-content #votings {
|
||||
padding: 0px 2px;
|
||||
}
|
||||
|
||||
.flex-row {
|
||||
flex-direction: column;
|
||||
|
||||
&.user-cell, &.counter, &.counter .yes, &.counter .no, &.controls, &.breadcrump, &.submitPoll, &.newCommentForm, &.close {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
&.header {
|
||||
flex-grow: 1;
|
||||
margin-left: 0;
|
||||
margin-top: 44px;
|
||||
width: 120px;
|
||||
padding: 0 0 0 4px;
|
||||
.vote {
|
||||
padding-right: 10px;
|
||||
&.option {
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
border-top: $border_user;
|
||||
.flex-row {
|
||||
flex-direction: column;
|
||||
.first {
|
||||
height: 44px;
|
||||
width: unset;
|
||||
}
|
||||
&.time {
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
border-top: $border_user;
|
||||
.counter {
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
|
||||
&.user-cell, &.counter, &.counter .yes, &.counter .no, &.controls, &.breadcrump, &.submitPoll, &.newCommentForm, &.close {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
&.header {
|
||||
flex-grow: 1;
|
||||
margin-left: 0;
|
||||
margin-top: 44px;
|
||||
width: 120px;
|
||||
padding: 0 0 0 4px;
|
||||
.vote {
|
||||
padding-right: 10px;
|
||||
&.option {
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
border-top: $border_user;
|
||||
}
|
||||
&.time {
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
border-top: $border_user;
|
||||
.counter {
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.user {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.current-user {
|
||||
display: flex;
|
||||
width: 44px;
|
||||
padding:0;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
||||
.poll-cell {
|
||||
border:none;
|
||||
border-radius: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
background-color: transparent;
|
||||
padding: 0 2px;
|
||||
&.active {
|
||||
&.yes {
|
||||
background-image: url('../img/yes-vote-bordered.svg');
|
||||
}
|
||||
|
||||
&.no {
|
||||
background-image: url('../img/no-vote-bordered.svg');
|
||||
}
|
||||
|
||||
&.maybe {
|
||||
background-image: url('../img/maybe-vote-bordered.svg');
|
||||
}
|
||||
&.unvoted {
|
||||
background-image: url('../img/unvoted-vote-bordered.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
.user-cell {
|
||||
position: absolute;
|
||||
left: 22px;
|
||||
}
|
||||
.poll-cell, .toggle-cell {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&.user {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.current-user {
|
||||
display: flex;
|
||||
width: 44px;
|
||||
padding:0;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
||||
.poll-cell {
|
||||
border:none;
|
||||
border-radius: 0;
|
||||
border-top: 1px solid #ddd;
|
||||
background-color: transparent;
|
||||
padding: 0 2px;
|
||||
&.active {
|
||||
&.yes {
|
||||
background-image: url('../img/yes-vote-bordered.svg');
|
||||
}
|
||||
|
||||
&.no {
|
||||
background-image: url('../img/no-vote-bordered.svg');
|
||||
}
|
||||
|
||||
&.maybe {
|
||||
background-image: url('../img/maybe-vote-bordered.svg');
|
||||
}
|
||||
&.unvoted {
|
||||
background-image: url('../img/unvoted-vote-bordered.svg');
|
||||
}
|
||||
}
|
||||
}
|
||||
.user-cell {
|
||||
position: absolute;
|
||||
left: 22px;
|
||||
}
|
||||
.poll-cell, .toggle-cell {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.description {
|
||||
margin: 4px;
|
||||
}
|
||||
|
@ -576,10 +382,6 @@ $user-column-width: 265px;
|
|||
}
|
||||
}
|
||||
|
||||
.first {
|
||||
height: 44px;
|
||||
width: unset;
|
||||
}
|
||||
|
||||
#options.flex-row {
|
||||
flex-direction: column;
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg4"
|
||||
height="16"
|
||||
width="16"
|
||||
viewbox="0 0 16 16"
|
||||
version="1.1">
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<g
|
||||
id="XMLID_2_"
|
||||
transform="matrix(0.22613747,0,0,0.23288366,-2.8432917,-3.1784157)">
|
||||
<path
|
||||
d="M 19.4,18 V 78 H 76.5 V 31.4 L 65.3,18 H 58.4 V 40.9 H 28 V 18 Z m 22.9,2.9 V 35.2 H 53.7 V 20.9 Z M 28,50.4 H 68 V 72.3 H 28 Z m 5.7,4.7 V 58 h 28.6 v -2.9 z m 0,8.6 v 2.9 h 28.6 v -2.9 z"
|
||||
class="st0"
|
||||
id="XMLID_9_" />
|
||||
</g>
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 1.0 KiB |
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg4"
|
||||
height="20"
|
||||
width="4"
|
||||
viewbox="0 0 16 16"
|
||||
version="1.1"
|
||||
sodipodi:docname="toggle.svg"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
id="namedview6"
|
||||
showgrid="false"
|
||||
inkscape:zoom="32"
|
||||
inkscape:cx="-2.3727798"
|
||||
inkscape:cy="9.3760237"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<metadata
|
||||
id="metadata10">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs8" />
|
||||
<rect
|
||||
style="fill:#00000d;fill-opacity:1;stroke:#000000;stroke-width:0.5714286;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:19.89999962;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
||||
id="rect4513"
|
||||
width="1.4285715"
|
||||
height="1.4285713"
|
||||
x="1.2857143"
|
||||
y="13.285715" />
|
||||
<rect
|
||||
style="fill:#00000d;fill-opacity:1;stroke:#000000;stroke-width:0.5714286;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:19.89999962;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
||||
id="rect4513-2"
|
||||
width="1.4285715"
|
||||
height="1.4285715"
|
||||
x="1.2857143"
|
||||
y="17.285715" />
|
||||
<rect
|
||||
style="fill:#00000d;fill-opacity:1;stroke:#000000;stroke-width:0.5714286;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:19.89999962;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
||||
id="rect4513-6"
|
||||
width="1.4285715"
|
||||
height="1.4285715"
|
||||
x="1.2857143"
|
||||
y="9.2857151" />
|
||||
<rect
|
||||
style="fill:#00000d;fill-opacity:1;stroke:#000000;stroke-width:0.5714286;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:19.89999962;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
||||
id="rect4513-26"
|
||||
width="1.4285716"
|
||||
height="1.4285715"
|
||||
x="1.2857141"
|
||||
y="5.2857151" />
|
||||
<rect
|
||||
style="fill:#00000d;fill-opacity:1;stroke:#000000;stroke-width:0.5714286;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:19.89999962;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
|
||||
id="rect4513-9"
|
||||
width="1.4285715"
|
||||
height="1.4285715"
|
||||
x="1.2857143"
|
||||
y="1.2857143" />
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 3.1 KiB |
|
@ -10,3 +10,5 @@ function deletePoll($pollEl) {
|
|||
form.submit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,637 +0,0 @@
|
|||
var g_chosen_datetimes = [];
|
||||
var g_chosen_texts = [];
|
||||
var g_chosen_groups = [];
|
||||
var g_chosen_users = [];
|
||||
var chosen_type = 'event';
|
||||
var access_type = '';
|
||||
var isAnonymous;
|
||||
var hideNames;
|
||||
|
||||
function selectItem(cell) {
|
||||
cell.removeClass('icon-close');
|
||||
cell.addClass('icon-checkmark');
|
||||
cell.removeClass('date-text-not-selected');
|
||||
cell.addClass('date-text-selected');
|
||||
if (cell.attr('class').indexOf('is-text') > -1) {
|
||||
var id = cell.attr('id');
|
||||
g_chosen_texts.push(id.substring(id.indexOf('_') + 1));
|
||||
} else {
|
||||
var dateId = cell.parent().attr('id'); //timestamp of date
|
||||
var timeId = cell.attr('id');
|
||||
g_chosen_datetimes.push(parseInt(dateId) + parseInt(timeId));
|
||||
}
|
||||
}
|
||||
|
||||
function deselectItem(cell) {
|
||||
var id;
|
||||
var index;
|
||||
var dateId;
|
||||
var timeId;
|
||||
cell.removeClass('icon-checkmark');
|
||||
cell.addClass('icon-close');
|
||||
cell.removeClass('date-text-selected');
|
||||
cell.addClass('date-text-not-selected');
|
||||
if (cell.attr('class').indexOf('is-text') > -1) {
|
||||
id = cell.attr('id');
|
||||
index = g_chosen_texts.indexOf(id.substring(id.indexOf('_') + 1));
|
||||
if (index > -1) {
|
||||
g_chosen_texts.splice(index, 1);
|
||||
}
|
||||
} else {
|
||||
dateId = cell.parent().attr('id'); //timestamp of date
|
||||
timeId = cell.attr('id');
|
||||
index = g_chosen_datetimes.indexOf(parseInt(dateId) + parseInt(timeId));
|
||||
if (index > -1) {
|
||||
g_chosen_datetimes.splice(index, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function insertText(text, set) {
|
||||
if (typeof set == 'undefined') {
|
||||
set = false;
|
||||
}
|
||||
var table = document.getElementById('selected-texts-table');
|
||||
var tr = table.insertRow(-1);
|
||||
var td = tr.insertCell(-1);
|
||||
td.innerHTML = text;
|
||||
td.className = 'text-row';
|
||||
td = tr.insertCell(-1);
|
||||
if (set) {
|
||||
td.className = 'icon-checkmark is-text date-text-selected';
|
||||
} else {
|
||||
td.className = 'icon-close is-text date-text-not-selected';
|
||||
}
|
||||
td.id = 'text_' + text;
|
||||
}
|
||||
|
||||
function addRowToList(ts, text, timeTs) {
|
||||
if (typeof timeTs == 'undefined') {
|
||||
timeTs = -1;
|
||||
}
|
||||
var table = document.getElementById('selected-dates-table');
|
||||
var rows = table.rows;
|
||||
var td, tr, tdId;
|
||||
var i, j;
|
||||
var curr;
|
||||
if (rows.length == 0) {
|
||||
tr = table.insertRow(-1); //start new header
|
||||
tr.insertCell(-1);
|
||||
tr = table.insertRow(-1); //append new row
|
||||
tr.id = ts;
|
||||
tr.className = 'toggleable-row';
|
||||
td = tr.insertCell(-1);
|
||||
td.className = 'date-row';
|
||||
td.innerHTML = text;
|
||||
return;
|
||||
}
|
||||
for ( i=1; i<rows.length; i++) {
|
||||
curr = rows[i];
|
||||
if (curr.id == ts) {
|
||||
for (j=1; j<curr.cells.length; j++) {
|
||||
td = curr.cells[j];
|
||||
tdId = curr.cells[j].id;
|
||||
if ( timeTs == tdId) {
|
||||
td.className = 'icon-checkmark date-text-selected';
|
||||
}
|
||||
}
|
||||
return; //already in table, cancel
|
||||
} else if (curr.id > ts) {
|
||||
tr = table.insertRow(i); //insert row at current index
|
||||
tr.id = ts;
|
||||
tr.className = 'toggleable-row';
|
||||
td = tr.insertCell(-1);
|
||||
td.className = 'date-row';
|
||||
td.innerHTML = text;
|
||||
for (j=1; j<rows[0].cells.length; j++) {
|
||||
tdId = rows[0].cells[j].id;
|
||||
td = tr.insertCell(-1);
|
||||
if (timeTs == tdId) {
|
||||
td.className = 'icon-checkmark date-text-selected';
|
||||
} else {
|
||||
td.className = 'icon-close date-text-not-selected';
|
||||
}
|
||||
td.id = tdId;
|
||||
td.innerHTML = '';
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
tr = table.insertRow(-1); //highest value, append new row
|
||||
tr.id = ts;
|
||||
tr.className = 'toggleable-row';
|
||||
td = tr.insertCell(-1);
|
||||
td.className = 'date-row';
|
||||
td.innerHTML = text;
|
||||
for (j=1; j<rows[0].cells.length; j++) {
|
||||
tdId = rows[0].cells[j].id;
|
||||
td = tr.insertCell(-1);
|
||||
if (timeTs == tdId) {
|
||||
td.className = 'icon-checkmark date-text-selected';
|
||||
} else {
|
||||
td.className = 'icon-close date-text-not-selected';
|
||||
}
|
||||
td.id = tdId;
|
||||
td.innerHTML = '';
|
||||
}
|
||||
}
|
||||
|
||||
function addColToList(ts, text, dateTs) {
|
||||
if (typeof dateTs == 'undefined') {
|
||||
dateTs = -1;
|
||||
}
|
||||
var table = document.getElementById('selected-dates-table');
|
||||
var rows = table.rows;
|
||||
var tr, row, td, cells, tmpRow;
|
||||
var i, curr;
|
||||
var index = -1;
|
||||
if (rows.length == 0) {
|
||||
tr = table.insertRow(-1);
|
||||
tr.insertCell(-1);
|
||||
}
|
||||
rows = table.rows;
|
||||
tmpRow = rows[0];
|
||||
for (i=0; i<tmpRow.cells.length; i++) {
|
||||
curr = tmpRow.cells[i];
|
||||
if (curr.id == ts) {
|
||||
return; //already in table, cancel
|
||||
} else if (curr.id > ts) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; i<rows.length; i++) {
|
||||
row = rows[i];
|
||||
cells = row.cells;
|
||||
td = row.insertCell(index);
|
||||
//only display time in header row
|
||||
if (i==0) {
|
||||
td.innerHTML = text;
|
||||
td.className = 'date-col';
|
||||
} else {
|
||||
td.innerHTML = '';
|
||||
if (row.id == dateTs) {
|
||||
td.className = 'icon-checkmark date-text-selected';
|
||||
} else {
|
||||
td.className = 'icon-close date-text-not-selected';
|
||||
}
|
||||
}
|
||||
td.id = ts;
|
||||
}
|
||||
}
|
||||
|
||||
function debounce(f, wait, immediate) {
|
||||
var timeout;
|
||||
return function () {
|
||||
var context = this;
|
||||
var args = arguments;
|
||||
var later = function () {
|
||||
timeout = null;
|
||||
if (!immediate) {
|
||||
f.apply(context, args);
|
||||
}
|
||||
};
|
||||
var callNow = immediate && !timeout;
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
if (callNow) {
|
||||
f.apply(context, args);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
// enable / disable date picker
|
||||
var i;
|
||||
$('#id_expire_set').click(function (){
|
||||
$('#id_expire_date').prop("disabled", !this.checked);
|
||||
if (this.checked) {
|
||||
$("#id_expire_date").focus();
|
||||
}
|
||||
});
|
||||
|
||||
var anonOptions = document.getElementById('anonOptions');
|
||||
$('#hideNames').click(function () {
|
||||
hideNames = this.checked;
|
||||
});
|
||||
|
||||
$('#isAnonymous').click(function () {
|
||||
isAnonymous = this.checked;
|
||||
if (isAnonymous) {
|
||||
anonOptions.style.display = 'inline';
|
||||
} else {
|
||||
anonOptions.style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
var privateRadio = document.getElementById('private');
|
||||
var hiddenRadio = document.getElementById('hidden');
|
||||
var publicRadio = document.getElementById('public');
|
||||
var selectRadio = document.getElementById('select');
|
||||
if (privateRadio.checked) {
|
||||
access_type = 'registered';
|
||||
} else if (hiddenRadio.checked) {
|
||||
access_type = 'hidden';
|
||||
} else if (publicRadio.checked) {
|
||||
access_type = 'public';
|
||||
} else if (selectRadio.checked) {
|
||||
access_type = 'select';
|
||||
}
|
||||
|
||||
isAnonymous = document.getElementById('isAnonymous').checked;
|
||||
hideNames = anonOptions.checked;
|
||||
|
||||
var accessValues = document.getElementById('accessValues');
|
||||
if (accessValues.value.length > 0) {
|
||||
var list = document.getElementById('selected-search-list-id');
|
||||
var accessValueArr = accessValues.value.split(';');
|
||||
for (i=0; i<accessValueArr.length; i++) {
|
||||
var val = accessValueArr[i];
|
||||
if (val == '') {
|
||||
continue;
|
||||
}
|
||||
var li = document.createElement('li');
|
||||
li.id = val;
|
||||
li.className = 'cl_item cl_access_item selected';
|
||||
var index = val.indexOf('group_');
|
||||
if (index == 0) {
|
||||
g_chosen_groups.push(val);
|
||||
li.className += ' is-group';
|
||||
li.appendChild(document.createTextNode(val.substring(6) + " (group)"));
|
||||
list.appendChild(li);
|
||||
} else {
|
||||
index = val.indexOf('user_');
|
||||
if (index == 0) {
|
||||
g_chosen_users.push(val);
|
||||
li.className = 'cl_item cl_access_item selected';
|
||||
var username = val.substring(5);
|
||||
$.post(OC.generateUrl('/apps/polls/get/displayname'), {username: username}, function (data) {
|
||||
li.appendChild(document.createTextNode(username + " (" + data + ")"));
|
||||
list.appendChild(li);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var chosenOptions = document.getElementById('chosenOptions').value;
|
||||
var chosen = '';
|
||||
if (chosenOptions.length > 0) {
|
||||
chosen = JSON.parse(chosenOptions);
|
||||
}
|
||||
var text = document.getElementById('text');
|
||||
var event = document.getElementById('event');
|
||||
if (event.checked) {
|
||||
chosen_type = event.value;
|
||||
if (chosenOptions.length > 0) {
|
||||
g_chosen_datetimes = chosen;
|
||||
}
|
||||
for (i=0; i<chosen.length; i++) {
|
||||
var date = new Date(chosen[i]*1000);
|
||||
var year = date.getFullYear();
|
||||
var month = date.getMonth();
|
||||
var day = date.getDate();
|
||||
var newDate = new Date(year, month, day).getTime(); //save timestamp without time of day
|
||||
month = '0' + (month+1); //month is 0-11, so +1
|
||||
day = '0' + day;
|
||||
var dateStr = day.substr(-2) + '.' + month.substr(-2) + '.' + year;
|
||||
var hours = date.getHours();
|
||||
var minutes = date.getMinutes();
|
||||
var ms = (hours * 60 * 60 * 1000) + (minutes * 60 * 1000); //time of day in milliseconds
|
||||
hours = '0' + hours;
|
||||
minutes = '0' + minutes;
|
||||
var timeStr = hours.substr(-2) + ':' + minutes.substr(-2);
|
||||
addRowToList(newDate/1000, dateStr, ms/1000);
|
||||
addColToList(ms/1000, timeStr, newDate/1000);
|
||||
}
|
||||
} else {
|
||||
chosen_type = text.value;
|
||||
if (chosenOptions.length > 0) {
|
||||
g_chosen_texts = chosen;
|
||||
}
|
||||
for (i=0; i<chosen.length; i++) {
|
||||
insertText(chosen[i], true);
|
||||
}
|
||||
}
|
||||
|
||||
var expirepicker = jQuery('#id_expire_date').datetimepicker({
|
||||
inline: false,
|
||||
onSelectDate: function (date) {
|
||||
var year = date.getFullYear();
|
||||
var month = date.getMonth();
|
||||
var day = date.getDate();
|
||||
// set expiry date to the last second before midnight of the choosen date (local time)
|
||||
var newDate = new Date(year, month, day, 23, 59, 59).getTime()/1000;
|
||||
document.getElementById('expireTs').value = newDate;
|
||||
},
|
||||
timepicker: false,
|
||||
format: 'd.m.Y'
|
||||
});
|
||||
|
||||
var datepicker = jQuery('#datetimepicker').datetimepicker({
|
||||
inline:true,
|
||||
step: 15,
|
||||
todayButton: true,
|
||||
onSelectDate: function (date) {
|
||||
var year = date.getFullYear();
|
||||
var month = date.getMonth();
|
||||
var day = date.getDate();
|
||||
var newDate = new Date(year, month, day).getTime(); //save timestamp without time of day
|
||||
month = '0' + (month+1); //month is 0-11, so +1
|
||||
day = '0' + day;
|
||||
var dateStr = day.substr(-2) + '.' + month.substr(-2) + '.' + year;
|
||||
addRowToList(newDate/1000, dateStr);
|
||||
},
|
||||
onSelectTime: function (date) {
|
||||
var hours = date.getHours();
|
||||
var minutes = date.getMinutes();
|
||||
var ms = (hours * 60 * 60 * 1000) + (minutes * 60 * 1000); //time of day in milliseconds
|
||||
hours = '0' + hours;
|
||||
minutes = '0' + minutes;
|
||||
var timeStr = hours.substr(-2) + ':' + minutes.substr(-2);
|
||||
addColToList(ms/1000, timeStr);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.date-row', function () {
|
||||
var tr = $(this).parent();
|
||||
var dateId = parseInt(tr.attr('id'));
|
||||
var index = tr.index();
|
||||
var cells = tr[0].cells; //convert jQuery object to DOM
|
||||
for (var i=1; i<cells.length; i++) {
|
||||
var cell = cells[i];
|
||||
var delIndex = g_chosen_datetimes.indexOf(dateId + parseInt(cell.id));
|
||||
if (delIndex > -1) {
|
||||
g_chosen_datetimes.splice(delIndex, 1);
|
||||
}
|
||||
}
|
||||
var table = document.getElementById('selected-dates-table');
|
||||
table.deleteRow(index);
|
||||
});
|
||||
|
||||
$(document).on('click', '.date-col', function () {
|
||||
var cellIndex = $(this).index();
|
||||
var timeId = parseInt($(this).attr('id'));
|
||||
var table = document.getElementById('selected-dates-table');
|
||||
var rows = table.rows;
|
||||
rows[0].deleteCell(cellIndex);
|
||||
for (var i=1; i<rows.length; i++) {
|
||||
var row = rows[i];
|
||||
var delIndex = g_chosen_datetimes.indexOf(parseInt(row.id) + timeId);
|
||||
if (delIndex > -1) {
|
||||
g_chosen_datetimes.splice(delIndex, 1);
|
||||
}
|
||||
row.deleteCell(cellIndex);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', '.text-row', function () {
|
||||
var tr = $(this).parent();
|
||||
var rowIndex = tr.index();
|
||||
var name = $(this).html();
|
||||
var delIndex = g_chosen_texts.indexOf(name);
|
||||
if (delIndex > -1) {
|
||||
g_chosen_texts.splice(delIndex, 1);
|
||||
}
|
||||
var table = document.getElementById('selected-texts-table');
|
||||
table.deleteRow(rowIndex);
|
||||
});
|
||||
|
||||
$(document).on('click', '.icon-close', function () {
|
||||
selectItem($(this));
|
||||
});
|
||||
|
||||
$(document).on('click', '.icon-checkmark', function () {
|
||||
deselectItem($(this));
|
||||
});
|
||||
|
||||
$(document).on('click', '#text-submit', function () {
|
||||
var text = document.getElementById('text-title');
|
||||
if (text.value.length == 0) {
|
||||
alert('Please enter a text!');
|
||||
return false;
|
||||
}
|
||||
insertText(text.value);
|
||||
text.value = '';
|
||||
});
|
||||
|
||||
$(document).on('click', '.cl_item', function () {
|
||||
var index;
|
||||
var list = document.getElementById('selected-search-list-id');
|
||||
var isGroup = $(this).hasClass('is-group');
|
||||
if ($(this).hasClass('selected')) {
|
||||
if (isGroup) {
|
||||
index = g_chosen_groups.indexOf(this.id);
|
||||
}
|
||||
else {
|
||||
index = g_chosen_users.indexOf(this.id);
|
||||
}
|
||||
if (index > -1) {
|
||||
if (isGroup) {
|
||||
g_chosen_groups.splice(index, 1);
|
||||
}
|
||||
else {
|
||||
g_chosen_users.splice(index, 1);
|
||||
}
|
||||
$(this).remove();
|
||||
}
|
||||
} else {
|
||||
if (!isGroup) {
|
||||
var text = this.id.replace('user_', '');
|
||||
g_chosen_users.push(this.id);
|
||||
} else {
|
||||
g_chosen_groups.push(this.id);
|
||||
}
|
||||
document.getElementById('user-group-search-box').value = '';
|
||||
var li = document.createElement('li');
|
||||
li.id = this.id;
|
||||
li.className = 'cl_item cl_access_item selected' + (isGroup ? ' is-group' : '');
|
||||
if (!isGroup) {
|
||||
$.post(OC.generateUrl('/apps/polls/get/displayname'), {username: text}, function (data) {
|
||||
li.appendChild(document.createTextNode(text + " (" + data + ")"));
|
||||
list.appendChild(li);
|
||||
});
|
||||
} else {
|
||||
li.appendChild(document.createTextNode($(this).html()));
|
||||
list.appendChild(li);
|
||||
}
|
||||
$(this).remove();
|
||||
}
|
||||
});
|
||||
|
||||
$('.toggleable-row').hover(
|
||||
function () {
|
||||
var td = this.insertCell(-1);
|
||||
td.className = 'toggle-all selected-all';
|
||||
}, function () {
|
||||
$(this).find('td:last-child').remove();
|
||||
}
|
||||
);
|
||||
|
||||
$(document).on('click', '.toggle-all', function () {
|
||||
var children;
|
||||
var i;
|
||||
if ($(this).attr('class').indexOf('selected-all') > -1) {
|
||||
children = $(this).parent().children('.icon-checkmark');
|
||||
for (i=0; i<children.length; i++) {
|
||||
deselectItem($(children[i]));
|
||||
}
|
||||
$(this).removeClass('selected-all');
|
||||
$(this).addClass('selected-none');
|
||||
} else {
|
||||
children = $(this).parent().children('.icon-close');
|
||||
for (i=0; i<children.length; i++) {
|
||||
selectItem($(children[i]));
|
||||
}
|
||||
$(this).removeClass('selected-none');
|
||||
$(this).addClass('selected-all');
|
||||
}
|
||||
});
|
||||
|
||||
$('input[type=radio][name=pollType]').change(function () {
|
||||
if (this.value == 'event') {
|
||||
chosen_type = 'event';
|
||||
document.getElementById('text-select-container').style.display = 'none';
|
||||
document.getElementById('date-select-container').style.display = 'inline';
|
||||
} else {
|
||||
chosen_type = 'text';
|
||||
document.getElementById('text-select-container').style.display = 'inline';
|
||||
document.getElementById('date-select-container').style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
$('input[type=radio][name=accessType]').click(function () {
|
||||
access_type = this.value;
|
||||
if (access_type == 'select') {
|
||||
$("#access_rights").show();
|
||||
$("#selected_access").show();
|
||||
} else {
|
||||
$("#access_rights").hide();
|
||||
$("#selected_access").hide();
|
||||
}
|
||||
});
|
||||
|
||||
$('input[type=checkbox][name=check_expire]').change(function () {
|
||||
if (!$(this).is(':checked')) {
|
||||
document.getElementById('expireTs').value = '';
|
||||
}
|
||||
});
|
||||
|
||||
$('#user-group-search-box').on('input', debounce(function () {
|
||||
var ul = document.getElementById('live-search-list-id');
|
||||
while(ul.firstChild) {
|
||||
ul.removeChild(ul.firstChild);
|
||||
}
|
||||
var val = $(this).val();
|
||||
if (val.length < 3) {
|
||||
return;
|
||||
}
|
||||
var formData = {
|
||||
searchTerm: val,
|
||||
groups: JSON.stringify(g_chosen_groups),
|
||||
users: JSON.stringify(g_chosen_users)
|
||||
};
|
||||
$.post(OC.generateUrl('/apps/polls/search'), formData, function (data) {
|
||||
for (var i=0; i<data.length; i++) {
|
||||
var ug = data[i];
|
||||
var li = document.createElement('li');
|
||||
li.className = 'cl_item cl_access_item';
|
||||
if (ug.isGroup) {
|
||||
li.id = 'group_' + ug.gid;
|
||||
li.className += ' is-group';
|
||||
li.appendChild(document.createTextNode(ug.gid + " (group)"));
|
||||
ul.appendChild(li);
|
||||
} else {
|
||||
li.id = 'user_' + ug.uid;
|
||||
li.appendChild(document.createTextNode(ug.uid + " (" + ug.displayName + ")"));
|
||||
var span = document.createElement('span');
|
||||
span.id = 'sec_name';
|
||||
span.appendChild(document.createTextNode(ug.uid));
|
||||
li.appendChild(span);
|
||||
ul.appendChild(li);
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 250));
|
||||
|
||||
$('.live-search-list-user li').each(function (){
|
||||
$(this).attr('data-search-term', $(this).text().toLowerCase());
|
||||
});
|
||||
|
||||
$('.live-search-box-user').on('keyup', function (){
|
||||
var searchTerm = $(this).val().toLowerCase();
|
||||
$('.live-search-list-user li').each(function (){
|
||||
if ( $(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0
|
||||
|| searchTerm.length < 1
|
||||
) {
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('.live-search-list-group li').each(function (){
|
||||
$(this).attr('data-search-term', $(this).text().toLowerCase());
|
||||
});
|
||||
|
||||
$('.live-search-box-group').on('keyup', function (){
|
||||
var searchTerm = $(this).val().toLowerCase();
|
||||
$('.live-search-list-group li').each(function (){
|
||||
if (
|
||||
$(this).filter('[data-search-term *= ' + searchTerm + ']').length > 0 ||
|
||||
searchTerm.length < 1
|
||||
) {
|
||||
$(this).show();
|
||||
} else {
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var form = document.finish_poll;
|
||||
var submit_finish_poll = document.getElementById('submit_finish_poll');
|
||||
if (submit_finish_poll !== null) {
|
||||
submit_finish_poll.onclick = function () {
|
||||
if (
|
||||
g_chosen_datetimes.length == 0 &&
|
||||
g_chosen_texts.length == 0
|
||||
) {
|
||||
alert(t('polls', 'Nothing selected!\nClick on cells to turn them green.'));
|
||||
return false;
|
||||
}
|
||||
if (chosen_type == 'event') {
|
||||
form.elements.chosenOptions.value = JSON.stringify(g_chosen_datetimes);
|
||||
}
|
||||
else {
|
||||
form.elements.chosenOptions.value = JSON.stringify(g_chosen_texts);
|
||||
}
|
||||
var title = document.getElementById('pollTitle');
|
||||
if (
|
||||
title == null ||
|
||||
title.value.length == 0
|
||||
) {
|
||||
alert(t('polls', 'You must enter at least a title for the new poll.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (access_type == 'select') {
|
||||
if (
|
||||
g_chosen_groups.length == 0 &&
|
||||
g_chosen_users == 0
|
||||
) {
|
||||
alert(t('polls', 'Please select at least one user or group!'));
|
||||
return false;
|
||||
}
|
||||
form.elements.accessValues.value = JSON.stringify({
|
||||
groups: g_chosen_groups,
|
||||
users: g_chosen_users
|
||||
});
|
||||
}
|
||||
form.elements.isAnonymous.value = isAnonymous;
|
||||
form.elements.hideNames.value = hideNames;
|
||||
form.submit();
|
||||
};
|
||||
}
|
||||
});
|
|
@ -1,4 +1,4 @@
|
|||
/** global: Clipboard */
|
||||
/* global clipboard, navigator */
|
||||
$(document).ready(function () {
|
||||
var clipboard = new Clipboard('.copy-link');
|
||||
clipboard.on('success', function (e) {
|
||||
|
@ -18,13 +18,14 @@ $(document).ready(function () {
|
|||
}
|
||||
}, 3000);
|
||||
});
|
||||
|
||||
clipboard.on('error', function (e) {
|
||||
var $input = $(e.trigger);
|
||||
var actionMsg = '';
|
||||
if (/iPhone|iPad/i.test(navigator.userAgent)) {
|
||||
actionMsg = t('core', 'Not supported!');
|
||||
} else if (/Mac/i.test(navigator.userAgent)) {
|
||||
actionMsg = t('core', 'Press ⌘-C to copy.');
|
||||
actionMsg = t('core', 'Press ?-C to copy.');
|
||||
} else {
|
||||
actionMsg = t('core', 'Press Ctrl-C to copy.');
|
||||
}
|
||||
|
@ -36,7 +37,7 @@ $(document).ready(function () {
|
|||
.tooltip('show');
|
||||
_.delay(function () {
|
||||
$input.tooltip('hide');
|
||||
if (OC.Share.Social.Collection.size() == 0) {
|
||||
if (OC.Share.Social.Collection.size() === 0) {
|
||||
$input.attr('data-original-title', t('core', 'Copy'))
|
||||
.tooltip('fixTitle');
|
||||
} else {
|
||||
|
|
22
js/vote.js
|
@ -1,12 +1,11 @@
|
|||
/* global Clipboard */
|
||||
/* global Handlebars */
|
||||
/* global Clipboard, Handlebars, navigator */
|
||||
|
||||
var newUserOptions = [];
|
||||
var newUserAnswers = [];
|
||||
|
||||
var maxVotes = 0;
|
||||
var valuesChanged = false;
|
||||
|
||||
var maybeAllowed = true;
|
||||
var tzOffset = new Date().getTimezoneOffset();
|
||||
|
||||
// HTML template for new comment (handlebars.js)
|
||||
|
@ -59,7 +58,7 @@ function updateCounters() {
|
|||
|
||||
function updateAvatar(obj) {
|
||||
// Temporary hack - Check if we have Nextcloud or ownCloud with an anomymous user
|
||||
if (!document.getElementById('nextcloud') && OC.currentUser === '') {
|
||||
if (!document.getElementById('nextcloud') && !OC.currentUser) {
|
||||
$(obj).imageplaceholder(obj.title);
|
||||
} else {
|
||||
$(obj).avatar(obj.title, 32);
|
||||
|
@ -75,7 +74,9 @@ function switchSidebar() {
|
|||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
var clipboard = new Clipboard('.copy-link');
|
||||
|
||||
clipboard.on('success', function(e) {
|
||||
var $input = $(e.trigger);
|
||||
$input.tooltip('hide')
|
||||
|
@ -93,6 +94,7 @@ $(document).ready(function () {
|
|||
}
|
||||
}, 3000);
|
||||
});
|
||||
|
||||
clipboard.on('error', function (e) {
|
||||
var $input = $(e.trigger);
|
||||
var actionMsg = '';
|
||||
|
@ -111,7 +113,7 @@ $(document).ready(function () {
|
|||
.tooltip('show');
|
||||
_.delay(function () {
|
||||
$input.tooltip('hide');
|
||||
if (OC.Share.Social.Collection.size() == 0) {
|
||||
if (OC.Share.Social.Collection.size() === 0) {
|
||||
$input.attr('data-original-title', t('core', 'Copy'))
|
||||
.tooltip('fixTitle');
|
||||
} else {
|
||||
|
@ -122,6 +124,10 @@ $(document).ready(function () {
|
|||
// count how many times in each date
|
||||
updateBest();
|
||||
|
||||
if ($('#app-content').hasClass('maybedisallowed')) {
|
||||
maybeAllowed = false;
|
||||
}
|
||||
|
||||
// Temporary hack - Check if we have Nextcloud or ownCloud with an anonymous user
|
||||
var hideAvatars = false;
|
||||
if (!document.getElementById('nextcloud')) {
|
||||
|
@ -268,7 +274,11 @@ $(document).on('click', '.toggle-cell, .poll-cell.active', function () {
|
|||
$nextClass = 'no';
|
||||
$toggleAllClasses= 'yes';
|
||||
} else if($(this).hasClass('no')) {
|
||||
$nextClass = 'maybe';
|
||||
if (maybeAllowed) {
|
||||
$nextClass = 'maybe';
|
||||
} else {
|
||||
$nextClass = 'yes';
|
||||
}
|
||||
$toggleAllClasses= 'no';
|
||||
} else if($(this).hasClass('maybe')) {
|
||||
$nextClass = 'yes';
|
||||
|
|
|
@ -4,9 +4,14 @@ OC.L10N.register(
|
|||
"Nothing selected!\nClick on cells to turn them green." : "Res seleccionat!\nPrem sobre les cel·les per tornar-les verdes.",
|
||||
"You must enter at least a title for the new poll." : "Has d'introduir com a mínim un títol per a la nova enquesta.",
|
||||
"Please select at least one user or group!" : "Si us plau, escull com a mínim un usuari o grup!",
|
||||
"Copied!" : "Copiat!",
|
||||
"Copy" : "Copia",
|
||||
"Not supported!" : "No suportat!",
|
||||
"Press ⌘-C to copy." : "Prem ⌘-C per copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar al porta-retalls: Ctrl+C, Intro",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estàs registrat.\nSi us plau, introdueix el teu nom per votar\n(com a mínim 3 caràcters).",
|
||||
"Please add some text to your comment before submitting it." : "Si us plau, introdueix text al comentari abans d'enviar-lo.",
|
||||
"just now" : "ara mateix",
|
||||
"Polls" : "Enquestes",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola %s,<br/><br/><strong>%s</strong> ha participat en l'enquesta '%s'.<br/><br/>Per anar a l'enquesta pots utilitzar aquest <a href=\"%s\">enllaç</a>",
|
||||
"Polls App" : "Aplicació d'enquestes",
|
||||
|
|
|
@ -2,9 +2,14 @@
|
|||
"Nothing selected!\nClick on cells to turn them green." : "Res seleccionat!\nPrem sobre les cel·les per tornar-les verdes.",
|
||||
"You must enter at least a title for the new poll." : "Has d'introduir com a mínim un títol per a la nova enquesta.",
|
||||
"Please select at least one user or group!" : "Si us plau, escull com a mínim un usuari o grup!",
|
||||
"Copied!" : "Copiat!",
|
||||
"Copy" : "Copia",
|
||||
"Not supported!" : "No suportat!",
|
||||
"Press ⌘-C to copy." : "Prem ⌘-C per copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar al porta-retalls: Ctrl+C, Intro",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estàs registrat.\nSi us plau, introdueix el teu nom per votar\n(com a mínim 3 caràcters).",
|
||||
"Please add some text to your comment before submitting it." : "Si us plau, introdueix text al comentari abans d'enviar-lo.",
|
||||
"just now" : "ara mateix",
|
||||
"Polls" : "Enquestes",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola %s,<br/><br/><strong>%s</strong> ha participat en l'enquesta '%s'.<br/><br/>Per anar a l'enquesta pots utilitzar aquest <a href=\"%s\">enllaç</a>",
|
||||
"Polls App" : "Aplicació d'enquestes",
|
||||
|
|
24
l10n/cs.js
|
@ -1,12 +1,19 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "Opravdu chcete smazat tento fond (nový)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Nic nevybráno! Kliknutím obarvěte buňky na zeleno.",
|
||||
"You must enter at least a title for the new poll." : "Je třeba zadat alespoň název nové ankety.",
|
||||
"Please select at least one user or group!" : "Vyberte prosím alespoň jednoho uživatele nebo skupinu!",
|
||||
"Copied!" : "Zkopírováno!",
|
||||
"Copy" : "Zkopírovat",
|
||||
"Not supported!" : "Nepodporováno!",
|
||||
"Press Ctrl-C to copy." : "Zkopírujte stiskem Ctrl-C.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Kopírovat do schránky: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Nejste registrováni.\nPro hlasování, prosím, zadejte své jméno\n(alespoň 3 znaky).",
|
||||
"Please add some text to your comment before submitting it." : "Prosím, před odesláním k vašemu komentáři přidejte nějaký text.",
|
||||
"just now" : "právě teď",
|
||||
"An error occurred, your comment was not posted." : "Došlo k chybě, váš komentář nebyl odeslán.",
|
||||
"Polls" : "Ankety",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ahoj %s,<br/><br/><strong>%s</strong> hlasoval/a v anketě '%s'.<br/><br/>K přesunu přímo na anketu můžeš použít tento <a href=\"%s\">odkaz</a>",
|
||||
"Polls App" : "Aplikace ankety",
|
||||
|
@ -21,7 +28,7 @@ OC.L10N.register(
|
|||
"Select" : "Vybrat",
|
||||
"User/Group search" : "Vyhledávání uživatele/skupiny",
|
||||
"Anonymous" : "Anonymní",
|
||||
"Hide user names for admin" : "Skrýt administrátorům uživatelská jména",
|
||||
"Hide user names for admin" : "Skrýt správcům uživatelská jména",
|
||||
"Expires" : "Platnost vyprší",
|
||||
"Event schedule" : "O termínu události",
|
||||
"Text based" : "Textová",
|
||||
|
@ -33,12 +40,25 @@ OC.L10N.register(
|
|||
"Cancel" : "Storno",
|
||||
"No description provided." : "Nebyl poskytnut žádný popis.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Anketa vypršela %s. Hlasování je zakázáno, můžete však ještě komentovat.",
|
||||
"Switch all options at once" : "Přepnout všechny volby naráz",
|
||||
"Your name here" : "Vaše jméno",
|
||||
"Vote!" : "Hlasovat!",
|
||||
"Receive notification email on activity" : "Dostávat e-mailem oznámení o aktivitě",
|
||||
"Close details" : "Zavřít podrobnosti",
|
||||
"Close" : "Zavřít",
|
||||
"Owner" : "Vlastník",
|
||||
"Expired" : "Platnost skončila",
|
||||
"Expires on %s" : "Platnost skončí %s",
|
||||
"Expires never" : "Nikdy neskončí",
|
||||
"Usernames visible to Owner" : "Uživatelská jména viditelná vlastníkovi",
|
||||
"Click to get link" : "Klikněte pro získání odkazu",
|
||||
"Copy Link" : "Zkopírovat odkaz",
|
||||
"Delete poll" : "Smazat fond",
|
||||
"Edit Poll" : "Upravit fond",
|
||||
"Poll expired" : "Anketa vypršela",
|
||||
"Comments" : "Komentáře",
|
||||
"Login or ..." : "Přihlásit nebo…",
|
||||
"New comment …" : "Nový komentář…",
|
||||
"No comments yet. Be the first." : "Zatím bez komentářů. Buďte první.",
|
||||
"No existing polls." : "Neexistují žádné ankety.",
|
||||
"By" : "Vytvořil",
|
||||
|
@ -49,4 +69,4 @@ OC.L10N.register(
|
|||
"Access denied" : "Přístup zamítnut",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnění k zobrazení této ankety nebo anketa neexistuje."
|
||||
},
|
||||
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
|
24
l10n/cs.json
|
@ -1,10 +1,17 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Opravdu chcete smazat tento fond (nový)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Nic nevybráno! Kliknutím obarvěte buňky na zeleno.",
|
||||
"You must enter at least a title for the new poll." : "Je třeba zadat alespoň název nové ankety.",
|
||||
"Please select at least one user or group!" : "Vyberte prosím alespoň jednoho uživatele nebo skupinu!",
|
||||
"Copied!" : "Zkopírováno!",
|
||||
"Copy" : "Zkopírovat",
|
||||
"Not supported!" : "Nepodporováno!",
|
||||
"Press Ctrl-C to copy." : "Zkopírujte stiskem Ctrl-C.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Kopírovat do schránky: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Nejste registrováni.\nPro hlasování, prosím, zadejte své jméno\n(alespoň 3 znaky).",
|
||||
"Please add some text to your comment before submitting it." : "Prosím, před odesláním k vašemu komentáři přidejte nějaký text.",
|
||||
"just now" : "právě teď",
|
||||
"An error occurred, your comment was not posted." : "Došlo k chybě, váš komentář nebyl odeslán.",
|
||||
"Polls" : "Ankety",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ahoj %s,<br/><br/><strong>%s</strong> hlasoval/a v anketě '%s'.<br/><br/>K přesunu přímo na anketu můžeš použít tento <a href=\"%s\">odkaz</a>",
|
||||
"Polls App" : "Aplikace ankety",
|
||||
|
@ -19,7 +26,7 @@
|
|||
"Select" : "Vybrat",
|
||||
"User/Group search" : "Vyhledávání uživatele/skupiny",
|
||||
"Anonymous" : "Anonymní",
|
||||
"Hide user names for admin" : "Skrýt administrátorům uživatelská jména",
|
||||
"Hide user names for admin" : "Skrýt správcům uživatelská jména",
|
||||
"Expires" : "Platnost vyprší",
|
||||
"Event schedule" : "O termínu události",
|
||||
"Text based" : "Textová",
|
||||
|
@ -31,12 +38,25 @@
|
|||
"Cancel" : "Storno",
|
||||
"No description provided." : "Nebyl poskytnut žádný popis.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Anketa vypršela %s. Hlasování je zakázáno, můžete však ještě komentovat.",
|
||||
"Switch all options at once" : "Přepnout všechny volby naráz",
|
||||
"Your name here" : "Vaše jméno",
|
||||
"Vote!" : "Hlasovat!",
|
||||
"Receive notification email on activity" : "Dostávat e-mailem oznámení o aktivitě",
|
||||
"Close details" : "Zavřít podrobnosti",
|
||||
"Close" : "Zavřít",
|
||||
"Owner" : "Vlastník",
|
||||
"Expired" : "Platnost skončila",
|
||||
"Expires on %s" : "Platnost skončí %s",
|
||||
"Expires never" : "Nikdy neskončí",
|
||||
"Usernames visible to Owner" : "Uživatelská jména viditelná vlastníkovi",
|
||||
"Click to get link" : "Klikněte pro získání odkazu",
|
||||
"Copy Link" : "Zkopírovat odkaz",
|
||||
"Delete poll" : "Smazat fond",
|
||||
"Edit Poll" : "Upravit fond",
|
||||
"Poll expired" : "Anketa vypršela",
|
||||
"Comments" : "Komentáře",
|
||||
"Login or ..." : "Přihlásit nebo…",
|
||||
"New comment …" : "Nový komentář…",
|
||||
"No comments yet. Be the first." : "Zatím bez komentářů. Buďte první.",
|
||||
"No existing polls." : "Neexistují žádné ankety.",
|
||||
"By" : "Vytvořil",
|
||||
|
@ -46,5 +66,5 @@
|
|||
"Never" : "Nikdy",
|
||||
"Access denied" : "Přístup zamítnut",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnění k zobrazení této ankety nebo anketa neexistuje."
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "Er du sikker på du vil slette afstemning (ny)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ingenting valgt\nKlik på en celle for at gøre den grøn.",
|
||||
"You must enter at least a title for the new poll." : "Du skal indtaste en titel på den nye afstemning.",
|
||||
"Please select at least one user or group!" : "Vælg venligst mindst en bruger eller gruppe!",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Er du sikker på du vil slette afstemning (ny)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ingenting valgt\nKlik på en celle for at gøre den grøn.",
|
||||
"You must enter at least a title for the new poll." : "Du skal indtaste en titel på den nye afstemning.",
|
||||
"Please select at least one user or group!" : "Vælg venligst mindst en bruger eller gruppe!",
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "Θέλετε πραγματικά να διαγράψετε αυτή τη δημοσκόπηση (νέα);",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Τίποτα δεν έχει επιλεγεί.\nΚάντε κλικ στα κελιά ώστε να γίνουν πράσινα",
|
||||
"You must enter at least a title for the new poll." : "Πρέπει να εισάγετεε τουλάχιστον έναν τίτλο για την νέα ψηφοφορία",
|
||||
"Please select at least one user or group!" : "Παρακαλούμε επιλέξτε τουλάχιστον έναν χρήστη ή ομάδα!",
|
||||
"Copied!" : "Αντιγράφηκε!",
|
||||
"Copy" : "Αντιγραφή",
|
||||
"Not supported!" : "Δεν υποστηρίζεται!",
|
||||
"Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.",
|
||||
"Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Αντιγραφή στο πληκτρολόγιο: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Δεν είστε εγγεγραμένος.\nΠαρακαλούμε εισάγετε το όνομά σας για να ψηφίσετε\n(το λιγότερο 3 χαρακτήρες).",
|
||||
"Please add some text to your comment before submitting it." : "Παρακαλώ προσθέστε ένα κείμενο στο σχόλιό σας πριν το υποβάλλετε",
|
||||
"just now" : "μόλις τώρα",
|
||||
"Polls" : "Ψηφοφορίες",
|
||||
"Polls App - New Activity" : "Εφαρμογή ψηφοφοριών - Νέα δραστηριότητα",
|
||||
"Polls App" : "Εφαρμογή ψηφοφοριών",
|
||||
"Edit poll" : "Επεξεργασία ψηφοφορίας",
|
||||
"Create new poll" : "Δημιουργία νέας ψηφοφορίας",
|
||||
"Title" : "Τίτλος",
|
||||
"Description" : "Περιγραφή",
|
||||
"Registered users only" : "Μόνο οι εγγεγραμμένοι χρήστες",
|
||||
"Public access" : "Δημόσια πρόσβαση",
|
||||
"Select" : "Επιλογή",
|
||||
"Hide user names for admin" : "Απόκρυψη ονομάτων χρηστών για τον διαχειριστή",
|
||||
"Expires" : "Λήγει",
|
||||
"Dates" : "Ημερομηνίες",
|
||||
"Add" : "Προσθήκη",
|
||||
"Update poll" : "Ενημέρωση ψηφοφορίας",
|
||||
"Create poll" : "Δημιουργία ψηφοφορίας",
|
||||
"Cancel" : "Ακύρωση",
|
||||
"Your name here" : "Το όνομά σας εδώ",
|
||||
"Close details" : "Κλείσιμο λεπτομερειών",
|
||||
"Close" : "Κλείσιμο",
|
||||
"Owner" : "Ιδιοκτήτης",
|
||||
"Expired" : "Έληξε",
|
||||
"Expires on %s" : "Λήγει στις %s",
|
||||
"Expires never" : "Δεν λήγει ποτέ",
|
||||
"Click to get link" : "Κάντε κλικ για αντιγραφή συνδέσμου",
|
||||
"Copy Link" : "Αντιγραφή συνδέσμου",
|
||||
"Delete poll" : "Διαγραφή ψηφοφορίας",
|
||||
"Edit Poll" : "Επεξεργασία ψηφοφορίας",
|
||||
"Poll expired" : "Η ψηφοφορία έληξε",
|
||||
"Comments" : "Σχόλια",
|
||||
"New comment …" : "Νέο σχόλιο …",
|
||||
"Never" : "Ποτέ",
|
||||
"Access denied" : "Δεν επιτρέπεται η πρόσβαση"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
|
@ -0,0 +1,49 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Θέλετε πραγματικά να διαγράψετε αυτή τη δημοσκόπηση (νέα);",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Τίποτα δεν έχει επιλεγεί.\nΚάντε κλικ στα κελιά ώστε να γίνουν πράσινα",
|
||||
"You must enter at least a title for the new poll." : "Πρέπει να εισάγετεε τουλάχιστον έναν τίτλο για την νέα ψηφοφορία",
|
||||
"Please select at least one user or group!" : "Παρακαλούμε επιλέξτε τουλάχιστον έναν χρήστη ή ομάδα!",
|
||||
"Copied!" : "Αντιγράφηκε!",
|
||||
"Copy" : "Αντιγραφή",
|
||||
"Not supported!" : "Δεν υποστηρίζεται!",
|
||||
"Press ⌘-C to copy." : "Για αντιγραφή πατήστε ⌘-C.",
|
||||
"Press Ctrl-C to copy." : "Για αντιγραφή πατήστε Ctrl-C.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Αντιγραφή στο πληκτρολόγιο: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Δεν είστε εγγεγραμένος.\nΠαρακαλούμε εισάγετε το όνομά σας για να ψηφίσετε\n(το λιγότερο 3 χαρακτήρες).",
|
||||
"Please add some text to your comment before submitting it." : "Παρακαλώ προσθέστε ένα κείμενο στο σχόλιό σας πριν το υποβάλλετε",
|
||||
"just now" : "μόλις τώρα",
|
||||
"Polls" : "Ψηφοφορίες",
|
||||
"Polls App - New Activity" : "Εφαρμογή ψηφοφοριών - Νέα δραστηριότητα",
|
||||
"Polls App" : "Εφαρμογή ψηφοφοριών",
|
||||
"Edit poll" : "Επεξεργασία ψηφοφορίας",
|
||||
"Create new poll" : "Δημιουργία νέας ψηφοφορίας",
|
||||
"Title" : "Τίτλος",
|
||||
"Description" : "Περιγραφή",
|
||||
"Registered users only" : "Μόνο οι εγγεγραμμένοι χρήστες",
|
||||
"Public access" : "Δημόσια πρόσβαση",
|
||||
"Select" : "Επιλογή",
|
||||
"Hide user names for admin" : "Απόκρυψη ονομάτων χρηστών για τον διαχειριστή",
|
||||
"Expires" : "Λήγει",
|
||||
"Dates" : "Ημερομηνίες",
|
||||
"Add" : "Προσθήκη",
|
||||
"Update poll" : "Ενημέρωση ψηφοφορίας",
|
||||
"Create poll" : "Δημιουργία ψηφοφορίας",
|
||||
"Cancel" : "Ακύρωση",
|
||||
"Your name here" : "Το όνομά σας εδώ",
|
||||
"Close details" : "Κλείσιμο λεπτομερειών",
|
||||
"Close" : "Κλείσιμο",
|
||||
"Owner" : "Ιδιοκτήτης",
|
||||
"Expired" : "Έληξε",
|
||||
"Expires on %s" : "Λήγει στις %s",
|
||||
"Expires never" : "Δεν λήγει ποτέ",
|
||||
"Click to get link" : "Κάντε κλικ για αντιγραφή συνδέσμου",
|
||||
"Copy Link" : "Αντιγραφή συνδέσμου",
|
||||
"Delete poll" : "Διαγραφή ψηφοφορίας",
|
||||
"Edit Poll" : "Επεξεργασία ψηφοφορίας",
|
||||
"Poll expired" : "Η ψηφοφορία έληξε",
|
||||
"Comments" : "Σχόλια",
|
||||
"New comment …" : "Νέο σχόλιο …",
|
||||
"Never" : "Ποτέ",
|
||||
"Access denied" : "Δεν επιτρέπεται η πρόσβαση"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -62,7 +62,7 @@ OC.L10N.register(
|
|||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La votación ha caducado",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Registrarse o...",
|
||||
"Login or ..." : "Iniciar sesión o...",
|
||||
"New comment …" : "Nuevo comentario...",
|
||||
"No comments yet. Be the first." : "Todavía no hay comentarios. Sé el primero.",
|
||||
"No existing polls." : "No hay votaciones.",
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La votación ha caducado",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Registrarse o...",
|
||||
"Login or ..." : "Iniciar sesión o...",
|
||||
"New comment …" : "Nuevo comentario...",
|
||||
"No comments yet. Be the first." : "Todavía no hay comentarios. Sé el primero.",
|
||||
"No existing polls." : "No hay votaciones.",
|
||||
|
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -19,6 +19,8 @@ OC.L10N.register(
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Una aplicación de encuestas, similar a doodle/dudle con la opción de restringir el acceso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Una aplicación de encuestas, similar a doodle/dudle con la opción de restringir el acceso (solo miembros, grupos/usuarios, oculto o público).",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
"Title" : "Título",
|
||||
|
@ -54,7 +56,7 @@ OC.L10N.register(
|
|||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario escondidos para el Dueño",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Una aplicación de encuestas, similar a doodle/dudle con la opción de restringir el acceso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Una aplicación de encuestas, similar a doodle/dudle con la opción de restringir el acceso (solo miembros, grupos/usuarios, oculto o público).",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
"Title" : "Título",
|
||||
|
@ -52,7 +54,7 @@
|
|||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario escondidos para el Dueño",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
|
|
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -33,12 +42,28 @@ OC.L10N.register(
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "¿Realmente quieres borrar esa encuesta (nuevo)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "¡No haya nada seleccionado!\nHaz click en las celdas para hacerlas verdes. ",
|
||||
"You must enter at least a title for the new poll." : "Debes ingresar al menos un título para una nueva encuesta. ",
|
||||
"Please select at least one user or group!" : "¡Por favor selecciona un usuario o grupo!",
|
||||
"Copied!" : "¡Copiado!",
|
||||
"Copy" : "Copiar",
|
||||
"Not supported!" : "¡No soportado!",
|
||||
"Press ⌘-C to copy." : "Presiona ⌘-C para copiar.",
|
||||
"Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Copiar a la papelera: Ctrl + C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "No estás registrado.\nPor favor ingresa tu nombre para votar\n(al menos 3 caracteres).",
|
||||
"Please add some text to your comment before submitting it." : "Por favor agrega algo de texto a tu comentario antes de enviarlo. ",
|
||||
"just now" : "justo ahora",
|
||||
"An error occurred, your comment was not posted." : "Se presentó un error, tu comentario no se publicó",
|
||||
"Polls" : "Encuestas",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hola%s,<br/><br/><strong>%s</strong> participó en la encuesta '%s'.<br/><br/> Para ir directamente a la encuesta, puedes usar esta <a href=\"%s\">liga</a>",
|
||||
"Polls App - New Activity" : "Aplicación de Encuestas - Nueva Actividad",
|
||||
"Polls App" : "Aplicación para encuestas",
|
||||
"Edit poll" : "Editar encuesta",
|
||||
"Create new poll" : "Crear nueva encuesta",
|
||||
|
@ -31,12 +40,28 @@
|
|||
"Cancel" : "Cancelar",
|
||||
"No description provided." : "No se proporcionó una descripción. ",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "La encuesta expiró el %s. La votación esta deshabilitada pero aún puedes comentar. ",
|
||||
"Switch all options at once" : "Cambia todas las opciones a la vez",
|
||||
"Your name here" : "Tu nombre aquí",
|
||||
"Vote!" : "¡Vota!",
|
||||
"Receive notification email on activity" : "Recibir un correo de notificación en actividad ",
|
||||
"Close details" : "Cerrar detalles",
|
||||
"Close" : "Cerrar",
|
||||
"Owner" : "Propietario",
|
||||
"Expired" : "Expirado",
|
||||
"Expires on %s" : "Expira el %s",
|
||||
"Expires never" : "Nunca expira",
|
||||
"Invitation access" : "Acceso por inivtación",
|
||||
"Anononymous poll" : "Encuesta anónima",
|
||||
"Usernames hidden to Owner" : "Nombres de usuario ocultos para el Dueño",
|
||||
"Usernames visible to Owner" : "Nombres de usuario se muestran al Dueño",
|
||||
"Click to get link" : "Haz click para obtener una liga",
|
||||
"Copy Link" : "Copiar Liga",
|
||||
"Delete poll" : "Borrar encuesta",
|
||||
"Edit Poll" : "Editar encuesta",
|
||||
"Poll expired" : "La encuesta expiró",
|
||||
"Comments" : "Comentarios",
|
||||
"Login or ..." : "Iniciar sesión o ...",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"No comments yet. Be the first." : "No hay comentarios todavia. Se el primero.",
|
||||
"No existing polls." : "No hay encuestas existentes.",
|
||||
"By" : "Por",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Tú mismo",
|
||||
"Never" : "Nunca",
|
||||
"Access denied" : "Acceso denegado",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. "
|
||||
"You are not allowed to view this poll or the poll does not exist." : "No tienes permitido ver esta encuesta o bien la encuesta no existe. ",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "No tienes permitido editar esta encuesta o la encuesta no existe.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "No tienes permitido borrar esta encuesta o la encuesta no existe."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -10,6 +10,7 @@ OC.L10N.register(
|
|||
"Press ⌘-C to copy." : "Paina ⌘-C kopioidaksesi.",
|
||||
"Press Ctrl-C to copy." : "Paina Ctrl-C kopioidaksesi.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Kopioi leikepöydälle: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Et ole rekisteröitynyt.\nKirjoita nimesi äänestääksesi\n(vähintään kolme merkkiä).",
|
||||
"Please add some text to your comment before submitting it." : "Lisää tekstiä kommenttiisi, ennen kuin lähetät sen.",
|
||||
"just now" : "juuri nyt",
|
||||
"An error occurred, your comment was not posted." : "Tapahtui virhe, kommenttiasi ei lähetetty.",
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
"Press ⌘-C to copy." : "Paina ⌘-C kopioidaksesi.",
|
||||
"Press Ctrl-C to copy." : "Paina Ctrl-C kopioidaksesi.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Kopioi leikepöydälle: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Et ole rekisteröitynyt.\nKirjoita nimesi äänestääksesi\n(vähintään kolme merkkiä).",
|
||||
"Please add some text to your comment before submitting it." : "Lisää tekstiä kommenttiisi, ennen kuin lähetät sen.",
|
||||
"just now" : "juuri nyt",
|
||||
"An error occurred, your comment was not posted." : "Tapahtui virhe, kommenttiasi ei lähetetty.",
|
||||
|
|
|
@ -3,7 +3,7 @@ OC.L10N.register(
|
|||
{
|
||||
"Do you really want to delete that poll (new)?" : "Voulez-vous réellement supprimer ce sondage (nouveau) ?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Rien n'est sélectionné !\nCliquez sur les cellules pour les basculer en vert.",
|
||||
"You must enter at least a title for the new poll." : "Vous devez saisir au moins un titre pour ce nouveau sondage",
|
||||
"You must enter at least a title for the new poll." : "Vous devez saisir au moins un titre pour ce nouveau sondage.",
|
||||
"Please select at least one user or group!" : "Veuillez sélectionner au moins un utilisateur ou un groupe !",
|
||||
"Copied!" : "Copié !",
|
||||
"Copy" : "Copier",
|
||||
|
@ -16,7 +16,7 @@ OC.L10N.register(
|
|||
"just now" : "à l'instant",
|
||||
"An error occurred, your comment was not posted." : "Une erreur s'est produite, votre commentaire n'a pas été publié.",
|
||||
"Polls" : "Sondages",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Bonjour%s, <br/><br/><strong>%s</strong> ont participez au sondage «%s». <br/><br/> Pour accéder directement au sondage, vous pouvez utiliser ce <a href=\"%s\">lien</a>",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Bonjour %s, <br/><br/><strong>%s</strong> a participé au sondage «%s». <br/><br/> Pour accéder directement au sondage, vous pouvez utiliser ce <a href=\"%s\">lien</a>",
|
||||
"Polls App - New Activity" : "Application de sondages - Nouvelle activité",
|
||||
"Polls App" : "Application de sondages",
|
||||
"Edit poll" : "Modifier le sondage",
|
||||
|
@ -28,7 +28,7 @@ OC.L10N.register(
|
|||
"hidden" : "masqué",
|
||||
"Public access" : "Accès public",
|
||||
"Select" : "Sélectionner",
|
||||
"User/Group search" : "Recherche d'Utilisateur/Groupe",
|
||||
"User/Group search" : "Recherche d'utilisateur/groupe",
|
||||
"Anonymous" : "Anonyme",
|
||||
"Hide user names for admin" : "Masquer les noms d'utilisateurs à l'administrateur",
|
||||
"Expires" : "Expirera",
|
||||
|
@ -57,7 +57,7 @@ OC.L10N.register(
|
|||
"Usernames hidden to Owner" : "Noms d'utilisateur cachés au Propriétaire",
|
||||
"Usernames visible to Owner" : "Noms d'utilisateur visibles par le Propriétaire",
|
||||
"Click to get link" : "Cliquez pour obtenir le lien",
|
||||
"Copy Link" : "Copier le Lien",
|
||||
"Copy Link" : "Copier le lien",
|
||||
"Delete poll" : "Supprimer le sondage",
|
||||
"Edit Poll" : "Modifier le sondage",
|
||||
"Poll expired" : "Sondage expiré",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Voulez-vous réellement supprimer ce sondage (nouveau) ?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Rien n'est sélectionné !\nCliquez sur les cellules pour les basculer en vert.",
|
||||
"You must enter at least a title for the new poll." : "Vous devez saisir au moins un titre pour ce nouveau sondage",
|
||||
"You must enter at least a title for the new poll." : "Vous devez saisir au moins un titre pour ce nouveau sondage.",
|
||||
"Please select at least one user or group!" : "Veuillez sélectionner au moins un utilisateur ou un groupe !",
|
||||
"Copied!" : "Copié !",
|
||||
"Copy" : "Copier",
|
||||
|
@ -14,7 +14,7 @@
|
|||
"just now" : "à l'instant",
|
||||
"An error occurred, your comment was not posted." : "Une erreur s'est produite, votre commentaire n'a pas été publié.",
|
||||
"Polls" : "Sondages",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Bonjour%s, <br/><br/><strong>%s</strong> ont participez au sondage «%s». <br/><br/> Pour accéder directement au sondage, vous pouvez utiliser ce <a href=\"%s\">lien</a>",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Bonjour %s, <br/><br/><strong>%s</strong> a participé au sondage «%s». <br/><br/> Pour accéder directement au sondage, vous pouvez utiliser ce <a href=\"%s\">lien</a>",
|
||||
"Polls App - New Activity" : "Application de sondages - Nouvelle activité",
|
||||
"Polls App" : "Application de sondages",
|
||||
"Edit poll" : "Modifier le sondage",
|
||||
|
@ -26,7 +26,7 @@
|
|||
"hidden" : "masqué",
|
||||
"Public access" : "Accès public",
|
||||
"Select" : "Sélectionner",
|
||||
"User/Group search" : "Recherche d'Utilisateur/Groupe",
|
||||
"User/Group search" : "Recherche d'utilisateur/groupe",
|
||||
"Anonymous" : "Anonyme",
|
||||
"Hide user names for admin" : "Masquer les noms d'utilisateurs à l'administrateur",
|
||||
"Expires" : "Expirera",
|
||||
|
@ -55,7 +55,7 @@
|
|||
"Usernames hidden to Owner" : "Noms d'utilisateur cachés au Propriétaire",
|
||||
"Usernames visible to Owner" : "Noms d'utilisateur visibles par le Propriétaire",
|
||||
"Click to get link" : "Cliquez pour obtenir le lien",
|
||||
"Copy Link" : "Copier le Lien",
|
||||
"Copy Link" : "Copier le lien",
|
||||
"Delete poll" : "Supprimer le sondage",
|
||||
"Edit Poll" : "Modifier le sondage",
|
||||
"Poll expired" : "Sondage expiré",
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "למחוק את הסקר הזה כעת (חדש)? ",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "שום דבר לא נבחר!\nיש ללחוץ על תאים כדי להפוך אותם לירוקים.",
|
||||
"You must enter at least a title for the new poll." : "עליך להקליד לפחות את הכותרת לסקר החדש.",
|
||||
"Please select at least one user or group!" : "נא לבחור משתמש אחד או קבוצה אחת לפחות!",
|
||||
"Copied!" : "הועתק!",
|
||||
"Copy" : "העתקה",
|
||||
"Not supported!" : "אין תמיכה!",
|
||||
"Press ⌘-C to copy." : "יש ללחוץ על ⌘-C כדי להעתיק.",
|
||||
"Press Ctrl-C to copy." : "יש ללחוץ על Ctrl-C כדי להעתיק.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "העתקה ללוח הגזירים: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "לא נרשמת.\nנא להקליד את השם שלך כדי להצביע\n(3 תווים לפחות).",
|
||||
"Please add some text to your comment before submitting it." : "נא להוסיף טקסט לתגובה שלך בטרם השליחה.",
|
||||
"just now" : "כרגע",
|
||||
"An error occurred, your comment was not posted." : "אירעה שגיאה, התגובה שלך לא פורסמה.",
|
||||
"Polls" : "סקרים",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "שלום %s,<br/><br/><strong>%s</strong> השתתפו בסקר '%s'.<br/><br/>כדי לעבור ישירות לסקר, ניתן להשתמש ב<a href=\"%s\">קישור</a>",
|
||||
"Polls App - New Activity" : "יישומון סקרים - פעילות חדשה",
|
||||
"Polls App" : "יישומון סקרים",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "יישומון סקרים, בדומה ל־doodle/dudle אם האפשרות להגבלת גישה.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "יישומון סקרים, דומה ל־doodle/dudle עם אפשרות להגבלת גישה (חברים, קבוצות/משתמשים מסוימים, הסתרה או חשיפה).",
|
||||
"Edit poll" : "עריכת סקר",
|
||||
"Create new poll" : "יצירת סקר חדש",
|
||||
"Title" : "כותרת",
|
||||
"Description" : "תיאור",
|
||||
"Access" : "גישה",
|
||||
"Registered users only" : "משתמשים רשומים בלבד",
|
||||
"hidden" : "נסתר",
|
||||
"Public access" : "גישה ציבורית",
|
||||
"Select" : "בחירה",
|
||||
"User/Group search" : "חיפוש משתמש/קבוצה",
|
||||
"Anonymous" : "אלמוני",
|
||||
"Hide user names for admin" : "הסתרת שמות משתמשים למנהלים",
|
||||
"Expires" : "תפוגה",
|
||||
"Event schedule" : "לו״ז אירועים",
|
||||
"Text based" : "על בסיס טקסט",
|
||||
"Dates" : "תאריכים",
|
||||
"Text item" : "פריט טקסט",
|
||||
"Add" : "הוספה",
|
||||
"Update poll" : "עדכון סקר",
|
||||
"Create poll" : "יצירת סקר",
|
||||
"Cancel" : "ביטול",
|
||||
"No description provided." : "לא סופק תיאור.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "הסקר פג ב־%s. ההצבעה מושבתת, אך עדיין ניתן להגיב.",
|
||||
"Switch all options at once" : "החלפת מצב כל האפשרויות בבת אחת",
|
||||
"Your name here" : "שמך כאן",
|
||||
"Vote!" : "הצבעה!",
|
||||
"Receive notification email on activity" : "קבלת הודעות בדוא״ל כשיש פעילות",
|
||||
"Close details" : "סגירת הפרטים",
|
||||
"Close" : "סגירה",
|
||||
"Owner" : "בעלות",
|
||||
"Expired" : "פג",
|
||||
"Expires on %s" : "יפוג ב־%s",
|
||||
"Expires never" : "לעולם לא יפוג",
|
||||
"Invitation access" : "גישה להזמנה",
|
||||
"Anononymous poll" : "סקר אלמוני",
|
||||
"Usernames hidden to Owner" : "שמות המשתמשים נסתרים בפני הבעלים",
|
||||
"Usernames visible to Owner" : "שמות המשתמשים גלויים לבעלים",
|
||||
"Click to get link" : "יש ללחוץ כדי לקבל קישור",
|
||||
"Copy Link" : "העתקת קישור",
|
||||
"Delete poll" : "מחיקת סקר",
|
||||
"Edit Poll" : "עריכת סקר",
|
||||
"Poll expired" : "הסקר פג",
|
||||
"Comments" : "תגובות",
|
||||
"Login or ..." : "להיכנס או …",
|
||||
"New comment …" : "תגובה חדשה…",
|
||||
"No comments yet. Be the first." : "אין תגובות עדיין. זמן לחניכה.",
|
||||
"No existing polls." : "אין סקרים קיימים.",
|
||||
"By" : "מאת",
|
||||
"Created" : "יצירה",
|
||||
"participated" : "השתתפת",
|
||||
"Yourself" : "עצמך",
|
||||
"Never" : "מעולם לא",
|
||||
"Access denied" : "הגישה נדחתה",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "אסור לך לצפות בסקר זה או שהסקר אינו קיים.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "אסור לך לערוך את הסקר הזה או שהסקר אינו קיים.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "אסור לך למחוק את הסקר הזה או שהסקר אינו קיים."
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
|
|
@ -0,0 +1,79 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "למחוק את הסקר הזה כעת (חדש)? ",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "שום דבר לא נבחר!\nיש ללחוץ על תאים כדי להפוך אותם לירוקים.",
|
||||
"You must enter at least a title for the new poll." : "עליך להקליד לפחות את הכותרת לסקר החדש.",
|
||||
"Please select at least one user or group!" : "נא לבחור משתמש אחד או קבוצה אחת לפחות!",
|
||||
"Copied!" : "הועתק!",
|
||||
"Copy" : "העתקה",
|
||||
"Not supported!" : "אין תמיכה!",
|
||||
"Press ⌘-C to copy." : "יש ללחוץ על ⌘-C כדי להעתיק.",
|
||||
"Press Ctrl-C to copy." : "יש ללחוץ על Ctrl-C כדי להעתיק.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "העתקה ללוח הגזירים: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "לא נרשמת.\nנא להקליד את השם שלך כדי להצביע\n(3 תווים לפחות).",
|
||||
"Please add some text to your comment before submitting it." : "נא להוסיף טקסט לתגובה שלך בטרם השליחה.",
|
||||
"just now" : "כרגע",
|
||||
"An error occurred, your comment was not posted." : "אירעה שגיאה, התגובה שלך לא פורסמה.",
|
||||
"Polls" : "סקרים",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "שלום %s,<br/><br/><strong>%s</strong> השתתפו בסקר '%s'.<br/><br/>כדי לעבור ישירות לסקר, ניתן להשתמש ב<a href=\"%s\">קישור</a>",
|
||||
"Polls App - New Activity" : "יישומון סקרים - פעילות חדשה",
|
||||
"Polls App" : "יישומון סקרים",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "יישומון סקרים, בדומה ל־doodle/dudle אם האפשרות להגבלת גישה.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "יישומון סקרים, דומה ל־doodle/dudle עם אפשרות להגבלת גישה (חברים, קבוצות/משתמשים מסוימים, הסתרה או חשיפה).",
|
||||
"Edit poll" : "עריכת סקר",
|
||||
"Create new poll" : "יצירת סקר חדש",
|
||||
"Title" : "כותרת",
|
||||
"Description" : "תיאור",
|
||||
"Access" : "גישה",
|
||||
"Registered users only" : "משתמשים רשומים בלבד",
|
||||
"hidden" : "נסתר",
|
||||
"Public access" : "גישה ציבורית",
|
||||
"Select" : "בחירה",
|
||||
"User/Group search" : "חיפוש משתמש/קבוצה",
|
||||
"Anonymous" : "אלמוני",
|
||||
"Hide user names for admin" : "הסתרת שמות משתמשים למנהלים",
|
||||
"Expires" : "תפוגה",
|
||||
"Event schedule" : "לו״ז אירועים",
|
||||
"Text based" : "על בסיס טקסט",
|
||||
"Dates" : "תאריכים",
|
||||
"Text item" : "פריט טקסט",
|
||||
"Add" : "הוספה",
|
||||
"Update poll" : "עדכון סקר",
|
||||
"Create poll" : "יצירת סקר",
|
||||
"Cancel" : "ביטול",
|
||||
"No description provided." : "לא סופק תיאור.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "הסקר פג ב־%s. ההצבעה מושבתת, אך עדיין ניתן להגיב.",
|
||||
"Switch all options at once" : "החלפת מצב כל האפשרויות בבת אחת",
|
||||
"Your name here" : "שמך כאן",
|
||||
"Vote!" : "הצבעה!",
|
||||
"Receive notification email on activity" : "קבלת הודעות בדוא״ל כשיש פעילות",
|
||||
"Close details" : "סגירת הפרטים",
|
||||
"Close" : "סגירה",
|
||||
"Owner" : "בעלות",
|
||||
"Expired" : "פג",
|
||||
"Expires on %s" : "יפוג ב־%s",
|
||||
"Expires never" : "לעולם לא יפוג",
|
||||
"Invitation access" : "גישה להזמנה",
|
||||
"Anononymous poll" : "סקר אלמוני",
|
||||
"Usernames hidden to Owner" : "שמות המשתמשים נסתרים בפני הבעלים",
|
||||
"Usernames visible to Owner" : "שמות המשתמשים גלויים לבעלים",
|
||||
"Click to get link" : "יש ללחוץ כדי לקבל קישור",
|
||||
"Copy Link" : "העתקת קישור",
|
||||
"Delete poll" : "מחיקת סקר",
|
||||
"Edit Poll" : "עריכת סקר",
|
||||
"Poll expired" : "הסקר פג",
|
||||
"Comments" : "תגובות",
|
||||
"Login or ..." : "להיכנס או …",
|
||||
"New comment …" : "תגובה חדשה…",
|
||||
"No comments yet. Be the first." : "אין תגובות עדיין. זמן לחניכה.",
|
||||
"No existing polls." : "אין סקרים קיימים.",
|
||||
"By" : "מאת",
|
||||
"Created" : "יצירה",
|
||||
"participated" : "השתתפת",
|
||||
"Yourself" : "עצמך",
|
||||
"Never" : "מעולם לא",
|
||||
"Access denied" : "הגישה נדחתה",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "אסור לך לצפות בסקר זה או שהסקר אינו קיים.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "אסור לך לערוך את הסקר הזה או שהסקר אינו קיים.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "אסור לך למחוק את הסקר הזה או שהסקר אינו קיים."
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
|
||||
}
|
31
l10n/is.js
|
@ -1,14 +1,23 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "Viltu virkilega eyða þessari könnun (ný)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ekkert valið!\nSmelltu á reiti til að gera þá græna.",
|
||||
"You must enter at least a title for the new poll." : "Þú verður að gefa upp að minnsta kosti titil fyrir nýju könnunina.",
|
||||
"Please select at least one user or group!" : "Veldu a.m.k. einn notanda eða hóp!",
|
||||
"Copied!" : "Afritað!",
|
||||
"Copy" : "Afrita",
|
||||
"Not supported!" : "Óstutt!",
|
||||
"Press ⌘-C to copy." : "Ýttu á ⌘-C til að afrita.",
|
||||
"Press Ctrl-C to copy." : "Ýttu á Ctrl-C til að afrita.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Afrita á klippispjald: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Þú ert ekki skráð(ur).\nSettu inn nafnið þitt til að kjósa\n(að minnsta kosti 3 stafir).",
|
||||
"Please add some text to your comment before submitting it." : "Settu inn einhvern texta í umsögnina þína áður en hún er send.",
|
||||
"just now" : "Í þessum töluðu orðum",
|
||||
"An error occurred, your comment was not posted." : "Villa kom upp, umsögnin þín var ekki send inn.",
|
||||
"Polls" : "Kannanir",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hæ, %s,<br/><br/><strong>%s</strong> tók þátt í könnuninni '%s'.<br/><br/>Til að fara beint á könnunina, geturðu notað þennan <a href=\"%s\">tengil</a>",
|
||||
"Polls App - New Activity" : "Kannanaforrit - Ný virkni",
|
||||
"Polls App" : "Kannanaforrit",
|
||||
"Edit poll" : "Breyta könnun",
|
||||
"Create new poll" : "Búa til nýja könnun",
|
||||
|
@ -29,16 +38,32 @@ OC.L10N.register(
|
|||
"Text item" : "Textaatriði",
|
||||
"Add" : "Bæta við",
|
||||
"Update poll" : "Uppfæra könnun",
|
||||
"Create poll" : "Búa til nkönnun",
|
||||
"Create poll" : "Búa til könnun",
|
||||
"Cancel" : "Hætta við",
|
||||
"No description provided." : "Engin lýsing var gefin.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Könnunin rann út þann %s. Greiðsla atkvæða er óvirk, en hægt er að senda inn athugasemdir.\n.",
|
||||
"Switch all options at once" : "Skipta öllum valkostum í einu",
|
||||
"Your name here" : "Nafnið þitt hér",
|
||||
"Vote!" : "Greiða atkvæði!",
|
||||
"Receive notification email on activity" : "Fá tilkynningu í tölvupósti við virkni",
|
||||
"Close details" : "Loka nánari upplýsingum",
|
||||
"Close" : "Loka",
|
||||
"Owner" : "Eigandi",
|
||||
"Expired" : "Útrunnið",
|
||||
"Expires on %s" : "Rennur út %s",
|
||||
"Expires never" : "Rennur aldrei út",
|
||||
"Invitation access" : "Boðsaðgangur",
|
||||
"Anononymous poll" : "Nafnlaus könnun",
|
||||
"Usernames hidden to Owner" : "Nöfn notenda falin fyrir eiganda",
|
||||
"Usernames visible to Owner" : "Nöfn notenda sýnileg eiganda",
|
||||
"Click to get link" : "Smelltu til að fá tengil",
|
||||
"Copy Link" : "Afrita tengil",
|
||||
"Delete poll" : "Eyða könnun",
|
||||
"Edit Poll" : "Breyta könnun",
|
||||
"Poll expired" : "Könnun útrunnin",
|
||||
"Comments" : "Athugasemdir",
|
||||
"Login or ..." : "Skrá inn eða ...",
|
||||
"New comment …" : "Ný ummæli …",
|
||||
"No comments yet. Be the first." : "Engar athugasemdir ennþá. Vertu fyrstur.",
|
||||
"No existing polls." : "Engar fyrirliggjandi kannanir",
|
||||
"By" : "Eftir",
|
||||
|
@ -47,6 +72,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Þú sjálf(ur)",
|
||||
"Never" : "Aldrei",
|
||||
"Access denied" : "Aðgangur ekki leyfður",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Þú hefur ekki heimild til að skoða þessa könnun eða að könnunin er ekki til."
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Þú hefur ekki heimild til að skoða þessa könnun eða að könnunin er ekki til.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Þú hefur ekki heimild til að breyta þessari könnun eða að könnunin er ekki til.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Þú hefur ekki heimild til að eyða þessari könnun eða að könnunin er ekki til."
|
||||
},
|
||||
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
|
||||
|
|
31
l10n/is.json
|
@ -1,12 +1,21 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Viltu virkilega eyða þessari könnun (ný)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ekkert valið!\nSmelltu á reiti til að gera þá græna.",
|
||||
"You must enter at least a title for the new poll." : "Þú verður að gefa upp að minnsta kosti titil fyrir nýju könnunina.",
|
||||
"Please select at least one user or group!" : "Veldu a.m.k. einn notanda eða hóp!",
|
||||
"Copied!" : "Afritað!",
|
||||
"Copy" : "Afrita",
|
||||
"Not supported!" : "Óstutt!",
|
||||
"Press ⌘-C to copy." : "Ýttu á ⌘-C til að afrita.",
|
||||
"Press Ctrl-C to copy." : "Ýttu á Ctrl-C til að afrita.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Afrita á klippispjald: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Þú ert ekki skráð(ur).\nSettu inn nafnið þitt til að kjósa\n(að minnsta kosti 3 stafir).",
|
||||
"Please add some text to your comment before submitting it." : "Settu inn einhvern texta í umsögnina þína áður en hún er send.",
|
||||
"just now" : "Í þessum töluðu orðum",
|
||||
"An error occurred, your comment was not posted." : "Villa kom upp, umsögnin þín var ekki send inn.",
|
||||
"Polls" : "Kannanir",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Hæ, %s,<br/><br/><strong>%s</strong> tók þátt í könnuninni '%s'.<br/><br/>Til að fara beint á könnunina, geturðu notað þennan <a href=\"%s\">tengil</a>",
|
||||
"Polls App - New Activity" : "Kannanaforrit - Ný virkni",
|
||||
"Polls App" : "Kannanaforrit",
|
||||
"Edit poll" : "Breyta könnun",
|
||||
"Create new poll" : "Búa til nýja könnun",
|
||||
|
@ -27,16 +36,32 @@
|
|||
"Text item" : "Textaatriði",
|
||||
"Add" : "Bæta við",
|
||||
"Update poll" : "Uppfæra könnun",
|
||||
"Create poll" : "Búa til nkönnun",
|
||||
"Create poll" : "Búa til könnun",
|
||||
"Cancel" : "Hætta við",
|
||||
"No description provided." : "Engin lýsing var gefin.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Könnunin rann út þann %s. Greiðsla atkvæða er óvirk, en hægt er að senda inn athugasemdir.\n.",
|
||||
"Switch all options at once" : "Skipta öllum valkostum í einu",
|
||||
"Your name here" : "Nafnið þitt hér",
|
||||
"Vote!" : "Greiða atkvæði!",
|
||||
"Receive notification email on activity" : "Fá tilkynningu í tölvupósti við virkni",
|
||||
"Close details" : "Loka nánari upplýsingum",
|
||||
"Close" : "Loka",
|
||||
"Owner" : "Eigandi",
|
||||
"Expired" : "Útrunnið",
|
||||
"Expires on %s" : "Rennur út %s",
|
||||
"Expires never" : "Rennur aldrei út",
|
||||
"Invitation access" : "Boðsaðgangur",
|
||||
"Anononymous poll" : "Nafnlaus könnun",
|
||||
"Usernames hidden to Owner" : "Nöfn notenda falin fyrir eiganda",
|
||||
"Usernames visible to Owner" : "Nöfn notenda sýnileg eiganda",
|
||||
"Click to get link" : "Smelltu til að fá tengil",
|
||||
"Copy Link" : "Afrita tengil",
|
||||
"Delete poll" : "Eyða könnun",
|
||||
"Edit Poll" : "Breyta könnun",
|
||||
"Poll expired" : "Könnun útrunnin",
|
||||
"Comments" : "Athugasemdir",
|
||||
"Login or ..." : "Skrá inn eða ...",
|
||||
"New comment …" : "Ný ummæli …",
|
||||
"No comments yet. Be the first." : "Engar athugasemdir ennþá. Vertu fyrstur.",
|
||||
"No existing polls." : "Engar fyrirliggjandi kannanir",
|
||||
"By" : "Eftir",
|
||||
|
@ -45,6 +70,8 @@
|
|||
"Yourself" : "Þú sjálf(ur)",
|
||||
"Never" : "Aldrei",
|
||||
"Access denied" : "Aðgangur ekki leyfður",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Þú hefur ekki heimild til að skoða þessa könnun eða að könnunin er ekki til."
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Þú hefur ekki heimild til að skoða þessa könnun eða að könnunin er ekki til.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Þú hefur ekki heimild til að breyta þessari könnun eða að könnunin er ekki til.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Þú hefur ekki heimild til að eyða þessari könnun eða að könnunin er ekki til."
|
||||
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
|
||||
}
|
|
@ -19,6 +19,8 @@ OC.L10N.register(
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ciao %s,<br/><br/><strong>%s</strong> ha partecipato al sondaggio '%s'.<br/><br/>Per andare direttamente al sondaggio, puoi utilizzare questo <a href=\"%s\">collegamento</a>",
|
||||
"Polls App - New Activity" : "Sondaggi - Nuova attività",
|
||||
"Polls App" : "Sondaggi",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Un'applicazione di sondaggi, simile a doodle/dudle con la possibilità di limitare l'accesso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Un'applicazione di sondaggi, simile a doodle/dudle con la possibilità di limitare l'accesso (membri, determinati gruppi/utenti, nascosti e pubblici).",
|
||||
"Edit poll" : "Modifica sondaggio",
|
||||
"Create new poll" : "Crea nuovo sondaggio",
|
||||
"Title" : "Titolo",
|
||||
|
@ -42,7 +44,7 @@ OC.L10N.register(
|
|||
"Cancel" : "Annulla",
|
||||
"No description provided." : "Nessuna descrizione fornita.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Il sondaggio è scaduto il %s. Il voto è disabilitato, ma puoi ancora commentare.",
|
||||
"Switch all options at once" : "Cambia tutte le opzioni in un colpo",
|
||||
"Switch all options at once" : "Cambia tutte le opzioni contemporaneamente",
|
||||
"Your name here" : "Qui il tuo nome",
|
||||
"Vote!" : "Vota!",
|
||||
"Receive notification email on activity" : "Ricevi un email di notifica sull'attività",
|
||||
|
@ -73,7 +75,7 @@ OC.L10N.register(
|
|||
"Never" : "Mai",
|
||||
"Access denied" : "Accesso negato",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Non hai il permesso di vedere questo sondaggio o il sondaggio non esiste.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Non ti è permesso modificare questo sondaggio oppure il sondaggio non esiste",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Non ti è permesso eliminare questo sondaggio oppure il sondaggio non esiste"
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Non ti è consentito modificare questo sondaggio oppure il sondaggio non esiste.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Non ti è consentito eliminare questo sondaggio oppure il sondaggio non esiste."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ciao %s,<br/><br/><strong>%s</strong> ha partecipato al sondaggio '%s'.<br/><br/>Per andare direttamente al sondaggio, puoi utilizzare questo <a href=\"%s\">collegamento</a>",
|
||||
"Polls App - New Activity" : "Sondaggi - Nuova attività",
|
||||
"Polls App" : "Sondaggi",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Un'applicazione di sondaggi, simile a doodle/dudle con la possibilità di limitare l'accesso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Un'applicazione di sondaggi, simile a doodle/dudle con la possibilità di limitare l'accesso (membri, determinati gruppi/utenti, nascosti e pubblici).",
|
||||
"Edit poll" : "Modifica sondaggio",
|
||||
"Create new poll" : "Crea nuovo sondaggio",
|
||||
"Title" : "Titolo",
|
||||
|
@ -40,7 +42,7 @@
|
|||
"Cancel" : "Annulla",
|
||||
"No description provided." : "Nessuna descrizione fornita.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Il sondaggio è scaduto il %s. Il voto è disabilitato, ma puoi ancora commentare.",
|
||||
"Switch all options at once" : "Cambia tutte le opzioni in un colpo",
|
||||
"Switch all options at once" : "Cambia tutte le opzioni contemporaneamente",
|
||||
"Your name here" : "Qui il tuo nome",
|
||||
"Vote!" : "Vota!",
|
||||
"Receive notification email on activity" : "Ricevi un email di notifica sull'attività",
|
||||
|
@ -71,7 +73,7 @@
|
|||
"Never" : "Mai",
|
||||
"Access denied" : "Accesso negato",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Non hai il permesso di vedere questo sondaggio o il sondaggio non esiste.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Non ti è permesso modificare questo sondaggio oppure il sondaggio non esiste",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Non ti è permesso eliminare questo sondaggio oppure il sondaggio non esiste"
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Non ti è consentito modificare questo sondaggio oppure il sondaggio non esiste.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Non ti è consentito eliminare questo sondaggio oppure il sondaggio non esiste."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
|
@ -76,4 +76,4 @@ OC.L10N.register(
|
|||
"You are not allowed to edit this poll or the poll does not exist." : "ამ გამოკითხვის ცვილების უფლება არ გაქვთ, ან გამოკითხვა არ არსებობს.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "ამ გამოკითხვის გაუქმების უფლება არ გაქვთ, ან გამოკითხვა არ არსებობს."
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
"nplurals=2; plural=(n!=1);");
|
||||
|
|
|
@ -73,5 +73,5 @@
|
|||
"You are not allowed to view this poll or the poll does not exist." : "ამ გამოკითხვის ჩვენების უფლებები არ გაქვთ, ან ის არ არსებობს.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "ამ გამოკითხვის ცვილების უფლება არ გაქვთ, ან გამოკითხვა არ არსებობს.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "ამ გამოკითხვის გაუქმების უფლება არ გაქვთ, ან გამოკითხვა არ არსებობს."
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
},"pluralForm" :"nplurals=2; plural=(n!=1);"
|
||||
}
|
|
@ -2,7 +2,10 @@ OC.L10N.register(
|
|||
"polls",
|
||||
{
|
||||
"You must enter at least a title for the new poll." : "Naujai apklausai privalote įvesti bent pavadinimą.",
|
||||
"Copied!" : "Nukopijuota!",
|
||||
"Not supported!" : "Nepalaikoma!",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Jūs nesate užsiregistravę.\nNorėdami balsuoti, įveskite vardą\n(bent 3 simbolius).",
|
||||
"just now" : "ką tik",
|
||||
"Polls" : "Apklausos",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Sveiki, %s,<br/><br/><strong>%s</strong> dalyvavo apklausoje \"%s\".<br/><br/>Norėdami pereiti tiesiai į apklausą, galite pasinaudoti šia <a href=\"%s\">nuoroda</a>",
|
||||
"Polls App" : "Apklausų programėlė",
|
||||
|
@ -16,9 +19,10 @@ OC.L10N.register(
|
|||
"Cancel" : "Atsisakyti",
|
||||
"No description provided." : "Nepateiktas aprašas.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Apklausa pasibaigė %s. Balsavimas yra išjungtas, tačiau vis dar galite komentuoti.",
|
||||
"Copy Link" : "Kopijuoti nuorodą",
|
||||
"Poll expired" : "Apklausa pasibaigė",
|
||||
"Never" : "Niekada",
|
||||
"Access denied" : "Prieiga negalima",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Jums neleidžiama peržiūrėti šios apklausos arba apklausos nėra."
|
||||
},
|
||||
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
|
||||
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{ "translations": {
|
||||
"You must enter at least a title for the new poll." : "Naujai apklausai privalote įvesti bent pavadinimą.",
|
||||
"Copied!" : "Nukopijuota!",
|
||||
"Not supported!" : "Nepalaikoma!",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Jūs nesate užsiregistravę.\nNorėdami balsuoti, įveskite vardą\n(bent 3 simbolius).",
|
||||
"just now" : "ką tik",
|
||||
"Polls" : "Apklausos",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Sveiki, %s,<br/><br/><strong>%s</strong> dalyvavo apklausoje \"%s\".<br/><br/>Norėdami pereiti tiesiai į apklausą, galite pasinaudoti šia <a href=\"%s\">nuoroda</a>",
|
||||
"Polls App" : "Apklausų programėlė",
|
||||
|
@ -14,9 +17,10 @@
|
|||
"Cancel" : "Atsisakyti",
|
||||
"No description provided." : "Nepateiktas aprašas.",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "Apklausa pasibaigė %s. Balsavimas yra išjungtas, tačiau vis dar galite komentuoti.",
|
||||
"Copy Link" : "Kopijuoti nuorodą",
|
||||
"Poll expired" : "Apklausa pasibaigė",
|
||||
"Never" : "Niekada",
|
||||
"Access denied" : "Prieiga negalima",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Jums neleidžiama peržiūrėti šios apklausos arba apklausos nėra."
|
||||
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "Ønsker du virkelig å slette den avstemningen (ny)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ingenting valgt!\nKlikk på celler for å gjøre dem grønne.",
|
||||
"You must enter at least a title for the new poll." : "Du må skrive inn minst en tittel for ny avstemning",
|
||||
"Please select at least one user or group!" : "Velg minst én bruker eller gruppe",
|
||||
|
@ -61,7 +62,7 @@ OC.L10N.register(
|
|||
"Edit Poll" : "Rediger avstemning",
|
||||
"Poll expired" : "Avstemning utløpt",
|
||||
"Comments" : "Kommentarer",
|
||||
"Login or ..." : "Logg inn eller…",
|
||||
"Login or ..." : "Logg inn eller …",
|
||||
"New comment …" : "Ny kommentar…",
|
||||
"No comments yet. Be the first." : "Ingen kommentarer enda. Vær først.",
|
||||
"No existing polls." : "Ingen eksisterende avstemninger.",
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "Ønsker du virkelig å slette den avstemningen (ny)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "Ingenting valgt!\nKlikk på celler for å gjøre dem grønne.",
|
||||
"You must enter at least a title for the new poll." : "Du må skrive inn minst en tittel for ny avstemning",
|
||||
"Please select at least one user or group!" : "Velg minst én bruker eller gruppe",
|
||||
|
@ -59,7 +60,7 @@
|
|||
"Edit Poll" : "Rediger avstemning",
|
||||
"Poll expired" : "Avstemning utløpt",
|
||||
"Comments" : "Kommentarer",
|
||||
"Login or ..." : "Logg inn eller…",
|
||||
"Login or ..." : "Logg inn eller …",
|
||||
"New comment …" : "Ny kommentar…",
|
||||
"No comments yet. Be the first." : "Ingen kommentarer enda. Vær først.",
|
||||
"No existing polls." : "Ingen eksisterende avstemninger.",
|
||||
|
|
|
@ -19,6 +19,8 @@ OC.L10N.register(
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Olá %s,<br/><br/><strong>%s</strong> participaram da pesquisa '%s'.<br/><br/>Para ir diretamente lá, você pode usar este <a href=\"%s\">link</a>",
|
||||
"Polls App - New Activity" : "Aplicativo Polls - Atividade Nova",
|
||||
"Polls App" : "Aplicativo Polls",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Um aplicativo de enquetes, semelhante ao doodle/dudle podendo restringir o acesso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Um aplicativo de enquetes, semelhante ao doodle/dudle podendo restringir o acesso (membros, certos grupos/usuários, ocultos e públicos).",
|
||||
"Edit poll" : "Editar pesquisa",
|
||||
"Create new poll" : "Criar nova pesquisa",
|
||||
"Title" : "Título",
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Olá %s,<br/><br/><strong>%s</strong> participaram da pesquisa '%s'.<br/><br/>Para ir diretamente lá, você pode usar este <a href=\"%s\">link</a>",
|
||||
"Polls App - New Activity" : "Aplicativo Polls - Atividade Nova",
|
||||
"Polls App" : "Aplicativo Polls",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Um aplicativo de enquetes, semelhante ao doodle/dudle podendo restringir o acesso.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Um aplicativo de enquetes, semelhante ao doodle/dudle podendo restringir o acesso (membros, certos grupos/usuários, ocultos e públicos).",
|
||||
"Edit poll" : "Editar pesquisa",
|
||||
"Create new poll" : "Criar nova pesquisa",
|
||||
"Title" : "Título",
|
||||
|
|
|
@ -62,8 +62,8 @@ OC.L10N.register(
|
|||
"Edit Poll" : "Редактировать опрос",
|
||||
"Poll expired" : "Опрос завершён",
|
||||
"Comments" : "Комментарии",
|
||||
"Login or ..." : "Войти или...",
|
||||
"New comment …" : "Новый комментарий...",
|
||||
"Login or ..." : "Войти или…",
|
||||
"New comment …" : "Новый комментарий…",
|
||||
"No comments yet. Be the first." : "Тут нет комментариев, будьте первым.",
|
||||
"No existing polls." : "Опросов не существует.",
|
||||
"By" : "Добавлено пользователем",
|
||||
|
|
|
@ -60,8 +60,8 @@
|
|||
"Edit Poll" : "Редактировать опрос",
|
||||
"Poll expired" : "Опрос завершён",
|
||||
"Comments" : "Комментарии",
|
||||
"Login or ..." : "Войти или...",
|
||||
"New comment …" : "Новый комментарий...",
|
||||
"Login or ..." : "Войти или…",
|
||||
"New comment …" : "Новый комментарий…",
|
||||
"No comments yet. Be the first." : "Тут нет комментариев, будьте первым.",
|
||||
"No existing polls." : "Опросов не существует.",
|
||||
"By" : "Добавлено пользователем",
|
||||
|
|
19
l10n/sk.js
|
@ -4,9 +4,16 @@ OC.L10N.register(
|
|||
"Nothing selected!\nClick on cells to turn them green." : "Nič ste nevybrali!\nKliknutím na bunky ich zmeníte na zelené.",
|
||||
"You must enter at least a title for the new poll." : "Pre novú anketu musíte zadať aspoň názov.",
|
||||
"Please select at least one user or group!" : "Vyberte prosím aspoň jedného používateľa alebo skupinu.",
|
||||
"Copied!" : "Skopírované!",
|
||||
"Copy" : "Kopírovať",
|
||||
"Not supported!" : "Nepodporované!",
|
||||
"Press ⌘-C to copy." : "Pre kopírovanie, stlačte ⌘-C.",
|
||||
"Press Ctrl-C to copy." : "Stlač Ctrl-C pre skopírovanie.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Skopírovať do schránky: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Nie ste zaregistrovaní.\nPre odoslanie hlasu zadajte prosím svoje meno\n(aspoň tri znaky).",
|
||||
"Please add some text to your comment before submitting it." : "Zadajte prosím nejaký text predtým než odošlete svoj komentár.",
|
||||
"just now" : "práve teraz",
|
||||
"An error occurred, your comment was not posted." : "Vyskytla sa chyba, váš komentár sa neodoslal.",
|
||||
"Polls" : "Ankety",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ahoj %s,<br/><br/><strong>%s</strong>sa zúčastnil v ankete '%s'.<br/><br/>Kliknutím na <a href=\"%s\">link</a> sa dostanete priamo k ankete.",
|
||||
"Polls App" : "Aplikácia Ankety",
|
||||
|
@ -36,10 +43,16 @@ OC.L10N.register(
|
|||
"Your name here" : "Vaše meno sem",
|
||||
"Vote!" : "Hlasujte!",
|
||||
"Receive notification email on activity" : "Pri aktivite prijímať oznámenia e-mailom",
|
||||
"Close" : "Zatvoriť",
|
||||
"Owner" : "Vlastník",
|
||||
"Anononymous poll" : "Anonymná anketa",
|
||||
"Click to get link" : "Kliknite na získanie odkazu",
|
||||
"Copy Link" : "Kopírovať odkaz",
|
||||
"Delete poll" : "Zmazať anketu",
|
||||
"Edit Poll" : "Upraviť anketu",
|
||||
"Poll expired" : "Anketa vypršala",
|
||||
"Comments" : "Komentáre",
|
||||
"New comment …" : "Nový komentár …",
|
||||
"No comments yet. Be the first." : "Zatiaľ žiadne komentáre. Buďte prvý.",
|
||||
"No existing polls." : "Žiadne existujúce ankety.",
|
||||
"By" : "Od",
|
||||
|
@ -48,6 +61,8 @@ OC.L10N.register(
|
|||
"Yourself" : "Sám",
|
||||
"Never" : "Nikdy",
|
||||
"Access denied" : "Prístup zamietnutý",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnenie na prezeranie tejto ankety alebo už anketa neexistuje."
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnenie na prezeranie tejto ankety alebo už anketa neexistuje.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Nemáte oprávnenie na úpravy tejto ankety alebo už anketa neexistuje.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Nemáte oprávnenie na zmazanie tejto ankety alebo už anketa neexistuje."
|
||||
},
|
||||
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
|
||||
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
|
|
19
l10n/sk.json
|
@ -2,9 +2,16 @@
|
|||
"Nothing selected!\nClick on cells to turn them green." : "Nič ste nevybrali!\nKliknutím na bunky ich zmeníte na zelené.",
|
||||
"You must enter at least a title for the new poll." : "Pre novú anketu musíte zadať aspoň názov.",
|
||||
"Please select at least one user or group!" : "Vyberte prosím aspoň jedného používateľa alebo skupinu.",
|
||||
"Copied!" : "Skopírované!",
|
||||
"Copy" : "Kopírovať",
|
||||
"Not supported!" : "Nepodporované!",
|
||||
"Press ⌘-C to copy." : "Pre kopírovanie, stlačte ⌘-C.",
|
||||
"Press Ctrl-C to copy." : "Stlač Ctrl-C pre skopírovanie.",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "Skopírovať do schránky: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "Nie ste zaregistrovaní.\nPre odoslanie hlasu zadajte prosím svoje meno\n(aspoň tri znaky).",
|
||||
"Please add some text to your comment before submitting it." : "Zadajte prosím nejaký text predtým než odošlete svoj komentár.",
|
||||
"just now" : "práve teraz",
|
||||
"An error occurred, your comment was not posted." : "Vyskytla sa chyba, váš komentár sa neodoslal.",
|
||||
"Polls" : "Ankety",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Ahoj %s,<br/><br/><strong>%s</strong>sa zúčastnil v ankete '%s'.<br/><br/>Kliknutím na <a href=\"%s\">link</a> sa dostanete priamo k ankete.",
|
||||
"Polls App" : "Aplikácia Ankety",
|
||||
|
@ -34,10 +41,16 @@
|
|||
"Your name here" : "Vaše meno sem",
|
||||
"Vote!" : "Hlasujte!",
|
||||
"Receive notification email on activity" : "Pri aktivite prijímať oznámenia e-mailom",
|
||||
"Close" : "Zatvoriť",
|
||||
"Owner" : "Vlastník",
|
||||
"Anononymous poll" : "Anonymná anketa",
|
||||
"Click to get link" : "Kliknite na získanie odkazu",
|
||||
"Copy Link" : "Kopírovať odkaz",
|
||||
"Delete poll" : "Zmazať anketu",
|
||||
"Edit Poll" : "Upraviť anketu",
|
||||
"Poll expired" : "Anketa vypršala",
|
||||
"Comments" : "Komentáre",
|
||||
"New comment …" : "Nový komentár …",
|
||||
"No comments yet. Be the first." : "Zatiaľ žiadne komentáre. Buďte prvý.",
|
||||
"No existing polls." : "Žiadne existujúce ankety.",
|
||||
"By" : "Od",
|
||||
|
@ -46,6 +59,8 @@
|
|||
"Yourself" : "Sám",
|
||||
"Never" : "Nikdy",
|
||||
"Access denied" : "Prístup zamietnutý",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnenie na prezeranie tejto ankety alebo už anketa neexistuje."
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
|
||||
"You are not allowed to view this poll or the poll does not exist." : "Nemáte oprávnenie na prezeranie tejto ankety alebo už anketa neexistuje.",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "Nemáte oprávnenie na úpravy tejto ankety alebo už anketa neexistuje.",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "Nemáte oprávnenie na zmazanie tejto ankety alebo už anketa neexistuje."
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
|
@ -19,6 +19,8 @@ OC.L10N.register(
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Merhaba %s,<br/><br/><strong>%s</strong> kullanıcısı '%s' anketine katıldı.<br/><br/>Doğrudan ankete gitmek için <a href=\"%s\">bu bağlantıya tıklayın</a>",
|
||||
"Polls App - New Activity" : "Anketler Uygulaması - Yeni İşlem",
|
||||
"Polls App" : "Anketler Uygulaması",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Doodle/Dudle benzeri, erişim kısıtlama özelliği bulunan bir anket uygulamasıdır.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Doodle/Dudle benzeri, erişim kısıtlama özelliği (üyeler, belirli grup ve kullanıcılar, gizli ve herkese açık gibi) bulunan bir anket uygulamasıdır.",
|
||||
"Edit poll" : "Anketi düzenle",
|
||||
"Create new poll" : "Yeni anket ekle",
|
||||
"Title" : "Başlık",
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "Merhaba %s,<br/><br/><strong>%s</strong> kullanıcısı '%s' anketine katıldı.<br/><br/>Doğrudan ankete gitmek için <a href=\"%s\">bu bağlantıya tıklayın</a>",
|
||||
"Polls App - New Activity" : "Anketler Uygulaması - Yeni İşlem",
|
||||
"Polls App" : "Anketler Uygulaması",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access." : "Doodle/Dudle benzeri, erişim kısıtlama özelliği bulunan bir anket uygulamasıdır.",
|
||||
"A polls app, similar to doodle/dudle with the possibility to restrict access (members, certain groups/users, hidden and public)." : "Doodle/Dudle benzeri, erişim kısıtlama özelliği (üyeler, belirli grup ve kullanıcılar, gizli ve herkese açık gibi) bulunan bir anket uygulamasıdır.",
|
||||
"Edit poll" : "Anketi düzenle",
|
||||
"Create new poll" : "Yeni anket ekle",
|
||||
"Title" : "Başlık",
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
OC.L10N.register(
|
||||
"polls",
|
||||
{
|
||||
"Do you really want to delete that poll (new)?" : "你确定想要删除投票(新的)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "没有选择任何项目!\n点击表格使其变绿色以选中。",
|
||||
"You must enter at least a title for the new poll." : "你必须为新投票键入标题",
|
||||
"Please select at least one user or group!" : "请至少选择一个用户或者小组",
|
||||
"Copied!" : "已复制!",
|
||||
"Copy" : "复制",
|
||||
"Not supported!" : "不支持!",
|
||||
"Press ⌘-C to copy." : "按 ⌘-C 复制",
|
||||
"Press Ctrl-C to copy." : "按 Ctrl+C 复制",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "复制到剪贴板: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "你还未注册。\n请输入你的名字以投票\n(至少三个字符)。",
|
||||
"Please add some text to your comment before submitting it." : "请输入评论以提交。",
|
||||
"just now" : "刚刚",
|
||||
"An error occurred, your comment was not posted." : "发生了一个错误,你的评论未成功提交。",
|
||||
"Polls" : "投票",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "你好%s,<br/><br/><strong>%s</strong>参加了投票“%s”。<br/><br/>以打开投票,你可以直接使用此<a href=\"%s\">链接</a>",
|
||||
"Polls App - New Activity" : "投票应用 - 新的活动",
|
||||
"Polls App" : "投票应用",
|
||||
"Edit poll" : "编辑投票",
|
||||
"Create new poll" : "创建新的投票",
|
||||
"Title" : "标题",
|
||||
"Description" : "描述",
|
||||
"Access" : "进入",
|
||||
"Registered users only" : "只有以注册的用户",
|
||||
"hidden" : "隐藏",
|
||||
"Public access" : "公开权限",
|
||||
"Select" : "选择",
|
||||
"User/Group search" : "用户/小组 搜索",
|
||||
"Anonymous" : "匿名",
|
||||
"Hide user names for admin" : "为管理员隐藏用户名",
|
||||
"Expires" : "过期",
|
||||
"Event schedule" : "事件计划",
|
||||
"Text based" : "文本为基础的",
|
||||
"Dates" : "日期",
|
||||
"Text item" : "文本项目",
|
||||
"Add" : "添加",
|
||||
"Update poll" : "更新投票",
|
||||
"Create poll" : "创建投票",
|
||||
"Cancel" : "取消",
|
||||
"No description provided." : "没有提供描述。",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "投票在%s过期了。投票已禁用,但是你仍然可以留言。",
|
||||
"Switch all options at once" : "一次性切换所有选项",
|
||||
"Your name here" : "在此处填写你的名称",
|
||||
"Vote!" : "投票!",
|
||||
"Receive notification email on activity" : "有活动时接收邮件提醒",
|
||||
"Close details" : "关闭细节",
|
||||
"Close" : "关闭",
|
||||
"Owner" : "拥有者",
|
||||
"Expired" : "已过期",
|
||||
"Expires on %s" : "在%s过期",
|
||||
"Expires never" : "从不过期",
|
||||
"Invitation access" : "邀请权限",
|
||||
"Anononymous poll" : "匿名投票",
|
||||
"Usernames hidden to Owner" : "多所有者隐藏用户名",
|
||||
"Usernames visible to Owner" : "对所有者显示用户名",
|
||||
"Click to get link" : "点击以获取链接",
|
||||
"Copy Link" : "复制链接",
|
||||
"Delete poll" : "删除投票",
|
||||
"Edit Poll" : "编辑投票",
|
||||
"Poll expired" : "投票已过期",
|
||||
"Comments" : "评论",
|
||||
"Login or ..." : "登陆或者。。。",
|
||||
"New comment …" : "新评论。。。",
|
||||
"No comments yet. Be the first." : "还没有评论。成为第一个评论的人吧。",
|
||||
"No existing polls." : "没有投票存在。",
|
||||
"By" : "由",
|
||||
"Created" : "已创建",
|
||||
"participated" : "参加了",
|
||||
"Yourself" : "你自己",
|
||||
"Never" : "从不",
|
||||
"Access denied" : "访问被拒绝",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "你无权查看此投票或者此投票不存在。",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "你无权编辑此投票或者此投票不存在。",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "你无权删除此投票或者此投票不存在。"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
|
@ -0,0 +1,77 @@
|
|||
{ "translations": {
|
||||
"Do you really want to delete that poll (new)?" : "你确定想要删除投票(新的)?",
|
||||
"Nothing selected!\nClick on cells to turn them green." : "没有选择任何项目!\n点击表格使其变绿色以选中。",
|
||||
"You must enter at least a title for the new poll." : "你必须为新投票键入标题",
|
||||
"Please select at least one user or group!" : "请至少选择一个用户或者小组",
|
||||
"Copied!" : "已复制!",
|
||||
"Copy" : "复制",
|
||||
"Not supported!" : "不支持!",
|
||||
"Press ⌘-C to copy." : "按 ⌘-C 复制",
|
||||
"Press Ctrl-C to copy." : "按 Ctrl+C 复制",
|
||||
"Copy to clipboard: Ctrl+C, Enter" : "复制到剪贴板: Ctrl+C, Enter",
|
||||
"You are not registered.\nPlease enter your name to vote\n(at least 3 characters)." : "你还未注册。\n请输入你的名字以投票\n(至少三个字符)。",
|
||||
"Please add some text to your comment before submitting it." : "请输入评论以提交。",
|
||||
"just now" : "刚刚",
|
||||
"An error occurred, your comment was not posted." : "发生了一个错误,你的评论未成功提交。",
|
||||
"Polls" : "投票",
|
||||
"Hello %s,<br/><br/><strong>%s</strong> participated in the poll '%s'.<br/><br/>To go directly to the poll, you can use this <a href=\"%s\">link</a>" : "你好%s,<br/><br/><strong>%s</strong>参加了投票“%s”。<br/><br/>以打开投票,你可以直接使用此<a href=\"%s\">链接</a>",
|
||||
"Polls App - New Activity" : "投票应用 - 新的活动",
|
||||
"Polls App" : "投票应用",
|
||||
"Edit poll" : "编辑投票",
|
||||
"Create new poll" : "创建新的投票",
|
||||
"Title" : "标题",
|
||||
"Description" : "描述",
|
||||
"Access" : "进入",
|
||||
"Registered users only" : "只有以注册的用户",
|
||||
"hidden" : "隐藏",
|
||||
"Public access" : "公开权限",
|
||||
"Select" : "选择",
|
||||
"User/Group search" : "用户/小组 搜索",
|
||||
"Anonymous" : "匿名",
|
||||
"Hide user names for admin" : "为管理员隐藏用户名",
|
||||
"Expires" : "过期",
|
||||
"Event schedule" : "事件计划",
|
||||
"Text based" : "文本为基础的",
|
||||
"Dates" : "日期",
|
||||
"Text item" : "文本项目",
|
||||
"Add" : "添加",
|
||||
"Update poll" : "更新投票",
|
||||
"Create poll" : "创建投票",
|
||||
"Cancel" : "取消",
|
||||
"No description provided." : "没有提供描述。",
|
||||
"The poll expired on %s. Voting is disabled, but you can still comment." : "投票在%s过期了。投票已禁用,但是你仍然可以留言。",
|
||||
"Switch all options at once" : "一次性切换所有选项",
|
||||
"Your name here" : "在此处填写你的名称",
|
||||
"Vote!" : "投票!",
|
||||
"Receive notification email on activity" : "有活动时接收邮件提醒",
|
||||
"Close details" : "关闭细节",
|
||||
"Close" : "关闭",
|
||||
"Owner" : "拥有者",
|
||||
"Expired" : "已过期",
|
||||
"Expires on %s" : "在%s过期",
|
||||
"Expires never" : "从不过期",
|
||||
"Invitation access" : "邀请权限",
|
||||
"Anononymous poll" : "匿名投票",
|
||||
"Usernames hidden to Owner" : "多所有者隐藏用户名",
|
||||
"Usernames visible to Owner" : "对所有者显示用户名",
|
||||
"Click to get link" : "点击以获取链接",
|
||||
"Copy Link" : "复制链接",
|
||||
"Delete poll" : "删除投票",
|
||||
"Edit Poll" : "编辑投票",
|
||||
"Poll expired" : "投票已过期",
|
||||
"Comments" : "评论",
|
||||
"Login or ..." : "登陆或者。。。",
|
||||
"New comment …" : "新评论。。。",
|
||||
"No comments yet. Be the first." : "还没有评论。成为第一个评论的人吧。",
|
||||
"No existing polls." : "没有投票存在。",
|
||||
"By" : "由",
|
||||
"Created" : "已创建",
|
||||
"participated" : "参加了",
|
||||
"Yourself" : "你自己",
|
||||
"Never" : "从不",
|
||||
"Access denied" : "访问被拒绝",
|
||||
"You are not allowed to view this poll or the poll does not exist." : "你无权查看此投票或者此投票不存在。",
|
||||
"You are not allowed to edit this poll or the poll does not exist." : "你无权编辑此投票或者此投票不存在。",
|
||||
"You are not allowed to delete this poll or the poll does not exist." : "你无权删除此投票或者此投票不存在。"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
|
@ -47,7 +47,7 @@ class Application extends App {
|
|||
/**
|
||||
* Controllers
|
||||
*/
|
||||
$container->registerService('PageController', function (IContainer $c) {
|
||||
$container->registerService('PageController', function(IContainer $c) {
|
||||
return new PageController(
|
||||
$c->query('AppName'),
|
||||
$c->query('Request'),
|
||||
|
@ -66,51 +66,51 @@ class Application extends App {
|
|||
);
|
||||
});
|
||||
|
||||
$container->registerService('UserManager', function (IContainer $c) {
|
||||
$container->registerService('UserManager', function(IContainer $c) {
|
||||
return $c->query('ServerContainer')->getUserManager();
|
||||
});
|
||||
|
||||
$container->registerService('GroupManager', function (IContainer $c) {
|
||||
$container->registerService('GroupManager', function(IContainer $c) {
|
||||
return $c->query('ServerContainer')->getGroupManager();
|
||||
});
|
||||
|
||||
$container->registerService('AvatarManager', function (IContainer $c) {
|
||||
$container->registerService('AvatarManager', function(IContainer $c) {
|
||||
return $c->query('ServerContainer')->getAvatarManager();
|
||||
});
|
||||
|
||||
$container->registerService('Logger', function (IContainer $c) {
|
||||
$container->registerService('Logger', function(IContainer $c) {
|
||||
return $c->query('ServerContainer')->getLogger();
|
||||
});
|
||||
|
||||
$container->registerService('L10N', function (IContainer $c) {
|
||||
$container->registerService('L10N', function(IContainer $c) {
|
||||
return $c->query('ServerContainer')->getL10N($c->query('AppName'));
|
||||
});
|
||||
|
||||
$container->registerService('CommentMapper', function (IContainer $c) use ($server) {
|
||||
$container->registerService('CommentMapper', function(IContainer $c) use ($server) {
|
||||
return new CommentMapper(
|
||||
$server->getDatabaseConnection()
|
||||
);
|
||||
});
|
||||
|
||||
$container->registerService('OptionsMapper', function (IContainer $c) use ($server) {
|
||||
$container->registerService('OptionsMapper', function(IContainer $c) use ($server) {
|
||||
return new OptionsMapper(
|
||||
$server->getDatabaseConnection()
|
||||
);
|
||||
});
|
||||
|
||||
$container->registerService('EventMapper', function (IContainer $c) use ($server) {
|
||||
$container->registerService('EventMapper', function(IContainer $c) use ($server) {
|
||||
return new EventMapper(
|
||||
$server->getDatabaseConnection()
|
||||
);
|
||||
});
|
||||
|
||||
$container->registerService('NotificationMapper', function (IContainer $c) use ($server) {
|
||||
$container->registerService('NotificationMapper', function(IContainer $c) use ($server) {
|
||||
return new NotificationMapper(
|
||||
$server->getDatabaseConnection()
|
||||
);
|
||||
});
|
||||
|
||||
$container->registerService('VotesMapper', function (IContainer $c) use ($server) {
|
||||
$container->registerService('VotesMapper', function(IContainer $c) use ($server) {
|
||||
return new VotesMapper(
|
||||
$server->getDatabaseConnection()
|
||||
);
|
||||
|
@ -122,7 +122,7 @@ class Application extends App {
|
|||
*/
|
||||
public function registerNavigationEntry() {
|
||||
$container = $this->getContainer();
|
||||
$container->query('OCP\INavigationManager')->add(function () use ($container) {
|
||||
$container->query('OCP\INavigationManager')->add(function() use ($container) {
|
||||
$urlGenerator = $container->query('OCP\IURLGenerator');
|
||||
$l10n = $container->query('OCP\IL10N');
|
||||
return [
|
||||
|
|
|
@ -0,0 +1,390 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Vinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>
|
||||
*
|
||||
* @author René Gieling <github@dartcafe.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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OCA\Polls\Controller;
|
||||
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\Security\ISecureRandom;
|
||||
|
||||
use OCA\Polls\Db\Event;
|
||||
use OCA\Polls\Db\EventMapper;
|
||||
use OCA\Polls\Db\Options;
|
||||
use OCA\Polls\Db\OptionsMapper;
|
||||
use OCA\Polls\Db\Votes;
|
||||
use OCA\Polls\Db\VotesMapper;
|
||||
use OCA\Polls\Db\Comment;
|
||||
use OCA\Polls\Db\CommentMapper;
|
||||
|
||||
|
||||
|
||||
class ApiController extends Controller {
|
||||
|
||||
private $eventMapper;
|
||||
private $optionsMapper;
|
||||
private $votesMapper;
|
||||
private $commentMapper;
|
||||
|
||||
/**
|
||||
* PageController constructor.
|
||||
* @param string $appName
|
||||
* @param IRequest $request
|
||||
* @param string $userId
|
||||
* @param EventMapper $eventMapper
|
||||
* @param OptionsMapper $optionsMapper
|
||||
* @param VotesMapper $VotesMapper
|
||||
* @param CommentMapper $CommentMapper
|
||||
*/
|
||||
public function __construct(
|
||||
$appName,
|
||||
IGroupManager $groupManager,
|
||||
IRequest $request,
|
||||
IUserManager $userManager,
|
||||
$userId,
|
||||
EventMapper $eventMapper,
|
||||
OptionsMapper $optionsMapper,
|
||||
VotesMapper $VotesMapper,
|
||||
CommentMapper $CommentMapper
|
||||
) {
|
||||
parent::__construct($appName, $request);
|
||||
$this->userId = $userId;
|
||||
$this->groupManager = $groupManager;
|
||||
$this->userManager = $userManager;
|
||||
$this->eventMapper = $eventMapper;
|
||||
$this->optionsMapper = $optionsMapper;
|
||||
$this->votesMapper = $VotesMapper;
|
||||
$this->commentMapper = $CommentMapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @return DataResponse
|
||||
*/
|
||||
public function getSiteUsersAndGroups($getGroups = true, $getUsers = true, $skipGroups = array(), $skipUsers = array()) {
|
||||
$list = array();
|
||||
$data = array();
|
||||
if ($getGroups) {
|
||||
$groups = $this->groupManager->search('');
|
||||
foreach ($groups as $group) {
|
||||
if (!in_array($group->getGID(), $skipGroups)) {
|
||||
$list[] = [
|
||||
'id' => $group->getGID(),
|
||||
'type' => 'group',
|
||||
'displayName' => $group->getGID(),
|
||||
'avatarURL' => ''
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($getUsers) {
|
||||
$users = $this->userManager->searchDisplayName('');
|
||||
foreach ($users as $user) {
|
||||
if (!in_array($user->getUID(), $skipUsers)) {
|
||||
$list[] = [
|
||||
'id' => $user->getUID(),
|
||||
'type' => 'user',
|
||||
'displayName' => $user->getDisplayName(),
|
||||
'avatarURL' => ''
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$data['siteusers'] = $list;
|
||||
return new DataResponse($data, Http::STATUS_OK);
|
||||
}
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @return Array
|
||||
*/
|
||||
function convertAccessList($item) {
|
||||
$split = Array();
|
||||
if (strpos($item, 'user_') === 0) {
|
||||
$user = $this->userManager->get(substr($item, 5));
|
||||
$split = [
|
||||
'id' => $user->getUID(),
|
||||
'type' => 'user',
|
||||
'displayName' => $user->getDisplayName(),
|
||||
'avatarURL' => ''
|
||||
];
|
||||
} elseif (strpos($item, 'group_') === 0) {
|
||||
$group = substr($item, 6);
|
||||
$group = $this->groupManager->get($group);
|
||||
$split = [
|
||||
'id' => $group->getGID(),
|
||||
'type' => 'group',
|
||||
'displayName' => $group->getDisplayName(),
|
||||
'avatarURL' => '',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
return($split);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @PublicPage
|
||||
* @param string $hash
|
||||
* @return DataResponse
|
||||
*/
|
||||
|
||||
public function getPoll($hash) {
|
||||
if (!\OC::$server->getUserSession()->getUser() instanceof IUser) {
|
||||
return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
try {
|
||||
$poll = $this->eventMapper->findByHash($hash);
|
||||
|
||||
if ($poll->getExpire() === null) {
|
||||
$expired = false;
|
||||
$expiration = false;
|
||||
} else {
|
||||
$expired = time() > strtotime($poll->getExpire());
|
||||
$expiration = true;
|
||||
}
|
||||
|
||||
if ($poll->getType() == 0) {
|
||||
$pollType = 'datePoll';
|
||||
} else {
|
||||
$pollType = 'textPoll';
|
||||
};
|
||||
|
||||
if ($poll->getOwner() !== \OC::$server->getUserSession()->getUser()->getUID()) {
|
||||
$mode = 'create';
|
||||
} else {
|
||||
$mode = 'edit';
|
||||
}
|
||||
$accessList = Array();
|
||||
$accessType = $poll->getAccess();
|
||||
if (!strpos('|public|hidden|registered', $accessType)) {
|
||||
$accessList = explode(';',$accessType);
|
||||
$accessList = array_filter($accessList);
|
||||
$accessList = array_map(Array($this,'convertAccessList'), $accessList);
|
||||
$accessType = 'select';
|
||||
}
|
||||
|
||||
$data = array();
|
||||
$commentsList = array();
|
||||
$optionList = array();
|
||||
$votesList = array();
|
||||
|
||||
} catch (DoesNotExistException $e) {
|
||||
return new DataResponse($e, Http::STATUS_NOT_FOUND);
|
||||
};
|
||||
|
||||
|
||||
try {
|
||||
$options = $this->optionsMapper->findByPoll($poll->getId());
|
||||
foreach ($options as $optionElement) {
|
||||
$optionList[] = [
|
||||
'id' => $optionElement->getId(),
|
||||
'text' => $optionElement->getPollOptionText(),
|
||||
'timestamp' => $optionElement->getTimestamp()
|
||||
];
|
||||
};
|
||||
} catch (DoesNotExistException $e) {
|
||||
// ignore
|
||||
};
|
||||
|
||||
try {
|
||||
$votes = $this->votesMapper->findByPoll($poll->getId());
|
||||
foreach ($votes as $voteElement) {
|
||||
$votesList[] = [
|
||||
'id' => $voteElement->getId(),
|
||||
'userId' => $voteElement->getUserId(),
|
||||
'voteOptionId' => $voteElement->getVoteOptionId(),
|
||||
'voteOptionText' => $voteElement->getVoteOptionText(),
|
||||
'voteAnswer' => $voteElement->getVoteAnswer()
|
||||
];
|
||||
};
|
||||
} catch (DoesNotExistException $e) {
|
||||
// ignore
|
||||
};
|
||||
|
||||
try {
|
||||
$comments = $this->commentMapper->findByPoll($poll->getId());
|
||||
foreach ($comments as $commentElement) {
|
||||
$commentsList[] = [
|
||||
'id' => $commentElement->getId(),
|
||||
'userId' => $commentElement->getUserId(),
|
||||
'date' => $commentElement->getDt() . ' UTC',
|
||||
'comment' => $commentElement->getComment()
|
||||
];
|
||||
};
|
||||
} catch (DoesNotExistException $e) {
|
||||
// ignore
|
||||
};
|
||||
|
||||
$data['poll'] = [
|
||||
'result' => 'found',
|
||||
'mode' => $mode,
|
||||
'comments' => $commentsList,
|
||||
'votes' => $votesList,
|
||||
'shares' => $accessList,
|
||||
'event' => [
|
||||
'id' => $poll->getId(),
|
||||
'hash' => $hash,
|
||||
'type' => $pollType,
|
||||
'title' => $poll->getTitle(),
|
||||
'description' => $poll->getDescription(),
|
||||
'owner' => $poll->getOwner(),
|
||||
'created' => $poll->getCreated(),
|
||||
'access' => $accessType,
|
||||
'expiration' => $expiration,
|
||||
'expired' => $expired,
|
||||
'expirationDate' => $poll->getExpire(),
|
||||
'isAnonymous' => $poll->getIsAnonymous(),
|
||||
'fullAnonymous' => $poll->getFullAnonymous(),
|
||||
'disallowMaybe' => $poll->getDisallowMaybe()
|
||||
],
|
||||
'options' => [
|
||||
'pollDates' => [],
|
||||
'pollTexts' => $optionList
|
||||
]
|
||||
];
|
||||
|
||||
return new DataResponse($data, Http::STATUS_OK);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @param string $poll
|
||||
* @return DataResponse
|
||||
*/
|
||||
public function writePoll($event, $options, $shares, $mode) {
|
||||
$user = \OC::$server->getUserSession()->getUser();
|
||||
|
||||
if (!$user instanceof IUser) {
|
||||
return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
$userId = \OC::$server->getUserSession()->getUser()->getUID();
|
||||
|
||||
$newEvent = new Event();
|
||||
|
||||
// Set the configuration options entered by the user
|
||||
$newEvent->setTitle($event['title']);
|
||||
$newEvent->setDescription($event['description']);
|
||||
|
||||
$newEvent->setType($event['type']);
|
||||
$newEvent->setIsAnonymous($event['isAnonymous']);
|
||||
$newEvent->setFullAnonymous($event['fullAnonymous']);
|
||||
$newEvent->setDisallowMaybe($event['disallowMaybe']);
|
||||
|
||||
if ($event['access'] === 'select') {
|
||||
$shareAccess = '';
|
||||
foreach ($shares as $shareElement) {
|
||||
if ($shareElement['type'] === 'user') {
|
||||
$shareAccess = $shareAccess . 'user_' . $shareElement['id'] . ';';
|
||||
} elseif ($shareElement['type'] === 'group') {
|
||||
$shareAccess = $shareAccess . 'group_' . $shareElement['id'] . ';';
|
||||
}
|
||||
}
|
||||
$newEvent->setAccess(rtrim($shareAccess, ';'));
|
||||
} else {
|
||||
$newEvent->setAccess($event['access']);
|
||||
}
|
||||
|
||||
if ($event['expiration']) {
|
||||
$newEvent->setExpire($event['expirationDate']);
|
||||
} else {
|
||||
$newEvent->setExpire(null);
|
||||
}
|
||||
|
||||
if ($event['type'] === 'datePoll') {
|
||||
$newEvent->setType(0);
|
||||
} elseif ($event['type'] === 'textPoll') {
|
||||
$newEvent->setType(1);
|
||||
}
|
||||
|
||||
if ($mode === 'edit') {
|
||||
// Edit existing poll
|
||||
$oldPoll = $this->eventMapper->findByHash($event['hash']);
|
||||
|
||||
// Check if current user is allowed to edit existing poll
|
||||
if ($oldPoll->getOwner() !== $userId) {
|
||||
// If current user is not owner of existing poll deny access
|
||||
return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
// else take owner, hash and id of existing poll
|
||||
$newEvent->setOwner($oldPoll->getOwner());
|
||||
$newEvent->setHash($oldPoll->getHash());
|
||||
$newEvent->setId($oldPoll->getId());
|
||||
$this->eventMapper->update($newEvent);
|
||||
$this->optionsMapper->deleteByPoll($newEvent->getId());
|
||||
|
||||
} elseif ($mode === 'create') {
|
||||
// Create new poll
|
||||
// Define current user as owner, set new creation date and create a new hash
|
||||
$newEvent->setOwner($userId);
|
||||
$newEvent->setCreated(date('Y-m-d H:i:s'));
|
||||
$newEvent->setHash(\OC::$server->getSecureRandom()->generate(
|
||||
16,
|
||||
ISecureRandom::CHAR_DIGITS .
|
||||
ISecureRandom::CHAR_LOWER .
|
||||
ISecureRandom::CHAR_UPPER
|
||||
));
|
||||
$newEvent = $this->eventMapper->insert($newEvent);
|
||||
}
|
||||
|
||||
// Update options
|
||||
if ($event['type'] === 'datePoll') {
|
||||
foreach ($options['pollDates'] as $optionElement) {
|
||||
$newOption = new Options();
|
||||
|
||||
$newOption->setPollId($newEvent->getId());
|
||||
$newOption->setPollOptionText(date('Y-m-d H:i:s', $optionElement['timestamp']));
|
||||
$newOption->setTimestamp($optionElement['timestamp']);
|
||||
|
||||
$this->optionsMapper->insert($newOption);
|
||||
}
|
||||
} elseif ($event['type'] === "textPoll") {
|
||||
foreach ($options['pollTexts'] as $optionElement) {
|
||||
$newOption = new Options();
|
||||
|
||||
$newOption->setPollId($newEvent->getId());
|
||||
$newOption->setpollOptionText(htmlspecialchars($optionElement['text']));
|
||||
|
||||
$this->optionsMapper->insert($newOption);
|
||||
}
|
||||
}
|
||||
return new DataResponse(array(
|
||||
'id' => $newEvent->getId(),
|
||||
'hash' => $newEvent->getHash()
|
||||
), Http::STATUS_OK);
|
||||
|
||||
}
|
||||
}
|
|
@ -267,219 +267,19 @@ class PageController extends Controller {
|
|||
* @return TemplateResponse
|
||||
*/
|
||||
public function editPoll($hash) {
|
||||
$poll = $this->eventMapper->findByHash($hash);
|
||||
if ($this->userId !== $poll->getOwner()) {
|
||||
return new TemplateResponse('polls', 'no.create.tmpl');
|
||||
}
|
||||
$options = $this->optionsMapper->findByPoll($poll->getId());
|
||||
return new TemplateResponse('polls', 'create.tmpl', [
|
||||
'poll' => $poll,
|
||||
'options' => $options,
|
||||
'userId' => $this->userId,
|
||||
'userMgr' => $this->userMgr,
|
||||
'urlGenerator' => $this->urlGenerator
|
||||
'urlGenerator' => $this->urlGenerator,
|
||||
'hash' => $hash
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @param int $pollId
|
||||
* @param string $pollType
|
||||
* @param string $pollTitle
|
||||
* @param string $pollDesc
|
||||
* @param string $userId
|
||||
* @param string $chosenOptions
|
||||
* @param int $expireTs
|
||||
* @param string $accessType
|
||||
* @param string $accessValues
|
||||
* @param bool $isAnonymous
|
||||
* @param bool $hideNames
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function updatePoll(
|
||||
$pollId,
|
||||
$pollType,
|
||||
$pollTitle,
|
||||
$pollDesc,
|
||||
$chosenOptions,
|
||||
$expireTs,
|
||||
$accessType,
|
||||
$accessValues,
|
||||
$isAnonymous,
|
||||
$hideNames
|
||||
) {
|
||||
|
||||
|
||||
$event = $this->eventMapper->find($pollId);
|
||||
$event->setTitle($pollTitle);
|
||||
$event->setDescription($pollDesc);
|
||||
$event->setIsAnonymous($isAnonymous ? 1 : 0);
|
||||
$event->setFullAnonymous($isAnonymous && $hideNames ? 1 : 0);
|
||||
|
||||
if ($accessType === 'select') {
|
||||
if (isset($accessValues)) {
|
||||
$accessValues = json_decode($accessValues);
|
||||
if ($accessValues !== null) {
|
||||
$groups = array();
|
||||
$users = array();
|
||||
if ($accessValues->groups !== null) {
|
||||
$groups = $accessValues->groups;
|
||||
}
|
||||
if ($accessValues->users !== null) {
|
||||
$users = $accessValues->users;
|
||||
}
|
||||
$accessType = '';
|
||||
foreach ($groups as $gid) {
|
||||
$accessType .= $gid . ';';
|
||||
}
|
||||
foreach ($users as $uid) {
|
||||
$accessType .= $uid . ';';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$event->setAccess($accessType);
|
||||
/** @var string[] $optionsArray */
|
||||
$optionsArray = json_decode($chosenOptions, true);
|
||||
|
||||
$expire = null;
|
||||
if ($expireTs !== 0 && $expireTs !== '') {
|
||||
$expire = date('Y-m-d H:i:s', $expireTs);
|
||||
}
|
||||
$event->setExpire($expire);
|
||||
|
||||
$this->optionsMapper->deleteByPoll($pollId);
|
||||
if ($pollType === 'event') {
|
||||
$event->setType(0);
|
||||
$this->eventMapper->update($event);
|
||||
sort($optionsArray);
|
||||
foreach ($optionsArray as $optionElement) {
|
||||
$option = new Options();
|
||||
$option->setPollId($pollId);
|
||||
$option->setPollOptionText(date('Y-m-d H:i:s', (int)$optionElement));
|
||||
$this->optionsMapper->insert($option);
|
||||
}
|
||||
} else {
|
||||
$event->setType(1);
|
||||
$this->eventMapper->update($event);
|
||||
foreach ($optionsArray as $optionElement) {
|
||||
$option = new Options();
|
||||
$option->setPollId($pollId);
|
||||
$option->setpollOptionText($optionElement);
|
||||
$this->optionsMapper->insert($option);
|
||||
}
|
||||
}
|
||||
$url = $this->urlGenerator->linkToRoute('polls.page.index');
|
||||
return new RedirectResponse($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function createPoll() {
|
||||
return new TemplateResponse('polls', 'create.tmpl',
|
||||
['userId' => $this->userId, 'userMgr' => $this->userMgr, 'urlGenerator' => $this->urlGenerator]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
* @param string $pollType
|
||||
* @param string $pollTitle
|
||||
* @param string $pollDesc
|
||||
* @param string $userId
|
||||
* @param string $chosenOptions
|
||||
* @param int $expireTs
|
||||
* @param string $accessType
|
||||
* @param string $accessValues
|
||||
* @param bool $isAnonymous
|
||||
* @param bool $hideNames
|
||||
* @return RedirectResponse
|
||||
*/
|
||||
public function insertPoll(
|
||||
$pollType,
|
||||
$pollTitle,
|
||||
$pollDesc,
|
||||
$userId,
|
||||
$chosenOptions,
|
||||
$expireTs,
|
||||
$accessType,
|
||||
$accessValues,
|
||||
$isAnonymous,
|
||||
$hideNames
|
||||
) {
|
||||
$event = new Event();
|
||||
$event->setTitle($pollTitle);
|
||||
$event->setDescription($pollDesc);
|
||||
$event->setOwner($userId);
|
||||
$event->setCreated(date('Y-m-d H:i:s'));
|
||||
$event->setHash(\OC::$server->getSecureRandom()->generate(
|
||||
16,
|
||||
ISecureRandom::CHAR_DIGITS .
|
||||
ISecureRandom::CHAR_LOWER .
|
||||
ISecureRandom::CHAR_UPPER
|
||||
));
|
||||
$event->setIsAnonymous($isAnonymous ? 1 : 0);
|
||||
$event->setFullAnonymous($isAnonymous && $hideNames ? 1 : 0);
|
||||
|
||||
if ($accessType === 'select') {
|
||||
if (isset($accessValues)) {
|
||||
$accessValues = json_decode($accessValues);
|
||||
if ($accessValues !== null) {
|
||||
$groups = array();
|
||||
$users = array();
|
||||
if ($accessValues->groups !== null) {
|
||||
$groups = $accessValues->groups;
|
||||
}
|
||||
if ($accessValues->users !== null) {
|
||||
$users = $accessValues->users;
|
||||
}
|
||||
$accessType = '';
|
||||
foreach ($groups as $gid) {
|
||||
$accessType .= $gid . ';';
|
||||
}
|
||||
foreach ($users as $uid) {
|
||||
$accessType .= $uid . ';';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$event->setAccess($accessType);
|
||||
/** @var string[] $optionsArray */
|
||||
$optionsArray = json_decode($chosenOptions, true);
|
||||
|
||||
$expire = null;
|
||||
if ($expireTs !== 0 && $expireTs !== '') {
|
||||
$expire = date('Y-m-d H:i:s', $expireTs);
|
||||
}
|
||||
$event->setExpire($expire);
|
||||
|
||||
if ($pollType === 'event') {
|
||||
$event->setType(0);
|
||||
$ins = $this->eventMapper->insert($event);
|
||||
$pollId = $ins->getId();
|
||||
sort($optionsArray);
|
||||
foreach ($optionsArray as $optionElement) {
|
||||
$option = new Options();
|
||||
$option->setPollId($pollId);
|
||||
$option->setPollOptionText(date('Y-m-d H:i:s', (int)$optionElement));
|
||||
$this->optionsMapper->insert($option);
|
||||
}
|
||||
} else {
|
||||
$event->setType(1);
|
||||
$ins = $this->eventMapper->insert($event);
|
||||
$pollId = $ins->getId();
|
||||
foreach ($optionsArray as $optionElement) {
|
||||
$option = new Options();
|
||||
$option->setPollId($pollId);
|
||||
$option->setpollOptionText($optionElement);
|
||||
$this->optionsMapper->insert($option);
|
||||
}
|
||||
}
|
||||
$url = $this->urlGenerator->linkToRoute('polls.page.index');
|
||||
return new RedirectResponse($url);
|
||||
['urlGenerator' => $this->urlGenerator]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -520,8 +320,6 @@ class PageController extends Controller {
|
|||
$poll = $this->eventMapper->find($pollId);
|
||||
|
||||
if ($changed) {
|
||||
// $dates = json_decode($dates);
|
||||
// $types = json_decode($types);
|
||||
$options = json_decode($options);
|
||||
$answers = json_decode($answers);
|
||||
$count_options = count($options);
|
||||
|
@ -531,12 +329,7 @@ class PageController extends Controller {
|
|||
$vote = new Votes();
|
||||
$vote->setPollId($pollId);
|
||||
$vote->setUserId($userId);
|
||||
// $part->setDt(date('Y-m-d H:i:s', $options[$i]));
|
||||
// $part->setType($types[$i]);
|
||||
// $vote->setVoteOptionId($options[$i]); //Todo
|
||||
// $vote->setVoteOptionText($poll->getOptionTextFromId($options[$i])); //Todo
|
||||
// $vote->setVoteType($types[$i]); //needed?
|
||||
$vote->setVoteOptionText($options[$i]);
|
||||
$vote->setVoteOptionText(htmlspecialchars($options[$i]));
|
||||
$vote->setVoteAnswer($answers[$i]);
|
||||
$this->votesMapper->insert($vote);
|
||||
|
||||
|
@ -574,7 +367,7 @@ class PageController extends Controller {
|
|||
return new JSONResponse(array(
|
||||
'userId' => $userId,
|
||||
'displayName' => $displayName,
|
||||
'timeStamp' => $timeStamp *100,
|
||||
'timeStamp' => $timeStamp * 100,
|
||||
'date' => date('Y-m-d H:i:s', $timeStamp),
|
||||
'relativeNow' => $this->trans->t('just now'),
|
||||
'comment' => $commentBox
|
||||
|
@ -636,15 +429,15 @@ class PageController extends Controller {
|
|||
$sUsers[] = str_replace('user_', '', $su);
|
||||
}
|
||||
foreach ($userNames as $u) {
|
||||
$alreadyAdded = false;
|
||||
$allreadyAdded = false;
|
||||
foreach ($sUsers as &$su) {
|
||||
if ($su === $u->getUID()) {
|
||||
unset($su);
|
||||
$alreadyAdded = true;
|
||||
$allreadyAdded = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$alreadyAdded) {
|
||||
if (!$allreadyAdded) {
|
||||
$users[] = array('uid' => $u->getUID(), 'displayName' => $u->getDisplayName(), 'isGroup' => false);
|
||||
} else {
|
||||
continue;
|
||||
|
@ -673,12 +466,14 @@ class PageController extends Controller {
|
|||
}
|
||||
// Nextcloud >= 12
|
||||
$groups = $this->groupManager->getUserGroups(\OC::$server->getUserSession()->getUser());
|
||||
return array_map(function ($group) {
|
||||
return array_map(function($group) {
|
||||
return $group->getGID();
|
||||
}, $groups);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if user has access to this poll
|
||||
*
|
||||
* @param Event $poll
|
||||
* @return bool
|
||||
*/
|
||||
|
@ -719,4 +514,20 @@ class PageController extends Controller {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Check if user is owner of this poll
|
||||
*
|
||||
* @param Event $poll
|
||||
* @return bool
|
||||
*/
|
||||
|
||||
private function userIsOwner($poll) {
|
||||
$owner = $poll->getOwner();
|
||||
|
||||
if ($owner === $this->userId) {
|
||||
return true;
|
||||
}
|
||||
Util::writeLog('polls', $this->userId, Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
namespace OCA\Polls\Db;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
/**
|
||||
* @method string getUserId()
|
||||
* @method void setUserId(string $value)
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
namespace OCA\Polls\Db;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
/**
|
||||
* @method integer getType()
|
||||
* @method void setType(integer $value)
|
||||
|
@ -45,6 +47,8 @@ namespace OCA\Polls\Db;
|
|||
* @method void setIsAnonymous(integer $value)
|
||||
* @method integer getFullAnonymous()
|
||||
* @method void setFullAnonymous(integer $value)
|
||||
* @method integer getDisallowMaybe()
|
||||
* @method void setDisallowMaybe(integer $value)
|
||||
*/
|
||||
class Event extends Model {
|
||||
protected $type;
|
||||
|
@ -57,6 +61,7 @@ class Event extends Model {
|
|||
protected $hash;
|
||||
protected $isAnonymous;
|
||||
protected $fullAnonymous;
|
||||
protected $disallowMaybe;
|
||||
|
||||
/**
|
||||
* Event constructor.
|
||||
|
@ -65,5 +70,6 @@ class Event extends Model {
|
|||
$this->addType('type', 'integer');
|
||||
$this->addType('isAnonymous', 'integer');
|
||||
$this->addType('fullAnonymous', 'integer');
|
||||
$this->addType('disallowMaybe', 'integer');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
namespace OCA\Polls\Db;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
/**
|
||||
* @method string getUserId()
|
||||
* @method void setUserId(string $value)
|
||||
|
|
|
@ -24,20 +24,27 @@
|
|||
|
||||
namespace OCA\Polls\Db;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
/**
|
||||
* @method integer getPollId()
|
||||
* @method void setPollId(integer $value)
|
||||
* @method string getPollOptionText()
|
||||
* @method void setPollOptionText(string $value)
|
||||
* @method string getTimestamp()
|
||||
* @method void setTimestamp(Integer $value)
|
||||
*/
|
||||
class Options extends Model {
|
||||
protected $pollId;
|
||||
protected $pollOptionText;
|
||||
protected $timestamp;
|
||||
|
||||
/**
|
||||
* Options constructor.
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->addType('pollId', 'integer');
|
||||
$this->addType('pollOptionText', 'string');
|
||||
$this->addType('timestamp', 'integer');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
|
||||
namespace OCA\Polls\Db;
|
||||
|
||||
use OCP\AppFramework\Db\Entity;
|
||||
|
||||
/**
|
||||
* @method integer getPollId()
|
||||
* @method void setPollId(integer $value)
|
||||
|
|
|
@ -35,6 +35,7 @@ use OCP\Migration\IOutput;
|
|||
|
||||
/**
|
||||
* Installation class for the polls app.
|
||||
* Initial db creation
|
||||
*/
|
||||
class Version009000Date20171202105141 extends SimpleMigrationStep {
|
||||
|
||||
|
@ -121,7 +122,7 @@ class Version009000Date20171202105141 extends SimpleMigrationStep {
|
|||
'notnull' => false,
|
||||
]);
|
||||
$table->addColumn('poll_option_text', Type::STRING, [
|
||||
'notnull' => false, // maybe true?
|
||||
'notnull' => false, // maybe true?
|
||||
'length' => 256,
|
||||
]);
|
||||
$table->setPrimaryKey(['id']);
|
||||
|
@ -219,7 +220,7 @@ class Version009000Date20171202105141 extends SimpleMigrationStep {
|
|||
}
|
||||
|
||||
/**
|
||||
* Copy date options
|
||||
* Copy date options
|
||||
*/
|
||||
protected function copyDateOptions() {
|
||||
$insert = $this->connection->getQueryBuilder();
|
||||
|
@ -246,7 +247,7 @@ class Version009000Date20171202105141 extends SimpleMigrationStep {
|
|||
}
|
||||
|
||||
/**
|
||||
* Copy text options
|
||||
* Copy text options
|
||||
*/
|
||||
protected function copyTextOptions() {
|
||||
$insert = $this->connection->getQueryBuilder();
|
||||
|
@ -273,7 +274,7 @@ class Version009000Date20171202105141 extends SimpleMigrationStep {
|
|||
}
|
||||
|
||||
/**
|
||||
* Copy date votes
|
||||
* Copy date votes
|
||||
*/
|
||||
protected function copyDateVotes() {
|
||||
$insert = $this->connection->getQueryBuilder();
|
||||
|
@ -351,8 +352,8 @@ class Version009000Date20171202105141 extends SimpleMigrationStep {
|
|||
->from('polls_options')
|
||||
// ->where($queryFind->expr()->eq('poll_id', $pollId))
|
||||
// ->andWhere($queryFind->expr()->eq('poll_option', $text));
|
||||
->where('poll_id = "'. $pollId .'"')
|
||||
->andWhere('poll_option_text ="' .$text .'"');
|
||||
->where('poll_id = "' . $pollId . '"')
|
||||
->andWhere('poll_option_text ="' . $text . '"');
|
||||
|
||||
$resultFind = $queryFind->execute();
|
||||
$row = $resultFind->fetch();
|
||||
|
|
|
@ -21,9 +21,16 @@
|
|||
*
|
||||
*/
|
||||
namespace OCA\Polls\Migration;
|
||||
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
use OCP\Migration\IOutput;
|
||||
|
||||
/**
|
||||
* Deleting unused tables 'polls_dts', 'polls_txts', 'polls_particip' and 'polls_particip_text'
|
||||
* after migration in 'Version009000Date20171202105141.php'
|
||||
*/
|
||||
|
||||
class Version009000Date20180202213017 extends SimpleMigrationStep {
|
||||
/**
|
||||
* @param IOutput $output
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
|
||||
*
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
*
|
||||
* @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/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Polls\Migration;
|
||||
|
||||
use Doctrine\DBAL\Exception\TableNotFoundException;
|
||||
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
use OCP\Migration\IOutput;
|
||||
|
||||
/**
|
||||
* Auto-generated migration step: Please modify to your needs!
|
||||
* Adding column 'disallow_maybe' to table 'polls_events'
|
||||
*/
|
||||
class Version009000Date20180421050115 extends SimpleMigrationStep {
|
||||
/** @var IDBConnection */
|
||||
protected $connection;
|
||||
|
||||
/** @var IConfig */
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @param IDBConnection $connection
|
||||
* @param IConfig $config
|
||||
*/
|
||||
public function __construct(IDBConnection $connection, IConfig $config) {
|
||||
$this->connection = $connection;
|
||||
$this->config = $config;
|
||||
}
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @return null|ISchemaWrapper
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
/** @var ISchemaWrapper $schema */
|
||||
$schema = $schemaClosure();
|
||||
|
||||
$table = $schema->getTable('polls_events');
|
||||
$table->addColumn('disallow_maybe', Type::INTEGER, [
|
||||
'notnull' => false,
|
||||
'default' => 0
|
||||
]);
|
||||
|
||||
return $schema;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
namespace OCA\Polls\Migration;
|
||||
|
||||
use Doctrine\DBAL\Exception\TableNotFoundException;
|
||||
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IConfig;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
use OCP\Migration\IOutput;
|
||||
|
||||
/**
|
||||
* Adding timestamp to options table
|
||||
*/
|
||||
class Version009000Date20180501201949 extends SimpleMigrationStep {
|
||||
/** @var IDBConnection */
|
||||
protected $connection;
|
||||
|
||||
/** @var IConfig */
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* @param IDBConnection $connection
|
||||
* @param IConfig $config
|
||||
*/
|
||||
public function __construct(IDBConnection $connection, IConfig $config) {
|
||||
$this->connection = $connection;
|
||||
$this->config = $config;
|
||||
}
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @return null|ISchemaWrapper
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
/** @var ISchemaWrapper $schema */
|
||||
$schema = $schemaClosure();
|
||||
|
||||
$table = $schema->getTable('polls_options');
|
||||
$table->addColumn('timestamp', Type::INTEGER, [
|
||||
'notnull' => false,
|
||||
'default' => 0
|
||||
]);
|
||||
|
||||
return $schema;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @since 13.0.0
|
||||
*/
|
||||
public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "polls",
|
||||
"description": "Polls app for nextcloud",
|
||||
"version": "0.9.0",
|
||||
"author": "Rene Gieling",
|
||||
"license": "AGPL-3.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"live": "cross-env NODE_ENV=development webpack --progress --hot --config src/js/webpack.config.js --watch",
|
||||
"dev": "cross-env NODE_ENV=development webpack --progress --hide-modules --config src/js/webpack.config.js --watch",
|
||||
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules --config src/js/webpack.config.js",
|
||||
"test": "cross-env NODE_ENV=development webpack --progress --hide-modules --config src/js/webpack.config.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/nextcloud/polls.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/nextcloud/polls/issues"
|
||||
},
|
||||
"homepage": "https://github.com/nextcloud/polls#readme",
|
||||
"dependencies": {
|
||||
"axios": "^0.17.1",
|
||||
"lodash": "^4.17.11",
|
||||
"moment": "^2.22.1",
|
||||
"nextcloud-vue": "^0.1.2",
|
||||
"velocity-animate": "^1.5.1",
|
||||
"vue": "^2.5.16"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not ie <= 8"
|
||||
],
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-loader": "^7.1.5",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-preset-stage-3": "^6.24.1",
|
||||
"cross-env": "^5.2.0",
|
||||
"css-loader": "^0.28.8",
|
||||
"file-loader": "^1.1.6",
|
||||
"node-sass": "^4.9.3",
|
||||
"sass-loader": "^7.1.0",
|
||||
"vue-loader": "^13.7.3",
|
||||
"vue-template-compiler": "^2.5.17",
|
||||
"webpack": "^3.12.0"
|
||||
}
|
||||
}
|
Двоичные данные
screenshots/edit-poll.png
До Ширина: | Высота: | Размер: 81 KiB После Ширина: | Высота: | Размер: 53 KiB |
Двоичные данные
screenshots/overview.png
До Ширина: | Высота: | Размер: 128 KiB После Ширина: | Высота: | Размер: 74 KiB |
Двоичные данные
screenshots/vote-mobile-landscape.png
До Ширина: | Высота: | Размер: 36 KiB После Ширина: | Высота: | Размер: 37 KiB |
Двоичные данные
screenshots/vote-mobile-portrait.png
До Ширина: | Высота: | Размер: 41 KiB После Ширина: | Высота: | Размер: 38 KiB |
Двоичные данные
screenshots/vote.png
До Ширина: | Высота: | Размер: 136 KiB После Ширина: | Высота: | Размер: 42 KiB |
|
@ -0,0 +1,521 @@
|
|||
<template>
|
||||
<div id="create-poll" class="flex-column">
|
||||
<div class="controls">
|
||||
<breadcrump :index-page="indexPage" :intitle="title"></breadcrump>
|
||||
<button @click="writePoll(poll.mode)" class="button btn primary"><span>{{ saveButtonTitle }}</span></button>
|
||||
<a :href="indexPage" class="button">{{ t('polls', 'Cancel') }}</a>
|
||||
|
||||
<button @click="switchSidebar" class="button">
|
||||
<span class="symbol icon-settings"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="polls-content">
|
||||
<div class="workbench">
|
||||
<div>
|
||||
<h2>{{ t('polls', 'Poll description') }}</h2>
|
||||
|
||||
<label>{{ t('polls', 'Title') }}</label>
|
||||
<input type="text" id="pollTitle" :class="{ error: titleEmpty }" v-model="poll.event.title">
|
||||
|
||||
<label>{{ t('polls', 'Description') }}</label>
|
||||
<textarea id="pollDesc" v-model="poll.event.description" style="resize: vertical; width: 100%;"></textarea>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2>{{ t('polls', 'Vote options') }}</h2>
|
||||
|
||||
<div v-if="poll.mode == 'create'">
|
||||
<input id="datePoll" v-model="poll.event.type" value="datePoll" type="radio" class="radio" :disabled="protect"/>
|
||||
<label for="datePoll">{{ t('polls', 'Event schedule') }}</label>
|
||||
<input id="textPoll" v-model="poll.event.type" value="textPoll" type="radio" class="radio" :disabled="protect"/>
|
||||
<label for="textPoll">{{ t('polls', 'Text based') }}</label>
|
||||
</div>
|
||||
|
||||
|
||||
<transition-group
|
||||
id="date-poll-list"
|
||||
name="list"
|
||||
tag="ul"
|
||||
class="poll-table"
|
||||
v-show="poll.event.type === 'datePoll'">
|
||||
<li
|
||||
is="date-poll-item"
|
||||
v-for="(pollDate, index) in poll.options.pollDates"
|
||||
:option="pollDate"
|
||||
:key="pollDate.id"
|
||||
@remove="poll.options.pollDates.splice(index, 1)">
|
||||
</li>
|
||||
</transition-group>
|
||||
<date-picker-input @change="addNewPollDate"
|
||||
v-bind="optionDatePicker"
|
||||
style="width:100%"
|
||||
v-show="poll.event.type === 'datePoll'"
|
||||
confirm />
|
||||
|
||||
|
||||
<transition-group
|
||||
id="text-poll-list"
|
||||
name="list"
|
||||
tag="ul"
|
||||
class="poll-table"
|
||||
v-show="poll.event.type === 'textPoll'">
|
||||
<li
|
||||
is="text-poll-item"
|
||||
v-for="(pollText, index) in poll.options.pollTexts"
|
||||
:option="pollText"
|
||||
:key="pollText.id"
|
||||
@remove="poll.options.pollTexts.splice(index, 1)">
|
||||
</li>
|
||||
</transition-group>
|
||||
|
||||
<div id="poll-item-selector-text" v-show="poll.event.type === 'textPoll'" >
|
||||
<input v-model="newPollText" @keyup.enter="addNewPollText()" :placeholder=" t('polls', 'Add option') ">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="polls-sidebar" v-if="sidebar" class="flex-column detailsView scroll-container">
|
||||
<div class="header">
|
||||
<div class="pollInformation flex-column">
|
||||
<user-div description="Owner" :user-id="poll.event.owner"></user-div>
|
||||
<cloud-div v-bind:options="poll.event"></cloud-div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="tabHeaders">
|
||||
<li class="tabHeader selected" data-tabid="configurationsTabView" data-tabindex="0">
|
||||
<a href="#">{{ t('polls', 'Configuration') }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div>
|
||||
<div class="flex-wrap align-centered space-between" @click="protect=false" v-if="protect">
|
||||
<span>{{ t('polls', 'Configuration is locked. Changing options may result in unwanted behaviour,but you can unlock it anyway.') }}</span>
|
||||
<button> {{ t('polls', 'Unlock configuration ') }} </button>
|
||||
</div>
|
||||
<div id="configurationsTabView" class="tab configurationsTabView flex-wrap">
|
||||
|
||||
<div class="configBox flex-column" v-if="poll.mode =='edit'">
|
||||
<label class="title">{{ t('polls', 'Poll type') }}</label>
|
||||
<input id="datePoll" v-model="poll.event.type" value="datePoll" type="radio" class="radio" :disabled="protect"/>
|
||||
<label for="datePoll">{{ t('polls', 'Event schedule') }}</label>
|
||||
<input id="textPoll" v-model="poll.event.type" value="textPoll" type="radio" class="radio" :disabled="protect"/>
|
||||
<label for="textPoll">{{ t('polls', 'Text based') }}</label>
|
||||
</div>
|
||||
|
||||
<div class="configBox flex-column">
|
||||
<label class="title">{{ t('polls', 'Poll configurations') }}</label>
|
||||
<input :disabled="protect" id="disallowMaybe" v-model="poll.event.disallowMaybe"type="checkbox" class="checkbox" />
|
||||
<label for="disallowMaybe">{{ t('polls', 'Disallow maybe vote') }}</label>
|
||||
|
||||
<input :disabled="protect" id="anonymous" v-model="poll.event.isAnonymous"type="checkbox" class="checkbox" />
|
||||
<label for="anonymous">{{ t('polls', 'Anonymous poll') }}</label>
|
||||
|
||||
<input :disabled="protect" id="trueAnonymous" v-model="poll.event.fullAnonymous" v-show="poll.event.isAnonymous" type="checkbox" class="checkbox"/>
|
||||
<label for="trueAnonymous" v-show="poll.event.isAnonymous">{{ t('polls', 'Hide user names for admin') }} </label>
|
||||
|
||||
<input :disabled="protect" id="expiration" v-model="poll.event.expiration" type="checkbox" class="checkbox" />
|
||||
<label for="expiration">{{ t('polls', 'Expires') }}</label>
|
||||
<date-picker-input v-bind="expirationDatePicker"
|
||||
:disabled="protect"
|
||||
v-model="poll.event.expirationDate"
|
||||
v-show="poll.event.expiration"
|
||||
style="width:170px"
|
||||
confirm />
|
||||
</div>
|
||||
|
||||
<div class="configBox flex-column">
|
||||
<label class="title">{{ t('polls', 'Access') }}</label>
|
||||
<input :disabled="protect" type="radio" v-model="poll.event.access" value="registered" id="private" class="radio"/>
|
||||
<label for="private">{{ t('polls', 'Registered users only') }}</label>
|
||||
<input :disabled="protect" type="radio" v-model="poll.event.access" value="hidden" id="hidden" class="radio"/>
|
||||
<label for="hidden">{{ t('polls', 'hidden') }}</label>
|
||||
<input :disabled="protect" type="radio" v-model="poll.event.access" value="public" id="public" class="radio"/>
|
||||
<label for="public">{{ t('polls', 'Public access') }}</label>
|
||||
<input :disabled="protect" type="radio" v-model="poll.event.access" value="select" id="select" class="radio"/>
|
||||
<label for="select">{{ t('polls', 'Only shared') }}</label>
|
||||
|
||||
</div>
|
||||
<share-div id="share-list" class="configBox flex-column oneline"
|
||||
:placeholder="t('polls', 'Name of user or group')"
|
||||
:active-shares="poll.shares"
|
||||
v-show="poll.event.access === 'select'"
|
||||
@add-share="addShare"
|
||||
@remove-share="removeShare"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
import moment from 'moment';
|
||||
import lodash from 'lodash';
|
||||
|
||||
import DatePollItem from './components/datePollItem.vue';
|
||||
import TextPollItem from './components/textPollItem.vue';
|
||||
|
||||
export default {
|
||||
name: 'create-poll',
|
||||
|
||||
components: {
|
||||
'DatePollItem': DatePollItem,
|
||||
'TextPollItem': TextPollItem,
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
poll: {
|
||||
mode: 'create',
|
||||
comments: [],
|
||||
votes: [],
|
||||
shares: [],
|
||||
event: {
|
||||
id: 0,
|
||||
hash: '',
|
||||
type: 'datePoll',
|
||||
title: '',
|
||||
description: '',
|
||||
owner:'',
|
||||
created: '',
|
||||
access: 'public',
|
||||
expiration: false,
|
||||
expirationDate: '',
|
||||
expired: false,
|
||||
isAnonymous: false,
|
||||
fullAnonymous: false,
|
||||
disallowMaybe: false,
|
||||
},
|
||||
options: {
|
||||
pollDates: [],
|
||||
pollTexts: []
|
||||
}
|
||||
},
|
||||
lang: OC.getLanguage(),
|
||||
localeData: moment.localeData(moment.locale(OC.getLocale())),
|
||||
placeholder: '',
|
||||
newPollDate: '',
|
||||
newPollTime: '',
|
||||
newPollText: '',
|
||||
nextPollDateId: 1,
|
||||
nextPollTextId: 1,
|
||||
protect: false,
|
||||
sidebar: false,
|
||||
titleEmpty: false,
|
||||
indexPage: '',
|
||||
longDateFormat: moment.localeData().longDateFormat('L'),
|
||||
dateTimeFormat: moment.localeData().longDateFormat('L') + ' ' + moment.localeData().longDateFormat('LT'),
|
||||
expirationDatePicker: {
|
||||
editable: true,
|
||||
minuteStep: 1,
|
||||
type: 'datetime',
|
||||
format: moment.localeData().longDateFormat('L') + ' ' + moment.localeData().longDateFormat('LT'),
|
||||
lang: OC.getLanguage(),
|
||||
placeholder: t('polls', 'Expiration date')
|
||||
},
|
||||
optionDatePicker: {
|
||||
editable: false,
|
||||
minuteStep: 1,
|
||||
type: 'datetime',
|
||||
format: moment.localeData().longDateFormat('L') + ' ' + moment.localeData().longDateFormat('LT'),
|
||||
lang: OC.getLanguage(),
|
||||
placeholder: t('polls', 'Click to add a date')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created: function() {
|
||||
this.indexPage = OC.generateUrl('apps/polls/');
|
||||
|
||||
var urlArray = window.location.pathname.split( '/' );
|
||||
|
||||
if (urlArray[urlArray.length - 1] === 'create') {
|
||||
this.poll.event.owner = OC.getCurrentUser().uid;
|
||||
} else {
|
||||
this.loadPoll(urlArray[urlArray.length - 1])
|
||||
this.protect = true;
|
||||
this.poll.mode = 'edit';
|
||||
};
|
||||
|
||||
if (window.innerWidth >1024) {
|
||||
this.sidebar = true;
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
langShort: function () {
|
||||
return getLaguage()
|
||||
},
|
||||
title: function() {
|
||||
if (this.poll.event.title === '') {
|
||||
return t('polls','Create new poll');
|
||||
} else {
|
||||
return this.poll.event.title;
|
||||
|
||||
}
|
||||
},
|
||||
saveButtonTitle: function() {
|
||||
if (this.poll.mode === 'edit') {
|
||||
return t('polls', 'Update poll')
|
||||
} else {
|
||||
return t('polls', 'Create new poll')
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
watch: {
|
||||
title () {
|
||||
// only used when the title changes after page load
|
||||
document.title = t('polls','Polls') + ' - ' + this.title;
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
switchSidebar: function() {
|
||||
this.sidebar = !this.sidebar;
|
||||
},
|
||||
addShare: function (item){
|
||||
this.poll.shares.push(item);
|
||||
},
|
||||
|
||||
removeShare: function (item){
|
||||
this.poll.shares.splice(this.poll.shares.indexOf(item), 1);
|
||||
},
|
||||
|
||||
addNewPollDate: function (newPollDate, newPollTime) {
|
||||
if (newPollTime !== undefined) {
|
||||
this.newPollDate = moment(newPollDate +' ' + newPollTime);
|
||||
} else {
|
||||
this.newPollDate = moment(newPollDate);
|
||||
}
|
||||
this.poll.options.pollDates.push({
|
||||
id: this.nextPollDateId++,
|
||||
timestamp: moment(newPollDate).unix(),
|
||||
});
|
||||
this.poll.options.pollDates = _.sortBy(this.poll.options.pollDates, 'timestamp');
|
||||
},
|
||||
|
||||
addNewPollText: function () {
|
||||
if (this.newPollText !== null & this.newPollText !== '') {
|
||||
this.poll.options.pollTexts.push({
|
||||
id: this.nextPollTextId++,
|
||||
text: this.newPollText
|
||||
});
|
||||
}
|
||||
this.newPollText = '';
|
||||
},
|
||||
|
||||
writePoll: function (mode) {
|
||||
if (mode !== '') {
|
||||
this.poll.mode = mode;
|
||||
}
|
||||
if (this.poll.event.title.length === 0) {
|
||||
this.titleEmpty = true;
|
||||
} else {
|
||||
this.titleEmpty = false;
|
||||
axios.post(OC.generateUrl('apps/polls/write'), this.poll)
|
||||
.then((response) => {
|
||||
this.poll.mode = 'edit';
|
||||
this.poll.event.hash = response.data.hash;
|
||||
this.poll.event.id = response.data.id;
|
||||
// window.location.href = OC.generateUrl('apps/polls/edit/' + this.poll.event.hash);
|
||||
}, (error) => {
|
||||
this.poll.event.hash = '';
|
||||
console.log(this.poll.event.hash);
|
||||
console.log(error.response);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
loadPoll: function (hash) {
|
||||
axios.get(OC.generateUrl('apps/polls/get/poll/' + hash))
|
||||
.then((response) => {
|
||||
this.poll = response.data.poll;
|
||||
if (this.poll.event.expirationDate !== null) {
|
||||
this.poll.event.expirationDate = new Date(moment.utc(this.poll.event.expirationDate))
|
||||
} else {
|
||||
this.poll.event.expirationDate = ''
|
||||
}
|
||||
|
||||
if (this.poll.event.type === 'datePoll') {
|
||||
var i;
|
||||
for (i = 0; i < this.poll.options.pollTexts.length; i++) {
|
||||
this.addNewPollDate(new Date(moment.utc(this.poll.options.pollTexts[i].text)))
|
||||
}
|
||||
this.poll.options.pollTexts = [];
|
||||
}
|
||||
}, (error) => {
|
||||
this.poll.event.hash = '';
|
||||
console.log(error.response);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="scss">
|
||||
#content {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#create-poll {
|
||||
width: 100%;
|
||||
input.hasTimepicker {
|
||||
width: 75px;
|
||||
}
|
||||
}
|
||||
|
||||
.controls {
|
||||
display: flex;
|
||||
/* flex-direction: row; */
|
||||
/* flex-grow: 0; */
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
position: fixed;
|
||||
background: var(--color-main-background);
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
z-index: 1001;
|
||||
.button, button {
|
||||
flex-shrink: 0;
|
||||
/* box-sizing: border-box; */
|
||||
/* display: inline-block; */
|
||||
height: 36px;
|
||||
padding: 7px 10px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
color: var(--color-text-lighter);
|
||||
&.primary {
|
||||
background: var(--color-primary);
|
||||
color: var(--color-primary-text);
|
||||
}
|
||||
}
|
||||
.breadcrump {
|
||||
/* flex-shrink: 1; */
|
||||
overflow: hidden;
|
||||
min-width: 35px;
|
||||
div.crumb:last-child {
|
||||
flex-shrink: 1;
|
||||
overflow: hidden;
|
||||
> span {
|
||||
flex-shrink: 1;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.polls-content {
|
||||
display: flex;
|
||||
padding-top: 45px;
|
||||
.workbench {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
flex-wrap: wrap;
|
||||
overflow: hidden;
|
||||
|
||||
|
||||
> div {
|
||||
min-width: 245px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
padding: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input, textarea {
|
||||
&.error {
|
||||
border: 2px solid var(--color-error);
|
||||
box-shadow: 1px 0 var(--border-radius) var(--color-box-shadow);
|
||||
}
|
||||
}
|
||||
|
||||
/* Transitions for inserting and removing list items */
|
||||
.list-enter-active, .list-leave-active {
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
.list-enter, .list-leave-to {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.list-move {
|
||||
transition: transform 0.5s;
|
||||
}
|
||||
/* */
|
||||
|
||||
|
||||
#poll-item-selector-text {
|
||||
> input {
|
||||
width: 100%
|
||||
}
|
||||
}
|
||||
|
||||
.poll-table {
|
||||
>li {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
line-height: 2em;
|
||||
min-height: 4em;
|
||||
border-bottom: 1px solid var(--color-border);
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
&:hover, &:active {
|
||||
transition: var(--background-dark) 0.3s ease;
|
||||
background-color: var(--color-loading-light); //$hover-color;
|
||||
}
|
||||
> div {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
font-size: 1.2em;
|
||||
opacity: 0.7;
|
||||
white-space: normal;
|
||||
padding-right: 4px;
|
||||
&.avatar {
|
||||
flex-grow: 0;
|
||||
}
|
||||
}
|
||||
|
||||
> div:nth-last-child(1) {
|
||||
justify-content: center;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
&.button-inline{
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.autocomplete {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#share-list {
|
||||
.user-list {
|
||||
max-height: 180px;
|
||||
overflow: auto;
|
||||
border: 1px solid var(--color-border);
|
||||
margin-top: -3px;
|
||||
border-top: none;
|
||||
position: absolute;
|
||||
background: var(--color-main-background);
|
||||
z-index: 1;
|
||||
width: 99%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
|
@ -0,0 +1,29 @@
|
|||
/* global Vue, oc_userconfig */
|
||||
<template>
|
||||
<div class="cloud">
|
||||
<span class="expired" v-if="options.expired">{{ t('polls', 'Expired')}} </span>
|
||||
<span class="open" v-if="options.expiration">{{ t('polls', 'Expires %n', 1, expirationdate) }}</span>
|
||||
<span class="open" v-else>{{ t('polls', 'Expires never') }}</span>
|
||||
|
||||
<span class="information">{{ options.access }}</span>
|
||||
<span class="information" v-if="options.isAnonymous"> {{ t('polls', 'Anonymous poll') }}</span>
|
||||
<span class="information" v-if="options.fullAnonymous"> {{ t('polls', 'Usernames hidden to Owner') }}</span>
|
||||
<span class="information" v-if="options.isAnonymous & !options.fullAnonymous"> {{ t('polls', 'Usernames visible to Owner') }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['options', ],
|
||||
|
||||
computed: {
|
||||
expirationdate: function() {
|
||||
var date = moment(this.options.expirationDate, moment.localeData().longDateFormat('L')).fromNow();
|
||||
return date
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
|
@ -0,0 +1,116 @@
|
|||
/* global Vue, oc_userconfig */
|
||||
<template>
|
||||
<div class="userRow">
|
||||
<div v-show="description" class="description">{{description}}</div>
|
||||
<div class="avatar">
|
||||
<img :src="avatarURL" :width="size" :height="size">
|
||||
</div>
|
||||
<div v-show="nothidden" class="avatar imageplaceholderseed" :data-username="userId" :data-displayname="computedDisplayName" data-seed="Poll users 1">
|
||||
{{ computedDisplayName.toUpperCase().substr(0,1) }}
|
||||
</div>
|
||||
<div class="user">{{ computedDisplayName }}</div>
|
||||
</div>
|
||||
|
||||
<div class="avatar imageplaceholderseed"</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
userId: {
|
||||
type: String,
|
||||
default: OC.getCurrentUser().uid
|
||||
},
|
||||
displayName: {
|
||||
type: String
|
||||
},
|
||||
size: {
|
||||
type: Number,
|
||||
default: 32
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: 'user'
|
||||
},
|
||||
description: String
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
nothidden: false,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
computedDisplayName: function () {
|
||||
var value = this.displayName;
|
||||
|
||||
if (this.userId === OC.getCurrentUser().uid) {
|
||||
value = OC.getCurrentUser().displayName;
|
||||
} else {
|
||||
if (!this.displayName) {
|
||||
value = this.userId;
|
||||
}
|
||||
}
|
||||
if (this.type === 'group') {
|
||||
value = value + ' (' + t('polls','Group') +')';
|
||||
}
|
||||
return value;
|
||||
},
|
||||
|
||||
avatarURL: function() {
|
||||
if (this.userId === OC.getCurrentUser().uid) {
|
||||
return OC.generateUrl(
|
||||
'/avatar/{user}/{size}?v={version}',
|
||||
{
|
||||
user: OC.getCurrentUser().uid,
|
||||
size: Math.ceil(this.size * window.devicePixelRatio),
|
||||
version: oc_userconfig.avatar.version
|
||||
})
|
||||
} else {
|
||||
return OC.generateUrl(
|
||||
'/avatar/{user}/{size}',
|
||||
{
|
||||
user: this.userId,
|
||||
size: Math.ceil(this.size * window.devicePixelRatio),
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.userRow {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
margin-left: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
.description {
|
||||
opacity: 0.7;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.avatar {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
.user {
|
||||
margin-left: 8px;
|
||||
opacity: 0.5;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.imageplaceholderseed {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
background-color: rgb(185, 185, 185);
|
||||
color: rgb(255, 255, 255);
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
line-height: 32px;
|
||||
font-size: 17.6px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,23 @@
|
|||
<template>
|
||||
<div class="breadcrump flex-row">
|
||||
<div class="crumb svg">
|
||||
<a :href="indexPage">
|
||||
<img class="svg" :src="imagePath" alt="Home">
|
||||
</a>
|
||||
</div>
|
||||
<div class="crumb svg last">
|
||||
<span v-text="intitle" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['intitle','indexPage'],
|
||||
data: function () {
|
||||
return {
|
||||
imagePath: OC.imagePath('core', 'places/home.svg'),
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<template>
|
||||
<li>
|
||||
<div>{{option.timestamp | localFullDate}}</div>
|
||||
<div>
|
||||
<a @click="$emit('remove')" class="icon-delete"></a>
|
||||
</div>
|
||||
</li>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ['option'],
|
||||
filters: {
|
||||
localFullDate: function (timestamp) {
|
||||
if (!timestamp) return '';
|
||||
if (!moment(timestamp).isValid()) return 'Invalid Date';
|
||||
if (timestamp < 999999999999) timestamp = timestamp *1000;
|
||||
return moment(timestamp).format('llll');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,147 @@
|
|||
<template>
|
||||
<div>
|
||||
<h2> {{ t('polls', 'Share with') }}</h2>
|
||||
<div class="autocomplete">
|
||||
<input class="shareWithField"
|
||||
autocomplete="off"
|
||||
type="text"
|
||||
:placeholder="placeholder"
|
||||
v-model="query"
|
||||
@input="onInput"
|
||||
@focus="onInput">
|
||||
|
||||
<transition-group v-show="openList" tag="ul" v-bind:css="false" class="user-list suggestion">
|
||||
<li v-for="(item, index) in sortedSiteusers"
|
||||
v-bind:key="item.displayName"
|
||||
v-bind:data-index="index"
|
||||
class="flex-row"
|
||||
v-on:click="addShare(index, item)">
|
||||
<user-div :user-id="item.id" :display-name="item.displayName" :type="item.type"></user-div>
|
||||
</li>
|
||||
</transition-group>
|
||||
</div>
|
||||
|
||||
<transition-group tag="ul" v-bind:css="false" class="shared-list">
|
||||
<li v-for="(item, index) in sortedShares"
|
||||
v-bind:key="item.displayName"
|
||||
v-bind:data-index="index"
|
||||
class="flex-row">
|
||||
<user-div :user-id="item.id" :display-name="item.displayName" :type="item.type"></user-div>
|
||||
|
||||
<div class="flex-row options">
|
||||
<a @click="removeShare(index, item)" class="icon icon-delete svg delete-poll"></a>
|
||||
</div>
|
||||
</li>
|
||||
</transition-group>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
placeholder: {
|
||||
type: String
|
||||
},
|
||||
activeShares: {
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
query: '',
|
||||
users: [],
|
||||
openList: false,
|
||||
siteUsersLoaded: false,
|
||||
siteUsersListOptions: {
|
||||
getUsers: true,
|
||||
getGroups: true,
|
||||
skipUsers: [],
|
||||
skipGroups: []
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
created: function() {
|
||||
this.loadSiteUsers();
|
||||
},
|
||||
|
||||
mounted: function() {
|
||||
document.addEventListener('click', this.handleClickOutside)
|
||||
},
|
||||
|
||||
destroyed: function() {
|
||||
document.removeEventListener('click', this.handleClickOutside)
|
||||
},
|
||||
|
||||
computed: {
|
||||
filteredSiteusers: function() {
|
||||
var vm = this;
|
||||
return this.users.filter(function (item) {
|
||||
return item.displayName.toLowerCase().indexOf(vm.query.toLowerCase()) !== -1
|
||||
})
|
||||
},
|
||||
|
||||
sortedSiteusers: function() {
|
||||
return this.filteredSiteusers.sort(this.sortByDisplayname);
|
||||
},
|
||||
|
||||
sortedShares: function() {
|
||||
return this.activeShares.sort(this.sortByDisplayname);
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
addShare: function (index, item){
|
||||
this.$emit('add-share', item);
|
||||
this.users.splice(this.users.indexOf(item), 1);
|
||||
},
|
||||
|
||||
removeShare: function (index, item){
|
||||
this.$emit('remove-share', item);
|
||||
this.users.push(item);
|
||||
},
|
||||
|
||||
loadSiteUsers: function () {
|
||||
var vm = this;
|
||||
vm.siteUsersListOptions.skipUsers = [];
|
||||
vm.siteUsersListOptions.skipGroups = [];
|
||||
this.activeShares.forEach(function(item) {
|
||||
if (item.type === 'group') {
|
||||
vm.siteUsersListOptions.skipGroups.push(item.id)
|
||||
} else if (item.type === 'user') {
|
||||
vm.siteUsersListOptions.skipUsers.push(item.id)
|
||||
}
|
||||
});
|
||||
|
||||
axios.post(OC.generateUrl('apps/polls/get/siteusers'), this.siteUsersListOptions)
|
||||
.then((response) => {
|
||||
this.users = response.data.siteusers;
|
||||
}, (error) => {
|
||||
console.log(error.response);
|
||||
});
|
||||
},
|
||||
|
||||
onInput: function() {
|
||||
this.loadSiteUsers();
|
||||
if (this.query !== '') {
|
||||
this.openList = true;
|
||||
}
|
||||
},
|
||||
|
||||
sortByDisplayname: function (a, b) {
|
||||
if (a.displayName.toLowerCase() < b.displayName.toLowerCase()) return -1;
|
||||
if (a.displayName.toLowerCase() > b.displayName.toLowerCase()) return 1;
|
||||
return 0;
|
||||
},
|
||||
|
||||
handleClickOutside: function(evt) {
|
||||
if (!this.$el.contains(evt.target)) {
|
||||
this.openList = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|