This commit is contained in:
splitt3r 2018-01-19 10:51:26 +01:00
Родитель 1b5b99be97
Коммит 06811ea167
12 изменённых файлов: 3 добавлений и 966 удалений

Просмотреть файл

@ -8,19 +8,14 @@
# * which
# * curl: used if phpunit and composer are not installed to fetch them from the web
# * tar: for building the archive
# * sass: for building css files for ownCloud
app_name=$(notdir $(CURDIR))
build_tools_directory=$(CURDIR)/build/tools
build_source_directory=$(CURDIR)/build/source
appstore_build_directory=$(CURDIR)/build/artifacts/appstore
appstore_package_name=$(appstore_build_directory)/$(app_name)
marketplace_build_directory=$(CURDIR)/build/artifacts/marketplace
marketplace_package_name=$(marketplace_build_directory)/$(app_name)
nc_cert_directory=$(HOME)/.nextcloud/certificates
oc_cert_directory=$(HOME)/.owncloud/certificates
composer=$(shell which composer 2> /dev/null)
sass=$(shell which sass 2> /dev/null)
all: composer
@ -43,7 +38,6 @@ endif
# Removes the appstore build
.PHONY: clean
clean:
rm -rf ./.sass-cache
rm -rf ./build
# Builds the source package for the app store, ignores php and js tests
@ -86,55 +80,6 @@ appstore:
openssl dgst -sha512 -sign $(nc_cert_directory)/$(app_name).key $(appstore_build_directory)/$(app_name).tar.gz | openssl base64; \
fi
# Builds the source package for the marketplace, ignores php and js tests
.PHONY: marketplace
marketplace:
ifeq (,$(sass))
@echo "No sass command available, please install it and rerun"
else
sass --update css:css
rm -rf $(marketplace_build_directory)
rm -rf $(build_source_directory)
mkdir -p $(marketplace_build_directory)
mkdir -p $(build_source_directory)
rsync -a \
--exclude="build" \
--exclude="tests" \
--exclude="Makefile" \
--exclude="*.log" \
--exclude="phpunit*xml" \
--exclude="composer.*" \
--exclude="js/node_modules" \
--exclude="js/tests" \
--exclude="js/test" \
--exclude="js/*.log" \
--exclude="js/package.json" \
--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="css/*.scss" \
./ $(build_source_directory)/$(app_name)
# We need to replace Nc screenshot urls with the oC ones
sed -i -E "s~(<screenshot>)([^<]*).(png|jpg|jpeg)(</screenshot>)~\1\2-oc.\3\4~" $(build_source_directory)/$(app_name)/appinfo/info.xml
tar cvzf $(marketplace_package_name).tar.gz --directory="$(build_source_directory)" $(app_name)
@if [ -f $(oc_cert_directory)/$(app_name).key ]; then \
echo "Signing package..."; \
openssl dgst -sha512 -sign $(oc_cert_directory)/$(app_name).key $(marketplace_build_directory)/$(app_name).tar.gz | openssl base64; \
fi
endif
.PHONY: test
test: composer
$(CURDIR)/vendor/phpunit/phpunit/phpunit --coverage-clover clover.xml -c phpunit.xml

Просмотреть файл

