blogaze 0.0.1 → 0.0.2

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.
Files changed (51) hide show
  1. data/README.md +12 -13
  2. data/blogaze.gemspec +1 -0
  3. data/lib/blogaze.rb +2 -2
  4. data/lib/blogaze/bin/create.rb +6 -0
  5. data/lib/blogaze/controllers/admin/comments.rb +43 -0
  6. data/lib/blogaze/controllers/admin/dashboard.rb +25 -0
  7. data/lib/blogaze/controllers/admin/init.rb +30 -0
  8. data/lib/blogaze/controllers/admin/pages.rb +95 -0
  9. data/lib/blogaze/controllers/admin/posts.rb +125 -0
  10. data/lib/blogaze/controllers/admin/settings.rb +41 -0
  11. data/lib/blogaze/{controller → controllers}/init.rb +1 -1
  12. data/lib/blogaze/controllers/main_controller.rb +35 -0
  13. data/lib/blogaze/controllers/pages.rb +39 -0
  14. data/lib/blogaze/controllers/posts.rb +77 -0
  15. data/lib/blogaze/controllers/sessions.rb +50 -0
  16. data/lib/blogaze/controllers/users.rb +41 -0
  17. data/lib/blogaze/models/comment.rb +28 -0
  18. data/lib/blogaze/{model → models}/group.rb +6 -4
  19. data/lib/blogaze/{model → models}/init.rb +0 -0
  20. data/lib/blogaze/models/page.rb +29 -0
  21. data/lib/blogaze/models/post.rb +95 -0
  22. data/lib/blogaze/models/tag.rb +25 -0
  23. data/lib/blogaze/{model → models}/tags_relationship.rb +6 -4
  24. data/lib/blogaze/models/user.rb +43 -0
  25. data/lib/blogaze/routes.rb +4 -0
  26. data/lib/blogaze/theme.rb +17 -0
  27. data/lib/blogaze/version.rb +1 -1
  28. data/proto/public/css/master.less +16 -12
  29. data/proto/themes/default/admin/index.xhtml +4 -4
  30. data/proto/themes/default/admin/settings/index.xhtml +1 -1
  31. data/proto/themes/default/index.xhtml +6 -3
  32. data/proto/themes/default/layouts/admin.xhtml +2 -2
  33. data/proto/themes/default/layouts/default.xhtml +1 -1
  34. data/proto/themes/default/posts/view.xhtml +3 -3
  35. metadata +37 -21
  36. data/lib/blogaze/controller/admin/comments.rb +0 -32
  37. data/lib/blogaze/controller/admin/init.rb +0 -28
  38. data/lib/blogaze/controller/admin/main.rb +0 -20
  39. data/lib/blogaze/controller/admin/pages.rb +0 -75
  40. data/lib/blogaze/controller/admin/posts.rb +0 -103
  41. data/lib/blogaze/controller/admin/settings.rb +0 -33
  42. data/lib/blogaze/controller/main.rb +0 -30
  43. data/lib/blogaze/controller/pages.rb +0 -34
  44. data/lib/blogaze/controller/posts.rb +0 -43
  45. data/lib/blogaze/controller/sessions.rb +0 -39
  46. data/lib/blogaze/controller/users.rb +0 -39
  47. data/lib/blogaze/model/comment.rb +0 -26
  48. data/lib/blogaze/model/page.rb +0 -27
  49. data/lib/blogaze/model/post.rb +0 -79
  50. data/lib/blogaze/model/tag.rb +0 -19
  51. data/lib/blogaze/model/user.rb +0 -41
