Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Grant Ammons committed May 29, 2016
0 parents commit 9c96186
Show file tree
Hide file tree
Showing 64 changed files with 2,470 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .editorconfig
@@ -0,0 +1,7 @@
root = true

[*]
end_of_line = lf
insert_final_newline = false
indent_style = space
indent_size = 2
106 changes: 106 additions & 0 deletions .gitattributes
@@ -0,0 +1,106 @@
# From https://github.com/Danimoth/gitattributes/blob/master/Web.gitattributes

# Handle line endings automatically for files detected as text
# and leave all files detected as binary untouched.
* text=auto

#
# The above will handle all files NOT found below
#

#
## These files are text and should be normalized (Convert crlf => lf)
#

# source code
*.php text
*.css text
*.sass text
*.scss text
*.less text
*.styl text
*.js text eol=lf
*.coffee text
*.json text
*.htm text
*.html text
*.xml text
*.svg text
*.txt text
*.ini text
*.inc text
*.pl text
*.rb text
*.py text
*.scm text
*.sql text
*.sh text
*.bat text

# templates
*.ejs text
*.hbt text
*.jade text
*.haml text
*.hbs text
*.dot text
*.tmpl text
*.phtml text

# server config
.htaccess text

# git config
.gitattributes text
.gitignore text
.gitconfig text

# code analysis config
.jshintrc text
.jscsrc text
.jshintignore text
.csslintrc text

# misc config
*.yaml text
*.yml text
.editorconfig text

# build config
*.npmignore text
*.bowerrc text

# Heroku
Procfile text
.slugignore text

# Documentation
*.md text
LICENSE text
AUTHORS text


#
## These files are binary and should be left untouched
#

# (binary is a macro for -text -diff)
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.mov binary
*.mp4 binary
*.mp3 binary
*.flv binary
*.fla binary
*.swf binary
*.gz binary
*.zip binary
*.7z binary
*.ttf binary
*.eot binary
*.woff binary
*.pyc binary
*.pdf binary
10 changes: 10 additions & 0 deletions .gitignore
@@ -0,0 +1,10 @@
# Don't check auto-generated stuff into git
coverage
build
node_modules
stats.json

# Cruft
.DS_Store
npm-debug.log
.idea
18 changes: 18 additions & 0 deletions .travis.yml
@@ -0,0 +1,18 @@
language: node_js
sudo: true
dist: trusty
node_js:
- "5.0"
script: npm run build
before_install:
- export CHROME_BIN=/usr/bin/google-chrome
- export DISPLAY=:99.0
- sudo apt-get update
- sudo apt-get install -y libappindicator1 fonts-liberation
- wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- sudo dpkg -i google-chrome*.deb
- sh -e /etc/init.d/xvfb start
notifications:
email:
on_failure: change
after_success: 'npm run coveralls'
44 changes: 44 additions & 0 deletions app/.htaccess
@@ -0,0 +1,44 @@
<ifModule mod_rewrite.c>


#######################################################################
# GENERAL #
#######################################################################

