mvpkit 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/mvpkit.gemspec +6 -6
- data/project/Gemfile +1 -0
- data/project/Gemfile.lock +13 -0
- data/project/app/assets/stylesheets/application.scss +3 -3
- data/project/app/assets/stylesheets/elements/buttons.scss +11 -45
- data/project/app/assets/stylesheets/elements/forms.scss +0 -5
- data/project/app/assets/stylesheets/elements/sidebar.scss +1 -1
- data/project/app/assets/stylesheets/init/bootstrap.scss +2 -0
- data/project/app/assets/stylesheets/init/font-awesome.scss +2 -0
- data/project/app/assets/stylesheets/init/open-iconic.scss +2 -0
- data/project/app/assets/stylesheets/init/variables.scss +1 -0
- data/project/app/assets/stylesheets/treatments/backgrounds.scss +2 -2
- data/project/app/controllers/application_controller.rb +2 -2
- data/project/app/engines/admin/app/controllers/admin/application_controller.rb +1 -0
- data/project/app/javascript/components/examples/reactstrap.jsx +79 -0
- data/project/app/javascript/packs/application.js +11 -10
- data/project/app/views/home/index.html.erb +74 -2
- data/project/package.json +1 -0
- data/project/yarn.lock +4 -0
- metadata +5 -5
- data/assets/js/application.js +0 -31
- data/assets/js/init/controllers.js +0 -26
- data/assets/js/init/forms.js +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43a8f1a7d4f294aef3a08e9d1e9317011d38a960
|
4
|
+
data.tar.gz: 5f3633b797df92142c78c90528576fd3323a662f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af4fd888a04f26a11994f67f114583dc520a1bbf5ec3c2f4766b64c595e471b916171f31007339aeeea3efdf4464516c909d1e428de71ca1537e32fc938c07b1
|
7
|
+
data.tar.gz: 3d22f8655e398b327b5a8d35f90235db4ae0820671b5fba481a1815e4a8aacbe3e8628589a60d5cd578b0ef43f79ca6e48593a6f7f2405a16ce047284c8355ec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.1
|
data/mvpkit.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: mvpkit 2.0.
|
5
|
+
# stub: mvpkit 2.0.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "mvpkit".freeze
|
9
|
-
s.version = "2.0.
|
9
|
+
s.version = "2.0.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Ian Hunter".freeze]
|
14
|
-
s.date = "2017-09-
|
14
|
+
s.date = "2017-09-11"
|
15
15
|
s.description = "Built for Developers. Ideal for MVPs, product ideation and validation.".freeze
|
16
16
|
s.email = "ianhunter@gmail.com".freeze
|
17
17
|
s.executables = ["mvp".freeze]
|
@@ -27,9 +27,6 @@ Gem::Specification.new do |s|
|
|
27
27
|
"README.md",
|
28
28
|
"Rakefile",
|
29
29
|
"VERSION",
|
30
|
-
"assets/js/application.js",
|
31
|
-
"assets/js/init/controllers.js",
|
32
|
-
"assets/js/init/forms.js",
|
33
30
|
"bin/mvp",
|
34
31
|
"bin/rails",
|
35
32
|
"config/initializers/iteration.rb",
|
@@ -69,6 +66,8 @@ Gem::Specification.new do |s|
|
|
69
66
|
"project/app/assets/stylesheets/elements/timeline.scss",
|
70
67
|
"project/app/assets/stylesheets/elements/typography.scss",
|
71
68
|
"project/app/assets/stylesheets/init/bootstrap.scss",
|
69
|
+
"project/app/assets/stylesheets/init/font-awesome.scss",
|
70
|
+
"project/app/assets/stylesheets/init/open-iconic.scss",
|
72
71
|
"project/app/assets/stylesheets/init/reset.scss",
|
73
72
|
"project/app/assets/stylesheets/init/variables.scss",
|
74
73
|
"project/app/assets/stylesheets/treatments/backgrounds.scss",
|
@@ -128,6 +127,7 @@ Gem::Specification.new do |s|
|
|
128
127
|
"project/app/helpers/application_helper.rb",
|
129
128
|
"project/app/javascript/components/.gitkeep",
|
130
129
|
"project/app/javascript/components/conversion.jsx",
|
130
|
+
"project/app/javascript/components/examples/reactstrap.jsx",
|
131
131
|
"project/app/javascript/packs/application.js",
|
132
132
|
"project/app/javascript/packs/server_rendering.js",
|
133
133
|
"project/app/mailers/application_mailer.rb",
|
data/project/Gemfile
CHANGED
data/project/Gemfile.lock
CHANGED
@@ -280,6 +280,18 @@ GEM
|
|
280
280
|
js_regex (1.2.3)
|
281
281
|
regexp_parser (>= 0.3.6, <= 0.5.0)
|
282
282
|
json (1.8.6)
|
283
|
+
kaminari (1.0.1)
|
284
|
+
activesupport (>= 4.1.0)
|
285
|
+
kaminari-actionview (= 1.0.1)
|
286
|
+
kaminari-activerecord (= 1.0.1)
|
287
|
+
kaminari-core (= 1.0.1)
|
288
|
+
kaminari-actionview (1.0.1)
|
289
|
+
actionview
|
290
|
+
kaminari-core (= 1.0.1)
|
291
|
+
kaminari-activerecord (1.0.1)
|
292
|
+
activerecord
|
293
|
+
kaminari-core (= 1.0.1)
|
294
|
+
kaminari-core (1.0.1)
|
283
295
|
launchy (2.4.3)
|
284
296
|
addressable (~> 2.3)
|
285
297
|
letter_opener (1.4.1)
|
@@ -491,6 +503,7 @@ DEPENDENCIES
|
|
491
503
|
hashie
|
492
504
|
identicon
|
493
505
|
jbuilder (~> 2.5)
|
506
|
+
kaminari
|
494
507
|
letter_opener
|
495
508
|
listen (~> 3.0.5)
|
496
509
|
mustache
|
@@ -1,9 +1,9 @@
|
|
1
1
|
@import "init/variables";
|
2
2
|
|
3
|
-
|
3
|
+
// Fonts
|
4
|
+
@import "init/open-iconic";
|
5
|
+
@import "init/font-awesome";
|
4
6
|
@import "init/bootstrap";
|
5
|
-
@import "bootstrap/scss/bootstrap";
|
6
|
-
|
7
7
|
@import "init/reset";
|
8
8
|
|
9
9
|
@import "elements/*";
|
@@ -1,48 +1,19 @@
|
|
1
1
|
@import 'init/variables';
|
2
2
|
|
3
|
-
.btn {
|
4
|
-
|
5
|
-
|
3
|
+
.btn-group {
|
4
|
+
.btn {
|
5
|
+
// padding: 16px;
|
6
|
+
}
|
7
|
+
}
|
6
8
|
|
9
|
+
.btn {
|
7
10
|
&:hover {
|
8
11
|
cursor: pointer;
|
9
12
|
}
|
10
13
|
|
11
|
-
&.btn-
|
12
|
-
padding: 9px 15px 5px 15px
|
13
|
-
}
|
14
|
-
|
15
|
-
&.btn-sm {
|
16
|
-
padding: 5px 5px 3px 5px
|
17
|
-
}
|
18
|
-
|
19
|
-
&.btn-wite {
|
20
|
-
padding-left: 30px;
|
21
|
-
padding-right: 30px;
|
22
|
-
}
|
23
|
-
|
24
|
-
&.btn-secondary {
|
25
|
-
border: solid 1px $color-grey;
|
26
|
-
color: $color-grey-dark;
|
27
|
-
background-color: $color-grey-lightest;
|
28
|
-
|
29
|
-
.fa {
|
30
|
-
color: $color-grey;
|
31
|
-
}
|
32
|
-
|
14
|
+
&.btn-outline-light {
|
33
15
|
&:hover {
|
34
|
-
|
35
|
-
}
|
36
|
-
|
37
|
-
&:focus,
|
38
|
-
&:active {
|
39
|
-
outline: none !important;
|
40
|
-
box-shadow: 0 1px 2px 0 rgba(106, 116, 135, 0.1);
|
41
|
-
}
|
42
|
-
|
43
|
-
&.selected {
|
44
|
-
color: $color-grey-lightest;
|
45
|
-
background-color: $color-grey;
|
16
|
+
color: $color-black;
|
46
17
|
}
|
47
18
|
}
|
48
19
|
|
@@ -62,8 +33,9 @@
|
|
62
33
|
|
63
34
|
@each $name, $val in $colors {
|
64
35
|
&.btn-#{"" + $name} {
|
65
|
-
|
66
|
-
|
36
|
+
color: $color-white !important;
|
37
|
+
@include button-variant($val, $val);
|
38
|
+
.fa { color: $color-white; }
|
67
39
|
}
|
68
40
|
|
69
41
|
&.btn-outline-#{"" + $name} {
|
@@ -99,9 +71,3 @@
|
|
99
71
|
}
|
100
72
|
}
|
101
73
|
}
|
102
|
-
|
103
|
-
.btn-group {
|
104
|
-
.btn {
|
105
|
-
padding: 8px 10px 5px 10px;
|
106
|
-
}
|
107
|
-
}
|
@@ -5,7 +5,7 @@ class ApplicationController < ActionController::Base
|
|
5
5
|
|
6
6
|
helper MVP::Engine.helpers
|
7
7
|
|
8
|
-
before_action :
|
8
|
+
before_action :http_basic_auth if ENV['HTTP_BASIC_AUTH_USER']
|
9
9
|
# before_action :authenticate_user!
|
10
10
|
before_action :configure_permitted_parameters, if: :devise_controller?
|
11
11
|
|
@@ -28,7 +28,7 @@ class ApplicationController < ActionController::Base
|
|
28
28
|
|
29
29
|
private
|
30
30
|
|
31
|
-
def
|
31
|
+
def http_basic_auth
|
32
32
|
authenticate_or_request_with_http_basic do |username, password|
|
33
33
|
username == ENV['HTTP_BASIC_AUTH_USER'] && password == ENV['HTTP_BASIC_AUTH_PASSWORD']
|
34
34
|
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { Button, Form, FormGroup, Label, Input, FormText } from 'reactstrap';
|
3
|
+
|
4
|
+
export default class ReactstrapExamples extends React.Component {
|
5
|
+
render() {
|
6
|
+
return (
|
7
|
+
<Form>
|
8
|
+
<FormGroup>
|
9
|
+
<Label for="exampleEmail">Email</Label>
|
10
|
+
<Input type="email" name="email" id="exampleEmail" placeholder="with a placeholder" />
|
11
|
+
</FormGroup>
|
12
|
+
<FormGroup>
|
13
|
+
<Label for="examplePassword">Password</Label>
|
14
|
+
<Input type="password" name="password" id="examplePassword" placeholder="password placeholder" />
|
15
|
+
</FormGroup>
|
16
|
+
<FormGroup>
|
17
|
+
<Label for="exampleSelect">Select</Label>
|
18
|
+
<Input type="select" name="select" id="exampleSelect">
|
19
|
+
<option>1</option>
|
20
|
+
<option>2</option>
|
21
|
+
<option>3</option>
|
22
|
+
<option>4</option>
|
23
|
+
<option>5</option>
|
24
|
+
</Input>
|
25
|
+
</FormGroup>
|
26
|
+
<FormGroup>
|
27
|
+
<Label for="exampleSelectMulti">Select Multiple</Label>
|
28
|
+
<Input type="select" name="selectMulti" id="exampleSelectMulti" multiple>
|
29
|
+
<option>1</option>
|
30
|
+
<option>2</option>
|
31
|
+
<option>3</option>
|
32
|
+
<option>4</option>
|
33
|
+
<option>5</option>
|
34
|
+
</Input>
|
35
|
+
</FormGroup>
|
36
|
+
<FormGroup>
|
37
|
+
<Label for="exampleText">Text Area</Label>
|
38
|
+
<Input type="textarea" name="text" id="exampleText" />
|
39
|
+
</FormGroup>
|
40
|
+
<FormGroup>
|
41
|
+
<Label for="exampleFile">File</Label>
|
42
|
+
<Input type="file" name="file" id="exampleFile" />
|
43
|
+
<FormText color="muted">
|
44
|
+
This is some placeholder block-level help text for the above input.
|
45
|
+
It's a bit lighter and easily wraps to a new line.
|
46
|
+
</FormText>
|
47
|
+
</FormGroup>
|
48
|
+
<FormGroup tag="fieldset">
|
49
|
+
<legend>Radio Buttons</legend>
|
50
|
+
<FormGroup check>
|
51
|
+
<Label check>
|
52
|
+
<Input type="radio" name="radio1" />{' '}
|
53
|
+
Option one is this and that—be sure to include why it's great
|
54
|
+
</Label>
|
55
|
+
</FormGroup>
|
56
|
+
<FormGroup check>
|
57
|
+
<Label check>
|
58
|
+
<Input type="radio" name="radio1" />{' '}
|
59
|
+
Option two can be something else and selecting it will deselect option one
|
60
|
+
</Label>
|
61
|
+
</FormGroup>
|
62
|
+
<FormGroup check disabled>
|
63
|
+
<Label check>
|
64
|
+
<Input type="radio" name="radio1" disabled />{' '}
|
65
|
+
Option three is disabled
|
66
|
+
</Label>
|
67
|
+
</FormGroup>
|
68
|
+
</FormGroup>
|
69
|
+
<FormGroup check>
|
70
|
+
<Label check>
|
71
|
+
<Input type="checkbox" />{' '}
|
72
|
+
Check me out
|
73
|
+
</Label>
|
74
|
+
</FormGroup>
|
75
|
+
<Button>Submit</Button>
|
76
|
+
</Form>
|
77
|
+
);
|
78
|
+
}
|
79
|
+
}
|
@@ -12,17 +12,18 @@ var componentRequireContext = require.context("components", true)
|
|
12
12
|
var ReactRailsUJS = require("react_ujs")
|
13
13
|
ReactRailsUJS.useContext(componentRequireContext)
|
14
14
|
|
15
|
-
window.Tether
|
16
|
-
window.Popper
|
17
|
-
window.jQuery
|
18
|
-
window.jQueryUJS
|
19
|
-
window.$
|
15
|
+
window.Tether = require('tether');
|
16
|
+
window.Popper = require('popper.js').default
|
17
|
+
window.jQuery = require('jquery')
|
18
|
+
window.jQueryUJS = require('jquery-ujs');
|
19
|
+
window.$ = window.jQuery;
|
20
20
|
|
21
|
-
window.is
|
22
|
-
window._
|
21
|
+
window.is = require('is_js');
|
22
|
+
window._ = require('lodash');
|
23
23
|
_.mixin(require('lodash-inflection'));
|
24
24
|
|
25
|
-
window.Moment
|
26
|
-
window.bs
|
25
|
+
window.Moment = require('moment');
|
26
|
+
window.bs = require('bootstrap');
|
27
27
|
|
28
|
-
window.
|
28
|
+
window.ReactstrapExamples = require('components/examples/reactstrap');
|
29
|
+
window.Conversion = require('components/conversion');
|
@@ -10,10 +10,11 @@
|
|
10
10
|
<h2 class="mb20">Quick Tour</h2>
|
11
11
|
|
12
12
|
<div class="mb50">
|
13
|
-
<
|
13
|
+
<h4 class="mb10">Bootstrap 4</h4>
|
14
|
+
<p class="mb20">You've got <a href="https://getbootstrap.com/docs/4.0/getting-started/introduction/" target="_blank">Bootstrap 4</a> right out of the box.</p>
|
14
15
|
|
15
16
|
<div class="row">
|
16
|
-
<% ['primary','secondary','success','warning','danger'].each do |color| %>
|
17
|
+
<% ['primary','secondary','success','warning','danger','green','red','blue','yellow'].each do |color| %>
|
17
18
|
<div class="col-sm-4 mb20">
|
18
19
|
<a href="#" class="btn btn-<%= color %> btn-block">.btn-<%= color %></a>
|
19
20
|
</div>
|
@@ -21,6 +22,77 @@
|
|
21
22
|
</div>
|
22
23
|
</div>
|
23
24
|
|
25
|
+
<div class="mb50">
|
26
|
+
<h4 class="mb10">Reactstrap</h4>
|
27
|
+
<p class="mb20">Inside React components you have the Reactstrap library <a href="https://reactstrap.github.io/components/" target="_blank">Bootstrap 4</a> right out of the box.</p>
|
28
|
+
|
29
|
+
<%= react_component 'examples/reactstrap' %>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="mb50">
|
33
|
+
<h4 class="mb20">Icons</h4>
|
34
|
+
<p class="mb20">Font-Awesome (<a href="http://fontawesome.io/icons/" target="_blank">icons</a>)</p>
|
35
|
+
<div class="mb20">
|
36
|
+
<% ['address-book','address-book-o','address-card','address-card-o','bandcamp','bath','bathtub (alias)','drivers-license (alias)','drivers-license-o (alias)','eercast','envelope-open','envelope-open-o','etsy','free-code-camp','grav','handshake-o','id-badge','id-card','id-card-o','imdb','linode','meetup','microchip','podcast','quora','ravelry','s15 (alias)','shower','snowflake-o','superpowers','telegram','thermometer (alias)','thermometer-0 (alias)','thermometer-1 (alias)','thermometer-2 (alias)','thermometer-3 (alias)','thermometer-4 (alias)','thermometer-empty','thermometer-full','thermometer-half','thermometer-quarter','thermometer-three-quarters','times-rectangle (alias)','times-rectangle-o (alias)','user-circle','user-circle-o','user-o','vcard (alias)','vcard-o (alias)','window-close','window-close-o','window-maximize','window-minimize','window-restore','wpexplorer','address-book','address-book-o','address-card','address-card-o','adjust','american-sign-language-interpreting','anchor','archive','area-chart','arrows','arrows-h','arrows-v','asl-interpreting (alias)','assistive-listening-systems','asterisk','at','audio-description','automobile (alias)','balance-scale','ban','bank (alias)','bar-chart','bar-chart-o (alias)','barcode','bars','bath','bathtub (alias)','battery (alias)','battery-0 (alias)','battery-1 (alias)','battery-2 (alias)','battery-3 (alias)','battery-4 (alias)','battery-empty','battery-full','battery-half','battery-quarter','battery-three-quarters','bed','beer','bell','bell-o','bell-slash','bell-slash-o','bicycle','binoculars','birthday-cake','blind','bluetooth','bluetooth-b','bolt','bomb','book','bookmark','bookmark-o','braille','briefcase','bug','building','building-o','bullhorn','bullseye','bus','cab (alias)','calculator','calendar','calendar-check-o','calendar-minus-o','calendar-o','calendar-plus-o','calendar-times-o','camera','camera-retro','car','caret-square-o-down','caret-square-o-left','caret-square-o-right','caret-square-o-up','cart-arrow-down','cart-plus','cc','certificate','check','check-circle','check-circle-o','check-square','check-square-o','child','circle','circle-o','circle-o-notch','circle-thin','clock-o','clone','close (alias)','cloud','cloud-download','cloud-upload','code','code-fork','coffee','cog','cogs','comment','comment-o','commenting','commenting-o','comments','comments-o','compass','copyright','creative-commons','credit-card','credit-card-alt','crop','crosshairs','cube','cubes','cutlery','dashboard (alias)','database','deaf','deafness (alias)','desktop','diamond','dot-circle-o','download','drivers-license (alias)','drivers-license-o (alias)','edit (alias)','ellipsis-h','ellipsis-v','envelope','envelope-o','envelope-open','envelope-open-o','envelope-square','eraser','exchange','exclamation','exclamation-circle','exclamation-triangle','external-link','external-link-square','eye','eye-slash','eyedropper','fax','feed (alias)','female','fighter-jet','file-archive-o','file-audio-o','file-code-o','file-excel-o','file-image-o','file-movie-o (alias)','file-pdf-o','file-photo-o (alias)','file-picture-o (alias)','file-powerpoint-o','file-sound-o (alias)','file-video-o','file-word-o','file-zip-o (alias)','film','filter','fire','fire-extinguisher','flag','flag-checkered','flag-o','flash (alias)','flask','folder','folder-o','folder-open','folder-open-o','frown-o','futbol-o','gamepad','gavel','gear (alias)','gears (alias)','gift','glass','globe','graduation-cap','group (alias)','hand-grab-o (alias)','hand-lizard-o','hand-paper-o','hand-peace-o','hand-pointer-o','hand-rock-o','hand-scissors-o','hand-spock-o','hand-stop-o (alias)','handshake-o','hard-of-hearing (alias)','hashtag','hdd-o','headphones','heart','heart-o','heartbeat','history','home','hotel (alias)','hourglass','hourglass-1 (alias)','hourglass-2 (alias)','hourglass-3 (alias)','hourglass-end','hourglass-half','hourglass-o','hourglass-start','i-cursor','id-badge','id-card','id-card-o','image (alias)','inbox','industry','info','info-circle','institution (alias)','key','keyboard-o','language','laptop','leaf','legal (alias)','lemon-o','level-down','level-up','life-bouy (alias)','life-buoy (alias)','life-ring','life-saver (alias)','lightbulb-o','line-chart','location-arrow','lock','low-vision','magic','magnet','mail-forward (alias)','mail-reply (alias)','mail-reply-all (alias)','male','map','map-marker','map-o','map-pin','map-signs','meh-o','microchip','microphone','microphone-slash','minus','minus-circle','minus-square','minus-square-o','mobile','mobile-phone (alias)','money','moon-o','mortar-board (alias)','motorcycle','mouse-pointer','music','navicon (alias)','newspaper-o','object-group','object-ungroup','paint-brush','paper-plane','paper-plane-o','paw','pencil','pencil-square','pencil-square-o','percent','phone','phone-square','photo (alias)','picture-o','pie-chart','plane','plug','plus','plus-circle','plus-square','plus-square-o','podcast','power-off','print','puzzle-piece','qrcode','question','question-circle','question-circle-o','quote-left','quote-right','random','recycle','refresh','registered','remove (alias)','reorder (alias)','reply','reply-all','retweet','road','rocket','rss','rss-square','s15 (alias)','search','search-minus','search-plus','send (alias)','send-o (alias)','server','share','share-alt','share-alt-square','share-square','share-square-o','shield','ship','shopping-bag','shopping-basket','shopping-cart','shower','sign-in','sign-language','sign-out','signal','signing (alias)','sitemap','sliders','smile-o','snowflake-o','soccer-ball-o (alias)','sort','sort-alpha-asc','sort-alpha-desc','sort-amount-asc','sort-amount-desc','sort-asc','sort-desc','sort-down (alias)','sort-numeric-asc','sort-numeric-desc','sort-up (alias)','space-shuttle','spinner','spoon','square','square-o','star','star-half','star-half-empty (alias)','star-half-full (alias)','star-half-o','star-o','sticky-note','sticky-note-o','street-view','suitcase','sun-o','support (alias)','tablet','tachometer','tag','tags','tasks','taxi','television','terminal','thermometer (alias)','thermometer-0 (alias)','thermometer-1 (alias)','thermometer-2 (alias)','thermometer-3 (alias)','thermometer-4 (alias)','thermometer-empty','thermometer-full','thermometer-half','thermometer-quarter','thermometer-three-quarters','thumb-tack','thumbs-down','thumbs-o-down','thumbs-o-up','thumbs-up','ticket','times','times-circle','times-circle-o','times-rectangle (alias)','times-rectangle-o (alias)','tint','toggle-down (alias)','toggle-left (alias)','toggle-off','toggle-on','toggle-right (alias)','toggle-up (alias)','trademark','trash','trash-o','tree','trophy','truck','tty','tv (alias)','umbrella','universal-access','university','unlock','unlock-alt','unsorted (alias)','upload','user','user-circle','user-circle-o','user-o','user-plus','user-secret','user-times','users','vcard (alias)','vcard-o (alias)','video-camera','volume-control-phone','volume-down','volume-off','volume-up','warning (alias)','wheelchair','wheelchair-alt','wifi','window-close','window-close-o','window-maximize','window-minimize','window-restore','wrench'].each do |icon| %>
|
37
|
+
<i class="fa fa-<%= icon %>"></i>
|
38
|
+
<% end %>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="mb20">
|
42
|
+
<span><i class="fa fa-spinner fa-pulse fa-1x fa-fw"></i> spinning icons too ...</span>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<p class="mb20">Open Iconic (<a href="https://useiconic.com/open/" target="_blank">icons</a>)</p>
|
46
|
+
<div class="mb20">
|
47
|
+
<% icons = [ "account-login", "account-logout", "action-redo", "action-undo",
|
48
|
+
"align-center", "align-left", "align-right", "aperture", "arrow-bottom",
|
49
|
+
"arrow-circle-bottom", "arrow-circle-left", "arrow-circle-right",
|
50
|
+
"arrow-circle-top", "arrow-left", "arrow-right", "arrow-thick-bottom",
|
51
|
+
"arrow-thick-left", "arrow-thick-right", "arrow-thick-top", "arrow-top",
|
52
|
+
"audio", "audio-spectrum", "badge", "ban", "bar-chart", "basket",
|
53
|
+
"battery-empty", "battery-full", "beaker", "bell", "bluetooth", "bold",
|
54
|
+
"bolt", "book", "bookmark", "box", "briefcase", "british-pound",
|
55
|
+
"browser", "brush", "bug", "bullhorn", "calculator", "calendar",
|
56
|
+
"camera-slr", "caret-bottom", "caret-left", "caret-right", "caret-top",
|
57
|
+
"cart", "chat", "check", "chevron-bottom", "chevron-left",
|
58
|
+
"chevron-right", "chevron-top", "circle-check", "circle-x", "clipboard",
|
59
|
+
"clock", "cloud", "cloud-download", "cloud-upload", "cloudy", "code",
|
60
|
+
"cog", "collapse-left", "collapse-down", "collapse-right", "collapse-up",
|
61
|
+
"command", "comment-square", "compass", "contrast", "copywriting",
|
62
|
+
"credit-card", "crop", "dashboard", "data-transfer-download",
|
63
|
+
"data-transfer-upload", "delete", "dial", "document", "dollar",
|
64
|
+
"double-quote-sans-left", "double-quote-sans-right",
|
65
|
+
"double-quote-serif-left", "double-quote-serif-right", "droplet", "eject",
|
66
|
+
"elevator", "ellipses", "envelope-closed", "euro", "envelope-open",
|
67
|
+
"excerpt", "expand-down", "expand-left", "expand-right", "expand-up",
|
68
|
+
"external-link", "eye", "eyedropper", "file", "fire", "flag", "flash",
|
69
|
+
"folder", "fork", "fullscreen-enter", "fullscreen-exit", "globe", "graph",
|
70
|
+
"grid-four-up", "grid-three-up", "grid-two-up", "hard-drive", "header",
|
71
|
+
"headphones", "heart", "image", "inbox", "home", "infinity", "info",
|
72
|
+
"italic", "justify-center", "justify-left", "justify-right", "key",
|
73
|
+
"laptop", "layers", "lightbulb", "link-broken", "link-intact", "list",
|
74
|
+
"list-rich", "location", "lock-locked", "lock-unlocked", "loop",
|
75
|
+
"loop-circular", "loop-square", "magnifying-glass", "map", "map-marker",
|
76
|
+
"media-pause", "media-play", "media-record", "media-skip-backward",
|
77
|
+
"media-skip-forward", "media-step-backward", "media-step-forward",
|
78
|
+
"media-stop", "medical-cross", "menu", "microphone", "minus", "monitor",
|
79
|
+
"moon", "move", "musical-note", "paperclip", "people", "pencil", "person",
|
80
|
+
"phone", "pie-chart", "pin", "play-circle", "plus", "power-standby",
|
81
|
+
"print", "project", "pulse", "puzzle-piece", "question-mark", "rain",
|
82
|
+
"random", "reload", "resize-both", "resize-height", "resize-width", "rss",
|
83
|
+
"rss-alt", "script", "share", "share-boxed", "shield", "signal",
|
84
|
+
"signpost", "sort-ascending", "sort-descending", "spreadsheet", "star",
|
85
|
+
"sun", "tablet", "tag", "tags", "target", "task", "terminal", "text",
|
86
|
+
"thumb-up", "thumb-down", "timer", "transfer", "trash", "underline",
|
87
|
+
"vertical-align-bottom", "vertical-align-center", "vertical-align-top",
|
88
|
+
"volume-high", "video", "volume-low", "volume-off", "warning", "wifi",
|
89
|
+
"wrench", "x", "yen", "zoom-in", "zoom-out"
|
90
|
+
].each do |icon| %>
|
91
|
+
<span class="oi oi-<%= icon %>"></span>
|
92
|
+
<% end %>
|
93
|
+
</div>
|
94
|
+
</div>
|
95
|
+
|
24
96
|
<p class="mb15">Here's a sample React conversion form. It takes an email as an input, validates and submits to the server to create a conversion, which will show up in <a href="/a/conversions">conversions admin</a></p>
|
25
97
|
|
26
98
|
<%= react_component 'Conversion' %>
|
data/project/package.json
CHANGED
data/project/yarn.lock
CHANGED
@@ -3091,6 +3091,10 @@ onetime@^1.0.0:
|
|
3091
3091
|
version "1.1.0"
|
3092
3092
|
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
|
3093
3093
|
|
3094
|
+
open-iconic@^1.1.1:
|
3095
|
+
version "1.1.1"
|
3096
|
+
resolved "https://registry.yarnpkg.com/open-iconic/-/open-iconic-1.1.1.tgz#9dcfc8c7cd3c61cdb4a236b1a347894c97adc0c6"
|
3097
|
+
|
3094
3098
|
opn@4.0.2:
|
3095
3099
|
version "4.0.2"
|
3096
3100
|
resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mvpkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Hunter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|
@@ -54,9 +54,6 @@ files:
|
|
54
54
|
- README.md
|
55
55
|
- Rakefile
|
56
56
|
- VERSION
|
57
|
-
- assets/js/application.js
|
58
|
-
- assets/js/init/controllers.js
|
59
|
-
- assets/js/init/forms.js
|
60
57
|
- bin/mvp
|
61
58
|
- bin/rails
|
62
59
|
- config/initializers/iteration.rb
|
@@ -96,6 +93,8 @@ files:
|
|
96
93
|
- project/app/assets/stylesheets/elements/timeline.scss
|
97
94
|
- project/app/assets/stylesheets/elements/typography.scss
|
98
95
|
- project/app/assets/stylesheets/init/bootstrap.scss
|
96
|
+
- project/app/assets/stylesheets/init/font-awesome.scss
|
97
|
+
- project/app/assets/stylesheets/init/open-iconic.scss
|
99
98
|
- project/app/assets/stylesheets/init/reset.scss
|
100
99
|
- project/app/assets/stylesheets/init/variables.scss
|
101
100
|
- project/app/assets/stylesheets/treatments/backgrounds.scss
|
@@ -155,6 +154,7 @@ files:
|
|
155
154
|
- project/app/helpers/application_helper.rb
|
156
155
|
- project/app/javascript/components/.gitkeep
|
157
156
|
- project/app/javascript/components/conversion.jsx
|
157
|
+
- project/app/javascript/components/examples/reactstrap.jsx
|
158
158
|
- project/app/javascript/packs/application.js
|
159
159
|
- project/app/javascript/packs/server_rendering.js
|
160
160
|
- project/app/mailers/application_mailer.rb
|
data/assets/js/application.js
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require('jquery')
|
2
|
-
require('jquery-ujs')
|
3
|
-
require('jquery.cookie')
|
4
|
-
var _ = require('lodash')
|
5
|
-
var is = require('is')
|
6
|
-
|
7
|
-
require('./init/controllers')
|
8
|
-
require('./init/forms')
|
9
|
-
|
10
|
-
window.track = function(event, attributes, fn){
|
11
|
-
console.log("Track: " + event + " " + JSON.stringify(attributes))
|
12
|
-
|
13
|
-
if (is.fn(attributes)) fn = attributes, attributes = null;
|
14
|
-
if (is.undefined(attributes)) { attributes = {} }
|
15
|
-
if ($.cookie('invisible') == "true") {
|
16
|
-
if (!is.undefined(fn)) { fn() }
|
17
|
-
return
|
18
|
-
}
|
19
|
-
|
20
|
-
var attrs = _.extend({
|
21
|
-
iteration: $('body').data('iteration')
|
22
|
-
}, attributes)
|
23
|
-
|
24
|
-
if (typeof(analytics) != 'undefined') {
|
25
|
-
analytics.track(event, attrs, fn);
|
26
|
-
}
|
27
|
-
|
28
|
-
if (typeof(amplitude) != 'undefined') {
|
29
|
-
amplitude.getInstance().logEvent(event, attrs, fn);
|
30
|
-
}
|
31
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
window.controllers = {}
|
2
|
-
|
3
|
-
let handler = function(){
|
4
|
-
var $body = $("body");
|
5
|
-
var controller = $body.data("controller").replace(/\//g, "_");
|
6
|
-
var action = $body.data("action");
|
7
|
-
|
8
|
-
var activeController = window.controllers[controller];
|
9
|
-
|
10
|
-
if (activeController !== undefined) {
|
11
|
-
if (window.env == "development") {
|
12
|
-
console.log("[Controllers] " + controller + "." + action + "()");
|
13
|
-
}
|
14
|
-
|
15
|
-
if ($.isFunction(activeController.init)) {
|
16
|
-
activeController.init();
|
17
|
-
}
|
18
|
-
|
19
|
-
if ($.isFunction(activeController[action])) {
|
20
|
-
activeController[action]();
|
21
|
-
}
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
-
// $(handler);
|
26
|
-
document.addEventListener("turbolinks:load", handler)
|
data/assets/js/init/forms.js
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
$(function(){
|
2
|
-
$('form.no-enter-submit').bind("keypress", function(e) {
|
3
|
-
if (e.keyCode == 13) {
|
4
|
-
e.preventDefault();
|
5
|
-
return false;
|
6
|
-
}
|
7
|
-
});
|
8
|
-
|
9
|
-
$('form.disable-on-submit').on('submit', function(e){
|
10
|
-
$(this).find(".btn").addClass('disabled')
|
11
|
-
})
|
12
|
-
})
|