@ -5,7 +5,7 @@
[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/nextcloud/polls.svg?style=flat-square)](https://scrutinizer-ci.com/g/nextcloud/polls)
[![Software License](https://img.shields.io/badge/license-AGPL-brightgreen.svg?style=flat-square)](LICENSE)
This is a poll app, similar to doodle or dudle, for Nextcloud / ownCloud written in PHP and JS / jQuery.
This is a poll app, similar to doodle or dudle, for Nextcloud written in PHP and JS / jQuery.
It is a rework of the already existing [polls app](https://github.com/raduvatav/polls) written by @raduvatav.
### Features
@ -29,10 +29,10 @@ It is a rework of the already existing [polls app](https://github.com/raduvatav/
![Vote mobile landscape](https://github.com/nextcloud/polls/blob/master/screenshots/vote-mobile-landscape.png)
## Installation / Update
This app is supposed to work on Nextcloud version 12+ or ownCloud version 10.
This app is supposed to work on Nextcloud version 13+.
### Install latest release
You can download and install the latest release from the [Nextcloud app store](https://apps.nextcloud.com/apps/polls) or from the [ownCloud marketplace](https://marketplace.owncloud.com/apps/polls).
You can download and install the latest release from the [Nextcloud app store](https://apps.nextcloud.com/apps/polls) or a legacy version from the [ownCloud marketplace](https://marketplace.owncloud.com/apps/polls).
### Install from git
If you want to run the latest development version from git source, you need to clone the repo to your apps folder:

Просмотреть файл

@ -1,78 +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%; }

Просмотреть файл

@ -1,135 +0,0 @@
.table {
width: 100%; }
.table-row {
display: flex;
width: 100%;
padding-left: 15px;
padding-right: 15px;
line-height: 2em;
transition: background-color 0.3s ease;
background-color: #fff;
min-height: 4em;
border-bottom: 1px solid #eee; }
.table-row.table-header .name, .table-row.table-header .description {
padding-left: 52px; }
.table-row.table-header .owner {
padding-left: 6px; }
.table-row.table-body:hover, .table-row.table-body:focus, .table-row.table-body:active, .table-row.table-body.mouseOver {
transition: background-color 0.3s ease;
background-color: #f8f8f8; }
.table-row.table-body .flex-column.owner {
display: flex; }
.table-row.table-body .flex-column.owner .avatardiv {
margin-right: 4px; }
.table-row.table-body .icon-more {
right: 14px;
opacity: 0.3;
cursor: pointer;
height: 44px;
width: 44px; }
.table-row.table-body .symbol {
padding: 2px; }
.table-row.table-header {
color: #999; }
.wrapper {
display: flex;
align-items: center;
position: relative; }
.flex-column {
padding: 0 4px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
align-items: center;
min-height: 16px; }
.name {
width: 150px; }
.description {
width: 150px;
color: #888; }
.owner {
width: 140px; }
.access {
width: 140px; }
.created {
width: 120px; }
.expiry {
width: 120px; }
.expiry.expired {
color: red; }
.participants {
width: 80px; }
.participants div.partic_voted.icon-partic_yes {
background-image: url("../img/yes-vote.svg"); }
.participants div.partic_voted.icon-partic_no {
background-image: url("../img/no-vote.svg"); }
.participants div.partic_commented.icon-commented_yes {
background-image: url("../img/yes-comment.svg"); }
.participants div.partic_commented.icon-commented_no {
background-image: url("../img/no-comment.svg"); }
.actions {
width: 44px;
position: relative;
overflow: initial; }
.thumbnail {
background-size: 32px;
width: 44px;
height: 44px;
padding-right: 4px;
background-repeat: no-repeat;
background-position: center; }
.thumbnail.progress.partic_yes, .thumbnail.endless.partic_yes {
background-image: url("../img/open-voted-vote.svg"); }
.thumbnail.progress.partic_no, .thumbnail.endless.partic_no {
background-image: url("../img/open-unvoted-vote.svg"); }
.thumbnail.expired.partic_yes {
background-image: url("../img/expired-voted-vote.svg"); }
.thumbnail.expired.partic_no {
background-image: url("../img/expired-unvoted-vote.svg"); }
.options, .participants {
display: flex;
flex-direction: row; }
.group-1, .group-1-1, .group-master {
flex-grow: 1; }
.group-1-1 {
flex-direction: column;
width: 150px; }
.group-1-1 > div {
width: 100%; }
@media all and (max-width: 868px) {
.group-1 {
width: 238px; }
.group-2-1, .group-2-2 {
flex-direction: column; }
.access, .created {
width: 140px; }
.expiry, .participants {
width: 120px; } }
@media all and (max-width: 668px) {
.table-row {
padding: 0; }
.group-2-1 {
display: none; } }
@media all and (max-width: 548px) {
.group-2 {
display: none; } }

Просмотреть файл

@ -1,293 +0,0 @@
h1 {
font-size: 1.8em;
margin-bottom: 5px; }
#app header {
padding-top: 44px; }
/* allow horizontal scrollbar
otherwise user management is not usable on mobile */
@media only screen and (max-width: 768px) {
#app-content {
overflow-x: auto !important; } }
#app-content-wrapper {
flex-direction: column; }
.icon-polls {
background-color: black;
-webkit-mask: url("../img/app.svg") no-repeat 50% 50%;
mask: url("../img/app.svg") no-repeat 50% 50%; }
#controls {
display: flex;
width: 100%;
position: relative;
top: 4px; }
#controls h2 {
margin-top: 12px; }
#controls #breadcrump {
flex-grow: 0;
overflow: hidden; }
#controls #breadcrump div.crumb {
overflow: hidden;
white-space: nowrap;
flex-shrink: 0; }
.col-100 {
width: 100%;
padding: 0px 15px; }
.col-50 {
width: 50%;
float: left;
padding: 0px 15px; }
.col-70 {
width: 65%;
float: left;
padding: 0px 15px; }
.col-30 {
width: 35%;
float: left;
padding: 0px 15px; }
@media (max-width: 992px) {
.col-70, .col-30, .col-50 {
float: none;
width: 100%; } }
input[type="text"] {
display: block;
width: 100%; }
/* textarea {
min-width: 100%;
max-width: 100%;
}
*/
.form-actions {
padding: 15px; }
.goto_poll {
width: 100%; }
div.new_poll {
width: 100%; }
input.table_button {
background-color: transparent;
border: none;
height: 12px;
width: 12px;
vertical-align: middle; }
div.scroll_div {
width: 100%;
overflow-x: auto;
overflow-y: hidden; }
div.scroll_div_dialog {
width: 100%;
height: 250px;
overflow-y: auto; }
.bordered {
border-left: 1px solid #FFF; }
tbody th {
text-align: left; }
td.td_shown {
visibility: visible; }
.td_hidden {
visibility: hidden;
visibility: collapse; }
.td_selected {
background-color: #82de82; }
.td_deselected {
background-color: white; }
.cl_with_border td {
padding-right: 15px;
padding: 1px;
border-width: 1px;
border-style: solid;
border-color: gray;
text-align: center;
vertical-align: bottom;
cursor: pointer; }
.scrollable_table {
table-layout: fixed; }
.description {
color: #888; }
.cl_title {
font-size: 2em; }
.input_title {
display: block;
font-size: 1.2em;
margin-top: 5px; }
.padded td {
padding: 10px; }
.userNameImg {
vertical-align: middle;
margin-right: 5px;
border-radius: 16px; }
.noAvatar {
color: #fff;
font-weight: bold;
text-align: center;
line-height: 32px;
width: 32px;
height: 32px;
font-size: 19px;
display: inline-block; }
.cl_time_display {
background-color: aqua;
cursor: pointer; }
.cl_date_time_header:hover {
background-color: red; }
.cl_hour, .cl_min {
cursor: pointer;
background-color: white; }
.cl_hour_selected, .cl_min_selected {
background-color: #82de82; }
.cl_poll_url, .cl_date_time_header {
cursor: pointer; }
.cl_pad_left {
padding-left: 30px; }
.cl_del_item {
cursor: pointer;
padding: 0px 5px 0px 5px; }
.cl_del_item:hover {
background-color: #ffccca; }
.cl_maybe:before, .cl_maybe:after {
content: "?"; }
.cl_user_comments {
table-layout: fixed; }
.cl_user_comments td {
text-align: left; }
.cl_user_comments th {
word-wrap: break-word;
vertical-align: top;
text-align: center; }
.user_comment {
font-size: 0.9em; }
.user_comment {
padding-bottom: 10px; }
.user_comment_text {
margin-top: -5px;
margin-left: 5px; }
#id_tab_total {
height: 2em;
width: 100%;
text-align: center; }
#id_tab_total tr:nth-child(even) {
color: #000; }
#id_cal_table td {
padding: 10px; }
#id_time_table td {
padding: 8px; }
#id_poss_table td {
padding-left: 2px; }
.input-group {
position: relative;
display: table;
border-collapse: separate;
width: 100%; }
.input-group > input, .input-group-addon, .input-group-btn {
display: table-cell; }
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
line-height: 1;
color: #555;
text-align: center;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 4px;
white-space: nowrap;
vertical-align: middle;
width: 1%; }
.input-group-addon input[type="checkbox"] {
margin: 0; }
.input-group-btn {
vertical-align: top; }
.input-group-btn .btn {
height: 31.25px;
border: 1px solid #DDD;
margin: 0;
border-radius: 3px;
vertical-align: middle;
display: block;
width: 100%; }
.input-group > input {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin: 0; }
.input-group input:first-child, .input-group .input-group-btn:first-child .btn, .input-group-addon:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0; }
.input-group input:last-child, .input-group .input-group-btn:last-child .btn, .input-group-addon:last-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0; }
.input-group .input-group-btn:first-child .btn, .input-group-addon:first-child {
border-right: none; }
.input-group .input-group-btn:last-child .btn, .input-group-addon:last-child {
border-left: none; }
.alert-info {
margin-left: 50%;
transform: translateX(-50%);
width: auto;
padding: 5px 15px;
text-align: center;
border: 1px solid #1D2D44;
border-top: 0;
border-radius: 0 0 3px 3px; }
/* OC10 and NC11 fixes*/
.symbol {
display: inline-block; }

Просмотреть файл

@ -1,5 +0,0 @@
#header #appmenu, #header .header-right, #header nav {
display: none; }
div.crumb {
background-image: none; }

Просмотреть файл

@ -1,395 +0,0 @@
#content {
display: flex; }
.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;
padding: 12px 17px; }
#votings .description .expired-vote {
color: red;
font-weight: bold; }
.header {
margin-left: 265px;
padding: 0 17px;
align-items: initial; }
.header .vote.option .date-box {
flex-grow: 1; }
.header .vote.option .counter {
flex-grow: 0;
height: 32px; }
.user {
border-top: 1px solid #ddd;
height: 44px;
padding: 0 17px; }
.first {
flex-grow: 0;
flex-shrink: 0;
width: 265px; }
.vote, .poll-cell {
flex-grow: 1;
width: 85px;
margin: 2px;
align-items: center; }
.date-box {
padding: 0 2px;
align-items: center; }
.date-box .month, .date-box .dayow {
font-size: 1.2em;
color: #666; }
.date-box .day {
font-size: 1.8em;
margin: 5px 0 5px 0; }
.winner {
font-style: italic;
font-weight: bold;
color: #49bc49; }
.counter {
font-size: 18px; }
.counter .yes, .counter .no {
margin: 0 2px; }
.counter .yes .svg, .counter .no .svg {
background-position: center;
background-repeat: no-repeat;
background-size: 24px;
height: 24px;
width: 24px; }
.counter .yes {
color: #49bc49; }
.counter .yes .svg {
background-image: url("../img/yes-vote.svg"); }
.counter .no {
color: #f45573; }
.counter .no .svg {
background-image: url("../img/no-vote.svg"); }
.name {
margin-left: 5px; }
.poll-cell {
background-position: center;
background-repeat: no-repeat;
background-size: 32px;
height: 44px; }
.poll-cell.active {
cursor: pointer;
border: 2px solid;
border-radius: 4px;
box-sizing: border-box; }
.poll-cell.yes {
background-color: #ebf5d6;
color: #49bc49;
background-image: url("../img/yes-vote.svg"); }
.poll-cell.no {
background-color: #ffede9;
color: #f45573;
background-image: url("../img/no-vote.svg"); }
.poll-cell.maybe {
background-color: #fcf7e1;
color: #f0db98;
background-image: url("../img/maybe-vote.svg"); }
.poll-cell.unvoted {
background-color: #fff4c8;
color: #f0db98;
background-color: #fff4c8; }
.toggle-cell {
height: 28px;
height: 32px;
width: 32px;
flex-grow: 0;
cursor: pointer;
background-position: center;
background-repeat: no-repeat;
background-size: 28px; }
.toggle-cell.yes {
background-color: #ebf5d6;
background-image: url("../img/yes-toggle.svg"); }
.toggle-cell.no {
background-color: #ffede9;
background-image: url("../img/no-toggle.svg"); }
.toggle-cell.maybe {
background-color: #fcf7e1;
background-image: url("../img/maybe-toggle.svg"); }
.current-user {
background-color: #e6f1f8; }
#switchDetails {
margin-right: 32px; }
.button.details .badge {
position: relative;
top: -34px;
right: -24px;
background-image: url("../../../apps/polls/css/../img/yes-comment.svg");
background-repeat: no-repeat;
background-size: 33px;
padding: 10px;
margin: -10px;
background-position-y: 9px;
background-position-x: center;
text-shadow: 1px 1px #666;
color: #fff;
min-width: 34px;
text-align: center; }
.button.details .badge.no-comments {
background-image: url("../../../apps/polls/css/../img/no-comment.svg"); }
.external {
min-width: 150px; }
.external .th {
padding-left: 40px; }
.external .th input {
min-width: 100px; }
.finish_vote {
padding: 10px 17px; }
#poll-desc, #comments-container, #poll-dates {
margin-bottom: 15px; }
.authorRow {
position: relative; }
.authorRow .author {
margin-left: 8px;
opacity: .5;
flex-grow: 1; }
.authorRow .author.external {
margin-right: 33px;
opacity: 1; }
.authorRow .author.external > input {
width: 100%; }
.detailsView {
z-index: 1000 !important; }
.detailsView .close.flex-row {
justify-content: flex-end;
margin: 8px 8px 0 0; }
.detailsView .header.flex-row {
flex-direction: row;
align-items: flex-start;
margin-left: 0;
margin-top: 0; }
.detailsView .pollInformation {
width: 220px;
flex-grow: 1;
flex-shrink: 1;
padding-right: 15px; }
.detailsView .pollInformation .authorRow .leftLabel {
margin-right: 4px; }
.detailsView .pollInformation .cloud {
margin: 4px 0; }
.detailsView .pollInformation .cloud > span {
color: #fff;
margin: 2px;
padding: 2px 4px;
border-radius: 3px;
float: left;
text-shadow: 1px 1px #666;
background-color: #aaa; }
.detailsView .pollInformation .cloud .open {
background-color: #49bc49; }
.detailsView .pollInformation .cloud .expired {
background-color: #f45573; }
.detailsView .pollInformation .cloud .information {
background-color: #b19c3e; }
.detailsView #expired_info {
margin: 0 15px; }
.detailsView .pollActions {
display: flex;
flex-direction: column;
margin-right: 15px; }
.detailsView .pollActions .close {
margin: 15px;
background-position: right top;
height: 30px; }
.detailsView .pollActions > ul > li:focus, .detailsView .pollActions > ul > li:focus > a, .detailsView .pollActions > ul > li:hover, .detailsView .pollActions > ul > li:hover > a, .detailsView .pollActions > ul > li.active, .detailsView .pollActions > ul > li.active > a, .detailsView .pollActions > ul > li a.selected, .detailsView .pollActions > ul > li a.selected > a {
opacity: 1;
box-shadow: inset 2px 0 #0082c9; }
.detailsView .pollActions > ul > li > a[class*="icon-"],
.detailsView .pollActions > ul > li > ul > li > a[class*="icon-"],
.detailsView .pollActions > ul > li > a[style*="background-image"],
.detailsView .pollActions > ul > li > ul > li > a[style*="background-image"] {
padding-left: 44px; }
.detailsView .pollActions > ul > li > a,
.detailsView .pollActions > ul > li > 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; }
.detailsView .pollActions > ul > li a,
.detailsView .pollActions > ul > li .app-navigation-entry-deleted {
padding-left: 44px !important; }
.detailsView #commentsTabView .newCommentForm div.message:empty:before {
content: attr(data-placeholder);
color: grey; }
.detailsView #commentsTabView #commentBox {
border: 1px solid #dbdbdb;
border-radius: 3px;
padding: 7px 6px;
margin: 3px 3px 3px 40px;
cursor: text; }
.detailsView #commentsTabView .comment {
margin-bottom: 30px; }
.detailsView #commentsTabView .comment .comment-header {
background-color: #EEE;
border-bottom: 1px solid #DDD;
border-radius: 3px 3px 0 0; }
.detailsView #commentsTabView .comment .comment-date {
float: right;
color: #555; }
.detailsView #commentsTabView .comment .date {
position: absolute;
right: 0;
top: 5px;
opacity: .5; }
.detailsView #commentsTabView .message {
margin-left: 40px;
flex-grow: 1;
flex-shrink: 1; }
.detailsView #commentsTabView .new-comment .submitComment {
align-self: last baseline;
width: 30px;
margin: 0;
padding: 7px 9px;
background-color: transparent;
border: none;
opacity: .3; }
.detailsView #commentsTabView .new-comment .icon-loading-small {
float: left;
margin-top: 10px;
display: none; }
@media all and (max-width: 768px) {
#app-content {
position: relative !important; } }
@media all and (max-width: 480px) {
#votings {
padding: 0px 2px; }
.flex-row {
flex-direction: column; }
.flex-row.user-cell, .flex-row.counter, .flex-row.counter .yes, .flex-row.counter .no, .flex-row.controls, .flex-row.breadcrump, .flex-row.submitPoll, .flex-row.newCommentForm, .flex-row.close {
flex-direction: row; }
.flex-row.header {
flex-grow: 1;
margin-left: 0;
margin-top: 44px;
width: 120px;
padding: 0 0 0 4px; }
.flex-row.header .vote {
padding-right: 10px; }
.flex-row.header .vote.option {
align-items: baseline;
width: 100%;
border-top: 1px solid #ddd; }
.flex-row.header .vote.time {
align-items: center;
width: 100%;
border-top: 1px solid #ddd; }
.flex-row.header .vote.time .counter {
flex-direction: column;
align-items: flex-end; }
.flex-row.user {
display: none; }
.flex-row.current-user {
display: flex;
width: 44px;
padding: 0;
border: none;
background-color: transparent; }
.flex-row.current-user .poll-cell {
border: none;
border-radius: 0;
border-top: 1px solid #ddd;
background-color: transparent;
padding: 0 2px; }
.flex-row.current-user .poll-cell.active.yes {
background-image: url("../img/yes-vote-bordered.svg"); }
.flex-row.current-user .poll-cell.active.no {
background-image: url("../img/no-vote-bordered.svg"); }
.flex-row.current-user .poll-cell.active.maybe {
background-image: url("../img/maybe-vote-bordered.svg"); }
.flex-row.current-user .poll-cell.active.unvoted {
background-image: url("../img/unvoted-vote-bordered.svg"); }
.flex-row.current-user .user-cell {
position: absolute;
left: 22px; }
.flex-row.current-user .poll-cell, .flex-row.current-user .toggle-cell {
width: 44px;
height: 44px;
background-color: transparent; }
.description {
margin: 4px; }
.flex-column.table-body {
flex-grow: 0; }
.flex-column.poll-cell, .flex-column.table {
flex-direction: row;
align-items: center; }
.flex-column.vote.time {
flex-direction: row; }
.table {
display: flex;
margin-right: 8px;
padding-bottom: 75px; }
.submitPoll {
border-top: 1px solid #ddd;
box-shadow: 0 0 9px 2px #999999;
flex-wrap: wrap;
align-items: center;
position: fixed;
background-color: #fff;
bottom: 0;
left: 0;
width: 100%; }
.submitPoll .finish_vote {
padding: 8px 8px; }
.submitPoll .notification {
display: flex;
padding: 8px 8px;
line-height: 2em; }
.first {
height: 44px;
width: unset; }
#options.flex-row {
flex-direction: column;
width: 100%; } }
@media all and (max-width: 320px) {
.table {
padding-bottom: 105px; } }

Просмотреть файл

@ -1 +0,0 @@
sass --update -f -C --sourcemap=none ./css/

Просмотреть файл

@ -1 +0,0 @@
sass --watch --sourcemap=none ./css

Двоичные данные
screenshots/edit-poll-oc.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 80 KiB

Двоичные данные
screenshots/overview-oc.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 130 KiB

Двоичные данные
screenshots/vote-oc.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 132 KiB