chr 0.5.1 → 0.5.3
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/.coffeescript-style.json +98 -0
- data/.hound.yml +16 -0
- data/.ruby-style.yml +239 -0
- data/.scss-style.yml +145 -0
- data/.travis.yml +2 -2
- data/README.md +10 -3
- data/app/assets/javascripts/chr/chr.coffee +4 -25
- data/app/assets/javascripts/chr/chr_router.coffee +2 -14
- data/app/assets/javascripts/chr/item.coffee +2 -19
- data/app/assets/javascripts/chr/list.coffee +6 -18
- data/app/assets/javascripts/chr/list_config.coffee +3 -10
- data/app/assets/javascripts/chr/list_pagination.coffee +1 -9
- data/app/assets/javascripts/chr/list_reorder.coffee +1 -8
- data/app/assets/javascripts/chr/list_search.coffee +2 -10
- data/app/assets/javascripts/chr/list_tabs.coffee +42 -0
- data/app/assets/javascripts/chr/module-categories.coffee +0 -2
- data/app/assets/javascripts/chr/module.coffee +1 -19
- data/app/assets/javascripts/chr/utils.coffee +0 -6
- data/app/assets/javascripts/chr/view.coffee +37 -36
- data/app/assets/javascripts/chr/view_tabs.coffee +19 -8
- data/app/assets/javascripts/stores/rest-array.coffee +23 -36
- data/app/assets/stylesheets/chr/layout.scss +17 -13
- data/app/assets/stylesheets/chr/themes/basic.scss +13 -13
- data/lib/chr/version.rb +1 -1
- data/templates/character_admin.coffee.erb +1 -1
- data/test/integration/article_fullsize_test.rb +5 -5
- data/test/integration/article_test.rb +2 -2
- data/test/integration/magazine_article_test.rb +5 -5
- data/test/integration/restricted_article_test.rb +3 -3
- data/test/integration/sport_article_test.rb +2 -2
- data/test/rails_app/.gitignore +15 -0
- data/test/rails_app/.ruby-version +1 -0
- data/test/rails_app/.sample.env +6 -0
- data/test/rails_app/Procfile +1 -0
- data/test/rails_app/README.md +45 -0
- data/test/rails_app/Rakefile +1 -1
- data/test/rails_app/app/assets/images/.keep +0 -0
- data/test/rails_app/app/assets/javascripts/admin.coffee +82 -102
- data/test/rails_app/app/assets/javascripts/application.coffee +2 -0
- data/test/rails_app/app/assets/stylesheets/admin.scss +4 -1
- data/test/rails_app/app/assets/stylesheets/application.scss +1 -0
- data/test/rails_app/app/controllers/admin/base_controller.rb +5 -0
- data/test/rails_app/app/controllers/admin/devise_overrides/passwords_controller.rb +9 -0
- data/test/rails_app/app/controllers/admin/devise_overrides/sessions_controller.rb +11 -0
- data/test/rails_app/app/controllers/concerns/.keep +0 -0
- data/test/rails_app/app/helpers/body_class_helper.rb +15 -0
- data/test/rails_app/app/mailers/.keep +0 -0
- data/test/rails_app/app/models/.keep +0 -0
- data/test/rails_app/app/models/article.rb +0 -4
- data/test/rails_app/app/models/concerns/.keep +0 -0
- data/test/rails_app/app/uploaders/article_image_uploader.rb +0 -4
- data/test/rails_app/app/views/admin/devise_overrides/passwords/edit.html.erb +31 -0
- data/test/rails_app/app/views/admin/devise_overrides/passwords/new.html.erb +19 -0
- data/test/rails_app/app/views/admin/devise_overrides/sessions/new.html.erb +29 -0
- data/test/rails_app/app/views/admin/index.html.erb +1 -3
- data/test/rails_app/app/views/application/_analytics.html.erb +9 -0
- data/test/rails_app/app/views/application/_flashes.html.erb +7 -0
- data/test/rails_app/app/views/application/_javascript.html.erb +12 -0
- data/test/rails_app/app/views/layouts/admin.html.erb +13 -11
- data/test/rails_app/app/views/layouts/application.html.erb +22 -7
- data/test/rails_app/bin/rails +3 -2
- data/test/rails_app/bin/rake +3 -2
- data/test/rails_app/bin/setup +28 -22
- data/test/rails_app/bin/spring +6 -6
- data/test/rails_app/config/application.rb +12 -1
- data/test/rails_app/config/boot.rb +1 -2
- data/test/rails_app/config/environments/development.rb +2 -0
- data/test/rails_app/config/environments/production.rb +16 -1
- data/test/rails_app/config/environments/staging.rb +9 -0
- data/test/rails_app/config/environments/test.rb +1 -3
- data/test/rails_app/config/initializers/assets.rb +2 -3
- data/test/rails_app/config/initializers/carrierwave.rb +23 -4
- data/test/rails_app/config/initializers/devise.rb +265 -0
- data/test/rails_app/config/initializers/errors.rb +34 -0
- data/test/rails_app/config/initializers/json_encoding.rb +1 -0
- data/test/rails_app/config/locales/devise.en.yml +62 -0
- data/test/rails_app/config/mongoid.yml +131 -8
- data/test/rails_app/config/newrelic.yml +34 -0
- data/test/rails_app/config/puma.rb +18 -0
- data/test/rails_app/config/routes.rb +86 -0
- data/test/rails_app/config/secrets.yml +8 -16
- data/test/rails_app/config/smtp.rb +9 -0
- data/test/rails_app/lib/assets/.keep +0 -0
- data/test/rails_app/lib/tasks/.keep +0 -0
- data/test/rails_app/lib/tasks/bundler_audit.rake +12 -0
- data/test/rails_app/lib/tasks/dev.rake +12 -0
- data/test/rails_app/public/404.html +4 -2
- data/test/rails_app/public/422.html +4 -2
- data/test/rails_app/public/500.html +4 -2
- data/test/rails_app/vendor/assets/javascripts/.keep +0 -0
- data/test/rails_app/vendor/assets/stylesheets/.keep +0 -0
- data/test/support/character_front_end.rb +10 -9
- data/test/support/chr/list_pagination.rb +8 -8
- data/test/support/chr/list_reorder.rb +4 -1
- data/test/support/chr/view.rb +4 -3
- data/test/support/stores/rest-array.rb +3 -3
- data/test/test_helper.rb +13 -7
- metadata +77 -6
- data/test/rails_app/app/assets/javascripts/application.js +0 -1
- data/test/rails_app/app/assets/stylesheets/application.css +0 -1
data/.travis.yml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# indicated Ruby runtime
|
|
3
3
|
language: ruby
|
|
4
4
|
rvm:
|
|
5
|
-
- 2.2.
|
|
5
|
+
- 2.2.3
|
|
6
6
|
|
|
7
7
|
# Make Travis CI to start the MongoDB service on boot
|
|
8
8
|
services:
|
|
@@ -14,5 +14,5 @@ notifications:
|
|
|
14
14
|
before_install:
|
|
15
15
|
- sh -c 'if [ -n "$QMAKE" ]; then sudo apt-add-repository -y ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get install libqt5webkit5-dev qtdeclarative5-dev; fi'
|
|
16
16
|
|
|
17
|
-
script:
|
|
17
|
+
script:
|
|
18
18
|
- xvfb-run rake test
|
data/README.md
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
# Character
|
|
1
|
+
# Character
|
|
2
|
+
[](https://badge.fury.io/gh/slate-studio%2Fchr)
|
|
3
|
+
[](https://travis-ci.org/slate-studio/chr)
|
|
4
|
+
[](https://codeclimate.com/github/slate-studio/chr)
|
|
2
5
|
|
|
3
6
|
Character is powerful responsive javascript-based CMS for website and applications used by [Slate Studio](https://www.slatestudio.com).
|
|
4
7
|
|
|
@@ -15,13 +18,17 @@ Then run:
|
|
|
15
18
|
|
|
16
19
|
This will create a Rails app in `projectname` using the latest version of Rails with character CMS integrated.
|
|
17
20
|
|
|
18
|
-
Go to created project folder
|
|
21
|
+
Go to the created project folder. To create an admin user, open a rails console with `rails c` and execute the following line :
|
|
22
|
+
|
|
23
|
+
AdminUser.create(email: 'admin@example.com', password: 'password', name: 'admin')
|
|
24
|
+
|
|
25
|
+
Start the development server with `rails s`. Go to `localhost:3000/admin` and login with the credentials you used above. You see default character initial configuration, it gives `file uploader`, `admins` and `redirects` modules out of the box as shown on screenshot below.
|
|
19
26
|
|
|
20
27
|

|
|
21
28
|
|
|
22
29
|
Project is ready to deploy to [Heroku](https://www.heroku.com). Take a look at projects `README.md` to add plugins, create S3 bucket and setup `ENV` settings required to run the app. After deploy first admin has to be created via `heroku run console`:
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
AdminUser.create(email: 'admin@example.com', password: 'password', name: 'admin')
|
|
25
32
|
|
|
26
33
|
|
|
27
34
|
## Connect Models
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------
|
|
2
2
|
# Author: Alexander Kravets <alex@slatestudio.com>,
|
|
3
3
|
# Slate Studio (http://www.slatestudio.com)
|
|
4
|
-
#
|
|
5
|
-
# Coding Guide:
|
|
6
|
-
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
|
|
9
4
|
# -----------------------------------------------------------------------------
|
|
10
5
|
# CHARACTER
|
|
11
6
|
# -----------------------------------------------------------------------------
|
|
12
|
-
#
|
|
13
7
|
# Public attributes:
|
|
14
8
|
# modules
|
|
15
9
|
# formInputs
|
|
@@ -24,7 +18,6 @@
|
|
|
24
18
|
#
|
|
25
19
|
# Dependencies:
|
|
26
20
|
#= require ./chr_router
|
|
27
|
-
#
|
|
28
21
|
# -----------------------------------------------------------------------------
|
|
29
22
|
class @Chr
|
|
30
23
|
constructor: ->
|
|
@@ -33,8 +26,7 @@ class @Chr
|
|
|
33
26
|
|
|
34
27
|
@itemsPerPageRequest = Math.ceil($(window).height() / 60) * 2
|
|
35
28
|
|
|
36
|
-
|
|
37
|
-
# PRIVATE ===============================================
|
|
29
|
+
# PRIVATE ===================================================================
|
|
38
30
|
|
|
39
31
|
_unset_active_items: ->
|
|
40
32
|
$('.sidebar .menu a.active').removeClass('active')
|
|
@@ -80,25 +72,20 @@ class @Chr
|
|
|
80
72
|
firstMenuItemPath = @$mainMenu.find(".menu-#{ Object.keys(@modules)[0] }").attr('href')
|
|
81
73
|
return @updateHash(firstMenuItemPath)
|
|
82
74
|
|
|
83
|
-
|
|
84
|
-
# PUBLIC ================================================
|
|
75
|
+
# PUBLIC ====================================================================
|
|
85
76
|
|
|
86
77
|
isMobile: ->
|
|
87
78
|
$(window).width() < 768
|
|
88
79
|
|
|
89
|
-
|
|
90
80
|
isTablet: ->
|
|
91
81
|
! @isMobile() && ! @isDesktop()
|
|
92
82
|
|
|
93
|
-
|
|
94
83
|
isDesktop: ->
|
|
95
84
|
$(window).width() >= 1024
|
|
96
85
|
|
|
97
|
-
|
|
98
86
|
updateHash: (path, @skipRoute=false) ->
|
|
99
87
|
window.location.hash = path
|
|
100
88
|
|
|
101
|
-
|
|
102
89
|
start: (title, @config) ->
|
|
103
90
|
@$el =$ (@config.selector ? 'body')
|
|
104
91
|
@$navBar =$ "<nav class='sidebar'>"
|
|
@@ -115,26 +102,18 @@ class @Chr
|
|
|
115
102
|
@_bind_hashchange()
|
|
116
103
|
@_on_start()
|
|
117
104
|
|
|
118
|
-
|
|
119
105
|
showAlert: (message) ->
|
|
120
106
|
console.log 'Alert: ' + message
|
|
121
107
|
|
|
122
|
-
|
|
123
108
|
showError: (message) ->
|
|
124
109
|
alert 'Error: ' + message
|
|
125
110
|
|
|
126
111
|
showNotification: (message) ->
|
|
127
112
|
alert message
|
|
128
113
|
|
|
129
|
-
|
|
130
114
|
include(Chr, chrRouter)
|
|
131
115
|
|
|
132
|
-
|
|
133
|
-
# ---------------------------------------------------------
|
|
116
|
+
# -----------------------------------------------------------------------------
|
|
134
117
|
# Initialize `chr` object in global scope
|
|
135
|
-
#
|
|
118
|
+
# -----------------------------------------------------------------------------
|
|
136
119
|
window.chr = new Chr()
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------
|
|
2
2
|
# Author: Alexander Kravets <alex@slatestudio.com>,
|
|
3
3
|
# Slate Studio (http://www.slatestudio.com)
|
|
4
|
-
#
|
|
5
|
-
# Coding Guide:
|
|
6
|
-
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
|
|
9
4
|
# -----------------------------------------------------------------------------
|
|
10
5
|
# CHARACTER ROUTER
|
|
11
6
|
# -----------------------------------------------------------------------------
|
|
12
7
|
|
|
13
8
|
@chrRouter =
|
|
14
9
|
|
|
15
|
-
# PRIVATE
|
|
10
|
+
# PRIVATE ===================================================================
|
|
16
11
|
|
|
17
12
|
# format: #/<module>[/<list>]+[/new]OR[/view/<objectId>]
|
|
18
13
|
_parse_path: ->
|
|
@@ -61,7 +56,6 @@
|
|
|
61
56
|
|
|
62
57
|
return params
|
|
63
58
|
|
|
64
|
-
|
|
65
59
|
_route: ->
|
|
66
60
|
params = @_parse_path()
|
|
67
61
|
|
|
@@ -113,7 +107,6 @@
|
|
|
113
107
|
if update_active_list_items
|
|
114
108
|
@module.activeList.updateItems()
|
|
115
109
|
|
|
116
|
-
|
|
117
110
|
params.config ?= @module.activeList.config
|
|
118
111
|
|
|
119
112
|
# show view
|
|
@@ -122,8 +115,7 @@
|
|
|
122
115
|
|
|
123
116
|
@mobileListLock(params.showView)
|
|
124
117
|
|
|
125
|
-
|
|
126
|
-
# PUBLIC ================================================
|
|
118
|
+
# PUBLIC ====================================================================
|
|
127
119
|
|
|
128
120
|
mobileListLock: (showView) ->
|
|
129
121
|
if chr.isMobile()
|
|
@@ -135,7 +127,3 @@
|
|
|
135
127
|
if ! showView
|
|
136
128
|
@module.activeList.$el.removeClass('scroll-lock')
|
|
137
129
|
$(window).scrollTop( @module.activeList.scrollCache ? 0)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------
|
|
2
2
|
# Author: Alexander Kravets <alex@slatestudio.com>,
|
|
3
3
|
# Slate Studio (http://www.slatestudio.com)
|
|
4
|
-
#
|
|
5
|
-
# Coding Guide:
|
|
6
|
-
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
|
|
9
4
|
# -----------------------------------------------------------------------------
|
|
10
5
|
# LIST ITEM
|
|
11
6
|
# -----------------------------------------------------------------------------
|
|
12
|
-
#
|
|
13
7
|
# config options:
|
|
14
8
|
# onItemRender
|
|
15
9
|
#
|
|
@@ -17,7 +11,6 @@
|
|
|
17
11
|
# render()
|
|
18
12
|
# destroy()
|
|
19
13
|
# position()
|
|
20
|
-
#
|
|
21
14
|
# -----------------------------------------------------------------------------
|
|
22
15
|
class @Item
|
|
23
16
|
constructor: (@module, @path, @object, @config, @type) ->
|
|
@@ -33,8 +26,7 @@ class @Item
|
|
|
33
26
|
|
|
34
27
|
@render()
|
|
35
28
|
|
|
36
|
-
|
|
37
|
-
# PRIVATE ===============================================
|
|
29
|
+
# PRIVATE ===================================================================
|
|
38
30
|
|
|
39
31
|
_render_title: ->
|
|
40
32
|
title = @object.__title__ # title for @config.items
|
|
@@ -46,7 +38,6 @@ class @Item
|
|
|
46
38
|
@$title =$ "<div class='item-title'>#{ title }</div>"
|
|
47
39
|
@$el.append(@$title)
|
|
48
40
|
|
|
49
|
-
|
|
50
41
|
_render_subtitle: ->
|
|
51
42
|
subtitle = @object.__subtitle__ # subtitle for @config.items
|
|
52
43
|
|
|
@@ -60,7 +51,6 @@ class @Item
|
|
|
60
51
|
@$el.append(@$subtitle)
|
|
61
52
|
@$el.addClass 'has-subtitle'
|
|
62
53
|
|
|
63
|
-
|
|
64
54
|
_render_thumbnail: ->
|
|
65
55
|
imageUrl = @config.itemThumbnail?(@object)
|
|
66
56
|
imageUrl ?= @object[@config.itemThumbnail]
|
|
@@ -73,8 +63,7 @@ class @Item
|
|
|
73
63
|
@$el.append(@$thumbnail)
|
|
74
64
|
@$el.addClass 'has-thumbnail'
|
|
75
65
|
|
|
76
|
-
|
|
77
|
-
# PUBLIC ================================================
|
|
66
|
+
# PUBLIC ====================================================================
|
|
78
67
|
|
|
79
68
|
render: ->
|
|
80
69
|
@$el.html('').removeClass('has-subtitle has-thumbnail')
|
|
@@ -95,15 +84,9 @@ class @Item
|
|
|
95
84
|
if @type == 'object'
|
|
96
85
|
@config.onItemRender?(this)
|
|
97
86
|
|
|
98
|
-
|
|
99
87
|
destroy: ->
|
|
100
88
|
@$el.remove()
|
|
101
89
|
|
|
102
|
-
|
|
103
90
|
position: ->
|
|
104
91
|
positionFieldName = @config.arrayStore.sortBy
|
|
105
92
|
parseFloat(@object[positionFieldName])
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------
|
|
2
2
|
# Author: Alexander Kravets <alex@slatestudio.com>,
|
|
3
3
|
# Slate Studio (http://www.slatestudio.com)
|
|
4
|
-
#
|
|
5
|
-
# Coding Guide:
|
|
6
|
-
# https://github.com/thoughtbot/guides/tree/master/style/coffeescript
|
|
7
|
-
# -----------------------------------------------------------------------------
|
|
8
|
-
|
|
9
4
|
# -----------------------------------------------------------------------------
|
|
10
5
|
# LIST
|
|
11
6
|
# -----------------------------------------------------------------------------
|
|
12
|
-
#
|
|
13
7
|
# Configuration options:
|
|
14
8
|
# title - list title
|
|
15
9
|
# subtitle - list subtitle
|
|
@@ -23,6 +17,7 @@
|
|
|
23
17
|
# onListShow - callback on list is shown
|
|
24
18
|
# objects - objects array to be added to the store on start
|
|
25
19
|
# showWithParent - show list on a aside from parent
|
|
20
|
+
# listTabs - hash with tab names and extra url parameters
|
|
26
21
|
#
|
|
27
22
|
# Public methods:
|
|
28
23
|
# showSpinner()
|
|
@@ -31,13 +26,14 @@
|
|
|
31
26
|
# show() - show list
|
|
32
27
|
# updateItems() - update list items (sync through store with backend)
|
|
33
28
|
# isVisible() - check if list is visible
|
|
29
|
+
# selectTab(name, resestList) - select list tab
|
|
34
30
|
#
|
|
35
31
|
# Dependencies:
|
|
36
32
|
#= require ./list_config
|
|
37
33
|
#= require ./list_pagination
|
|
38
34
|
#= require ./list_reorder
|
|
39
35
|
#= require ./list_search
|
|
40
|
-
|
|
36
|
+
#= require ./list_tabs
|
|
41
37
|
# -----------------------------------------------------------------------------
|
|
42
38
|
|
|
43
39
|
class @List
|
|
@@ -91,7 +87,7 @@ class @List
|
|
|
91
87
|
|
|
92
88
|
@config.onListInit?(@)
|
|
93
89
|
|
|
94
|
-
# PRIVATE
|
|
90
|
+
# PRIVATE ===================================================================
|
|
95
91
|
|
|
96
92
|
_add_refresh: ->
|
|
97
93
|
@$refreshBtn =$ """<a href='#' class='refresh'>
|
|
@@ -115,26 +111,22 @@ class @List
|
|
|
115
111
|
if hash.startsWith(p)
|
|
116
112
|
return $a.addClass('active')
|
|
117
113
|
|
|
118
|
-
# PUBLIC
|
|
114
|
+
# PUBLIC ====================================================================
|
|
119
115
|
|
|
120
116
|
showSpinner: ->
|
|
121
117
|
@$el.addClass('show-spinner')
|
|
122
118
|
|
|
123
|
-
|
|
124
119
|
hideSpinner: ->
|
|
125
120
|
@$el.removeClass('show-spinner')
|
|
126
121
|
|
|
127
|
-
|
|
128
122
|
hide: ->
|
|
129
123
|
@$el.hide()
|
|
130
124
|
|
|
131
|
-
|
|
132
125
|
show: (callback) ->
|
|
133
126
|
@$el.show 0, =>
|
|
134
127
|
@config.onListShow?(@)
|
|
135
128
|
callback?()
|
|
136
129
|
|
|
137
|
-
|
|
138
130
|
updateItems: ->
|
|
139
131
|
if not @config.disableUpdateItems
|
|
140
132
|
if @config.arrayStore
|
|
@@ -142,12 +134,8 @@ class @List
|
|
|
142
134
|
@$items.scrollTop(0)
|
|
143
135
|
@config.arrayStore.reset()
|
|
144
136
|
|
|
145
|
-
|
|
146
137
|
include(List, listConfig)
|
|
147
138
|
include(List, listPagination)
|
|
148
139
|
include(List, listReorder)
|
|
149
140
|
include(List, listSearch)
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
141
|
+
include(List, listTabs)
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
1
|
# -----------------------------------------------------------------------------
|
|
3
2
|
# LIST CONFIG
|
|
4
3
|
# Methods for processing:
|
|
5
4
|
# - @config.items
|
|
6
5
|
# - @config.arrayStore
|
|
7
6
|
# -----------------------------------------------------------------------------
|
|
8
|
-
|
|
9
7
|
@listConfig =
|
|
10
|
-
# PRIVATE
|
|
8
|
+
# PRIVATE ===================================================================
|
|
11
9
|
|
|
12
10
|
_add_item: (path, object, position, config, type) ->
|
|
13
11
|
if type == 'folder'
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
@items[object._id] = item
|
|
19
17
|
@_update_item_position(item, position)
|
|
20
18
|
|
|
21
|
-
|
|
22
19
|
_update_item_position: (item, position) ->
|
|
23
20
|
# skip static items in the head of list
|
|
24
21
|
position = @_config_items_count + position
|
|
@@ -28,7 +25,6 @@
|
|
|
28
25
|
@$items.append(item.$el.hide())
|
|
29
26
|
$(@$items.children()[position - 1]).after(item.$el.show())
|
|
30
27
|
|
|
31
|
-
|
|
32
28
|
_process_config_items: ->
|
|
33
29
|
for slug, config of @config.items
|
|
34
30
|
object =
|
|
@@ -45,11 +41,9 @@
|
|
|
45
41
|
@_add_item("#{ @path }/#{ slug }", object, 0, config, item_type)
|
|
46
42
|
@_config_items_count += 1
|
|
47
43
|
|
|
48
|
-
|
|
49
44
|
_bind_config_array_store: ->
|
|
50
45
|
# item added
|
|
51
46
|
@config.arrayStore.on 'object_added', (e, data) =>
|
|
52
|
-
|
|
53
47
|
@_add_item("#{ @path }/view/#{ data.object._id }", data.object, data.position, @config, 'object')
|
|
54
48
|
|
|
55
49
|
if @config.objects
|
|
@@ -79,6 +73,5 @@
|
|
|
79
73
|
if @config.arrayStore.reorderable
|
|
80
74
|
@_bind_reorder()
|
|
81
75
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
if @config.listTabs
|
|
77
|
+
@_bind_tabs()
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# -----------------------------------------------------------------------------
|
|
4
4
|
|
|
5
5
|
@listPagination =
|
|
6
|
-
# PRIVATE
|
|
6
|
+
# PRIVATE ===================================================================
|
|
7
7
|
|
|
8
8
|
_bind_pagination: ->
|
|
9
9
|
if chr.isMobile()
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
else
|
|
13
13
|
@_bind_desktop_scroll()
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
_bind_desktop_scroll: ->
|
|
17
16
|
@lastScrollTop = 0
|
|
18
17
|
$viewport = @$el
|
|
@@ -26,7 +25,6 @@
|
|
|
26
25
|
|
|
27
26
|
@lastScrollTop = scroll_top
|
|
28
27
|
|
|
29
|
-
|
|
30
28
|
chr._bind_mobile_scroll = ->
|
|
31
29
|
if ! @_mobile_scroll_binded
|
|
32
30
|
@lastScrollTop = 0
|
|
@@ -51,7 +49,6 @@ chr._bind_mobile_scroll = ->
|
|
|
51
49
|
|
|
52
50
|
@_mobile_scroll_binded = true
|
|
53
51
|
|
|
54
|
-
|
|
55
52
|
chr._list_height = ($items) ->
|
|
56
53
|
height = 0
|
|
57
54
|
offset = null
|
|
@@ -63,7 +60,6 @@ chr._list_height = ($items) ->
|
|
|
63
60
|
|
|
64
61
|
return height
|
|
65
62
|
|
|
66
|
-
|
|
67
63
|
chr._load_next_page = ($viewport, list, scroll_top) ->
|
|
68
64
|
$items = list.$items
|
|
69
65
|
store = list.config.arrayStore
|
|
@@ -83,7 +79,3 @@ chr._load_next_page = ($viewport, list, scroll_top) ->
|
|
|
83
79
|
store.load false,
|
|
84
80
|
onSuccess: => ;
|
|
85
81
|
onError: => chr.showAlert("Can't load next page, server error 500.")
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------
|
|
2
2
|
# LIST REORDER
|
|
3
3
|
# -----------------------------------------------------------------------------
|
|
4
|
-
#
|
|
5
4
|
# Dependencies:
|
|
6
5
|
#= require vendor/slip
|
|
7
|
-
#
|
|
8
6
|
# -----------------------------------------------------------------------------
|
|
9
|
-
|
|
10
7
|
@listReorder =
|
|
11
8
|
|
|
12
|
-
# PRIVATE
|
|
9
|
+
# PRIVATE ===================================================================
|
|
13
10
|
|
|
14
11
|
_bind_reorder: ->
|
|
15
12
|
items = @items
|
|
@@ -70,7 +67,3 @@
|
|
|
70
67
|
), false
|
|
71
68
|
|
|
72
69
|
$(list).addClass 'reorderable'
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|