classiccms 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/classiccms/controllers/cms.rb +18 -7
- data/lib/classiccms/models/base.rb +6 -1
- data/lib/classiccms/models/image.rb +12 -0
- data/lib/classiccms/public/js/images.coffee +43 -17
- data/lib/classiccms/public/js/index.coffee +9 -4
- data/lib/classiccms/version.rb +1 -1
- data/lib/classiccms/views/cms/browse.haml +3 -0
- data/lib/classiccms/views/cms/ckeditor.haml +35 -15
- data/lib/classiccms/views/cms/images.haml +5 -4
- metadata +2 -2
@@ -90,21 +90,32 @@ module Classiccms
|
|
90
90
|
end
|
91
91
|
return errors
|
92
92
|
end
|
93
|
-
post '/upload
|
93
|
+
post '/upload' do
|
94
94
|
image = Image.new
|
95
95
|
image.file = params[:Filedata][:tempfile].read
|
96
96
|
image.file.name = params[:Filedata][:filename]
|
97
|
-
image.save
|
98
|
-
|
97
|
+
if !image.save
|
98
|
+
file = Document.new
|
99
|
+
file.file = params[:Filedata][:tempfile].read
|
100
|
+
file.file.name = params[:Filedata][:filename]
|
101
|
+
file.save
|
102
|
+
end
|
103
|
+
|
104
|
+
return show(:images) + show(:files)
|
99
105
|
end
|
100
106
|
get '/images' do
|
101
107
|
show :browse
|
102
108
|
end
|
103
|
-
post '/
|
104
|
-
image = Image.
|
105
|
-
image
|
109
|
+
post '/file/destroy' do
|
110
|
+
image = Image.where(:id => params[:id]).first
|
111
|
+
p image
|
112
|
+
if image != nil
|
113
|
+
image.destroy
|
114
|
+
else
|
115
|
+
Document.where(:id => params[:id]).first.destroy
|
116
|
+
end
|
106
117
|
end
|
107
|
-
get '/ckeditor/
|
118
|
+
get '/ckeditor/files' do
|
108
119
|
show :ckeditor
|
109
120
|
end
|
110
121
|
|
@@ -17,7 +17,12 @@ class ImageType
|
|
17
17
|
# Get the object as it was stored in the database, and instantiate
|
18
18
|
# this custom class from it.
|
19
19
|
def demongoize(object_id)
|
20
|
-
Image.
|
20
|
+
image = Image.where(:id => object_id).first
|
21
|
+
if image != nil
|
22
|
+
image.file
|
23
|
+
else
|
24
|
+
Dragonfly[:file].fetch_file(File.join(Dir.pwd, 'public/not_found.jpeg'))
|
25
|
+
end
|
21
26
|
end
|
22
27
|
|
23
28
|
# Takes any possible object and converts it to how it would be
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class Image
|
2
2
|
include Mongoid::Document
|
3
|
+
include Mongoid::Timestamps
|
3
4
|
|
4
5
|
field :file_uid
|
5
6
|
field :file_name
|
@@ -7,3 +8,14 @@ class Image
|
|
7
8
|
file_accessor :file
|
8
9
|
validates_property :format, :of => :file, :in => [:jpg, :jpeg, :png, :gif]
|
9
10
|
end
|
11
|
+
|
12
|
+
class Document
|
13
|
+
include Mongoid::Document
|
14
|
+
include Mongoid::Timestamps
|
15
|
+
|
16
|
+
field :file_uid
|
17
|
+
field :file_name
|
18
|
+
|
19
|
+
file_accessor :file
|
20
|
+
#validates_property :format, :of => :file
|
21
|
+
end
|
@@ -1,46 +1,72 @@
|
|
1
|
+
|
1
2
|
$ ->
|
2
|
-
new
|
3
|
+
new Browser
|
4
|
+
|
3
5
|
|
4
|
-
|
6
|
+
|
7
|
+
class Browser
|
5
8
|
constructor: ->
|
6
9
|
@p =
|
7
10
|
images: '.images'
|
8
|
-
image: '
|
9
|
-
destroy: '.
|
11
|
+
image: 'img'
|
12
|
+
destroy: '.destroy'
|
10
13
|
button: '#file_upload'
|
11
14
|
@listen()
|
12
|
-
|
15
|
+
|
13
16
|
listen: ->
|
14
17
|
$('#edit_bg').slideDown()
|
15
18
|
@set_upload_button()
|
16
19
|
@select()
|
17
20
|
@destroy()
|
21
|
+
@add_tooltip()
|
22
|
+
$('ul.menu li').click (event) => @change_window($(event.currentTarget).attr('id'))
|
23
|
+
|
24
|
+
add_tooltip: ->
|
25
|
+
$('[rel=tooltip]').tooltip();
|
26
|
+
change_window: (id)->
|
27
|
+
console.log id
|
28
|
+
$('.menu li').removeClass('active')
|
29
|
+
$('#' + id).addClass('active')
|
30
|
+
if id == 'images'
|
31
|
+
$('.files').hide()
|
32
|
+
else
|
33
|
+
$('.images').hide()
|
34
|
+
$('.'+id).show()
|
18
35
|
|
19
36
|
select: () ->
|
20
|
-
$('
|
37
|
+
$('.item').click ->
|
21
38
|
input = $('input').first().val()
|
22
39
|
url = $(this).attr('url')
|
23
|
-
|
40
|
+
if input.length > 0
|
41
|
+
window.opener.CKEDITOR.tools.callFunction(input, url)
|
42
|
+
else
|
43
|
+
window.opener.$('#file_select').val($(this).attr('id'))
|
24
44
|
self.close()
|
25
45
|
|
26
46
|
destroy: () ->
|
27
|
-
$(@p.images + ' .image').live 'mouseover mouseout', (event) =>
|
28
|
-
if (event.type == 'mouseover')
|
29
|
-
$(event.currentTarget).find('.destroy').show()
|
30
|
-
else
|
31
|
-
$(event.currentTarget).find('.destroy').hide()
|
32
47
|
$(@p.destroy).click (event) =>
|
33
|
-
id = $(event.currentTarget).
|
34
|
-
$('
|
35
|
-
$.post '/cms/
|
48
|
+
id = $(event.currentTarget).attr('data-id')
|
49
|
+
$('#' + id).hide()
|
50
|
+
$.post '/cms/file/destroy', {id: id}
|
36
51
|
|
37
52
|
set_upload_button: ->
|
38
53
|
if($('#file_upload').length != 0)
|
39
54
|
$('#file_upload').uploadify
|
55
|
+
'buttonClass' : 'btn btn-info'
|
56
|
+
'buttonText' : 'upload bestanden'
|
40
57
|
'swf' : '/cms/js/uploadify/uploadify.swf'
|
41
|
-
'uploader' : '/cms/upload
|
58
|
+
'uploader' : '/cms/upload'
|
59
|
+
'queueID' : 'file_queue'
|
60
|
+
'onSelect' : (file) =>
|
61
|
+
console.log(file)
|
62
|
+
$('#progress').append("<div class='alert alert-info' id='file-#{file.index}'><strong>"+ file.name + "</strong><button class='close' type='button' date-dismiss='alert'>x</button></div>")
|
63
|
+
'onUploadComplete' : (file) =>
|
64
|
+
$("#progress #file-#{file.index}").hide();
|
42
65
|
'onUploadSuccess' : (file, data, response) =>
|
43
|
-
$(
|
66
|
+
$('.wrapper').empty().append(data)
|
67
|
+
#$(data).replaceAll('.wrapper')
|
44
68
|
@select()
|
45
69
|
@destroy()
|
70
|
+
@add_tooltip()
|
71
|
+
@change_window($('ul.menu li.active').first().attr('id'))
|
46
72
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
go = ()->
|
2
|
+
console.log 'woohoo'
|
1
3
|
class Cms
|
2
4
|
constructor: ->
|
3
5
|
@input = 'input[name=cms]'
|
@@ -40,7 +42,9 @@ class Image
|
|
40
42
|
images: '#iki #edit_bg .images'
|
41
43
|
image: '#iki #edit_bg .images .image img'
|
42
44
|
destroy: '#iki #edit_bg .images .image .destroy'
|
43
|
-
button: '#iki #
|
45
|
+
button: '#iki #file_upload'
|
46
|
+
|
47
|
+
window.open('/cms/ckeditor/files?input='+$(@input).attr('id'),'upload','width=960,height=750,left=200,top=100,screenX=200,screenY=100')
|
44
48
|
@listen()
|
45
49
|
|
46
50
|
listen: ->
|
@@ -171,9 +175,10 @@ class Editor
|
|
171
175
|
{ name: 'links', items : [ 'Link','Unlink','-'] },
|
172
176
|
{ name: 'tools', items : [ 'Maximize' ] }
|
173
177
|
],
|
174
|
-
filebrowserBrowseUrl : '/cms/ckeditor/
|
175
|
-
|
176
|
-
|
178
|
+
filebrowserBrowseUrl : '/cms/ckeditor/files',
|
179
|
+
filebrowserImageBrowseUrl : '/cms/ckeditor/files?Type=Images',
|
180
|
+
filebrowserWindowWidth : '960',
|
181
|
+
filebrowserWindowHeight : '750'
|
177
182
|
}
|
178
183
|
hover: ->
|
179
184
|
$j(@p.buttons).mouseenter ->
|
data/lib/classiccms/version.rb
CHANGED
@@ -3,21 +3,41 @@
|
|
3
3
|
%head
|
4
4
|
%meta{:'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8'}
|
5
5
|
%title
|
6
|
-
|
7
|
-
%link{:rel=>'stylesheet', :href=>'/cms/css/
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
|
7
|
+
%link{:rel=>'stylesheet', :href=>'/cms/bootstrap/css/bootstrap.min.css', :type=> 'text/css'}
|
8
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/reset.css', :type=> 'text/css'}
|
9
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/fonts.css', :type=> 'text/css'}
|
10
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/icons.css', :type=> 'text/css'}
|
11
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/popup.css', :type=> 'text/css'}
|
12
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/scrollbar.css', :type=> 'text/css'}
|
13
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/style.css', :type=> 'text/css'}
|
14
|
+
/%link{:rel=>'stylesheet', :href=>'/cms/css/images.css', :type=> 'text/css'}
|
15
|
+
%body#iki
|
16
|
+
.container{:style => 'margin-top: 20px'}
|
17
|
+
.row
|
18
|
+
.span4
|
19
|
+
- if request.params[:Type] != 'images'
|
20
|
+
.well.well-small
|
21
|
+
%ul.menu.nav.nav-list.bs-docs-sidenav
|
22
|
+
%li.active#images
|
23
|
+
%a{:href => '#images'}
|
24
|
+
%i.icon-camera
|
25
|
+
Foto's
|
26
|
+
%li#files
|
27
|
+
%a{:href => '#files'}
|
28
|
+
%i.icon-file
|
29
|
+
Bestanden
|
30
|
+
.well.well-small
|
31
|
+
%input{:type => 'hidden', :id => 'file_upload', :name=> 'file_upload'}
|
32
|
+
%input{:type => 'hidden', :name => 'return', :value => params[:CKEditorFuncNum]}
|
33
|
+
%br
|
34
|
+
.well.well-small#progress
|
35
|
+
.span7
|
36
|
+
.well.well-small.wrapper
|
37
|
+
= show :images
|
38
|
+
= show :files
|
39
|
+
/---- load js ----/
|
15
40
|
%script{:type=>'text/javascript', :src=>'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'}
|
41
|
+
%script{:type=>'text/javascript', :src=>'/cms/bootstrap/js/bootstrap.min.js'}
|
16
42
|
%script{:type=>'text/javascript', :src=>'/cms/js/uploadify/jquery.uploadify-3.1.min.js'}
|
17
43
|
%script{:type=>'text/javascript', :src=>'/cms/js/images.js'}
|
18
|
-
%body
|
19
|
-
#iki
|
20
|
-
%input{:type => 'hidden', :name => 'return', :value => params[:CKEditorFuncNum]}
|
21
|
-
= show :browse
|
22
|
-
|
23
|
-
|
@@ -1,5 +1,6 @@
|
|
1
|
-
.images
|
1
|
+
.images{:style => 'display: inline-block;'}
|
2
2
|
- Image.all.each do |image|
|
3
|
-
.
|
4
|
-
.destroy
|
5
|
-
|
3
|
+
.span{:style => 'margin-bottom: 20px;', :id => image.id}
|
4
|
+
%button.btn.btn-mini.btn-danger.destroy{:style => 'position: absolute;', :type => 'button', :'data-original-title' => 'Verwijder', :rel => 'tooltip', :'data-id' => image.id}
|
5
|
+
%i.icon-trash.icon-white
|
6
|
+
%img.img-rounded.item{:style => 'height: 113px;', :id => image.id, :src => image.file.process(:thumb, '113x113#').url, :url => image.file.url}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: classiccms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|