iqvoc 3.2.7 → 3.2.8
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.
- data/app/helpers/concepts_helper.rb +1 -0
- data/config/database.yml +8 -3
- data/config/initializers/secret_token.rb +1 -1
- data/db/schema.rb +11 -1
- data/lib/iqvoc/version.rb +1 -1
- data/public/javascripts/iqvoc/application.js +130 -118
- metadata +17 -18
- data/config/deploy.rb +0 -72
|
@@ -18,6 +18,7 @@ module ConceptsHelper
|
|
|
18
18
|
|
|
19
19
|
# if `broader` is supplied, the tree's direction is reversed (descendants represent broader relations)
|
|
20
20
|
def treeview(concepts, broader = false)
|
|
21
|
+
concepts = concepts.sort { |a, b| a.pref_label.to_s <=> b.pref_label.to_s }
|
|
21
22
|
render :partial => "concepts/hierarchical/treeview",
|
|
22
23
|
:locals => { :concepts => concepts, :broader => broader }
|
|
23
24
|
end
|
data/config/database.yml
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
# development:
|
|
2
|
+
# adapter: postgresql
|
|
3
|
+
# encoding: unicode
|
|
4
|
+
# database: iqvoc_development
|
|
5
|
+
# username: iqvoc
|
|
6
|
+
# password:
|
|
7
|
+
# pool: 5
|
|
8
|
+
|
|
1
9
|
development:
|
|
2
10
|
adapter: mysql2
|
|
3
11
|
encoding: utf8
|
|
4
12
|
reconnect: false
|
|
5
13
|
database: iqvoc_development
|
|
6
|
-
pool: 5
|
|
7
14
|
username: root
|
|
8
15
|
password:
|
|
9
16
|
hostname: 127.0.0.1
|
|
@@ -13,7 +20,6 @@ test:
|
|
|
13
20
|
encoding: utf8
|
|
14
21
|
reconnect: false
|
|
15
22
|
database: iqvoc_test
|
|
16
|
-
pool: 5
|
|
17
23
|
username: root
|
|
18
24
|
password:
|
|
19
25
|
hostname: 127.0.0.1
|
|
@@ -23,7 +29,6 @@ production:
|
|
|
23
29
|
encoding: utf8
|
|
24
30
|
reconnect: false
|
|
25
31
|
database: iqvoc_development
|
|
26
|
-
pool: 5
|
|
27
32
|
username: root
|
|
28
33
|
password:
|
|
29
34
|
hostname: 127.0.0.1
|
|
@@ -25,6 +25,6 @@ if Iqvoc.const_defined?(:Application)
|
|
|
25
25
|
|
|
26
26
|
# Run `rake secret` and uncomment the following line
|
|
27
27
|
# Replace the secret-placeholder with your generated token
|
|
28
|
-
Iqvoc::Application.config.secret_token = '
|
|
28
|
+
Iqvoc::Application.config.secret_token = 'ef1f801c911b45ded2944aad3121244bfabf231631d102e6e120da8639c47eb6aa4ae7df733f0d539951cbc4e399e6050f46bc279d6a85d57135688394b87c5a'
|
|
29
29
|
|
|
30
30
|
end
|
data/db/schema.rb
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#
|
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
|
13
13
|
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
|
14
|
+
ActiveRecord::Schema.define(:version => 20120601094501) do
|
|
15
15
|
|
|
16
16
|
create_table "collection_members", :force => true do |t|
|
|
17
17
|
t.integer "collection_id"
|
|
@@ -27,6 +27,7 @@ ActiveRecord::Schema.define(:version => 20120201120736) do
|
|
|
27
27
|
t.integer "target_id"
|
|
28
28
|
t.datetime "created_at"
|
|
29
29
|
t.datetime "updated_at"
|
|
30
|
+
t.integer "rank", :default => 100
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
add_index "concept_relations", ["owner_id", "target_id"], :name => "ix_concept_relations_fk"
|
|
@@ -116,6 +117,15 @@ ActiveRecord::Schema.define(:version => 20120201120736) do
|
|
|
116
117
|
add_index "notes", ["owner_id", "owner_type", "type"], :name => "ix_notes_fk_type"
|
|
117
118
|
add_index "notes", ["type"], :name => "ix_notes_on_type"
|
|
118
119
|
|
|
120
|
+
create_table "page_requests", :force => true do |t|
|
|
121
|
+
t.string "path"
|
|
122
|
+
t.float "page_duration"
|
|
123
|
+
t.float "view_duration"
|
|
124
|
+
t.float "db_duration"
|
|
125
|
+
t.datetime "created_at", :null => false
|
|
126
|
+
t.datetime "updated_at", :null => false
|
|
127
|
+
end
|
|
128
|
+
|
|
119
129
|
create_table "users", :force => true do |t|
|
|
120
130
|
t.string "forename"
|
|
121
131
|
t.string "surname"
|
data/lib/iqvoc/version.rb
CHANGED
|
@@ -2,132 +2,144 @@
|
|
|
2
2
|
/*global jQuery, IQVOC */
|
|
3
3
|
|
|
4
4
|
jQuery(document).ready(function($) {
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
var locale = $("head meta[name=i18n-locale]").attr("content");
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
IQVOC.enhancedDropdown(".menu");
|
|
10
|
+
IQVOC.dynamicAuth("#auth_controls");
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
if(IQVOC.visualization) {
|
|
13
|
+
IQVOC.visualization.init("infovis", function(container) {
|
|
14
|
+
if(IQVOC.Storage.getItem("visualization") === "enlarged") {
|
|
15
|
+
container.data("widget").toggleSize(true);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
20
|
+
// language selection
|
|
21
|
+
var langWidget = $("ul.lang-widget")[0];
|
|
22
|
+
// primary language (converting links to radio buttons)
|
|
23
|
+
$("a", langWidget).each(function(i, node) {
|
|
24
|
+
var link = $(node),
|
|
25
|
+
el = link.closest("li"),
|
|
26
|
+
btn = $('<input type="radio" name="primary_language">');
|
|
27
|
+
if(link.hasClass("current")) {
|
|
28
|
+
btn[0].checked = true;
|
|
29
|
+
}
|
|
30
|
+
var label = $("<label />").append(btn).append(link);
|
|
31
|
+
el.append(label);
|
|
32
|
+
return label[0];
|
|
33
|
+
});
|
|
34
|
+
$("input:radio", langWidget).live("change", function(ev) {
|
|
35
|
+
window.location = $(this).closest("label").find("a").attr("href");
|
|
36
|
+
});
|
|
37
|
+
// secondary language
|
|
38
|
+
var toggleSections = function(langSelected) {
|
|
39
|
+
$(".translation[lang]").each(function(i, node) {
|
|
40
|
+
var el = $(node),
|
|
41
|
+
lang = el.attr("lang");
|
|
42
|
+
if(lang !== locale && $.inArray(lang, langSelected) === -1) {
|
|
43
|
+
el.addClass("hidden");
|
|
44
|
+
} else {
|
|
45
|
+
el.removeClass("hidden");
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
var updateNoteLangs = function(langSelected) {
|
|
50
|
+
$(".inline_note.new select").each(function(i, sel) { // NB: new notes only!
|
|
51
|
+
$(sel).find("option").each(function(i, opt) {
|
|
52
|
+
var el = $(opt),
|
|
53
|
+
lang = el.val();
|
|
54
|
+
if(lang !== locale && $.inArray(lang, langSelected) === -1) {
|
|
55
|
+
el.remove();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
$(document).bind("lang_selected", function(ev, data) {
|
|
61
|
+
toggleSections(data.langs);
|
|
62
|
+
updateNoteLangs(data.langs);
|
|
63
|
+
});
|
|
64
|
+
var langSelector = new IQVOC.LanguageSelector(langWidget, "lang_selected");
|
|
65
|
+
if($("#concept_new, #concept_edit").length) { // edit mode
|
|
66
|
+
// disable secondary language selection to avoid excessive state complexity
|
|
67
|
+
$(":checkbox", langSelector.container).prop("disabled", true);
|
|
68
|
+
}
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
// entity selection (edit mode)
|
|
71
|
+
$("input.entity_select").each(function(i, node) {
|
|
72
|
+
IQVOC.EntitySelector(node);
|
|
73
|
+
});
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
// Label editing (inline notes)
|
|
76
|
+
$("fieldset.note_relation ol li.inline_note.new").hide();
|
|
77
|
+
$("fieldset.note_relation input[type=button]").click(function(ev) {
|
|
78
|
+
IQVOC.createNote.apply(this, arguments);
|
|
79
|
+
langSelector.notify(); // trigger updateNoteLangs -- XXX: hacky!?
|
|
80
|
+
});
|
|
81
|
+
$("li.inline_note input:checkbox").change(function(ev) {
|
|
82
|
+
var action = this.checked ? "addClass" : "removeClass";
|
|
83
|
+
$(this).closest("li")[action]("deleted");
|
|
84
|
+
});
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
// Datepicker
|
|
87
|
+
$.datepicker.setDefaults($.datepicker.regional[locale]);
|
|
88
|
+
$("input.datepicker").datepicker({ dateFormat: "yy-mm-dd" });
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
90
|
+
// Dashboard table row highlighting and click handling
|
|
91
|
+
$("tr.highlightable")
|
|
92
|
+
.hover(function(ev) {
|
|
93
|
+
var action = ev.type === "mouseenter" ? "addClass" : "removeClass";
|
|
94
|
+
$(this)[action]("hover");
|
|
95
|
+
})
|
|
96
|
+
.click(function(ev) {
|
|
97
|
+
window.location = $(this).attr("data-url");
|
|
98
|
+
});
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
100
|
+
// Search
|
|
101
|
+
$("button#language_select_all").click(function() {
|
|
102
|
+
$("input[type=checkbox].lang_check").attr("checked", true);
|
|
103
|
+
});
|
|
104
|
+
$("button#language_select_none").click(function() {
|
|
105
|
+
$("input[type=checkbox].lang_check").attr("checked", false);
|
|
106
|
+
});
|
|
107
|
+
$("select.search_type").change(function() {
|
|
108
|
+
var result_type_filter = $("li.result_type_filter");
|
|
109
|
+
if($(this).val().match(/labeling/)) {
|
|
110
|
+
result_type_filter.show();
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
result_type_filter.hide();
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
$("select.search_type").change();
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
118
|
+
// hierarchical tree view
|
|
119
|
+
$("ul.hybrid-treeview").each(function() {
|
|
120
|
+
var url = $(this).attr("data-url"),
|
|
121
|
+
container = this;
|
|
122
|
+
$(this).treeview({
|
|
123
|
+
collapsed: true,
|
|
124
|
+
toggle: function() {
|
|
125
|
+
var el = $(this);
|
|
126
|
+
if(el.hasClass("hasChildren")) {
|
|
127
|
+
var childList = el.removeClass("hasChildren").find("ul");
|
|
128
|
+
|
|
129
|
+
var sortedItems = $(childList).children();
|
|
130
|
+
sortedItems.sort(function(a, b) {
|
|
131
|
+
var nameA = a.find("a").text(), nameB = b.find("a").text();
|
|
132
|
+
if (nameA < nameB) // sort string ascending
|
|
133
|
+
return -1
|
|
134
|
+
if (nameA > nameB)
|
|
135
|
+
return 1
|
|
136
|
+
return 0 // default return value (no sorting)
|
|
137
|
+
})
|
|
138
|
+
$(childList).empty().append(sortedItems);
|
|
139
|
+
|
|
140
|
+
$.fn.treeviewLoad({ url: url }, this.id, childList, container);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
});
|
|
133
145
|
});
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: iqvoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.2.
|
|
4
|
+
version: 3.2.8
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -11,11 +11,11 @@ authors:
|
|
|
11
11
|
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
date: 2012-
|
|
14
|
+
date: 2012-07-30 00:00:00.000000000 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: rails
|
|
18
|
-
requirement: &
|
|
18
|
+
requirement: &70201195576640 !ruby/object:Gem::Requirement
|
|
19
19
|
none: false
|
|
20
20
|
requirements:
|
|
21
21
|
- - ~>
|
|
@@ -23,10 +23,10 @@ dependencies:
|
|
|
23
23
|
version: 3.0.9
|
|
24
24
|
type: :runtime
|
|
25
25
|
prerelease: false
|
|
26
|
-
version_requirements: *
|
|
26
|
+
version_requirements: *70201195576640
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
|
-
requirement: &
|
|
29
|
+
requirement: &70201195576240 !ruby/object:Gem::Requirement
|
|
30
30
|
none: false
|
|
31
31
|
requirements:
|
|
32
32
|
- - ! '>='
|
|
@@ -34,10 +34,10 @@ dependencies:
|
|
|
34
34
|
version: '0'
|
|
35
35
|
type: :runtime
|
|
36
36
|
prerelease: false
|
|
37
|
-
version_requirements: *
|
|
37
|
+
version_requirements: *70201195576240
|
|
38
38
|
- !ruby/object:Gem::Dependency
|
|
39
39
|
name: kaminari
|
|
40
|
-
requirement: &
|
|
40
|
+
requirement: &70201195575780 !ruby/object:Gem::Requirement
|
|
41
41
|
none: false
|
|
42
42
|
requirements:
|
|
43
43
|
- - ! '>='
|
|
@@ -45,10 +45,10 @@ dependencies:
|
|
|
45
45
|
version: '0'
|
|
46
46
|
type: :runtime
|
|
47
47
|
prerelease: false
|
|
48
|
-
version_requirements: *
|
|
48
|
+
version_requirements: *70201195575780
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
50
|
name: authlogic
|
|
51
|
-
requirement: &
|
|
51
|
+
requirement: &70201195605560 !ruby/object:Gem::Requirement
|
|
52
52
|
none: false
|
|
53
53
|
requirements:
|
|
54
54
|
- - ! '>='
|
|
@@ -56,10 +56,10 @@ dependencies:
|
|
|
56
56
|
version: '0'
|
|
57
57
|
type: :runtime
|
|
58
58
|
prerelease: false
|
|
59
|
-
version_requirements: *
|
|
59
|
+
version_requirements: *70201195605560
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
61
|
name: cancan
|
|
62
|
-
requirement: &
|
|
62
|
+
requirement: &70201195605140 !ruby/object:Gem::Requirement
|
|
63
63
|
none: false
|
|
64
64
|
requirements:
|
|
65
65
|
- - ! '>='
|
|
@@ -67,10 +67,10 @@ dependencies:
|
|
|
67
67
|
version: '0'
|
|
68
68
|
type: :runtime
|
|
69
69
|
prerelease: false
|
|
70
|
-
version_requirements: *
|
|
70
|
+
version_requirements: *70201195605140
|
|
71
71
|
- !ruby/object:Gem::Dependency
|
|
72
72
|
name: iq_rdf
|
|
73
|
-
requirement: &
|
|
73
|
+
requirement: &70201195604640 !ruby/object:Gem::Requirement
|
|
74
74
|
none: false
|
|
75
75
|
requirements:
|
|
76
76
|
- - ~>
|
|
@@ -78,10 +78,10 @@ dependencies:
|
|
|
78
78
|
version: 0.0.14
|
|
79
79
|
type: :runtime
|
|
80
80
|
prerelease: false
|
|
81
|
-
version_requirements: *
|
|
81
|
+
version_requirements: *70201195604640
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: json
|
|
84
|
-
requirement: &
|
|
84
|
+
requirement: &70201195604220 !ruby/object:Gem::Requirement
|
|
85
85
|
none: false
|
|
86
86
|
requirements:
|
|
87
87
|
- - ! '>='
|
|
@@ -89,7 +89,7 @@ dependencies:
|
|
|
89
89
|
version: '0'
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
|
-
version_requirements: *
|
|
92
|
+
version_requirements: *70201195604220
|
|
93
93
|
description: iQvoc - a SKOS(-XL) vocabulary management system built on the Semantic
|
|
94
94
|
Web
|
|
95
95
|
email:
|
|
@@ -242,7 +242,6 @@ files:
|
|
|
242
242
|
- config/database.yml
|
|
243
243
|
- config/database.yml.mysql
|
|
244
244
|
- config/database.yml.sqlite
|
|
245
|
-
- config/deploy.rb
|
|
246
245
|
- config/engine.rb
|
|
247
246
|
- config/environment.rb
|
|
248
247
|
- config/environments/development.rb
|
|
@@ -481,7 +480,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
481
480
|
version: '0'
|
|
482
481
|
requirements: []
|
|
483
482
|
rubyforge_project:
|
|
484
|
-
rubygems_version: 1.8.
|
|
483
|
+
rubygems_version: 1.8.11
|
|
485
484
|
signing_key:
|
|
486
485
|
specification_version: 3
|
|
487
486
|
summary: iQvoc
|
data/config/deploy.rb
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
|
|
3
|
-
# Copyright 2011 innoQ Deutschland GmbH
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
|
|
17
|
-
require "#{File.dirname(__FILE__)}/deploy/history"
|
|
18
|
-
load_history
|
|
19
|
-
|
|
20
|
-
load "#{File.dirname(__FILE__)}/deploy/common.rb"
|
|
21
|
-
|
|
22
|
-
set :default_stage, "innoq"
|
|
23
|
-
set :stages, %w(ec2 innoq bian)
|
|
24
|
-
require 'capistrano/ext/multistage'
|
|
25
|
-
|
|
26
|
-
# RVM bootstrap
|
|
27
|
-
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
|
|
28
|
-
require 'rvm/capistrano'
|
|
29
|
-
set :rvm_ruby_string, '1.9.3'
|
|
30
|
-
# set :rvm_type, :user
|
|
31
|
-
|
|
32
|
-
# bundler bootstrap
|
|
33
|
-
require 'bundler/capistrano'
|
|
34
|
-
|
|
35
|
-
# main details
|
|
36
|
-
set :application, "iqvoc"
|
|
37
|
-
|
|
38
|
-
# repo details
|
|
39
|
-
set :scm, :git
|
|
40
|
-
set :git_enable_submodules, 1
|
|
41
|
-
# set :scm_username, "passenger"
|
|
42
|
-
set :repository, "git@github.com:innoq/iqvoc.git"
|
|
43
|
-
@capistrano_history['last_branch'] = "master" if @capistrano_history['last_branch'].nil? || @capistrano_history['last_branch'] == ""
|
|
44
|
-
set :branch, Capistrano::CLI.ui.ask("Please enter the branch or tag we should use [#{@capistrano_history['last_branch']}]: ")
|
|
45
|
-
set :branch, @capistrano_history['last_branch'] if fetch(:branch) == ""
|
|
46
|
-
@capistrano_history['last_branch'] = fetch(:branch)
|
|
47
|
-
|
|
48
|
-
save_history
|
|
49
|
-
|
|
50
|
-
# tasks
|
|
51
|
-
namespace :deploy do
|
|
52
|
-
task :start, :roles => :app do
|
|
53
|
-
run "touch #{current_path}/tmp/restart.txt"
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
task :stop, :roles => :app do
|
|
57
|
-
# Do nothing.
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
desc "Restart Application"
|
|
61
|
-
task :restart, :roles => :app do
|
|
62
|
-
run "touch #{current_path}/tmp/restart.txt"
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
desc "Symlink shared resources on each release"
|
|
66
|
-
task :symlink_shared, :roles => :app do
|
|
67
|
-
run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
|
|
68
|
-
run "ln -nfs #{shared_path}/config/initializers/secret_token.rb #{release_path}/config/initializers/secret_token.rb"
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
after 'deploy:update_code', 'deploy:symlink_shared'
|