Skip to content

Lightweight Polldozer client to create and vote on polls with Polldozer API

Notifications You must be signed in to change notification settings

antpaw/polldozer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Anton Pawlik
Dec 18, 2017
e9c0757 · Dec 18, 2017

History

28 Commits
May 30, 2016
Jun 24, 2016
Jun 28, 2016
Jun 28, 2016
May 29, 2016
May 29, 2016
May 29, 2016
Jun 18, 2016
May 30, 2016
May 31, 2016
Dec 18, 2017
Jun 28, 2016
Dec 18, 2017
Dec 18, 2017
Dec 18, 2017
May 30, 2016

Repository files navigation

polldozer

npm version Build Status codecov.io

Lightweight Polldozer client to create and vote on polls with Polldozer API

Install

$ npm install --save polldozer

Usage polldozer/vote

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
});

Options

new Instance(options)

element

type: Element
default: undefined
Element that will be used to render the poll

corsRequestFn

type: Function
default: undefined
A function that returns a object with get and post methods to handle ajax calls. See jQuery example from above.

apiUrl

type: String
default: undefined
URL to Polldozer API

pollData (optional)

type: PlainObject
default: undefined
Bootstraped poll object

locale (optional)

type: String
default: 'en'
de also supported

onVote(poll) (optional)

type: Function
default: undefined
Callback function that is called after a successful vote

Usage polldozer/create

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);
  }
});

Options

new Instance(options)

element

type: Element
default: undefined
Element that will be used to render the poll

corsRequestFn

type: Function
default: undefined
A function that returns a object with get and post methods to handle ajax calls. See jQuery example from above.

apiUrl

type: String
default: undefined
URL to Polldozer API

locale (optional)

type: String
default: 'en'
de also supported

onCreate(poll) (optional)

type: Function
default: undefined
Callback function that is called after a poll was created successfully

pollData (optional)

type: PlainObject
default: undefined
Poll object that will be used to populate the input field with it's values

Stylesheets

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';

About

Lightweight Polldozer client to create and vote on polls with Polldozer API

Resources

Stars

Watchers

Forks

Packages

No packages published