diff --git a/app/views/submissions/show.html.haml b/app/views/submissions/show.html.haml
new file mode 100644
--- /dev/null
+++ b/app/views/submissions/show.html.haml
@@ -0,0 +1,112 @@
+%h1= "Submission: #{@submission.id}"
+
+%textarea#data{style: "display:none;"}
+ :preserve
+ #{@submission.source}
+
+//%div.highlight{:style => "border: 1px solid black;"}
+//=@formatted_code.html_safe
+
+
+.containter
+ .row
+ .col-md-7
+ %h2 Source Code
+ .col-md-5
+ %h2 Stat
+ .row
+ .col-md-7
+ %div#editor{ style: "font-size: 14px; height: 400px; border-radius:5px;" }
+ :javascript
+ e = ace.edit("editor")
+ e.setOptions({ maxLines: Infinity })
+ e.setValue($("#data").text())
+ e.gotoLine(1)
+ e.getSession().setMode("#{get_ace_mode(@submission.language)}")
+ e.setReadOnly(true)
+ .col-md-5
+ %table.table.table-striped
+ %tr
+ %td.text-right
+ %strong User
+ %td
+ - if @submission.user
+ = link_to "#{@submission.user.login}", stat_user_path(@submission.user)
+ = @submission.user.full_name
+ - else
+ = "(n/a)"
+ %tr
+ %td.text-right
+ %strong Task
+ %td
+ - if @submission.problem!=nil
+ = link_to "[#{@submission.problem.name}]", stat_problem_path(@submission.problem)
+ = @submission.problem.full_name
+ - else
+ = "(n/a)"
+ %tr
+ %td.text-right
+ %strong Tries
+ %td= @submission.number
+ %tr
+ %td.text-right
+ %strong Language
+ %td= @submission.language.pretty_name
+ %tr
+ %td.text-right
+ %strong Submitted
+ %td #{time_ago_in_words(@submission.submitted_at)} ago (at #{@submission.submitted_at.to_formatted_s(:long)})
+ %tr
+ %td.text-right
+ %strong Graded
+ - if @submission.graded_at
+ %td #{time_ago_in_words(@submission.graded_at)} ago (at #{@submission.graded_at.to_formatted_s(:long)})
+ - else
+ %td -
+ %tr
+ %td.text-right
+ %strong Points
+ %td #{@submission.points}/#{@submission.try(:problem).try(:full_score)}
+ %tr
+ %td.text-right
+ %strong Comment
+ %td #{@submission.grader_comment}
+ %tr
+ %td.text-right
+ %strong Runtime (s)
+ %td #{@submission.max_runtime}
+ %tr
+ %td.text-right
+ %strong Memory (kb)
+ %td #{@submission.peak_memory}
+ %tr
+ %td.text-right
+ %strong Compiler result
+ %td
+ %button.btn.btn-info.btn-xs{type: 'button', data: {toggle: 'modal', target: '#compiler'}}
+ view
+ - if session[:admin]
+ %tr
+ %td.text-right
+ %strong IP
+ %td #{@submission.ip_address}
+ %tr
+ %td.text-right
+ %strong Grading Task Status
+ %td
+ = @task.status_str if @task
+ - if session[:admin]
+ = link_to "rejudge", rejudge_submission_path, data: {remote: true}, class: 'btn btn-info btn-xs'
+
+
+.modal.fade#compiler{tabindex: -1,role: 'dialog'}
+ .modal-dialog.modal-lg{role:'document'}
+ .modal-content
+ .modal-header
+ %button.close{type: 'button', data: {dismissed: :modal}, aria: {label: 'close'}}
+ %span{aria: {hidden: 'true'}, data: {dismiss: 'modal'}} ×
+ %h4 Compiler message
+ .modal-body
+ %pre#compiler_msg= @submission.compiler_message
+ .modal-footer
+ %button.btn.btn-default{type: 'button', data: {dismiss: 'modal'}} Close