From fb52e8bed20142d0d08b2f0568a14172ab62844c Mon Sep 17 00:00:00 2001 From: jomo Date: Mon, 24 Jun 2013 13:29:39 +0200 Subject: [PATCH] many things, comments working. --- app/assets/images/arrow-darkred.png | Bin 265 -> 0 bytes app/assets/images/arrow-grey.png | Bin 0 -> 1296 bytes app/assets/images/arrow-midgrey.png | Bin 283 -> 0 bytes app/assets/images/arrow-red.png | Bin 0 -> 1285 bytes app/assets/images/logo.png | Bin 580 -> 3963 bytes app/assets/images/rails.png | Bin 6646 -> 0 bytes app/assets/stylesheets/blogposts.css.scss | 3 - app/assets/stylesheets/comments.css.scss | 3 - app/assets/stylesheets/scaffolds.css.scss | 69 --------- app/assets/stylesheets/screen.css.scss | 118 +++++++++++++-- app/controllers/application_controller.rb | 12 +- app/controllers/blogposts_controller.rb | 26 ++-- app/controllers/comments_controller.rb | 22 ++- app/controllers/serverchecker_controller.rb | 4 +- app/controllers/sessions_controller.rb | 8 +- app/controllers/users_controller.rb | 14 +- app/helpers/application_helper.rb | 2 +- app/helpers/tools_helper.rb | 2 + app/helpers/users_helper.rb | 37 +++++ app/models/blogpost.rb | 1 + app/models/comment.rb | 4 +- app/models/user.rb | 7 +- app/views/blogposts/_form.html.erb | 6 +- app/views/blogposts/index.html.erb | 17 ++- app/views/blogposts/new.html.erb | 2 +- app/views/blogposts/show.html.erb | 11 +- app/views/layouts/_head.html.erb | 15 +- app/views/rails.png | Bin 6646 -> 0 bytes app/views/sessions/new.html.erb | 16 +- app/views/users/_form.html.erb | 8 - app/views/users/new.html.erb | 13 +- app/views/users/show.html.erb | 24 +-- config/initializers/simple_form.rb | 142 ++++++++++++++++++ config/locales/en.yml | 5 +- config/locales/simple_form.en.yml | 25 +++ config/routes.rb | 5 + db/migrate/20130518221216_create_users.rb | 6 +- db/migrate/20130526015928_create_blogposts.rb | 2 +- db/migrate/20130526020734_create_comments.rb | 2 +- db/schema.rb | 4 + db/seeds.rb | 19 ++- lib/Tools.rb | 39 ----- lib/templates/erb/scaffold/_form.html.erb | 13 ++ test/functional/registration_mailer_test.rb | 7 + 44 files changed, 490 insertions(+), 223 deletions(-) delete mode 100644 app/assets/images/arrow-darkred.png create mode 100644 app/assets/images/arrow-grey.png delete mode 100644 app/assets/images/arrow-midgrey.png create mode 100644 app/assets/images/arrow-red.png delete mode 100644 app/assets/images/rails.png delete mode 100644 app/assets/stylesheets/blogposts.css.scss delete mode 100644 app/assets/stylesheets/comments.css.scss delete mode 100644 app/assets/stylesheets/scaffolds.css.scss create mode 100644 app/helpers/tools_helper.rb delete mode 100644 app/views/rails.png create mode 100644 config/initializers/simple_form.rb create mode 100644 config/locales/simple_form.en.yml delete mode 100644 lib/Tools.rb create mode 100644 lib/templates/erb/scaffold/_form.html.erb create mode 100644 test/functional/registration_mailer_test.rb diff --git a/app/assets/images/arrow-darkred.png b/app/assets/images/arrow-darkred.png deleted file mode 100644 index 9d7e2ce58f5f9a62e87f575e17c7eecf2a026f24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265 zcmeAS@N?(olHy`uVBq!ia0y~yU=U(pU=ZhEV_;xlW0rryz`(##?Bp53!NI{%!;#X# zz`$_8)5S5wqId1pjl72p1RO5r?{Qe6k;u~G(y4TaDaYZgfJll^SOSyRF%Kh#ATBMf zRSOd;eOrC+x%;acKJke6ggO_u{*~4$PK(~vbe#K(*r$IA%{jcs)$iC}uu^Og zneonS-gzfjcs?eSeX_C{Z)#eE6~gS Ude-Z&3=9kmp00i_>zopr0NbZu9smFU diff --git a/app/assets/images/arrow-grey.png b/app/assets/images/arrow-grey.png new file mode 100644 index 0000000000000000000000000000000000000000..23bd8149b2afe5edda787cf90a25efe61e42a03e GIT binary patch literal 1296 zcmeAS@N?(olHy`uVBq!ia0y~yV31~DU{K;r5%(GQ`zk9!uLS~AsQn;zFfp39xYDT68?trEmh5xxNm&iO^D3Z{C-y2%EH zh6-k8dWI&ZW@d&u3PuKoM*0Ru`UYmYh9*{~W>!Y#3Q(YAr(jc*l4cd;;s&*=C?(BS zDWjyMz)D}gyu4hm+*mKaC|%#s($W%ShLMqOQA(O_ab;dfVufyAu`3q#^x16gDE*bSHB{$K;KZ$0OTczUvmq5eeo;J&4sHj zE(uCSxEHIz#UYgisro^w#rdU0$*Do9Y04ls6<9eJr6!i-7lq{K=fFZSAS1sdzc?em zK*2fKOhF?&GcP5-yjT;g-q+X4Gq1QLF)umQ)5TV)BDX*$o&6x?nx#Hm-`PQgYW6tPGV4HF7-aRV{IX%dt^?Gz9RKQ%AK zR;ftI-p)+0eg*>rV~eMYV@SoVE!VTX4m*gjKJdH~_OHWRbK{B(-&e{jza{2M$6xL0 z(vR`l_MnaBYupS64KvHh&Ek5whcD<`&h=RqH%Ub|`ONMu>8oDHSxx$pj{}$A5A!U6S88dDW2~*4qp_@*TO1%}&*`{#|;WE01x(zcO>3WnZ=S@;1bVUx+XK z!`icD_Oh3v-J%oUF+Et=Ag;6QtIA&XhT|MBnAN{2L!t_@4mdr{J1T3gXXfO#`(f5?7z}`S>3oCZ c(l5~jh8M~eKXzopr0Q(ZlA^-pY literal 0 HcmV?d00001 diff --git a/app/assets/images/arrow-midgrey.png b/app/assets/images/arrow-midgrey.png deleted file mode 100644 index fc42ff92979e4ca369fce1e43365f13ea2e64179..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmeAS@N?(olHy`uVBq!ia0y~yU=U(pU=ZhEV_;xlW0rryz`(##?Bp53!NI{%!;#X# zz`$_H)5S5wqId08UB1H#5)BXgl~y`j)yoWW7qC9C&F9)%mfa^O#j)*WRw(Pf71|WF zN=s|mu97e9@gg5o`yaCwo}0aEoqU4M+EVqF9Xy9Wn5AcPYcGwfy`LT$I`=uV6Nm2U zPuI4+EtWanFUrK=(fBY^xclKxMYhAwTs5{eIBg8oV7c8=voZDr`(~$gGlWeNr(DVo z6k!)W{rS&~olbK;w;7fhz2ACm?vzh`F@m=bZ*y8#dZV>QXfx-}vMf=q&bv%py3gcA pCf}78xt%wKiIKr!W!*&m?M2E?qM@%+7#J8BJYD@<);T3K0RSY$ZZ7}; diff --git a/app/assets/images/arrow-red.png b/app/assets/images/arrow-red.png new file mode 100644 index 0000000000000000000000000000000000000000..0a19c0f0fac130709a745669b733f4117ce2d1d5 GIT binary patch literal 1285 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 literal 580 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 diff --git a/app/assets/stylesheets/blogposts.css.scss b/app/assets/stylesheets/blogposts.css.scss deleted file mode 100644 index 916c0b2..0000000 --- a/app/assets/stylesheets/blogposts.css.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Blogposts controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/comments.css.scss b/app/assets/stylesheets/comments.css.scss deleted file mode 100644 index e730912..0000000 --- a/app/assets/stylesheets/comments.css.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Comments controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/scaffolds.css.scss b/app/assets/stylesheets/scaffolds.css.scss deleted file mode 100644 index 6ec6a8f..0000000 --- a/app/assets/stylesheets/scaffolds.css.scss +++ /dev/null @@ -1,69 +0,0 @@ -body { - background-color: #fff; - color: #333; - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -p, ol, ul, td { - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -pre { - background-color: #eee; - padding: 10px; - font-size: 11px; -} - -a { - color: #000; - &:visited { - color: #666; - } - &:hover { - color: #fff; - background-color: #000; - } -} - -div { - &.field, &.actions { - margin-bottom: 10px; - } -} - -#notice { - color: green; -} - -.field_with_errors { - padding: 2px; - background-color: red; - display: table; -} - -#error_explanation { - width: 450px; - border: 2px solid red; - padding: 7px; - padding-bottom: 0; - margin-bottom: 20px; - background-color: #f0f0f0; - h2 { - text-align: left; - font-weight: bold; - padding: 5px 5px 5px 15px; - font-size: 12px; - margin: -7px; - margin-bottom: 0px; - background-color: #c00; - color: #fff; - } - ul li { - font-size: 12px; - list-style: square; - } -} diff --git a/app/assets/stylesheets/screen.css.scss b/app/assets/stylesheets/screen.css.scss index 4d61af2..b9dca84 100644 --- a/app/assets/stylesheets/screen.css.scss +++ b/app/assets/stylesheets/screen.css.scss @@ -2,15 +2,21 @@ $lightgrey: #D1D1D1; +$lightergrey: #959595; $midgrey: #787878; $darkgrey: #434343; $darkred: #AB0000; + @media only screen and (min-width: 1000px) { + html { + overflow-y: scroll; + } + a { transition: color 0.25s; color: $darkred; @@ -19,17 +25,6 @@ and (min-width: 1000px) color: #F00; } } - a.arrow { - background: url('/assets/arrow-midgrey.png') no-repeat left; - color: $midgrey; - padding-left: 0.7em; - margin: 0.6em; - &:hover { - background: url('/assets/arrow-darkred.png') no-repeat left; - color: $darkred; - padding-left: 0.7em; - } - } #notice { background: #8e8; text-align: center; @@ -54,7 +49,6 @@ and (min-width: 1000px) box-shadow: 0 0 2px; z-index: 99; position: relative; - text-shadow: 1px 1px #555; #logo { margin: 9px; margin-left: 20px; @@ -88,10 +82,16 @@ and (min-width: 1000px) float: right; padding: 0 10px; margin-top: 6px; + text-align: right; + &.logged-out { + margin-top: 2px; + } img.avatar { border: 1px solid #000; border-radius: 16px; vertical-align: middle; + height: 32px; + width: 32px; &:hover { box-shadow: 0 0 2px; } @@ -107,7 +107,19 @@ and (min-width: 1000px) img.user-avatar { border: 1px solid #000; border-radius: 4px; + height: 128px; + width: 128px; } + + img.avatar { + image-rendering:optimizeSpeed; + image-rendering:-moz-crisp-edges; + image-rendering:-o-crisp-edges; + image-rendering:optimize-contrast; + image-rendering:-webkit-optimize-contrast; + -ms-interpolation-mode: nearest-neighbor; + } + span.no-about { color: #888; font-style: italic; @@ -165,6 +177,15 @@ and (min-width: 1000px) #comments { margin: 50px 0 0 40px; + .comment { + margin-bottom: 12px; + padding: 15px; + box-shadow: 0 0 10px #bbb inset; + &.author { + background: #dadada; + box-shadow: 0 0 10px #a7a7a7 inset; + } + } textarea { width: 480px; height: 106px; @@ -172,4 +193,77 @@ and (min-width: 1000px) } } + input { + &[type=text], &[type=email], &[type=password] { + border: 1px solid #aaa; + border-radius: 3px; + background: #eee; + margin: 4px; + box-shadow: 0 0 5px $lightgrey inset; + height: 17px; + width: 300px; + padding: 1px 0; + display: block; + } + } + + textarea { + border: 1px solid #aaa; + border-radius: 3px; + background: #eee; + margin: 4px; + box-shadow: 0 0 5px $lightgrey inset; + height: 300px; + width: 300px; + max-width: 100%; + min-width: 300px; + min-height: 50px; + padding: 1px 0; + display: block; + } + + .field_with_errors { + input { + &[type=text], &[type=email], &[type=password] { + border: 1px solid #f00; + box-shadow: 0 0 5px #faa inset; + } + } + .error { + color: #f60; + } + } + + #form_labels { + text-align: right; + float: left; + label { + display: block; + padding: 0 0 4px 0; + margin: 0 4px 4px; + height: 17px; + } + } + #form_inputs { + + } + + #edit_profile { + float: right; + } + + .btn-blue { + border: 1px solid; + padding: 6px; + background: #4096ee; + cursor: default; + color: #fff; + &:hover { + box-shadow: 0 0 5px #095fb7 inset; + color: #fff; + outline: none; + } + } + + } \ No newline at end of file diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index c5928db..d2125a8 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,10 +1,12 @@ class ApplicationController < ActionController::Base protect_from_forgery - force_ssl - require "Tools" + # force_ssl + helper :all + include ToolsHelper + helper_method :current_user + private def current_user - @current_user ||= User.find(session[:user_id]) if session[:user_id] + @current_user ||= User.find_by_id(session[:user_id]) end - helper_method :current_user -end +end \ No newline at end of file diff --git a/app/controllers/blogposts_controller.rb b/app/controllers/blogposts_controller.rb index 9df5451..1992538 100644 --- a/app/controllers/blogposts_controller.rb +++ b/app/controllers/blogposts_controller.rb @@ -1,19 +1,14 @@ class BlogpostsController < ApplicationController - # GET /blogposts - # GET /blogposts.json + def index @posts = Blogpost.all.reverse end - # GET /blogposts/1 - # GET /blogposts/1.json def show @post = Blogpost.find(params[:id]) - @comment = Comment.new(:blogpost_id => @post.id) + @comment = Comment.new(:blogpost => @post) end - # GET /blogposts/new - # GET /blogposts/new.json def new @post = Blogpost.new end @@ -26,12 +21,17 @@ class BlogpostsController < ApplicationController # POST /blogposts # POST /blogposts.json def create - @post = Blogpost.new(params[:blogpost]) - @post.user_id = current_user.id unless current_user.nil? - if @post.save - redirect_to @post, notice: 'Post has been created.' + if current_user && current_user.rank >= rank_to_int("mod") + @post = Blogpost.new(params[:blogpost]) + @post.user_id = current_user.id unless current_user.nil? + if @post.save + redirect_to @post, notice: 'Post has been created.' + else + render action: "new" + end else - render action: "new" + flash[:alert] = "You are not allowed to create new posts" + redirect_to blog_path end end @@ -53,6 +53,6 @@ class BlogpostsController < ApplicationController @post = Blogpost.find(params[:id]) @post.destroy - redirect_to blogposts_url + redirect_to blog_url end end diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 0d9e5b7..82f64cb 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -42,13 +42,12 @@ class CommentsController < ApplicationController def create @comment = Comment.new(params[:comment]) @comment.user_id = current_user.id - respond_to do |format| + @comment.blogpost = Blogpost.find(params[:blogpost_id]) if @comment.save - format.html { redirect_to @comment, notice: 'Comment was successfully created.' } - format.json { render json: @comment, status: :created, location: @comment } + redirect_to @comment.blogpost, notice: 'Comment was successfully created.' else - format.html { render action: "new" } - format.json { render json: @comment.errors, status: :unprocessable_entity } + flash[:alert] = "There was a problem while saving your comment" + redirect_to blogpost_path(params[:blogpost_id]) end end end @@ -59,13 +58,12 @@ class CommentsController < ApplicationController @comment = Comment.find(params[:id]) respond_to do |format| - if @comment.update_attributes(params[:comment]) - format.html { redirect_to @comment, notice: 'Comment was successfully updated.' } - format.json { head :no_content } - else - format.html { render action: "edit" } - format.json { render json: @comment.errors, status: :unprocessable_entity } - end + if @comment.update_attributes(params[:comment]) + format.html { redirect_to @comment, notice: 'Comment was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: "edit" } + format.json { render json: @comment.errors, status: :unprocessable_entity } end end diff --git a/app/controllers/serverchecker_controller.rb b/app/controllers/serverchecker_controller.rb index c87a4bf..30d510d 100644 --- a/app/controllers/serverchecker_controller.rb +++ b/app/controllers/serverchecker_controller.rb @@ -1,7 +1,7 @@ class ServercheckerController < ApplicationController def show - require "Tools" - if Tools.mc_running? + + if mc_running? send_file "app/assets/images/on.png", :type => "image/png", :disposition => "inline" else send_file "app/assets/images/off.png", :type => "image/png", :disposition => "inline" diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 62af4b3..90ef8e5 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -1,13 +1,9 @@ class SessionsController < ApplicationController - - def new - - end - def create user = User.find_by_email(params[:email]) if user && user.authenticate(params[:password]) user.last_ip = request.remote_ip + user.last_login = Time.now user.save if user.banned flash[:alert] = "You are banned!" @@ -24,6 +20,6 @@ class SessionsController < ApplicationController def destroy session[:user_id] = nil - redirect_to root_path, :notice => "Logged out!" + redirect_to login_path, :notice => "Logged out!" end end \ No newline at end of file diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index eb194da..45f2da1 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -14,12 +14,22 @@ class UsersController < ApplicationController # GET /users/new # GET /users/new.json def new - @user = User.new + if current_user + flash[:alert] = "You are already registered!" + redirect_to user_path(current_user.id) + else + @user = User.new + end end # GET /users/1/edit def edit - @user = User.find(params[:id]) + if current_user && (current_user.id = params[:id] || current_user.rank >= rank_to_int("mod")) + @user = User.find(params[:id]) + else + flash[:alert] = "You are not allwoed to edit this user" + redirect_to user_path(params[:id]) + end end # POST /users diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be79..3a2b877 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,2 @@ module ApplicationHelper -end +end \ No newline at end of file diff --git a/app/helpers/tools_helper.rb b/app/helpers/tools_helper.rb new file mode 100644 index 0000000..68d0e9c --- /dev/null +++ b/app/helpers/tools_helper.rb @@ -0,0 +1,2 @@ +module ToolsHelper +end \ No newline at end of file diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 2310a24..709431c 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,2 +1,39 @@ module UsersHelper + def avatar_url(user_id) + u = User.find_by_id(user_id) + u.nil? ? ign = :char : ign = u.ign + return "https://minotar.net/avatar/#{ign}/8" + end + + def mc_running? + host = "play.redstoner.com" + port = 25565 + wait = 300/1000.0 #milliseconds, the .0 is required!! + require 'timeout' + require 'socket' + r = false + begin + Timeout::timeout(wait) { + TCPSocket.new host, port + r = true + } + rescue Exception + # could not connect to the server + end + return r + end + + def rank_to_int(rank) + r = ranks[rank] + end + + def int_to_rank(int) + r = ranks.rassoc(int) + r.nil? ? "unknown" : r[0].to_s + end + + def ranks + # Lower case !!! + {"visitor" => 10, "member" => 20, "builder" => 30, "donor" => 40, "donor+" => 45, "mod" => 100, "admin" => 200, "superadmin" => 500} + end end diff --git a/app/models/blogpost.rb b/app/models/blogpost.rb index 4663d50..d142fa9 100644 --- a/app/models/blogpost.rb +++ b/app/models/blogpost.rb @@ -3,4 +3,5 @@ class Blogpost < ActiveRecord::Base validates_presence_of :title, :text, :user belongs_to :user has_many :comments + accepts_nested_attributes_for :comments end diff --git a/app/models/comment.rb b/app/models/comment.rb index bc2e39e..2e367b3 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -1,6 +1,6 @@ class Comment < ActiveRecord::Base - attr_accessible :text, :user_id, :blogpost_id + attr_accessible :text, :user_id, :blogpost, :post validates_presence_of :text, :user_id, :blogpost_id belongs_to :blogpost belongs_to :user -end +end \ No newline at end of file diff --git a/app/models/user.rb b/app/models/user.rb index 9347249..914da3b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,7 +1,10 @@ class User < ActiveRecord::Base - attr_accessible :name, :ign, :email, :about, :password, :password_confirmation + attr_accessible :name, :ign, :email, :about, :password, :password_confirmation, :rank has_secure_password - validates_presence_of :password, :on => :create + validates_presence_of :password, :name, :email, :ign, :password_confirmation, :on => :create + validates :email, :uniqueness => true + validates :name, :uniqueness => true + validates :ign, :uniqueness => true has_many :blogposts has_many :comments diff --git a/app/views/blogposts/_form.html.erb b/app/views/blogposts/_form.html.erb index a61fb20..f86f61d 100644 --- a/app/views/blogposts/_form.html.erb +++ b/app/views/blogposts/_form.html.erb @@ -1,5 +1,5 @@ <%= simple_form_for @post do |f|%> - <%= f.input :title %> - <%= f.input :text %> - <%= f.submit %> + <%= f.input :title, :label => false %> + <%= f.input :text, :label => false %> + <%= f.submit "Create Post" %> <% end %> \ No newline at end of file diff --git a/app/views/blogposts/index.html.erb b/app/views/blogposts/index.html.erb index c680062..8189858 100644 --- a/app/views/blogposts/index.html.erb +++ b/app/views/blogposts/index.html.erb @@ -2,10 +2,19 @@
<% @posts.each do |p| %>
-

<%= link_to p.title, p %>

<%= link_to pluralize(p.comments.count, "Comment"), p %>
- -
<%= RbbCode.new.convert(p.text).html_safe %>
+
+

<%= link_to p.title, p %>

+ + <%= link_to pluralize(p.comments.count, "Comment"), p %> + +
+ +
+ <%= RbbCode.new.convert(p.text).html_safe %> +
<% end %> - <%= link_to 'New Blogpost', new_blogpost_path if current_user && current_user.rank >= Tools.rank_to_int(:mod) %> + <%= link_to 'Make new Post', new_blogpost_path if current_user && current_user.rank >= rank_to_int("mod") %>
diff --git a/app/views/blogposts/new.html.erb b/app/views/blogposts/new.html.erb index e2478c9..c3a5e7b 100644 --- a/app/views/blogposts/new.html.erb +++ b/app/views/blogposts/new.html.erb @@ -1,3 +1,3 @@ -

New Blogpost

+

New Post

<%= render 'form' %> diff --git a/app/views/blogposts/show.html.erb b/app/views/blogposts/show.html.erb index a555a20..ef78e69 100644 --- a/app/views/blogposts/show.html.erb +++ b/app/views/blogposts/show.html.erb @@ -1,6 +1,6 @@

<%= @post.title %>

@@ -9,19 +9,20 @@
<% @post.comments.each do |c| %> -
+
"> <%= link_to c.user.name, c.user %> on <%= c.created_at.strftime("%e. %b %Y") %> - <% if current_user.rank >= Tools.rank_to_int(:mod) %> + <% if current_user && current_user.rank >= rank_to_int("mod") %> - <%= link_to "edit", edit_blogpost_comment_path(c.id) %> <% end %>
<%= c.text %>
<% end %> - <% if current_user && current_user.rank >= Tools.rank_to_int(:visitor) %> + <% if current_user %>

New comment

<%= simple_form_for [@post, @comment] do |f| %> - <%= f.input :text, :label => false, :as => "text", :placeholder => "Comment" %><%= f.submit %> + <%= f.input :text, :label => false, :as => "text", :placeholder => "Comment" %> + <%= f.submit %> <% end %> <% end %>
\ No newline at end of file diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb index b8b8b5d..23d67f0 100644 --- a/app/views/layouts/_head.html.erb +++ b/app/views/layouts/_head.html.erb @@ -2,15 +2,16 @@ <%= link_to(root_path) do %> <% end %> -
+
> <% if !current_user.nil? %> - - <%= link_to current_user.name.truncate(14), current_user %>
- <%= link_to image_tag("logout.png"), logout_path %> -
- <%= link_to image_tag(Tools.avatar_url(current_user.id, 32), :class => "avatar"), current_user %> + + <%= link_to current_user.name.truncate(14), current_user %>
+ <%= link_to "Logout", logout_path %> +
+ <%= link_to image_tag(avatar_url(current_user.id), :class => "avatar size32"), current_user %> <% else %> - <%= link_to "Log in", login_path, :action => "new" %> + <%= link_to "Log in", login_path, :action => "new" %>
+ <%= link_to "Register", register_path %> <% end %>