Lightweight Polldozer client to create and vote on polls with Polldozer API
$ npm install --save polldozer
Renders a poll with "vote" or "analysis" layout based on the current state of the user (voted: yes / no) and the poll (expired: yes / no).
Below is a example of usage:
<div id="vote" data-poll-id="POLL_ID"></div>
var PolldozerVote = require('polldozer/vote');
var corsRequestFn = function(options) {
var ajax = function(url, type, data) {
return $.ajax({
url: url,
type: type,
crossDomain: true,
contentType: data ? 'application/json; charset=utf-8' : undefined,
dataType: 'json',
data: data ? JSON.stringify(data) : void 0,
success: options.onSuccess,
error: options.onFailure,
complete: options.onComplete
});
};
return {
get: function(url) {
return ajax(url, 'GET');
},
post: function(url, data) {
return ajax(url, 'POST', data);
}
};
};
new PolldozerVote({
element: document.getElementById('vote'),
apiUrl: 'https://polldozer.herokuapp.com/', // please host your own, this is a slow free tier heroku app
corsRequestFn: corsRequestFn
});
type: Element
default: undefined
Element that will be used to render the poll
type: Function
default: undefined
A function that returns a object with get
and post
methods to handle ajax calls. See jQuery example from above.
type: String
default: undefined
URL to Polldozer API
type: PlainObject
default: undefined
Bootstraped poll object
type: String
default: 'en'
de
also supported
type: Function
default: undefined
Callback function that is called after a successful vote
Renders, validates and submits a poll create form.
Below is a example of usage:
<div id="poll_form"></div>
var PolldozerVote = require('polldozer/create');
var corsRequestFn = function(options) {
var ajax = function(url, type, data) {
return $.ajax({
url: url,
type: type,
crossDomain: true,
contentType: data ? 'application/json; charset=utf-8' : undefined,
dataType: 'json',
data: data ? JSON.stringify(data) : void 0,
success: options.onSuccess,
error: options.onFailure,
complete: options.onComplete
});
};
return {
get: function(url) {
return ajax(url, 'GET');
},
post: function(url, data) {
return ajax(url, 'POST', data);
}
};
};
new PolldozerCreate({
element: document.getElementById('poll_form'),
apiUrl: 'https://polldozer.herokuapp.com/', // please host your own, this is a slow free tier heroku app
corsRequestFn: corsRequestFn,
onCreate: function(poll) {
alert(poll._id);
}
});
type: Element
default: undefined
Element that will be used to render the poll
type: Function
default: undefined
A function that returns a object with get
and post
methods to handle ajax calls. See jQuery example from above.
type: String
default: undefined
URL to Polldozer API
type: String
default: 'en'
de
also supported
type: Function
default: undefined
Callback function that is called after a poll was created successfully
type: PlainObject
default: undefined
Poll object that will be used to populate the input field with it's values
SASS required. To provide basic styling and display logic add stylesheets with:
@import './node_modules/polldozer/stylesheets/create.scss';
@import './node_modules/polldozer/stylesheets/vote.scss';
/* or include it with the ~ syntax if you are building with webpack and sass-loader */
@import '~polldozer/stylesheets/create.scss';
@import '~polldozer/stylesheets/vote.scss';