Skip to content

Instantly share code, notes, and snippets.

@nnarhinen
nnarhinen / form-mixin.js
Created November 6, 2014 05:19
A react mixin helping with forms
'use strict';
var validator = require('shared/schemas/validator'),
_ = require('underscore');
module.exports = {
onPropertyChanged: function(property, newValue) {
var newObject = _.extend({}, this.props[this.objectPropertyPath], this.state[this.objectPropertyPath], _.isObject(property) ? property : _.object([[property, newValue]]));
newObject = this.transformObject(newObject);
var prms = {validationErrors: {}};
prms[this.objectPropertyPath] = newObject;
/**
* @jsx React.DOM
*/
var React = require('react'),
ReactRouter = require('react-router'),
ActiveState = ReactRouter.ActiveState,
Link = ReactRouter.Link;
var MenuItem = module.exports = React.createClass({

Keybase proof

I hereby claim:

  • I am nnarhinen on github.
  • I am nnarhinen (https://keybase.io/nnarhinen) on keybase.
  • I have a public key whose fingerprint is 5587 FD3D 1EAE E010 5C54 5676 123E FEEF 96F1 689E

To claim this, I am signing this object:

@nnarhinen
nnarhinen / README.md
Last active June 25, 2019 09:33
Rails-like console with express.js, bookshelf.js and node-repl-promised

Install node-repl-promised: npm install -g repl-promised

Use the repl to list all users

$ node-promised
> var app = require('./app');
undefined
> var Bookshelf = app.get('bookshelf');
undefined
@nnarhinen
nnarhinen / navigation-controller.js
Last active August 29, 2015 14:02
How I do navigation / routing with backbone
var vent = require('./vent'),
UsersView = require('./users-view'),
UserView = require('./user-view');
module.exports = function(container) {
var activeView,
renderView = function(view) {
if (activeView) activeView.remove();
activeView = view;
container.html(view.render().el);
@nnarhinen
nnarhinen / ajax-zip.js
Created February 6, 2014 06:26
Download (multiple) pdf files with ajax and add to a zip file in browser
var JSZip = require('jszip'),
Q = require('q');
var downloadFile = function(url) {
var defer = Q.defer();
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
@nnarhinen
nnarhinen / datepicker.hbs
Last active August 29, 2015 13:55
Datepicker using Bacon.js and CLNDR.js (with Foundation5 styles)
<div class="clndr-controls row">
<div class="large-7 columns">
<div class="row">
<div class="clndr-previous-button large-2 columns">&lsaquo;</div>
<div class="month large-8 columns">{{month}}</div>
<div class="clndr-next-button large-2 columns">&rsaquo;</div>
</div>
</div>
</div>
<div class="clndr-grid large-7 columns">
class BaseVideoListView extends Backbone.View
initialize: (opts) ->
@collection.selectedCount.assign @subNav.find('.selected_count'), 'text'
@collection.selectedCount.onValue (val) =>
@subNav.find('.library-nav').toggleClass 'singular-selection', val == 1
this.$el.toggleClass 'multiple-selection', val > 1
@collection.hasSelected.assign @subNav.find('.visible-selected'), 'toggle'
@collection.hasSelected.not().assign @subNav.find('.hidden-selected'), 'toggle'
function calculate (objects) {
return _.chain(objects)
.map(function(p) { return [p.vat, p.price]; })
.reduce(function(memo, pair) {
var o = {};
o[pair[0]] = (memo[pair[0]] || 0) + pair[1];
return _.extend({}, memo, o);
}, {}).value();
};
@nnarhinen
nnarhinen / deploy.bash
Last active December 31, 2015 12:28
My deployment script to pull and run a docker-contained clojure web application
id=$(docker ps | grep myimage:latest | awk '{ print $1 }')
docker pull quay.io/nnarhinen/myimage
new_id=$(docker run -d -p 3000 \
-e ENVIRONMENT=PRODUCTION quay.io/nnarhinen/myimage)
id=$new_id ./update-nginx-port.bash
docker stop $id