iatelier 0.4.4 → 0.5.0
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/iatelier.gemspec +1 -0
- data/lib/iatelier/controllers/books/_db_connector.rb +5 -3
- data/lib/iatelier/controllers/books/create.rb +38 -3
- data/lib/iatelier/controllers/books/edit.rb +6 -3
- data/lib/iatelier/controllers/books/manage.rb +10 -3
- data/lib/iatelier/controllers/books/new.rb +5 -3
- data/lib/iatelier/controllers/books/update.rb +26 -5
- data/lib/iatelier/models/book.rb +27 -45
- data/lib/iatelier/templates/books/_engine.html.haml +9 -1
- data/lib/iatelier/templates/books/edit.html.haml +0 -1
- data/lib/iatelier/templates/books/manage.html.haml +3 -1
- data/lib/iatelier/templates/books/new.html.haml +1 -2
- data/lib/iatelier/version.rb +1 -1
- data/lib/iatelier/views/books/create.rb +1 -0
- data/lib/iatelier/views/books/manage.rb +3 -0
- data/lib/iatelier/views/books/update.rb +1 -0
- metadata +16 -3
- data/lib/iatelier/templates/books/update.html.haml +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7197869b7483e6d3418708d5a73eb219b45ed27803263ade922666e3e15c48e0
|
4
|
+
data.tar.gz: ab05fd67450e3f3e939fc957a5a75ddafe2c0fc612eac2f91ca20a760f0d5264
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e6cc9a102be00f0299c158e55fd21ed2b2d385b4f0e7e2e25c0db90a6921809eda967b6a3c0a5a0fc39a69c3782932631dcf6f69b141b58d36d35985912d57c
|
7
|
+
data.tar.gz: 27f857f759065a3d1d17805c3a704c9b7b36adf59b92141d1605d6e77a2ebcfd468adf113fd67c4756881b89a9154276b15af062a7086fcdbc16345559b3763d
|
data/iatelier.gemspec
CHANGED
@@ -4,10 +4,12 @@ module Iatelier
|
|
4
4
|
module DbConnector
|
5
5
|
def set_database database
|
6
6
|
tmp_config = ActiveRecord::Base.connection_config
|
7
|
-
|
8
|
-
|
7
|
+
if !database.nil?
|
8
|
+
tmp_config[:database] = database
|
9
|
+
ActiveRecord::Base.establish_connection tmp_config
|
10
|
+
end
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
13
|
-
end
|
15
|
+
end
|
@@ -4,11 +4,46 @@ module Iatelier
|
|
4
4
|
class Create
|
5
5
|
include Iatelier::Action
|
6
6
|
include Iatelier::Controllers::Books::DbConnector
|
7
|
+
expose :book, :book_type, :database, :errors
|
7
8
|
def call(params)
|
8
|
-
|
9
|
+
# [optional] setting the database
|
10
|
+
@database = params.get(:database)
|
11
|
+
self.set_database @database
|
12
|
+
|
13
|
+
#
|
9
14
|
@book = Object.const_get(params[:book_type].capitalize).new
|
10
|
-
|
11
|
-
|
15
|
+
@book.namespace = database
|
16
|
+
|
17
|
+
# p 'starting everything'
|
18
|
+
@book.dimensions.each do |dimension|
|
19
|
+
method_name = 'setup_' + dimension
|
20
|
+
action = @book.public_send(method_name.to_sym, params)
|
21
|
+
p 'what is the status = ' + action.valid?.to_s
|
22
|
+
if !action.valid?
|
23
|
+
puts 'the error is ' + action.errors.messages.to_s
|
24
|
+
@errors = action.errors.messages
|
25
|
+
self.status = 422
|
26
|
+
return 'caught an error!'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
@book.save
|
31
|
+
|
32
|
+
@book.dimensions.each do |dimension|
|
33
|
+
action = @book.public_send(dimension.to_sym)
|
34
|
+
if !action.save
|
35
|
+
@errors = action.errors.messages
|
36
|
+
self.status = 422
|
37
|
+
return 'caught an error!'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
@book.sync_keywords params
|
42
|
+
@book.sync_individuals params
|
43
|
+
@book.sync_content params
|
44
|
+
@book.store_attachment params
|
45
|
+
|
46
|
+
redirect_to '/iatelier/' + @database + '/' + params[:book_type]
|
12
47
|
end
|
13
48
|
end
|
14
49
|
end
|
@@ -6,10 +6,13 @@ module Iatelier
|
|
6
6
|
include Iatelier::Controllers::Books::DbConnector
|
7
7
|
expose :book, :database
|
8
8
|
def call(params)
|
9
|
-
|
10
|
-
|
9
|
+
# [optional] setting the database
|
10
|
+
@database = params.get(:database)
|
11
|
+
self.set_database @database
|
12
|
+
|
13
|
+
#
|
11
14
|
@book = Object.const_get(params[:book_type].capitalize).find(params[:id])
|
12
|
-
@book.namespace =
|
15
|
+
@book.namespace = @database
|
13
16
|
end
|
14
17
|
end
|
15
18
|
end
|
@@ -4,10 +4,17 @@ module Iatelier
|
|
4
4
|
class Manage
|
5
5
|
include Iatelier::Action
|
6
6
|
include Iatelier::Controllers::Books::DbConnector
|
7
|
-
expose :books
|
7
|
+
expose :books, :uri
|
8
8
|
def call(params)
|
9
|
-
|
10
|
-
|
9
|
+
# [optional] setting the database
|
10
|
+
@database = params.get(:database)
|
11
|
+
self.set_database @database
|
12
|
+
|
13
|
+
#
|
14
|
+
@books = Object.const_get(params[:book_type].capitalize).includes(:timestamp).all.order("timestamps.publish desc")
|
15
|
+
|
16
|
+
#
|
17
|
+
@uri = '/iatelier/' + @database + '/' + params[:book_type] + '/'
|
11
18
|
end
|
12
19
|
end
|
13
20
|
end
|
@@ -6,8 +6,10 @@ module Iatelier
|
|
6
6
|
include Iatelier::Controllers::Books::DbConnector
|
7
7
|
expose :book, :book_type, :database
|
8
8
|
def call(params)
|
9
|
-
|
10
|
-
|
9
|
+
# [optional] setting the database
|
10
|
+
@database = params.get(:database)
|
11
|
+
self.set_database @database
|
12
|
+
|
11
13
|
@book_type = params[:book_type].capitalize;
|
12
14
|
@book = Object.const_get(@book_type).new
|
13
15
|
@book.namespace = @database
|
@@ -15,4 +17,4 @@ module Iatelier
|
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
18
|
-
end
|
20
|
+
end
|
@@ -4,14 +4,35 @@ module Iatelier
|
|
4
4
|
class Update
|
5
5
|
include Iatelier::Action
|
6
6
|
include Iatelier::Controllers::Books::DbConnector
|
7
|
+
expose :book, :database, :errors
|
7
8
|
def call(params)
|
8
|
-
|
9
|
+
# [optional] setting the database
|
10
|
+
@database = params.get(:database)
|
9
11
|
self.set_database @database
|
12
|
+
|
13
|
+
# setting up the book
|
10
14
|
@book = Object.const_get(params[:book_type].capitalize).find(params[:id])
|
11
|
-
@book.namespace =
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
+
@book.namespace = @database
|
16
|
+
|
17
|
+
@book.dimensions.each do |dimension|
|
18
|
+
if @book.public_send(dimension.to_sym)
|
19
|
+
method_name = 'revise_' + dimension
|
20
|
+
else
|
21
|
+
method_name = 'setup_' + dimension
|
22
|
+
end
|
23
|
+
@book.public_send(method_name.to_sym, params)
|
24
|
+
end
|
25
|
+
@book.dimensions.each do |dimension|
|
26
|
+
action = @book.public_send(dimension.to_sym)
|
27
|
+
if !action.save
|
28
|
+
@errors = action.errors.messages
|
29
|
+
self.status = 422
|
30
|
+
end
|
31
|
+
end
|
32
|
+
@book.sync_keywords params
|
33
|
+
@book.sync_individuals params
|
34
|
+
@book.sync_content params
|
35
|
+
@book.store_attachment params
|
15
36
|
end
|
16
37
|
end
|
17
38
|
end
|
data/lib/iatelier/models/book.rb
CHANGED
@@ -68,45 +68,6 @@ class Book < ActiveRecord::Base
|
|
68
68
|
return markdown.render(content_raw.to_s)
|
69
69
|
end
|
70
70
|
|
71
|
-
# def initialized
|
72
|
-
# super()
|
73
|
-
# puts "content of the dimension: \n"
|
74
|
-
# puts dimensions.inspect
|
75
|
-
# dimensions.each do |dimension|
|
76
|
-
# reference = dimension + able
|
77
|
-
# hasone dimension.to_sym as: reference.to_sym
|
78
|
-
# end
|
79
|
-
# end
|
80
|
-
|
81
|
-
def create params
|
82
|
-
puts 'these are the stuff were going to add:' + dimensions.to_s
|
83
|
-
dimensions.each do |dimension|
|
84
|
-
method_name = 'setup_' + dimension
|
85
|
-
self.public_send(method_name.to_sym, params)
|
86
|
-
end
|
87
|
-
self.save
|
88
|
-
sync_keywords params
|
89
|
-
sync_individuals params
|
90
|
-
sync_content params
|
91
|
-
end
|
92
|
-
|
93
|
-
def revise params
|
94
|
-
dimensions.each do |dimension|
|
95
|
-
if self.public_send(dimension.to_sym)
|
96
|
-
method_name = 'revise_' + dimension
|
97
|
-
else
|
98
|
-
method_name = 'setup_' + dimension
|
99
|
-
end
|
100
|
-
self.public_send(method_name.to_sym, params)
|
101
|
-
end
|
102
|
-
dimensions.each do |dimension|
|
103
|
-
self.public_send(dimension.to_sym).save
|
104
|
-
end
|
105
|
-
sync_keywords params
|
106
|
-
sync_individuals params
|
107
|
-
sync_content params
|
108
|
-
end
|
109
|
-
|
110
71
|
def sync_keywords params
|
111
72
|
@nkeys = []
|
112
73
|
@keywords = params[:keywords].split ', '
|
@@ -164,24 +125,31 @@ class Book < ActiveRecord::Base
|
|
164
125
|
end
|
165
126
|
|
166
127
|
def setup_title params
|
167
|
-
self.build_title({value: params[:title]})
|
128
|
+
return self.build_title({value: params[:title]})
|
168
129
|
end
|
169
130
|
def revise_title params
|
170
|
-
self.title.update(value: params[:title])
|
131
|
+
return self.title.update(value: params[:title])
|
171
132
|
end
|
172
133
|
|
173
134
|
def setup_subtitle params
|
174
|
-
self.build_subtitle({value: params[:subtitle]})
|
135
|
+
return self.build_subtitle({value: params[:subtitle]})
|
175
136
|
end
|
176
137
|
def revise_subtitle params
|
177
|
-
self.subtitle.update(value: params[:subtitle])
|
138
|
+
return self.subtitle.update(value: params[:subtitle])
|
178
139
|
end
|
179
140
|
|
180
141
|
def setup_slug params
|
181
|
-
self.build_slug({value: params[:slug]})
|
142
|
+
return self.build_slug({value: params[:slug]})
|
182
143
|
end
|
183
144
|
def revise_slug params
|
184
|
-
self.slug.update(value: params[:slug])
|
145
|
+
return self.slug.update(value: params[:slug])
|
146
|
+
end
|
147
|
+
|
148
|
+
def setup_description params
|
149
|
+
self.build_description({value: params[:description]})
|
150
|
+
end
|
151
|
+
def revise_description params
|
152
|
+
self.description.update(value: params[:description])
|
185
153
|
end
|
186
154
|
|
187
155
|
def setup_thumbnail params
|
@@ -223,4 +191,18 @@ class Book < ActiveRecord::Base
|
|
223
191
|
self.save
|
224
192
|
puts self.loc.to_s
|
225
193
|
end
|
194
|
+
|
195
|
+
def store_attachment params
|
196
|
+
path = Iatelier.configuration.storage_dir + @namespace.to_s + self.class.name.downcase + '/' + self.id.to_s + '/'
|
197
|
+
if !params.get(:file).nil?
|
198
|
+
Dir.mkdir(path) unless File.exists?(path)
|
199
|
+
File.open(path + params[:file][:filename], 'wb') do |file|
|
200
|
+
file.write params[:file][:tempfile].read
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
def get_asset params
|
205
|
+
path = Iatelier.configuration.storage_dir + @namespace.to_s + self.class.name.downcase + '/' + self.id.to_s + '/'
|
206
|
+
return File.open(path + params[:asset], 'r')
|
207
|
+
end
|
226
208
|
end
|
@@ -1,4 +1,10 @@
|
|
1
1
|
.panel-edit
|
2
|
+
- if @locals.include?(:errors)
|
3
|
+
.form-box
|
4
|
+
.os-form-group
|
5
|
+
- errors.each do |value, key|
|
6
|
+
%p= value
|
7
|
+
%p= key
|
2
8
|
.form-box
|
3
9
|
.os-form-group
|
4
10
|
-if book.dimensions.include? 'title'
|
@@ -16,6 +22,9 @@
|
|
16
22
|
-if book.dimensions.include? 'description'
|
17
23
|
%label.label Description
|
18
24
|
%input{:class => "form-control pure-input-1", :name => "description", :type => "text", :placeholder => "Description", :value => book.description.try(:value)}
|
25
|
+
.os-form-group
|
26
|
+
%label.label Attachments
|
27
|
+
%input{:type => 'file', :id => 'file', :name => 'file'}
|
19
28
|
.form-box
|
20
29
|
%label Text
|
21
30
|
%br
|
@@ -31,4 +40,3 @@
|
|
31
40
|
= render :partial => 'grouping/bundles'
|
32
41
|
.form-box
|
33
42
|
= render :partial => 'dimension/timestamp'
|
34
|
-
|
@@ -1,5 +1,4 @@
|
|
1
1
|
%div
|
2
|
-
.todo adding errors here!
|
3
2
|
%form{:class => "atelier-main-form pure-form pure-form-aligned", :action => "/iatelier/#{database}/#{book.class.name.downcase}/#{book.id}", :method => "POST", :enctype => "multipart/form-data"}
|
4
3
|
.form-actions
|
5
4
|
<button type="submit" class="btn btn-default">Edit</button>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
%div
|
2
|
-
.todo adding errors here!
|
3
2
|
%form{:class => "atelier-main-form pure-form pure-form-aligned", :action => "/iatelier/#{database}/#{book.class.name.downcase}/#{book.id}", :method => "POST", :enctype => "multipart/form-data"}
|
4
3
|
.form-actions
|
5
4
|
<button type="submit" class="btn btn-default">Create</button>
|
6
|
-
= render :partial => 'engine'
|
5
|
+
= render :partial => 'engine'
|
data/lib/iatelier/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iatelier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Captain Husayn Pinguin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.5'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mime-types
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.3'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.3'
|
83
97
|
description: iAtelier, a simple, yet powerful CMS engine for Hanami
|
84
98
|
email:
|
85
99
|
- captainhusaynpinguin@galacticvisions.xyz
|
@@ -141,7 +155,6 @@ files:
|
|
141
155
|
- lib/iatelier/templates/books/grouping/_peoples.html.haml
|
142
156
|
- lib/iatelier/templates/books/manage.html.haml
|
143
157
|
- lib/iatelier/templates/books/new.html.haml
|
144
|
-
- lib/iatelier/templates/books/update.html.haml
|
145
158
|
- lib/iatelier/version.rb
|
146
159
|
- lib/iatelier/views/application_layout.rb
|
147
160
|
- lib/iatelier/views/books/create.rb
|
File without changes
|