# Make apache follow sym links to files
Options +FollowSymLinks
# If somebody opens a folder, hide all files from the resulting folder list
IndexIgnore */*


#######################################################################
# REWRITING #
#######################################################################

# Enable rewriting
RewriteEngine On

# If its not HTTPS
RewriteCond %{HTTPS} off

# Comment out the RewriteCond above, and uncomment the RewriteCond below if you're using a load balancer (e.g. CloudFlare) for SSL
# RewriteCond %{HTTP:X-Forwarded-Proto} !https

# Redirect to the same URL with https://, ignoring all further rules if this one is in effect
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,L]

# If we get to here, it means we are on https://

# If the file with the specified name in the browser doesn't exist
RewriteCond %{REQUEST_FILENAME} !-f

# and the directory with the specified name in the browser doesn't exist
RewriteCond %{REQUEST_FILENAME} !-d

# and we are not opening the root already (otherwise we get a redirect loop)
RewriteCond %{REQUEST_FILENAME} !\/$

# Rewrite all requests to the root
RewriteRule ^(.*) /

</ifModule>
66 changes: 66 additions & 0 deletions app/.nginx.conf
@@ -0,0 +1,66 @@
##
# Put this file in /etc/nginx/conf.d folder and make sure
# you have line 'include /etc/nginx/conf.d/*.conf;'
# in your main nginx configuration file
##

##
# Redirect to the same URL with https://
##

server {

listen 80;

# Type your domain name below
server_name example.com;

return 301 https://$server_name$request_uri;

}

##
# HTTPS configurations
##

server {

listen 443;

# Type your domain name below
server_name example.com;

ssl on;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/server.key;

# Use only TSL protocols for more secure
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# Always serve index.html for any request
location / {
# Set path
root /var/www/;
try_files $uri /index.html;
}

##
# If you want to use Node/Rails/etc. API server
# on the same port (443) config Nginx as a reverse proxy.
# For security reasons use a firewall like ufw in Ubuntu
# and deny port 3000/tcp.
##

# location /api/ {
#
# proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
#
# }

}
20 changes: 20 additions & 0 deletions app/app.js
@@ -0,0 +1,20 @@
import React from 'react';
import ReactDOM from 'react-dom';

import getMuiTheme from 'material-ui/styles/getMuiTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import Todolist from './components/Todolist';

var injectTapEventPlugin = require("react-tap-event-plugin");
injectTapEventPlugin();

const App = () => (
<MuiThemeProvider muiTheme={getMuiTheme()}>
<Todolist />
</MuiThemeProvider>
);

ReactDOM.render(
<App />,
document.getElementById('app')
);
8 changes: 8 additions & 0 deletions app/components/MyAwesomeReactComponent.js
@@ -0,0 +1,8 @@
import React from 'react';
import RaisedButton from 'material-ui/RaisedButton';

const MyAwesomeReactComponent = () => (
<RaisedButton label="Default" />
);

export default MyAwesomeReactComponent;
22 changes: 22 additions & 0 deletions app/components/Todolist.js
@@ -0,0 +1,22 @@
import React from 'react';
import AppBar from 'material-ui/AppBar';
import NavigationClose from 'material-ui/svg-icons/navigation/close';

import TodolistIconMenu from './topbar/TodolistIconMenu';

import MenuItem from 'material-ui/MenuItem';
import IconButton from 'material-ui/IconButton/IconButton';
import MoreVertIcon from 'material-ui/svg-icons/navigation/more-vert';


const Todolist = () => (
<div>
<AppBar title="Todolist"
showMenuIconButton={false}
iconElementRight={<TodolistIconMenu />}
/>
</div>
);

export default Todolist;

33 changes: 33 additions & 0 deletions app/components/topbar/TodolistIconMenu.js
@@ -0,0 +1,33 @@
import React from 'react';

import IconMenu from 'material-ui/IconMenu';
import MenuItem from 'material-ui/MenuItem';
import IconButton from 'material-ui/IconButton';

import SortIcon from 'material-ui/svg-icons/content/sort';
import SearchIcon from 'material-ui/svg-icons/action/search';
import DoneAllIcon from 'material-ui/svg-icons/action/done-all';

class TodolistIconMenu extends React.Component {
render() {
return(
<div>
<IconButton iconStyle={{fill: "#ffffff"}} ><SearchIcon /></IconButton>

<IconMenu
iconButtonElement={<IconButton iconStyle={{fill: "#ffffff"}} ><SortIcon /></IconButton>}
anchorOrigin={{horizontal: 'right', vertical: 'bottom'}}
targetOrigin={{horizontal: 'right', vertical: 'top'}}
>
<MenuItem primaryText="No grouping" />
<MenuItem primaryText="By Context" />
<MenuItem primaryText="By Project" />
</IconMenu>

<IconButton iconStyle={{fill: "#ffffff"}} ><DoneAllIcon /></IconButton>
</div>
)
}
}

export default TodolistIconMenu
Binary file added app/favicon.ico
Binary file not shown.
20 changes: 20 additions & 0 deletions app/index.html
@@ -0,0 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<!-- The first thing in any HTML file should be the charset -->
<meta charset="utf-8">
<!-- Make the page mobile compatible -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Allow installing the app to the homescreen -->
<link rel="manifest" href="manifest.json">
<meta name="mobile-web-app-capable" content="yes">
<title>Todolist</title>
</head>
<body>
<!-- The app hooks into this div -->
<div id="app"></div>
<!-- Open Sans Font -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700" rel="stylesheet">
<!-- A lot of magic happens in this file. HtmlWebpackPlugin automatically includes all assets (e.g. bundle.js, main.css) with the correct HTML tags, which is why they are missing in this HTML file. Don't add any assets here! (Check out webpackconfig.js if you want to know more) -->
</body>
</html>
26 changes: 26 additions & 0 deletions internals/generators/component/es6.js.hbs
@@ -0,0 +1,26 @@
/**
*
* {{ properCase name }}
*
*/

import React from 'react';

{{#if wantCSS}}
import styles from './styles.css';
{{/if}}

class {{ properCase name }} extends React.Component {
render() {
return (
{{#if wantCSS}}
<div className={ styles.{{ camelCase name }} }>
{{else}}
<div>
{{/if}}
</div>
);
}
}

export default {{ properCase name }};

0 comments on commit 9c96186

Please sign in to comment.