carte-server 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config.json +1 -11
- data/gulpfile.coffee +1 -15
- data/lib/carte.coffee +12 -0
- data/lib/carte/client/router.coffee +0 -9
- data/lib/carte/client/views/app.cjsx +1 -1
- data/lib/carte/client/views/cards.cjsx +14 -8
- data/lib/carte/client/views/content.cjsx +3 -2
- data/lib/carte/client/views/header.cjsx +30 -5
- data/lib/carte/client/views/list.cjsx +1 -6
- data/lib/carte/server/version.rb +1 -1
- data/lib/carte/shared/default.json +32 -0
- data/package.json +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba996bbb2d71cf1b95ae1955737496ffe9b2a27a
|
4
|
+
data.tar.gz: 19aa30df9a3807971d76e5a7a256eca9fb554228
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c12da1320c1311ae74b500d6de2e1ff903adc5aeb7b90a87ca2e05881b15a03c4bef831b07c8c1edfb419dc6ac78321ab2923e657964feb8137af3a10e56c284
|
7
|
+
data.tar.gz: ae179b634d6bf222611497408d54fe21e31255fba216ca8810db75a26b4961ffed8560b205f9ffff512b81e27b7deb78f07b2198d623524459064566af672ddd
|
data/config.json
CHANGED
@@ -4,15 +4,5 @@
|
|
4
4
|
"public_folder": "public",
|
5
5
|
"script_path": "public/app.js",
|
6
6
|
"link_color": "yellow",
|
7
|
-
"api_path": ""
|
8
|
-
"models": {
|
9
|
-
"card": {
|
10
|
-
"title": {
|
11
|
-
"length": {"maximum": "170"}
|
12
|
-
},
|
13
|
-
"description": {
|
14
|
-
"length": {"maximum": "170"}
|
15
|
-
}
|
16
|
-
}
|
17
|
-
}
|
7
|
+
"api_path": ""
|
18
8
|
}
|
data/gulpfile.coffee
CHANGED
@@ -1,17 +1,3 @@
|
|
1
1
|
gulp = require 'gulp'
|
2
2
|
Carte = require './lib/carte'
|
3
|
-
|
4
|
-
carte = new Carte()
|
5
|
-
path = 'public/app.js'
|
6
|
-
|
7
|
-
gulp.task 'build', ->
|
8
|
-
carte.build
|
9
|
-
watch: false
|
10
|
-
minify: true
|
11
|
-
config: __dirname + '/config.json'
|
12
|
-
|
13
|
-
gulp.task 'watch', ->
|
14
|
-
carte.build
|
15
|
-
watch: true
|
16
|
-
minifty: false
|
17
|
-
config: __dirname + '/config.json'
|
3
|
+
new Carte().install(gulp, __dirname + '/config.json')
|
data/lib/carte.coffee
CHANGED
@@ -10,6 +10,18 @@ uglify = require 'gulp-uglify'
|
|
10
10
|
streamify = require 'gulp-streamify'
|
11
11
|
|
12
12
|
module.exports = class Carte
|
13
|
+
install: (gulp, config)->
|
14
|
+
gulp.task 'build', =>
|
15
|
+
@build
|
16
|
+
watch: false
|
17
|
+
minify: true
|
18
|
+
config: config
|
19
|
+
gulp.task 'watch', =>
|
20
|
+
@build
|
21
|
+
watch: true
|
22
|
+
minifty: false
|
23
|
+
config: config
|
24
|
+
|
13
25
|
build: (options)->
|
14
26
|
config = require(options.config)
|
15
27
|
fs.writeFileSync(__dirname + '/carte/shared/config.json', JSON.stringify(config))
|
@@ -13,15 +13,6 @@ module.exports = class Router extends Backbone.Router
|
|
13
13
|
@query = querystring.parse(string)
|
14
14
|
console.log @query
|
15
15
|
|
16
|
-
new: ()->
|
17
|
-
console.log 'new'
|
18
|
-
@current = 'new'
|
19
|
-
|
20
|
-
edit: (title)->
|
21
|
-
console.log 'edit', title
|
22
|
-
@current = 'edit'
|
23
|
-
@title = title
|
24
|
-
|
25
16
|
show: (title)->
|
26
17
|
console.log 'show', title
|
27
18
|
@current = 'show'
|
@@ -14,7 +14,7 @@ module.exports = React.createClass
|
|
14
14
|
render: ->
|
15
15
|
Button = require('react-bootstrap/lib/Button')
|
16
16
|
<div>
|
17
|
-
<Header key='header' />
|
17
|
+
<Header key='header' router={@props.router} />
|
18
18
|
<Content key='content' router={@props.router} />
|
19
19
|
<Footer key='footer' />
|
20
20
|
</div>
|
@@ -5,30 +5,36 @@ Card = require('./card')
|
|
5
5
|
module.exports = React.createClass
|
6
6
|
displayName: 'Cards'
|
7
7
|
|
8
|
+
getInitialState: ()->
|
9
|
+
error: false
|
10
|
+
|
8
11
|
componentDidMount: ()->
|
9
12
|
console.log 'component did mount'
|
10
13
|
@props.cards.on 'sync', @forceUpdate.bind(@, null)
|
14
|
+
@props.card.on 'sync', @forceUpdate.bind(@, null)
|
15
|
+
@props.card.on 'error', (model, response)=>
|
16
|
+
@setState error: response
|
17
|
+
@forceUpdate.bind(@, null)
|
11
18
|
|
12
19
|
render: ->
|
13
|
-
console.log 'render cards', @props.cards
|
14
|
-
if
|
15
|
-
console.log 'cards loaded'
|
16
|
-
cards = @props.cards.map (card)-> <Card key={card.get("title")} card={card} />
|
17
|
-
<div className='row'>{cards}</div>
|
18
|
-
else if @props.cards.error
|
20
|
+
console.log 'render cards', @props.cards, @state
|
21
|
+
if @state.error
|
19
22
|
<div className='row'>
|
20
23
|
{
|
21
24
|
for i in [1..9]
|
22
25
|
<div className='col-sm-4' style={padding:'5px'} onMouseOver={@onMouseOver} onMouseLeave={@onMouseLeave}>
|
23
26
|
<div className='list-group'style={margin:'0px',padding:'0px'}>
|
24
27
|
<div className='list-group-item' style={height:'220px'}>
|
25
|
-
<i className='glyphicon glyphicon-alert' />
|
26
|
-
{@props.cards.error}
|
28
|
+
<i className='glyphicon glyphicon-alert' /> {@state.error.status} {@state.error.statusText}
|
27
29
|
</div>
|
28
30
|
</div>
|
29
31
|
</div>
|
30
32
|
}
|
31
33
|
</div>
|
34
|
+
else if !@props.cards.fetching
|
35
|
+
console.log 'cards loaded'
|
36
|
+
cards = @props.cards.map (card)-> <Card key={card.get("title")} card={card} />
|
37
|
+
<div className='row'>{cards}</div>
|
32
38
|
else
|
33
39
|
console.log 'cards loading'
|
34
40
|
<div className='row'>
|
@@ -37,7 +37,7 @@ module.exports = React.createClass
|
|
37
37
|
title = 'search: ' + cards.query.title + ' (' + title + ')' if cards.query.title
|
38
38
|
title += ' - ' + config.title
|
39
39
|
document.title = title
|
40
|
-
<List key='list' router={@props.router} cards={cards}
|
40
|
+
<List key='list' router={@props.router} cards={cards} />
|
41
41
|
when "show"
|
42
42
|
console.log 'show'
|
43
43
|
cards = new CardCollection()
|
@@ -60,7 +60,8 @@ module.exports = React.createClass
|
|
60
60
|
cards.add cardModel
|
61
61
|
cards.fetching = false
|
62
62
|
error: (card, response)=>
|
63
|
-
console.log response
|
63
|
+
console.log 'error!!!!!!!!!!!!!!!!!!!!!!!!', response
|
64
|
+
cards.fetching = false
|
64
65
|
document.title = card.get('title') + ' - ' + config.title
|
65
66
|
<List key='show' cards={cards} card={card} />
|
66
67
|
else
|
@@ -15,13 +15,29 @@ module.exports = React.createClass
|
|
15
15
|
|
16
16
|
componentWillMount: ()->
|
17
17
|
console.log 'header mounted'
|
18
|
-
@
|
19
|
-
|
20
|
-
@card.on 'sync', (model)=>
|
21
|
-
console.log 'sync!!!'
|
18
|
+
@onSync = ()=>
|
19
|
+
console.log 'model new calback'
|
22
20
|
@card = new CardModel()
|
23
21
|
@card._isNew = true
|
22
|
+
@card.on 'sync', @onSync
|
24
23
|
@forceUpdate()
|
24
|
+
@onSync()
|
25
|
+
|
26
|
+
@callback = ()=>
|
27
|
+
if @props.router.query
|
28
|
+
searchText = []
|
29
|
+
if @props.router.query.tags
|
30
|
+
for tag in @props.router.query.tags.split(',')
|
31
|
+
searchText.push '#' + tag
|
32
|
+
if @props.router.query.title
|
33
|
+
searchText.push @props.router.query.title
|
34
|
+
@setState searchText: searchText.join(' ')
|
35
|
+
@forceUpdate()
|
36
|
+
@props.router.on "route", @callback
|
37
|
+
|
38
|
+
componentWillUnmount: ->
|
39
|
+
console.log 'componentWillMount un'
|
40
|
+
@props.router.off "route", @callback
|
25
41
|
|
26
42
|
onChangeSearchText: ()->
|
27
43
|
@setState searchText: event.target.value
|
@@ -30,7 +46,16 @@ module.exports = React.createClass
|
|
30
46
|
if event.keyCode == 13 # ENTER
|
31
47
|
console.log '13 enter'
|
32
48
|
event.preventDefault()
|
33
|
-
|
49
|
+
tags = []
|
50
|
+
titles = []
|
51
|
+
for searchText in @state.searchText.split(' ')
|
52
|
+
if match = searchText.match(/^#(.+)/)
|
53
|
+
tags.push(match[1])
|
54
|
+
else
|
55
|
+
titles.push(searchText)
|
56
|
+
query = {}
|
57
|
+
query.title = titles.join(' ') if titles.length > 0
|
58
|
+
query.tags = tags.join(',') if tags.length > 0
|
34
59
|
location.hash = '/?' + $.param(query)
|
35
60
|
|
36
61
|
render: ->
|
@@ -48,11 +48,6 @@ module.exports = React.createClass
|
|
48
48
|
<li><a onClick={helpers.reload} href={"#/?" + @latestParam()} style={{padding:'6px 12px',fontWeight: if @props.cards.query.sort == 'updated_at' and @props.cards.query.order != 'random' then 'bold' else 'normal'}}>Latest</a></li>
|
49
49
|
<li><a onClick={helpers.reload} href={"#/?" + @randomParam()} style={{padding:'6px 12px',fontWeight: if @props.cards.query.order == 'random' then 'bold' else 'normal'}}>Random</a></li>
|
50
50
|
<li><a href={config.api_path + "/api/cards.xml?" + @queryParam({}, [])} style={{padding:'6px 12px'}}><i className="fa fa-rss" /></a></li>
|
51
|
-
{
|
52
|
-
if @props.cards.query.tags
|
53
|
-
@props.cards.query.tags.split(',').map (tag)=>
|
54
|
-
<li><a href={"#/?" + @tagParam(tag)} style={padding:'6px 12px'}><i className="glyphicon glyphicon-tag" /> {tag}</a></li>
|
55
|
-
}
|
56
51
|
</ul>
|
57
52
|
</div>
|
58
53
|
<div className="col-sm-6" style={{padding:"0px"}}>
|
@@ -86,7 +81,7 @@ module.exports = React.createClass
|
|
86
81
|
</div>
|
87
82
|
</div>
|
88
83
|
}
|
89
|
-
<Cards cards={@props.cards} />
|
84
|
+
<Cards cards={@props.cards} card={@props.card} />
|
90
85
|
{
|
91
86
|
if !@props.card && helpers.isMobile()
|
92
87
|
<div className="row">
|
data/lib/carte/server/version.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"title": "Carte Sandbox",
|
3
|
+
"description": "Sandbox for Carte",
|
4
|
+
"views": {
|
5
|
+
"menu": [],
|
6
|
+
"query": {}
|
7
|
+
},
|
8
|
+
"models": {
|
9
|
+
"card": {
|
10
|
+
"validations": {
|
11
|
+
"title": {
|
12
|
+
"presence": true,
|
13
|
+
"length": 70
|
14
|
+
},
|
15
|
+
"description": {
|
16
|
+
"presence": true,
|
17
|
+
"length": {
|
18
|
+
"maximum": 70
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"tags": {
|
22
|
+
"length": 3,
|
23
|
+
"array": {
|
24
|
+
"length": {
|
25
|
+
"maximum": 10
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carte-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tily
|
@@ -250,6 +250,7 @@ files:
|
|
250
250
|
- lib/carte/server/views/cards.builder
|
251
251
|
- lib/carte/server/views/index.haml
|
252
252
|
- lib/carte/shared/.keep
|
253
|
+
- lib/carte/shared/default.json
|
253
254
|
- mongoid.yml
|
254
255
|
- package.json
|
255
256
|
- public/images/icon.png
|