blogaze 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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