@@ -1,20 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- module Admin
11
- class Dashboard < Controller
12
- map '/admin'
13
-
14
- def index
15
- @title = "Admin - #{@settings[:title]}"
16
- respond(view_file('admin/index'))
17
- end
18
- end
19
- end
20
- end
@@ -1,75 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- module Admin
11
- class Pages < Controller
12
- map '/admin/pages'
13
-
14
- def index
15
- @pages = Page.order(:title.asc).all
16
- respond(view_file('admin/pages/index'))
17
- end
18
-
19
- def new
20
- @title = "New Page - Pages - Admin - #{@settings[:title]}"
21
- @page = Page.new
22
- respond(view_file('admin/pages/new'))
23
- end
24
-
25
- def create
26
- @title = "New Page - Pages - Admin - #{@settings[:title]}"
27
- data = {
28
- :title => request[:title],
29
- :slug => request[:slug],
30
- :body => request[:body],
31
- :on_menu => request[:on_menu]
32
- }
33
-
34
- @page = Page.new(data)
35
-
36
- if @page.valid?
37
- @page.save
38
- flash[:success] = "Page created successfully"
39
- redirect Pages.r('/')
40
- else
41
- respond(view_file('admin/pages/new'))
42
- end
43
- end
44
-
45
- def edit(page_id)
46
- @title = "Edit Page - Pages - Admin - #{@settings[:title]}"
47
- @page = Page[page_id]
48
- respond(view_file('admin/pages/edit'))
49
- end
50
-
51
- def save(page_id)
52
- @title = "Edit Page - Pages - Admin - #{@settings[:title]}"
53
- @page = Page[page_id]
54
- @page.title = request[:title]
55
- @page.slug = request[:slug]
56
- @page.body = request[:body]
57
- @page.on_menu = request[:on_menu]
58
-
59
- if @page.valid?
60
- @page.save
61
- flash[:success] = "Page saved successfully"
62
- redirect Pages.r('/')
63
- else
64
- respond(view_file('admin/pages/edit'))
65
- end
66
- end
67
-
68
- def delete(page_id)
69
- Page[page_id].delete
70
- flash[:success] = "Page deleted successfully"
71
- redirect Pages.r('/')
72
- end
73
- end
74
- end
75
- end
@@ -1,103 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- module Admin
11
- class Posts < Controller
12
- map '/admin/posts'
13
-
14
- before :new, :create do
15
- if !@userinfo.group.create_posts
16
- flash[:error] = "You don't have permission to do that."
17
- redirect '/login'
18
- end
19
- end
20
-
21
- before :edit, :save do
22
- if !@userinfo.group.edit_posts
23
- flash[:error] = "You don't have permission to do that."
24
- redirect '/login'
25
- end
26
- end
27
-
28
- before :delete do
29
- if !@userinfo.group.delete_posts
30
- flash[:error] = "You don't have permission to do that."
31
- redirect '/login'
32
- end
33
- end
34
-
35
- def index
36
- @title = "Posts - Admin - #{@settings[:title]}"
37
- @posts = Post.order(:id.desc).all
38
- respond(view_file('admin/posts/index'))
39
- end
40
-
41
- def new
42
- @title = "New Post - Posts - Admin - #{@settings[:title]}"
43
- @post = Post.new
44
- respond(view_file('admin/posts/new'))
45
- end
46
-
47
- def create
48
- @title = "New Post - Posts - Admin - #{@settings[:title]}"
49
- data = {
50
- :title => request[:title],
51
- :body => request[:body],
52
- :user_id => @userinfo.id,
53
- :post_tags => request[:post_tags].is_a?(String) ? request[:post_tags].gsub(', ', ',').split(',') : []
54
- }
55
- @post = Post.new(data)
56
-
57
- if @post.valid?
58
- @post.save
59
- flash[:success] = "Post created successfully"
60
- redirect Posts.r('/')
61
- else
62
- @post.post_tags = @post.post_tags.join(', ')
63
- respond(view_file('admin/posts/new'))
64
- end
65
- end
66
-
67
- def edit(post_id)
68
- @title = "Edit Post - Posts - Admin - #{@settings[:title]}"
69
- @post = Post[post_id]
70
-
71
- post_tags = []
72
- @post.tags.each do |tag|
73
- post_tags.push tag.name
74
- end
75
- @post.post_tags = post_tags.join(', ')
76
-
77
- respond(view_file('admin/posts/edit'))
78
- end
79
-
80
- def save(post_id)
81
- @title = "Edit Post - Posts - Admin - #{@settings[:title]}"
82
- @post = Post[post_id]
83
- @post.title = request[:title]
84
- @post.body = request[:body]
85
- @post.post_tags = request[:post_tags].is_a?(String) ? request[:post_tags].gsub(', ', ',').split(',') : []
86
-
87
- if @post.valid?
88
- @post.save
89
- flash[:success] = "Post saved successfully"
90
- redirect Posts.r('/')
91
- else
92
- respond(view_file('admin/posts/edit'))
93
- end
94
- end
95
-
96
- def delete(post_id)
97
- Post[post_id].delete
98
- flash[:success] = "Post deleted successfully"
99
- redirect Posts.r('/')
100
- end
101
- end
102
- end
103
- end
@@ -1,33 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- module Admin
11
- class Settings < Controller
12
- map '/admin/settings'
13
-
14
- def index
15
- # Get themes
16
- @themes = []
17
-
18
- ::Blogaze::Theme.registered.each do |theme|
19
- @themes.push theme[0].to_s
20
- end
21
-
22
- respond(view_file('admin/settings/index'))
23
- end
24
-
25
- def save
26
- request[:settings].each do |setting, value|
27
- ::Blogaze.database[:settings].where(:setting => setting).update(:value => value)
28
- end
29
- redirect Settings.r('/')
30
- end
31
- end
32
- end
33
- end
@@ -1,30 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class MainController < Controller
11
- map '/'
12
- helper :paginate
13
-
14
- def index(page = 1)
15
- # Check if we should change the title to include
16
- # what page we're on.
17
- if page.to_i > 1
18
- @title = "Page #{page} - #{@settings[:title]}"
19
- else
20
- @title = @settings[:title]
21
- end
22
-
23
- # Get the data and paginate it.
24
- data = Post.order(:published_at.desc)
25
- @posts = paginate(data, :limit => @settings[:posts_per_page].to_i, :page => page.to_i)
26
-
27
- respond(view_file(:index))
28
- end
29
- end
30
- end
@@ -1,34 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class Pages < Controller
11
- map '/pages'
12
-
13
- def view(slug = nil)
14
- if slug == nil
15
- slug = request.env["REQUEST_PATH"]
16
- end
17
-
18
- # Chomp chomp chomp, let's trim any unwanted
19
- # forward slashes from the begning and end of the url.
20
- slug = slug.chomp("/").reverse.chomp("/").reverse
21
-
22
- @page = Page[:slug => slug]
23
-
24
- # Check if the page exists, if not render the
25
- # not found page.
26
- if !@page.respond_to?('title')
27
- respond(view_file('pages/notfound'))
28
- else
29
- @title = "#{@page.title} - #{@settings[:title]}"
30
- respond(view_file('pages/page'))
31
- end
32
- end
33
- end
34
- end
@@ -1,43 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class Posts < Controller
11
- map '/posts'
12
-
13
- def view(slug)
14
- @post = Post.filter(:slug => slug).first
15
- return respond(view_file('pages/notfound')) if @post.nil?
16
-
17
- # Set title
18
- @title = @post.title + ' - ' + @settings[:title]
19
-
20
- # Instead of a controller just for comment creation
21
- # let's just put it here, that way we can display
22
- # errors with the new comment form.
23
- if request[:new_comment].to_i == 1
24
- data = {
25
- :post_id => @post.id,
26
- :author => request[:author],
27
- :body => request[:body],
28
- :in_moderation => @settings[:moderate_comments]
29
- }
30
- @comment = Comment.new(data)
31
- if @comment.valid?
32
- @comment.save
33
- flash[:success] = "Your comment has been posted"
34
- redirect @post.href
35
- end
36
- else
37
- @comment = Comment.new
38
- end
39
-
40
- respond(view_file('posts/view'))
41
- end
42
- end
43
- end
@@ -1,39 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class Sessions < Controller
11
- map '/sessions'
12
-
13
- def new
14
- @title = "Login - #{@settings[:title]}"
15
- respond(view_file('sessions/new'))
16
- end
17
-
18
- def create
19
- @title = "Login - #{@settings[:title]}"
20
- @get_user = User[:username => request[:username]]
21
-
22
- if @get_user.respond_to?('password') and @get_user.password == Digest::SHA1.hexdigest(request[:password])
23
- session[:logged_in] = true
24
- session[:user_id] = @get_user.id
25
- redirect Ramaze.options.prefix
26
- else
27
- @login_error = true
28
- end
29
-
30
- respond(view_file('sessions/new'))
31
- end
32
-
33
- def destroy
34
- session.delete(:logged_in)
35
- session.delete(:user_id)
36
- redirect Ramaze.options.prefix
37
- end
38
- end
39
- end
@@ -1,39 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class Users < Controller
11
- map '/users'
12
-
13
- def new
14
- @title = "Register - #{@settings[:title]}"
15
- @user = User.new
16
- respond(view_file('users/new'))
17
- end
18
-
19
- def create
20
- @title = "Register - #{@settings[:title]}"
21
- data = {
22
- :username => request[:username],
23
- :password => request[:password],
24
- :email => request[:email],
25
- :group_id => 3
26
- }
27
-
28
- @user = User.new(data)
29
-
30
- if @user.valid?
31
- @user.save
32
- flash[:success] = "Account created, you may now login"
33
- redirect '/login'
34
- else
35
- respond(view_file('users/new'))
36
- end
37
- end
38
- end
39
- end
@@ -1,26 +0,0 @@
1
- #
2
- # Blogaze
3
- # Copyright (C) 2011-2013 Jack Polgar
4
- #
5
- # Blogaze is released under the BSD 3-clause license.
6
- # @license http://opensource.org/licenses/BSD-3-Clause
7
- #
8
-
9
- module Blogaze
10
- class Comment < Sequel::Model
11
- plugin :validation_helpers
12
-
13
- many_to_one :post
14
-
15
- def validate
16
- validates_presence [:post_id, :author, :body]
17
- validates_integer :post_id
18
- end
19
-
20
- def before_create
21
- super
22
- self.created_at = Time.now.to_i
23
- self.updated_at = 0
24
- end
25
- end
26
- end