Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
diaspora
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Milan
diaspora
Commits
d130697c
Unverified
Commit
d130697c
authored
Aug 28, 2017
by
Steffen van Bergerem
Committed by
Benjamin Neff
Aug 29, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use Bootstrap 3 progress-bar for polls
closes #7600
parent
02d9d350
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
51 additions
and
59 deletions
+51
-59
Changelog.md
Changelog.md
+1
-0
app/assets/javascripts/app/views/poll_view.js
app/assets/javascripts/app/views/poll_view.js
+7
-7
app/assets/stylesheets/color_themes/_color_theme_override_dark.scss
.../stylesheets/color_themes/_color_theme_override_dark.scss
+2
-2
app/assets/stylesheets/poll.scss
app/assets/stylesheets/poll.scss
+7
-18
app/assets/templates/poll_tpl.jst.hbs
app/assets/templates/poll_tpl.jst.hbs
+21
-19
features/desktop/post_preview.feature
features/desktop/post_preview.feature
+1
-1
features/desktop/post_with_a_poll.feature
features/desktop/post_with_a_poll.feature
+4
-4
features/step_definitions/post_with_poll_steps.rb
features/step_definitions/post_with_poll_steps.rb
+2
-2
spec/javascripts/app/views/poll_view_spec.js
spec/javascripts/app/views/poll_view_spec.js
+6
-6
No files found.
Changelog.md
View file @
d130697c
...
...
@@ -9,6 +9,7 @@
*
Merge migrations from before 0.6.0.0 to CreateSchema
[
#7580
](
https://github.com/diaspora/diaspora/pull/7580
)
*
Remove auto detection of languages with highlightjs
[
#7591
](
https://github.com/diaspora/diaspora/pull/7591
)
*
Move enable/disable notification icon
[
#7592
](
https://github.com/diaspora/diaspora/pull/7592
)
*
Use Bootstrap 3 progress-bar for polls
[
#7600
](
https://github.com/diaspora/diaspora/pull/7600
)
## Bug fixes
*
Fix displaying polls with long answers
[
#7579
](
https://github.com/diaspora/diaspora/pull/7579
)
...
...
app/assets/javascripts/app/views/poll_view.js
View file @
d130697c
...
...
@@ -5,7 +5,7 @@ app.views.Poll = app.views.Base.extend({
events
:
{
"
click .submit
"
:
"
clickSubmit
"
,
"
click .toggle
_result
"
:
"
toggleResult
"
"
click .toggle
-result
"
:
"
toggleResult
"
},
initialize
:
function
()
{
...
...
@@ -55,7 +55,7 @@ app.views.Poll = app.views.Base.extend({
percent
=
Math
.
round
(
answer
.
vote_count
/
participation_count
*
100
);
}
var
progressBar
=
_this
.
$
(
"
.p
oll_progress_bar[data-answerid=
"
+
answer
.
id
+
"
]
"
);
var
progressBar
=
_this
.
$
(
"
.p
rogress-bar[data-answerid=
"
+
answer
.
id
+
"
]
"
);
_this
.
setProgressBarData
(
progressBar
,
percent
);
});
...
...
@@ -68,8 +68,8 @@ app.views.Poll = app.views.Base.extend({
pollButtons
:
function
()
{
if
(
!
this
.
poll
||
!
this
.
poll
.
post_id
)
{
this
.
$
(
'
.submit
'
).
attr
(
'
disabled
'
,
true
);
this
.
$
(
'
.toggle_result
'
).
attr
(
'
disabled
'
,
true
);
this
.
$
(
"
.submit
"
).
attr
(
"
disabled
"
,
true
);
this
.
$
(
"
.toggle-result
"
).
attr
(
"
disabled
"
,
true
);
}
},
...
...
@@ -83,14 +83,14 @@ app.views.Poll = app.views.Base.extend({
}
this
.
toggleElements
();
var
toggle
_result
=
this
.
$
(
'
.toggle_result
'
);
var
toggle
Result
=
this
.
$
(
"
.toggle-result
"
);
if
(
!
this
.
toggleMode
)
{
toggle
_r
esult
.
html
(
Diaspora
.
I18n
.
t
(
"
poll.close_result
"
));
toggle
R
esult
.
html
(
Diaspora
.
I18n
.
t
(
"
poll.close_result
"
));
this
.
toggleMode
=
1
;
}
else
{
toggle
_r
esult
.
html
(
Diaspora
.
I18n
.
t
(
"
poll.show_result
"
));
toggle
R
esult
.
html
(
Diaspora
.
I18n
.
t
(
"
poll.show_result
"
));
this
.
toggleMode
=
0
;
}
},
...
...
app/assets/stylesheets/color_themes/_color_theme_override_dark.scss
View file @
d130697c
...
...
@@ -19,9 +19,9 @@ body {
.info
.tag
{
background-color
:
$gray-light
;
}
.poll
_
form
.progress
{
.poll
-
form
.progress
{
background-color
:
$gray-dark
;
.bar
{
background-color
:
$gray-light
;
}
.
progress-
bar
{
background-color
:
$gray-light
;
}
.users-vote
{
background-color
:
$brand-primary
;
}
}
...
...
app/assets/stylesheets/poll.scss
View file @
d130697c
.poll
_
form
{
.poll
-
form
{
border-bottom
:
1px
solid
$border-grey
;
border-top
:
1px
solid
$border-grey
;
margin
:
10px
0
;
...
...
@@ -14,38 +14,27 @@
}
.progress
{
background-image
:
none
;
box-shadow
:
0
0
0
;
height
:
10px
;
margin-bottom
:
5px
;
clear
:
both
;
.bar
{
background
:
$border-dark-grey
none
;
color
:
$text-dark-grey
;
height
:
100%
;
text-align
:
left
;
}
.users-vote
{
background-color
:
$brand-primary
;
}
.progress-bar
{
background-color
:
$border-dark-grey
;
}
.users-vote
{
background-color
:
$brand-primary
;
}
}
.submit
[
disabled
]
{
color
:
$text-grey
;
cursor
:
default
;
&
:hover
,
&
:active
{
background-image
:
none
;
}
}
}
.poll-content
{
margin-top
:
5px
;
.result-head
{
margin-bottom
:
5px
;
}
[
type
=
radio
],
label
{
font-weight
:
normal
;
...
...
app/assets/templates/poll_tpl.jst.hbs
View file @
d130697c
{{#if
poll
}}
<div
class=
"poll
_
form"
>
<div
class=
"poll
_
head"
>
<div
class=
"poll
-
form"
>
<div
class=
"poll
-
head"
>
<strong>
{{
poll
.
question
}}
</strong>
<div
class=
"poll
_
statistic pull-right"
>
<div
class=
"poll
-
statistic pull-right"
>
{{
t
"poll.count"
count
=
poll
.
participation_count
}}
</div>
</div>
...
...
@@ -12,24 +12,26 @@
{{/if}}
{{#
poll
.
poll_answers
}}
<div
class=
"result-row"
>
<input
type=
"radio"
name=
"vote"
value=
"
{{
id
}}
"
/>
{{#if
isCurrentUserVote
}}
<label>
{{
answer
}}
<span
class=
"label label-primary"
>
{{
t
"poll.your_vote"
}}
</span>
</label>
{{else}}
<label>
{{
answer
}}
</label>
{{/if}}
<div
class=
"poll-result pull-right"
>
<span
class=
"percentage"
></span>
(
{{
t
"poll.answer_count"
count
=
vote_count
}}
)
<div
class=
"result-head"
>
<input
type=
"radio"
name=
"vote"
value=
"
{{
id
}}
"
/>
{{#if
isCurrentUserVote
}}
<label>
{{
answer
}}
<span
class=
"label label-primary"
>
{{
t
"poll.your_vote"
}}
</span>
</label>
{{else}}
<label>
{{
answer
}}
</label>
{{/if}}
<div
class=
"poll-result pull-right"
>
<span
class=
"percentage"
></span>
(
{{
t
"poll.answer_count"
count
=
vote_count
}}
)
</div>
</div>
<div
class=
"p
oll_progress_bar_wrapper p
rogress"
>
<div
class=
"progress"
>
{{#if
isCurrentUserVote
}}
<div
class=
"p
oll_progress_bar
bar users-vote"
data-answerid=
"
{{
id
}}
"
style=
"height: 100%"
></div>
<div
class=
"p
rogress-
bar users-vote"
data-answerid=
"
{{
id
}}
"
style=
"height: 100%"
></div>
{{else}}
<div
class=
"p
oll_progress_bar
bar"
data-answerid=
"
{{
id
}}
"
style=
"height: 100%"
></div>
<div
class=
"p
rogress-
bar"
data-answerid=
"
{{
id
}}
"
style=
"height: 100%"
></div>
{{/if}}
</div>
</div>
...
...
@@ -39,7 +41,7 @@
{{#if
preview
}}
<span>
{{
t
"poll.show_result"
}}
</span>
{{else}}
<a
class=
"toggle
_
result"
href=
"#"
>
{{
t
"poll.show_result"
}}
</a>
<a
class=
"toggle
-
result"
href=
"#"
>
{{
t
"poll.show_result"
}}
</a>
{{/if}}
</div>
<input
type=
"submit"
class=
"submit pull-right btn btn-default"
value=
"
{{
t
"poll.vote"
}}
"
/>
...
...
features/desktop/post_preview.feature
View file @
d130697c
...
...
@@ -80,7 +80,7 @@ Feature: preview posts in the stream
|
normal
|
|
not
normal
|
And
I preview the post
Then
I should see a
".poll
_
form"
within
".md-preview .stream-element"
Then
I should see a
".poll
-
form"
within
".md-preview .stream-element"
And
I should see a
"form"
within
".md-preview .stream-element"
And
I close the publisher
...
...
features/desktop/post_with_a_poll.feature
View file @
d130697c
...
...
@@ -46,7 +46,7 @@ Feature: posting with a poll
|
normal
|
|
not
normal
|
And
I press
"Share"
Then
I should see a
".poll
_
form"
within
".stream-element"
Then
I should see a
".poll
-
form"
within
".stream-element"
And
I should see a
"form"
within
".stream-element"
Scenario
:
vote for an option
...
...
@@ -62,9 +62,9 @@ Feature: posting with a poll
And
I check the first option
And
I press
"Vote"
within
".stream-element"
Then
I should see an element
".p
oll_progress_
bar"
Then
I should see an element
".p
rogress-
bar"
And
I should see an element
".percentage"
And
I should see
"1 vote so far"
within
".poll
_
statistic"
And
I should see
"1 vote so far"
within
".poll
-
statistic"
Scenario
:
click to show result
Given
I expand the publisher
...
...
@@ -76,7 +76,7 @@ Feature: posting with a poll
|
normal
|
|
not
normal
|
And
I press
"Share"
And
I click on selector
".toggle
_
result"
And
I click on selector
".toggle
-
result"
Then
I should see an element
".percentage"
Scenario
:
validate answer input
...
...
features/step_definitions/post_with_poll_steps.rb
View file @
d130697c
...
...
@@ -19,8 +19,8 @@ When /^I fill in the following for the options:$/ do |table|
end
When
/^I check the first option$/
do
page
.
should
have_css
(
'.poll_form input'
)
first
(
".poll
_
form input"
).
click
page
.
should
have_css
(
".poll-form input"
)
first
(
".poll
-
form input"
).
click
end
When
(
/^I fill in values for the first two options$/
)
do
...
...
spec/javascripts/app/views/poll_view_spec.js
View file @
d130697c
...
...
@@ -8,16 +8,16 @@ describe("app.views.Poll", function(){
describe
(
"
setProgressBar
"
,
function
(){
it
(
"
sets the progress bar according to the voting result
"
,
function
(){
var
percentage
=
(
this
.
view
.
poll
.
poll_answers
[
0
].
vote_count
/
this
.
view
.
poll
.
participation_count
)
*
100
;
expect
(
this
.
view
.
$
(
'
.poll_progress_bar:first
'
).
css
(
'
width
'
)).
toBe
(
percentage
+
"
%
"
);
expect
(
this
.
view
.
$
(
"
.progress-bar:first
"
).
css
(
"
width
"
)).
toBe
(
percentage
+
"
%
"
);
expect
(
this
.
view
.
$
(
"
.percentage:first
"
).
text
()).
toBe
(
percentage
+
"
%
"
);
});
});
describe
(
"
toggleResult
"
,
function
(){
it
(
"
toggles the progress bar and result
"
,
function
(){
expect
(
$
(
"
.p
oll_progress_bar_wrapper
:first
"
)).
toBeHidden
();
expect
(
$
(
"
.p
rogress
:first
"
)).
toBeHidden
();
this
.
view
.
toggleResult
();
expect
(
$
(
"
.p
oll_progress_bar_wrapper
:first
"
)).
toBeVisible
();
expect
(
$
(
"
.p
rogress
:first
"
)).
toBeVisible
();
});
});
...
...
@@ -39,7 +39,7 @@ describe("app.views.Poll", function(){
var
question
=
"
<script>alert(0);</script>
"
;
this
.
view
.
poll
.
question
=
question
;
this
.
view
.
render
();
expect
(
this
.
view
.
$
(
'
.poll_head strong
'
).
text
()).
toBe
(
question
);
expect
(
this
.
view
.
$
(
"
.poll-head strong
"
).
text
()).
toBe
(
question
);
});
});
...
...
@@ -80,14 +80,14 @@ describe("app.views.Poll", function(){
it
(
"
adds 'users-vote' class to progress bar for the option the user voted for
"
,
function
()
{
var
answer
=
this
.
view
.
poll
.
poll_answers
[
0
];
this
.
view
.
model
.
set
(
"
poll_participation_answer_id
"
,
answer
.
id
);
expect
(
this
.
view
.
$
(
"
.p
oll_progress_
bar.users-vote
"
).
length
).
toBe
(
1
);
expect
(
this
.
view
.
$
(
"
.p
rogress-
bar.users-vote
"
).
length
).
toBe
(
1
);
});
it
(
"
doesn't add 'users-vote' class to progress bar of the options the user didn't vote for
"
,
function
()
{
var
answer1
=
this
.
view
.
poll
.
poll_answers
[
0
];
var
answer2
=
this
.
view
.
poll
.
poll_answers
[
1
];
this
.
view
.
model
.
set
(
"
poll_participation_answer_id
"
,
answer1
.
id
);
expect
(
this
.
view
.
$
(
"
.p
oll_progress_
bar[data-answerid='
"
+
answer2
.
id
+
"
']
"
).
hasClass
(
"
users-vote
"
)).
toBe
(
false
);
expect
(
this
.
view
.
$
(
"
.p
rogress-
bar[data-answerid='
"
+
answer2
.
id
+
"
']
"
).
hasClass
(
"
users-vote
"
)).
toBe
(
false
);
});
it
(
"
adds label next to the answer the user voted for
"
,
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment