loft 0.2.3 → 0.2.4
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/README.md +8 -22
- data/app/assets/stylesheets/loft.scss +38 -34
- data/lib/loft/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8b9a117b09ce200d56515481cb519409596bc08
|
4
|
+
data.tar.gz: c13408a45069a156bb785670d9a8392b41529f45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c1ff5b7c51376b27a239822053261959ab97e06a0587ece747b94803cde516c414ac37e330280780bd359ec06e7d6fcff81ea8ef336fc10bcdb51c4cc44383a
|
7
|
+
data.tar.gz: cf268fc05a8ace3ae6312575bc3bd82bc30cecd20ce47a161928b6e211b1cf822e2bd7119a56fcb0d38d26f0afd5b7d7c306b6177ca44c10e816279fe04d197d
|
data/README.md
CHANGED
@@ -9,37 +9,22 @@ Add to ```Gemfile```:
|
|
9
9
|
|
10
10
|
gem 'loft'
|
11
11
|
|
12
|
-
Setup a new model for assets ```asset.rb```:
|
13
|
-
|
14
|
-
```ruby
|
15
|
-
class Asset
|
16
|
-
include Mongoid::Document
|
17
|
-
include Mongoid::LoftAsset
|
18
|
-
end
|
19
|
-
```
|
20
|
-
|
21
|
-
Add controller for asset model to make it accesible via CMS, e.g. ```app/controllers/admin/assets_controller.rb```:
|
22
|
-
|
23
|
-
```ruby
|
24
|
-
class Admin::AssetsController < Admin::BaseController
|
25
|
-
mongosteen
|
26
|
-
|
27
|
-
has_scope :by_type
|
28
|
-
end
|
29
|
-
```
|
30
|
-
|
31
12
|
Add admin assets controller to ```routes.rb```:
|
32
13
|
|
33
14
|
```ruby
|
34
|
-
resources :assets
|
15
|
+
resources :assets, controller: 'assets'
|
35
16
|
```
|
36
17
|
|
37
|
-
Add to ```admin.scss```:
|
18
|
+
Add to ```admin.scss``` and ```admin.coffee```:
|
38
19
|
|
39
20
|
```scss
|
40
21
|
@import "loft";
|
41
22
|
```
|
42
23
|
|
24
|
+
```coffee
|
25
|
+
#= require loft
|
26
|
+
```
|
27
|
+
|
43
28
|
Add to ```admin.coffee``` character configuration object:
|
44
29
|
|
45
30
|
```coffee
|
@@ -47,10 +32,11 @@ loft: new Loft('Files', 'asset', '/admin/assets')
|
|
47
32
|
```
|
48
33
|
|
49
34
|
|
50
|
-
## Notes
|
35
|
+
## TODO Notes
|
51
36
|
|
52
37
|
1. Check out [kraken.io](https://github.com/kraken-io/kraken-ruby) for image optimization.
|
53
38
|
|
39
|
+
|
54
40
|
## Loft family
|
55
41
|
|
56
42
|
- [Character](https://github.com/slate-studio/chr): Powerful javascript CMS for apps
|
@@ -1,22 +1,22 @@
|
|
1
|
-
//
|
2
|
-
//
|
1
|
+
// -----------------------------------------------------------------------
|
2
|
+
// Basic styles for Loft Character CMS plugin, this should be included in
|
3
3
|
// admin.scss (default)
|
4
|
-
//
|
4
|
+
// -----------------------------------------------------------------------
|
5
5
|
|
6
6
|
@import "inputs/loft-image";
|
7
7
|
|
8
8
|
// MIXINS
|
9
9
|
|
10
|
-
@mixin
|
10
|
+
@mixin loft-icon-label($title) {
|
11
11
|
&:before {
|
12
12
|
display: block; margin-top: 2.6em;
|
13
|
-
content: $title; color: $
|
13
|
+
content: $title; color: rgba($base-font-color, .2);
|
14
14
|
font-size: 1.5em; font-weight: 300; letter-spacing: 8px;
|
15
15
|
text-align: center; text-transform: uppercase;
|
16
16
|
}
|
17
17
|
}
|
18
18
|
|
19
|
-
@mixin
|
19
|
+
@mixin loft-icon-base($bgSize, $width, $height) {
|
20
20
|
display: block; background-size: $bgSize; width: $width; height: $height;
|
21
21
|
background-image: image-url("loft/library@3x.png");
|
22
22
|
}
|
@@ -30,7 +30,7 @@
|
|
30
30
|
}
|
31
31
|
|
32
32
|
.item {
|
33
|
-
&:before { @include
|
33
|
+
&:before { @include loft-icon-base(32px 112px, 16px, 16px); }
|
34
34
|
&.active:before { background-position: 16px 0px; }
|
35
35
|
}
|
36
36
|
.item:nth-child(2) {
|
@@ -73,7 +73,7 @@
|
|
73
73
|
|
74
74
|
// type icon
|
75
75
|
.asset-icon {
|
76
|
-
@include
|
76
|
+
@include loft-icon-base(64px 224px, 32px, 32px);
|
77
77
|
@include position(absolute, 12px null null 3.05em);
|
78
78
|
}
|
79
79
|
|
@@ -100,7 +100,7 @@
|
|
100
100
|
display: none; z-index: 1;
|
101
101
|
@include position(absolute, 7px .5em null 94px);
|
102
102
|
input { width: 100%; padding: .1em .3em .3em .3em; @include no-focus-outline;
|
103
|
-
border: 1px solid $
|
103
|
+
border: 1px solid lighten($base-font-color, 35%); box-shadow: 0 0 10px lighten($base-font-color, 50%); border-radius: 3px; }
|
104
104
|
}
|
105
105
|
&.edit-name .asset-name { display: block; }
|
106
106
|
}
|
@@ -114,10 +114,10 @@
|
|
114
114
|
// GROUP ACTIONS
|
115
115
|
|
116
116
|
.assets-group-actions {
|
117
|
-
@include position(absolute, 0 0 0 0); background:
|
118
|
-
.accept {
|
119
|
-
.delete {
|
120
|
-
.unselect {
|
117
|
+
@include position(absolute, 0 0 0 0); background: white;
|
118
|
+
.accept { color: $positive-color; float: right; margin-right: 1em; }
|
119
|
+
.delete { color: $assertive-color; float: right; margin-right: 1em; }
|
120
|
+
.unselect { color: lighten($base-font-color, 35%); float: left; margin-left: 1em; }
|
121
121
|
}
|
122
122
|
|
123
123
|
.assets-group-actions .accept { display: none; }
|
@@ -129,8 +129,12 @@
|
|
129
129
|
|
130
130
|
.asset-upload {
|
131
131
|
@include position(absolute, 0 -40px null null);
|
132
|
-
@
|
133
|
-
|
132
|
+
@include icon-plus($positive-color);
|
133
|
+
@include no-focus-outline;
|
134
|
+
cursor : pointer;
|
135
|
+
padding-left : 80px;
|
136
|
+
&:before { @include position(absolute, null null null 0); }
|
137
|
+
&:hover { opacity : .5; }
|
134
138
|
}
|
135
139
|
|
136
140
|
.list header .asset-upload + .search { @include position(absolute, 0 40px null null); }
|
@@ -141,11 +145,11 @@
|
|
141
145
|
// MODAL MODE
|
142
146
|
|
143
147
|
.loft {
|
144
|
-
.modal-close {
|
148
|
+
.modal-close { display: none; }
|
145
149
|
&.module-modal {
|
146
150
|
@include position(absolute, 0 .5em 0 .5em); z-index: 1100;
|
147
151
|
|
148
|
-
&:after {
|
152
|
+
&:after { display: none; }
|
149
153
|
|
150
154
|
// dark background
|
151
155
|
&:before {
|
@@ -153,10 +157,10 @@
|
|
153
157
|
content: ''; display: block; background: rgba(0,0,0,.25);
|
154
158
|
}
|
155
159
|
|
156
|
-
.modal-close { @include
|
160
|
+
.modal-close { @include position(absolute, null null null 1em ); display: inline-block; }
|
157
161
|
.header { top: 0; left: .5em; right: .5em; width: auto; }
|
158
162
|
|
159
|
-
.list:first-child .back { display: none }
|
163
|
+
.list:first-child .back { display: none; }
|
160
164
|
}
|
161
165
|
}
|
162
166
|
|
@@ -169,7 +173,7 @@
|
|
169
173
|
padding-top: 19px; padding-bottom: 19px;
|
170
174
|
.item-title {
|
171
175
|
display: inline; cursor: pointer;
|
172
|
-
&:hover { color: $
|
176
|
+
&:hover { color: $positive-color; text-decoration: underline; }
|
173
177
|
}
|
174
178
|
.item-subtitle { @include position(absolute, 1.55em 1em null null); }
|
175
179
|
.asset-name { top: 16px; }
|
@@ -183,13 +187,13 @@
|
|
183
187
|
// GRID MODE
|
184
188
|
.assets-switch-mode {
|
185
189
|
@include position(absolute, null null null 1em);
|
186
|
-
display: inline;
|
187
|
-
&:before { content: 'Grid'; color: $
|
188
|
-
&:after { content: 'List'; color: $
|
190
|
+
display: inline; line-height: 2.5; left: 3em;
|
191
|
+
&:before { content: 'Grid'; color: lighten($base-font-color, 50%); margin-right: .25em; }
|
192
|
+
&:after { content: 'List'; color: lighten($base-font-color, 35%); }
|
189
193
|
}
|
190
194
|
.loft.grid-mode .assets-switch-mode {
|
191
|
-
&:before { color: $
|
192
|
-
&:after { color: $
|
195
|
+
&:before { color: lighten($base-font-color, 35%); }
|
196
|
+
&:after { color: lighten($base-font-color, 50%); }
|
193
197
|
}
|
194
198
|
|
195
199
|
.loft.grid-mode {
|
@@ -199,18 +203,18 @@
|
|
199
203
|
|
200
204
|
.item.asset {
|
201
205
|
padding-left: 1em; width: 222px; height: 222px;
|
202
|
-
@include no-bottom-border; border: 1px solid $
|
206
|
+
@include no-bottom-border; border: 1px solid rgba($base-font-color, .2); border-radius: 4px;
|
203
207
|
|
204
208
|
// checkbox: position + decoration
|
205
209
|
.asset-checkbox {
|
206
|
-
top: 10px; left: 10px; width: 24px; height: 24px; background:
|
210
|
+
top: 10px; left: 10px; width: 24px; height: 24px; background: white;
|
207
211
|
box-shadow: 0 1px 0 rgba(0,0,0,0.05),1px 0 0 rgba(0,0,0,0.05); border-bottom-right-radius: 4px;
|
208
212
|
}
|
209
213
|
|
210
214
|
// thumbnail
|
211
215
|
.asset-icon {
|
212
216
|
@include position(absolute, 10px null null 10px);
|
213
|
-
width: 200px; height: 150px; background:
|
217
|
+
width: 200px; height: 150px; background: white; border-radius: 0;
|
214
218
|
&:after { @include position(absolute, 0px 0px 0px 0px); box-shadow: 0 0 1px rgba(0,0,0,0.2) inset; content: ''; display: block; }
|
215
219
|
}
|
216
220
|
|
@@ -224,11 +228,11 @@
|
|
224
228
|
}
|
225
229
|
|
226
230
|
// asset type labels
|
227
|
-
.asset-text .asset-icon { @include
|
228
|
-
.asset-archive .asset-icon { @include
|
229
|
-
.asset-audio .asset-icon { @include
|
230
|
-
.asset-video .asset-icon { @include
|
231
|
-
.asset-other .asset-icon { @include
|
231
|
+
.asset-text .asset-icon { @include loft-icon-label('Text'); }
|
232
|
+
.asset-archive .asset-icon { @include loft-icon-label('Archive'); }
|
233
|
+
.asset-audio .asset-icon { @include loft-icon-label('Audio'); }
|
234
|
+
.asset-video .asset-icon { @include loft-icon-label('Video'); }
|
235
|
+
.asset-other .asset-icon { @include loft-icon-label('File'); }
|
232
236
|
}
|
233
237
|
}
|
234
238
|
}
|
@@ -237,7 +241,7 @@
|
|
237
241
|
/* Desktop ----------------------------------------------------------------- */
|
238
242
|
@media #{$desktop} {
|
239
243
|
// BACK
|
240
|
-
.loft .list:not(:first-child) .back {
|
244
|
+
.loft .list:not(:first-child) .back { display: none; }
|
241
245
|
|
242
246
|
// GRID MODE
|
243
247
|
.assets-switch-mode { left: 1em; }
|
data/lib/loft/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Kravets
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chr
|