Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
eacea15a
Commit
eacea15a
authored
Feb 19, 2012
by
Valery Sizov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wiki base sceleton
parent
df27ec29
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
432 additions
and
0 deletions
+432
-0
app/controllers/wikis_controller.rb
app/controllers/wikis_controller.rb
+61
-0
app/models/project.rb
app/models/project.rb
+1
-0
app/models/wiki.rb
app/models/wiki.rb
+20
-0
app/views/layouts/_project_menu.html.haml
app/views/layouts/_project_menu.html.haml
+5
-0
app/views/projects/_form.html.haml
app/views/projects/_form.html.haml
+4
-0
app/views/wikis/_form.html.haml
app/views/wikis/_form.html.haml
+16
-0
app/views/wikis/edit.html.haml
app/views/wikis/edit.html.haml
+7
-0
app/views/wikis/index.html.haml
app/views/wikis/index.html.haml
+21
-0
app/views/wikis/new.html.haml
app/views/wikis/new.html.haml
+5
-0
app/views/wikis/show.html.haml
app/views/wikis/show.html.haml
+7
-0
config/routes.rb
config/routes.rb
+2
-0
db/migrate/20120216215008_create_wikis.rb
db/migrate/20120216215008_create_wikis.rb
+11
-0
db/migrate/20120219130957_add_slug_to_wiki.rb
db/migrate/20120219130957_add_slug_to_wiki.rb
+6
-0
db/migrate/20120219140810_add_wiki_enabled_to_project.rb
db/migrate/20120219140810_add_wiki_enabled_to_project.rb
+6
-0
db/schema.rb
db/schema.rb
+14
-0
spec/controllers/wikis_controller_spec.rb
spec/controllers/wikis_controller_spec.rb
+164
-0
spec/views/wikis/edit.html.haml_spec.rb
spec/views/wikis/edit.html.haml_spec.rb
+20
-0
spec/views/wikis/index.html.haml_spec.rb
spec/views/wikis/index.html.haml_spec.rb
+24
-0
spec/views/wikis/new.html.haml_spec.rb
spec/views/wikis/new.html.haml_spec.rb
+20
-0
spec/views/wikis/show.html.haml_spec.rb
spec/views/wikis/show.html.haml_spec.rb
+18
-0
No files found.
app/controllers/wikis_controller.rb
0 → 100644
View file @
eacea15a
class
WikisController
<
ApplicationController
before_filter
:project
layout
"project"
respond_to
:html
def
show
@wiki
=
@project
.
wikis
.
find_by_slug
(
params
[
:id
])
respond_with
(
@wiki
)
end
def
new
@wiki
=
Wiki
.
new
respond_to
do
|
format
|
format
.
html
# new.html.erb
format
.
json
{
render
json:
@wiki
}
end
end
def
edit
@wiki
=
Wiki
.
find
(
params
[
:id
])
end
def
create
@wiki
=
Wiki
.
new
(
params
[
:wiki
])
respond_to
do
|
format
|
if
@wiki
.
save
format
.
html
{
redirect_to
@wiki
,
notice:
'Wiki was successfully created.'
}
format
.
json
{
render
json:
@wiki
,
status: :created
,
location:
@wiki
}
else
format
.
html
{
render
action:
"new"
}
format
.
json
{
render
json:
@wiki
.
errors
,
status: :unprocessable_entity
}
end
end
end
def
update
@wiki
=
Wiki
.
find
(
params
[
:id
])
respond_to
do
|
format
|
if
@wiki
.
update_attributes
(
params
[
:wiki
])
format
.
html
{
redirect_to
@wiki
,
notice:
'Wiki was successfully updated.'
}
format
.
json
{
head
:no_content
}
else
format
.
html
{
render
action:
"edit"
}
format
.
json
{
render
json:
@wiki
.
errors
,
status: :unprocessable_entity
}
end
end
end
def
destroy
@wiki
=
Wiki
.
find
(
params
[
:id
])
@wiki
.
destroy
respond_to
do
|
format
|
format
.
html
{
redirect_to
wikis_url
}
format
.
json
{
head
:no_content
}
end
end
end
app/models/project.rb
View file @
eacea15a
...
@@ -12,6 +12,7 @@ class Project < ActiveRecord::Base
...
@@ -12,6 +12,7 @@ class Project < ActiveRecord::Base
has_many
:deploy_keys
,
:dependent
=>
:destroy
,
:foreign_key
=>
"project_id"
,
:class_name
=>
"Key"
has_many
:deploy_keys
,
:dependent
=>
:destroy
,
:foreign_key
=>
"project_id"
,
:class_name
=>
"Key"
has_many
:web_hooks
,
:dependent
=>
:destroy
has_many
:web_hooks
,
:dependent
=>
:destroy
has_many
:protected_branches
,
:dependent
=>
:destroy
has_many
:protected_branches
,
:dependent
=>
:destroy
has_many
:wikis
,
:dependent
=>
:destroy
acts_as_taggable
acts_as_taggable
...
...
app/models/wiki.rb
0 → 100644
View file @
eacea15a
class
Wiki
<
ActiveRecord
::
Base
belongs_to
:project
validates
:content
,
:title
,
:presence
=>
true
validates
:title
,
:length
=>
1
..
250
,
:uniqueness
=>
{
:scope
=>
:project_id
,
:case_sensitive
=>
false
}
before_save
:set_slug
def
to_param
slug
end
protected
def
set_slug
self
.
slug
=
self
.
title
.
parameterize
end
end
app/views/layouts/_project_menu.html.haml
View file @
eacea15a
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
-
if
@project
.
issues_enabled
-
if
@project
.
issues_enabled
=
link_to
project_issues_filter_path
(
@project
),
:class
=>
(
controller
.
controller_name
==
"issues"
)
?
"current"
:
nil
do
=
link_to
project_issues_filter_path
(
@project
),
:class
=>
(
controller
.
controller_name
==
"issues"
)
?
"current"
:
nil
do
Issues
Issues
-
if
@project
.
merge_requests_enabled
-
if
@project
.
merge_requests_enabled
=
link_to
project_merge_requests_path
(
@project
),
:class
=>
(
controller
.
controller_name
==
"merge_requests"
)
?
"current"
:
nil
do
=
link_to
project_merge_requests_path
(
@project
),
:class
=>
(
controller
.
controller_name
==
"merge_requests"
)
?
"current"
:
nil
do
Merge Requests
Merge Requests
...
@@ -18,3 +19,7 @@
...
@@ -18,3 +19,7 @@
-
if
@project
.
wall_enabled
-
if
@project
.
wall_enabled
=
link_to
wall_project_path
(
@project
),
:class
=>
current_page?
(
:controller
=>
"projects"
,
:action
=>
"wall"
,
:id
=>
@project
)
?
"current"
:
nil
do
=
link_to
wall_project_path
(
@project
),
:class
=>
current_page?
(
:controller
=>
"projects"
,
:action
=>
"wall"
,
:id
=>
@project
)
?
"current"
:
nil
do
Wall
Wall
-
if
@project
.
wiki_enabled
-#= link_to project_wikis_path(@project), :class => current_page?(:controller => "projects", :action => "wiki", :id => @project) ? "current" : nil do
Wiki
app/views/projects/_form.html.haml
View file @
eacea15a
...
@@ -41,6 +41,10 @@
...
@@ -41,6 +41,10 @@
.clearfix
.clearfix
=
f
.
label
:wall_enabled
,
"Wall"
=
f
.
label
:wall_enabled
,
"Wall"
.input
=
f
.
check_box
:wall_enabled
.input
=
f
.
check_box
:wall_enabled
.clearfix
=
f
.
label
:wiki_enabled
,
"Wiki"
.input
=
f
.
check_box
:wiki_enabled
.clearfix
.clearfix
=
f
.
label
:description
=
f
.
label
:description
...
...
app/views/wikis/_form.html.haml
0 → 100644
View file @
eacea15a
=
form_for
@wiki
do
|
f
|
-
if
@wiki
.
errors
.
any?
#error_explanation
%h2
=
"
#{
pluralize
(
@wiki
.
errors
.
count
,
"error"
)
}
prohibited this wiki from being saved:"
%ul
-
@wiki
.
errors
.
full_messages
.
each
do
|
msg
|
%li
=
msg
.field
=
f
.
label
:title
=
f
.
text_field
:title
.field
=
f
.
label
:content
=
f
.
text_area
:content
.actions
=
f
.
submit
'Save'
app/views/wikis/edit.html.haml
0 → 100644
View file @
eacea15a
%h1
Editing wiki
=
render
'form'
=
link_to
'Show'
,
@wiki
\|
=
link_to
'Back'
,
wikis_path
app/views/wikis/index.html.haml
0 → 100644
View file @
eacea15a
%h1
Listing wikis
%table
%tr
%th
Title
%th
Content
%th
%th
%th
-
@wikis
.
each
do
|
wiki
|
%tr
%td
=
wiki
.
title
%td
=
wiki
.
content
%td
=
link_to
'Show'
,
wiki
%td
=
link_to
'Edit'
,
edit_wiki_path
(
wiki
)
%td
=
link_to
'Destroy'
,
wiki
,
:confirm
=>
'Are you sure?'
,
:method
=>
:delete
%br
=
link_to
'New Wiki'
,
new_wiki_path
app/views/wikis/new.html.haml
0 → 100644
View file @
eacea15a
%h1
New wiki
=
render
'form'
=
link_to
'Back'
,
wikis_path
app/views/wikis/show.html.haml
0 → 100644
View file @
eacea15a
%p
#notice
=
notice
%h3
=
@wiki
.
title
=
@wiki
.
content
%br
=
link_to
'Edit'
,
edit_project_wiki_path
(
@project
,
@wiki
)
config/routes.rb
View file @
eacea15a
Gitlab
::
Application
.
routes
.
draw
do
Gitlab
::
Application
.
routes
.
draw
do
# Optionally, enable Resque here
# Optionally, enable Resque here
require
'resque/server'
require
'resque/server'
mount
Resque
::
Server
.
new
,
at:
'/info/resque'
mount
Resque
::
Server
.
new
,
at:
'/info/resque'
...
@@ -55,6 +56,7 @@ Gitlab::Application.routes.draw do
...
@@ -55,6 +56,7 @@ Gitlab::Application.routes.draw do
get
"files"
get
"files"
end
end
resources
:wikis
,
:only
=>
[
:show
,
:edit
,
:destroy
]
resource
:repository
do
resource
:repository
do
member
do
member
do
get
"branches"
get
"branches"
...
...
db/migrate/20120216215008_create_wikis.rb
0 → 100644
View file @
eacea15a
class
CreateWikis
<
ActiveRecord
::
Migration
def
change
create_table
:wikis
do
|
t
|
t
.
string
:title
t
.
text
:content
t
.
integer
:project_id
t
.
timestamps
end
end
end
db/migrate/20120219130957_add_slug_to_wiki.rb
0 → 100644
View file @
eacea15a
class
AddSlugToWiki
<
ActiveRecord
::
Migration
def
change
add_column
:wikis
,
:slug
,
:string
end
end
db/migrate/20120219140810_add_wiki_enabled_to_project.rb
0 → 100644
View file @
eacea15a
class
AddWikiEnabledToProject
<
ActiveRecord
::
Migration
def
change
add_column
:projects
,
:wiki_enabled
,
:boolean
,
:default
=>
true
,
:null
=>
false
end
end
db/schema.rb
View file @
eacea15a
...
@@ -11,7 +11,11 @@
...
@@ -11,7 +11,11 @@
#
#
# It's strongly recommended to check this file into your version control system.
# It's strongly recommended to check this file into your version control system.
<<<<<<<
HEAD
ActiveRecord
::
Schema
.
define
(
:version
=>
20120216085842
)
do
ActiveRecord
::
Schema
.
define
(
:version
=>
20120216085842
)
do
=======
ActiveRecord
::
Schema
.
define
(
:version
=>
20120219140810
)
do
>>>>>>>
wiki
base
sceleton
create_table
"issues"
,
:force
=>
true
do
|
t
|
create_table
"issues"
,
:force
=>
true
do
|
t
|
t
.
string
"title"
t
.
string
"title"
...
@@ -80,6 +84,7 @@ ActiveRecord::Schema.define(:version => 20120216085842) do
...
@@ -80,6 +84,7 @@ ActiveRecord::Schema.define(:version => 20120216085842) do
t
.
boolean
"issues_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"issues_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"wall_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"wall_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"merge_requests_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"merge_requests_enabled"
,
:default
=>
true
,
:null
=>
false
t
.
boolean
"wiki_enabled"
,
:default
=>
true
,
:null
=>
false
end
end
create_table
"protected_branches"
,
:force
=>
true
do
|
t
|
create_table
"protected_branches"
,
:force
=>
true
do
|
t
|
...
@@ -158,4 +163,13 @@ ActiveRecord::Schema.define(:version => 20120216085842) do
...
@@ -158,4 +163,13 @@ ActiveRecord::Schema.define(:version => 20120216085842) do
t
.
datetime
"updated_at"
t
.
datetime
"updated_at"
end
end
create_table
"wikis"
,
:force
=>
true
do
|
t
|
t
.
string
"title"
t
.
text
"content"
t
.
integer
"project_id"
t
.
datetime
"created_at"
,
:null
=>
false
t
.
datetime
"updated_at"
,
:null
=>
false
t
.
string
"slug"
end
end
end
spec/controllers/wikis_controller_spec.rb
0 → 100644
View file @
eacea15a
require
'spec_helper'
# This spec was generated by rspec-rails when you ran the scaffold generator.
# It demonstrates how one might use RSpec to specify the controller code that
# was generated by Rails when you ran the scaffold generator.
#
# It assumes that the implementation code is generated by the rails scaffold
# generator. If you are using any extension libraries to generate different
# controller code, this generated spec may or may not pass.
#
# It only uses APIs available in rails and/or rspec-rails. There are a number
# of tools you can use to make these specs even more expressive, but we're
# sticking to rails and rspec-rails APIs to keep things simple and stable.
#
# Compared to earlier versions of this generator, there is very limited use of
# stubs and message expectations in this spec. Stubs are only used when there
# is no simpler way to get a handle on the object needed for the example.
# Message expectations are only used when there is no simpler way to specify
# that an instance is receiving a specific message.
describe
WikisController
do
# This should return the minimal set of attributes required to create a valid
# Wiki. As you add validations to Wiki, be sure to
# update the return value of this method accordingly.
def
valid_attributes
{}
end
# This should return the minimal set of values that should be in the session
# in order to pass any filters (e.g. authentication) defined in
# WikisController. Be sure to keep this updated too.
def
valid_session
{}
end
describe
"GET index"
do
it
"assigns all wikis as @wikis"
do
wiki
=
Wiki
.
create!
valid_attributes
get
:index
,
{},
valid_session
assigns
(
:wikis
).
should
eq
([
wiki
])
end
end
describe
"GET show"
do
it
"assigns the requested wiki as @wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
get
:show
,
{
:id
=>
wiki
.
to_param
},
valid_session
assigns
(
:wiki
).
should
eq
(
wiki
)
end
end
describe
"GET new"
do
it
"assigns a new wiki as @wiki"
do
get
:new
,
{},
valid_session
assigns
(
:wiki
).
should
be_a_new
(
Wiki
)
end
end
describe
"GET edit"
do
it
"assigns the requested wiki as @wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
get
:edit
,
{
:id
=>
wiki
.
to_param
},
valid_session
assigns
(
:wiki
).
should
eq
(
wiki
)
end
end
describe
"POST create"
do
describe
"with valid params"
do
it
"creates a new Wiki"
do
expect
{
post
:create
,
{
:wiki
=>
valid_attributes
},
valid_session
}.
to
change
(
Wiki
,
:count
).
by
(
1
)
end
it
"assigns a newly created wiki as @wiki"
do
post
:create
,
{
:wiki
=>
valid_attributes
},
valid_session
assigns
(
:wiki
).
should
be_a
(
Wiki
)
assigns
(
:wiki
).
should
be_persisted
end
it
"redirects to the created wiki"
do
post
:create
,
{
:wiki
=>
valid_attributes
},
valid_session
response
.
should
redirect_to
(
Wiki
.
last
)
end
end
describe
"with invalid params"
do
it
"assigns a newly created but unsaved wiki as @wiki"
do
# Trigger the behavior that occurs when invalid params are submitted
Wiki
.
any_instance
.
stub
(
:save
).
and_return
(
false
)
post
:create
,
{
:wiki
=>
{}},
valid_session
assigns
(
:wiki
).
should
be_a_new
(
Wiki
)
end
it
"re-renders the 'new' template"
do
# Trigger the behavior that occurs when invalid params are submitted
Wiki
.
any_instance
.
stub
(
:save
).
and_return
(
false
)
post
:create
,
{
:wiki
=>
{}},
valid_session
response
.
should
render_template
(
"new"
)
end
end
end
describe
"PUT update"
do
describe
"with valid params"
do
it
"updates the requested wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
# Assuming there are no other wikis in the database, this
# specifies that the Wiki created on the previous line
# receives the :update_attributes message with whatever params are
# submitted in the request.
Wiki
.
any_instance
.
should_receive
(
:update_attributes
).
with
({
'these'
=>
'params'
})
put
:update
,
{
:id
=>
wiki
.
to_param
,
:wiki
=>
{
'these'
=>
'params'
}},
valid_session
end
it
"assigns the requested wiki as @wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
put
:update
,
{
:id
=>
wiki
.
to_param
,
:wiki
=>
valid_attributes
},
valid_session
assigns
(
:wiki
).
should
eq
(
wiki
)
end
it
"redirects to the wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
put
:update
,
{
:id
=>
wiki
.
to_param
,
:wiki
=>
valid_attributes
},
valid_session
response
.
should
redirect_to
(
wiki
)
end
end
describe
"with invalid params"
do
it
"assigns the wiki as @wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
# Trigger the behavior that occurs when invalid params are submitted
Wiki
.
any_instance
.
stub
(
:save
).
and_return
(
false
)
put
:update
,
{
:id
=>
wiki
.
to_param
,
:wiki
=>
{}},
valid_session
assigns
(
:wiki
).
should
eq
(
wiki
)
end
it
"re-renders the 'edit' template"
do
wiki
=
Wiki
.
create!
valid_attributes
# Trigger the behavior that occurs when invalid params are submitted
Wiki
.
any_instance
.
stub
(
:save
).
and_return
(
false
)
put
:update
,
{
:id
=>
wiki
.
to_param
,
:wiki
=>
{}},
valid_session
response
.
should
render_template
(
"edit"
)
end
end
end
describe
"DELETE destroy"
do
it
"destroys the requested wiki"
do
wiki
=
Wiki
.
create!
valid_attributes
expect
{
delete
:destroy
,
{
:id
=>
wiki
.
to_param
},
valid_session
}.
to
change
(
Wiki
,
:count
).
by
(
-
1
)
end
it
"redirects to the wikis list"
do
wiki
=
Wiki
.
create!
valid_attributes
delete
:destroy
,
{
:id
=>
wiki
.
to_param
},
valid_session
response
.
should
redirect_to
(
wikis_url
)
end
end
end
spec/views/wikis/edit.html.haml_spec.rb
0 → 100644
View file @
eacea15a
require
'spec_helper'
describe
"wikis/edit"
do
before
(
:each
)
do
@wiki
=
assign
(
:wiki
,
stub_model
(
Wiki
,
:title
=>
"MyString"
,
:content
=>
"MyText"
))
end
it
"renders the edit wiki form"
do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select
"form"
,
:action
=>
wikis_path
(
@wiki
),
:method
=>
"post"
do
assert_select
"input#wiki_title"
,
:name
=>
"wiki[title]"
assert_select
"textarea#wiki_content"
,
:name
=>
"wiki[content]"
end
end
end
spec/views/wikis/index.html.haml_spec.rb
0 → 100644
View file @
eacea15a
require
'spec_helper'
describe
"wikis/index"
do
before
(
:each
)
do
assign
(
:wikis
,
[
stub_model
(
Wiki
,
:title
=>
"Title"
,
:content
=>
"MyText"
),
stub_model
(
Wiki
,
:title
=>
"Title"
,
:content
=>
"MyText"
)
])
end
it
"renders a list of wikis"
do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select
"tr>td"
,
:text
=>
"Title"
.
to_s
,
:count
=>
2
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select
"tr>td"
,
:text
=>
"MyText"
.
to_s
,
:count
=>
2
end
end
spec/views/wikis/new.html.haml_spec.rb
0 → 100644
View file @
eacea15a
require
'spec_helper'
describe
"wikis/new"
do
before
(
:each
)
do
assign
(
:wiki
,
stub_model
(
Wiki
,
:title
=>
"MyString"
,
:content
=>
"MyText"
).
as_new_record
)
end
it
"renders new wiki form"
do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
assert_select
"form"
,
:action
=>
wikis_path
,
:method
=>
"post"
do
assert_select
"input#wiki_title"
,
:name
=>
"wiki[title]"
assert_select
"textarea#wiki_content"
,
:name
=>
"wiki[content]"
end
end
end
spec/views/wikis/show.html.haml_spec.rb
0 → 100644
View file @
eacea15a
require
'spec_helper'
describe
"wikis/show"
do
before
(
:each
)
do
@wiki
=
assign
(
:wiki
,
stub_model
(
Wiki
,
:title
=>
"Title"
,
:content
=>
"MyText"
))
end
it
"renders attributes in <p>"
do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
rendered
.
should
match
(
/Title/
)
# Run the generator again with the --webrat flag if you want to use webrat matchers
rendered
.
should
match
(
/MyText/
)
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment