pageflow-linkmap-page 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.jshintignore +1 -0
- data/.jshintrc +23 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile +18 -0
- data/README.md +62 -0
- data/Rakefile +11 -0
- data/app/assets/images/pageflow/linkmap_page/text_only_area_type_pictogram.png +0 -0
- data/app/assets/images/pageflow/linkmap_page/themes/default/pictograms/sprite.png +0 -0
- data/app/assets/images/pageflow/linkmap_page/themes/default/pictograms/wide.png +0 -0
- data/app/assets/images/pageflow/linkmap_page_pictogram.png +0 -0
- data/app/assets/images/pageflow/linkmap_page_pictogram_small.png +0 -0
- data/app/assets/javascript/pageflow/linkmap_page.js +9 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor.js +25 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/collections/areas_collection.js +57 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/collections/page_links_collection.js +29 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/config.js +51 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/controllers/side_bar_controller.js +15 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/area.js +79 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/area_file_selection_handler.js +12 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/audio_file_area_type.js +17 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/external_link_area_type.js +19 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/new_area_file_selection_handler.js +11 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/page_configuration_mixin.js +33 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/page_link_area_type.js +29 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/models/text_only_area_type.js +15 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/routers/side_bar_router.js +5 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/templates/edit_area.jst.ejs +3 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/templates/embedded/area_item.jst.ejs +11 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/areas_list_view.js +44 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/configuration_editor_view.js +90 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/edit_area_view.js +103 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/editable_areas_mode_view.js +10 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/embedded/area_item_embedded_view.js +190 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/embedded/areas_embedded_view.js +26 -0
- data/app/assets/javascript/pageflow/linkmap_page/editor/views/embedded/panorama_embedded_view.js +14 -0
- data/app/assets/javascript/pageflow/linkmap_page/features.js +9 -0
- data/app/assets/javascript/pageflow/linkmap_page/page_type.js +302 -0
- data/app/assets/javascript/pageflow/linkmap_page/vendor/gyro.js +3 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/hover_video.js +77 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap.js +112 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_audio_player_controls.js +132 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_audio_players_controller.js +48 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_lookaround.js +154 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_lookaround_strategies/target_speed.js +99 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_panorama.js +421 -0
- data/app/assets/javascript/pageflow/linkmap_page/widgets/linkmap_scroll_indicators.js +17 -0
- data/app/assets/stylesheets/pageflow/linkmap_page.css.scss +266 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/animations/rotate.css.scss +8 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/audio_player_controls.scss +134 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/editor.css.scss +122 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/editor/areas_list.scss +15 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/editor/file_areas.css.scss +70 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/editor/resizable.css.scss +80 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/themes/default.css.scss +341 -0
- data/app/assets/stylesheets/pageflow/linkmap_page/themes/default/scroll_indicators.scss +82 -0
- data/app/controllers/pageflow/external_links/sites_controller.rb +40 -0
- data/app/helpers/pageflow/linkmap_page/areas_helper.rb +93 -0
- data/app/models/pageflow/linkmap_page/site.rb +11 -0
- data/app/views/pageflow/linkmap_page/areas/_div.html.erb +33 -0
- data/app/views/pageflow/linkmap_page/page.html +51 -0
- data/config/locales/de.yml +119 -0
- data/config/locales/en.yml +119 -0
- data/config/locales/new/inverted.de.yml +10 -0
- data/config/locales/new/inverted.en.yml +10 -0
- data/config/locales/new/text_only_area_type.de.yml +11 -0
- data/config/locales/new/text_only_area_type.en.yml +11 -0
- data/config/routes.rb +5 -0
- data/config/spring.rb +1 -0
- data/exec/rspec +15 -0
- data/exec/spring +18 -0
- data/lib/pageflow-linkmap-page.rb +13 -0
- data/lib/pageflow/linkmap_page/engine.rb +17 -0
- data/lib/pageflow/linkmap_page/page_type.rb +19 -0
- data/lib/pageflow/linkmap_page/plugin.rb +9 -0
- data/lib/pageflow/linkmap_page/version.rb +5 -0
- data/pageflow-linkmap-page.gemspec +37 -0
- data/spec/helpers/pageflow/linkmap_page/areas_helper_spec.rb +68 -0
- data/spec/spec_helper.rb +15 -0
- metadata +265 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b493ac7493f526d49f5805c713a211ba6447de0e
|
4
|
+
data.tar.gz: 16e8273aa2955e2abec0d289a3aeb294d6ffb7c5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a1082d4931f516b774ccf34def7f6ac4bc8dd1e3f1a8a30f1676e70646f0ad55da29379cb76ea8074ca53720e2928ce95632fe83b42d510ea72c90a1687f68fa
|
7
|
+
data.tar.gz: c42dd554b92d398453024079f6d0c826c0b1a5f77f847c7f1bab77b994da0346f6849069ffc5dd23a6562a55e20cd2e6aa92bf5be131099e9f8e28abe2501a40
|
data/.gitignore
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
*.sqlite3
|
4
|
+
.bundle
|
5
|
+
.config
|
6
|
+
.yardoc
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
log
|
19
|
+
Gemfile.lock
|
20
|
+
spec/dummy
|
21
|
+
.localeapp
|
data/.jshintignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
vendor/assets/javascripts/**
|
data/.jshintrc
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"browser": true,
|
3
|
+
"undef": true,
|
4
|
+
"immed": true,
|
5
|
+
"trailing": true,
|
6
|
+
"globals": {
|
7
|
+
"jQuery": true,
|
8
|
+
"$": true,
|
9
|
+
"Backbone": true,
|
10
|
+
"Cocktail": true,
|
11
|
+
"_": true,
|
12
|
+
"vjs": true,
|
13
|
+
"Audio5js": true,
|
14
|
+
"I18n": true,
|
15
|
+
"gyro": true,
|
16
|
+
|
17
|
+
"pageflow": true,
|
18
|
+
"editor": true,
|
19
|
+
|
20
|
+
"confirm": true,
|
21
|
+
"alert": true
|
22
|
+
}
|
23
|
+
}
|
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in chart.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
# Rails 4 compat
|
7
|
+
gem 'activeadmin', :git => 'https://github.com/codevise/active_admin.git', :branch => 'rails4'
|
8
|
+
gem 'ransack'
|
9
|
+
gem 'inherited_resources', '1.4.1'
|
10
|
+
gem 'formtastic', '2.3.0.rc2'
|
11
|
+
|
12
|
+
gem 'pageflow', path: '.bundle/linked/pageflow'
|
13
|
+
gem 'pageflow-support', path: '.bundle/linked/pageflow/spec/support'
|
14
|
+
|
15
|
+
gem 'teaspoon', git: 'https://github.com/modeset/teaspoon'
|
16
|
+
|
17
|
+
gem "spring-commands-rspec", group: :development
|
18
|
+
gem "spring-commands-teaspoon", group: :development
|
data/README.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Pageflow Linkmap Page
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/pageflow-linkmap-page.svg)](http://badge.fury.io/rb/pageflowlinkmap-page)
|
4
|
+
|
5
|
+
Page type to display customizable link areas to internal/external
|
6
|
+
pages and inline audio players.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's `Gemfile`:
|
11
|
+
|
12
|
+
gem 'pageflow-linkmap-page'
|
13
|
+
|
14
|
+
Register the page type inside the configure block in `config/initializers/pageflow.rb`
|
15
|
+
|
16
|
+
Pageflow.configure do |config|
|
17
|
+
config.plugin(Pageflow::LinkmapPage.plugin)
|
18
|
+
end
|
19
|
+
|
20
|
+
Include javascripts and stylesheets:
|
21
|
+
|
22
|
+
# app/assets/javascripts/pageflow/application.js
|
23
|
+
//= require pageflow/linkmap_page
|
24
|
+
|
25
|
+
# app/assets/javascripts/pageflow/editor.js
|
26
|
+
//= require pageflow/linkmap_page/editor
|
27
|
+
|
28
|
+
# app/assets/stylesheets/pageflow/application.css.scss
|
29
|
+
@import "pageflow/linkmap_page";
|
30
|
+
|
31
|
+
# app/assets/stylesheets/pageflow/editor.css.scss
|
32
|
+
@import "pageflow/linkmap_page/editor";
|
33
|
+
|
34
|
+
Import default theme additions:
|
35
|
+
|
36
|
+
# app/assets/stylesheets/pageflow/themes/default.css.scss
|
37
|
+
|
38
|
+
@import "pageflow/linkmap_page/themes/default";
|
39
|
+
|
40
|
+
/* Display arrows left and right to indicate panorama */
|
41
|
+
@import "pageflow/linkmap_page/themes/default/scroll_indicators";
|
42
|
+
|
43
|
+
Install dependencies:
|
44
|
+
|
45
|
+
bundle install
|
46
|
+
|
47
|
+
Restart the application server and enable the corresponding page type
|
48
|
+
feature.
|
49
|
+
|
50
|
+
## Troubleshooting
|
51
|
+
|
52
|
+
If you run into problems while installing the page type, please also refer to the
|
53
|
+
[Troubleshooting](https://github.com/codevise/pageflow/wiki/Troubleshooting) wiki
|
54
|
+
page in the [Pageflow repository](https://github.com/codevise/pageflow). If that
|
55
|
+
doesn't help, consider
|
56
|
+
[filing an issue](https://github.com/codevise/pageflow-linkmap-page/issues).
|
57
|
+
|
58
|
+
## Contributing Locales
|
59
|
+
|
60
|
+
Edit the translations directly on the
|
61
|
+
[pageflow-internal-links](http://www.localeapp.com/projects/public?search=tf/pageflow-linkmap-page)
|
62
|
+
locale project.
|
data/Rakefile
ADDED
Binary file
|
Binary file
|
@@ -0,0 +1,9 @@
|
|
1
|
+
//= require_self
|
2
|
+
//= require ./linkmap_page/features
|
3
|
+
//= require ./linkmap_page/page_type
|
4
|
+
//= require ./linkmap_page/vendor/gyro
|
5
|
+
//= require_tree ./linkmap_page/widgets
|
6
|
+
|
7
|
+
pageflow.linkmapPage = pageflow.linkmapPage || {};
|
8
|
+
|
9
|
+
pageflow.linkmapPage.toggleMarkerOptions = ['no_marker', 'dynamic_marker'];
|
@@ -0,0 +1,25 @@
|
|
1
|
+
//= require_self
|
2
|
+
|
3
|
+
//= require_tree ./editor/models
|
4
|
+
//= require_tree ./editor/collections
|
5
|
+
//= require_tree ./editor/routers
|
6
|
+
//= require_tree ./editor/controllers
|
7
|
+
//= require_tree ./editor/templates
|
8
|
+
//= require_tree ./editor/views
|
9
|
+
|
10
|
+
//= require ./editor/config
|
11
|
+
|
12
|
+
pageflow.linkmapPage = pageflow.linkmapPage || {};
|
13
|
+
|
14
|
+
pageflow.linkmapPage.areaTypesFor = function(pageConfiguration) {
|
15
|
+
return new Backbone.Collection(_([
|
16
|
+
pageflow.linkmapPage.PageLinkAreaType,
|
17
|
+
pageflow.linkmapPage.AudioFileAreaType,
|
18
|
+
pageflow.linkmapPage.ExternalLinkAreaType,
|
19
|
+
pageflow.linkmapPage.TextOnlyAreaType
|
20
|
+
]).map(function(constructor) {
|
21
|
+
return new constructor({}, {
|
22
|
+
pageConfiguration: pageConfiguration
|
23
|
+
});
|
24
|
+
}));
|
25
|
+
};
|
@@ -0,0 +1,57 @@
|
|
1
|
+
pageflow.linkmapPage.AreasCollection = Backbone.Collection.extend({
|
2
|
+
model: pageflow.linkmapPage.Area,
|
3
|
+
|
4
|
+
initialize: function(models, options) {
|
5
|
+
this.page = options.page;
|
6
|
+
this.defaultPosition = {
|
7
|
+
left: 10,
|
8
|
+
top: 10
|
9
|
+
};
|
10
|
+
},
|
11
|
+
|
12
|
+
/**
|
13
|
+
* @param [Object, Function] value
|
14
|
+
*/
|
15
|
+
setDefaultPosition: function(value) {
|
16
|
+
this.defaultPosition = value;
|
17
|
+
},
|
18
|
+
|
19
|
+
canAddLink: function() {
|
20
|
+
return true;
|
21
|
+
},
|
22
|
+
|
23
|
+
addLink: function(targetPageId) {
|
24
|
+
this.addWithPosition({
|
25
|
+
target_type: 'page',
|
26
|
+
target_id: targetPageId
|
27
|
+
});
|
28
|
+
},
|
29
|
+
|
30
|
+
addAudioFile: function(audioFileId) {
|
31
|
+
this.addWithPosition({
|
32
|
+
target_type: 'audio_file',
|
33
|
+
target_id: audioFileId
|
34
|
+
});
|
35
|
+
},
|
36
|
+
|
37
|
+
addExternalSite: function(siteId) {
|
38
|
+
this.addWithPosition({
|
39
|
+
target_type: 'external_site',
|
40
|
+
target_id: siteId
|
41
|
+
});
|
42
|
+
},
|
43
|
+
|
44
|
+
addTextOnly: function() {
|
45
|
+
this.addWithPosition({
|
46
|
+
target_type: 'text_only'
|
47
|
+
});
|
48
|
+
},
|
49
|
+
|
50
|
+
addWithPosition: function(attributes) {
|
51
|
+
this.add(_.extend(
|
52
|
+
{width: 7, height: 7},
|
53
|
+
_.result(this, 'defaultPosition'),
|
54
|
+
attributes
|
55
|
+
));
|
56
|
+
}
|
57
|
+
});
|
@@ -0,0 +1,29 @@
|
|
1
|
+
pageflow.linkmapPage.PageLinksCollection = pageflow.SubsetCollection.extend({
|
2
|
+
constructor: function(options) {
|
3
|
+
this.areas = options.areas;
|
4
|
+
|
5
|
+
pageflow.SubsetCollection.prototype.constructor.call(this, {
|
6
|
+
parent: options.areas,
|
7
|
+
|
8
|
+
filter: function(area) {
|
9
|
+
return area.get('target_type') === 'page';
|
10
|
+
}
|
11
|
+
});
|
12
|
+
},
|
13
|
+
|
14
|
+
canAddLink: function() {
|
15
|
+
return this.areas.canAddLink();
|
16
|
+
},
|
17
|
+
|
18
|
+
addLink: function(targetPageId) {
|
19
|
+
this.areas.addLink(targetPageId);
|
20
|
+
},
|
21
|
+
|
22
|
+
updateLink: function(link, targetPageId) {
|
23
|
+
link.set({target_id: targetPageId});
|
24
|
+
},
|
25
|
+
|
26
|
+
removeLink: function(link) {
|
27
|
+
this.remove(link);
|
28
|
+
},
|
29
|
+
});
|
@@ -0,0 +1,51 @@
|
|
1
|
+
pageflow.editor.pageTypes.register('linkmap_page', {
|
2
|
+
configurationEditorView: pageflow.linkmapPage.ConfigurationEditorView,
|
3
|
+
|
4
|
+
embeddedViews: {
|
5
|
+
'.scroller': {
|
6
|
+
view: pageflow.linkmapPage.PanoramaEmbeddedView,
|
7
|
+
options: {
|
8
|
+
disableMarginScrollingPropertyName: 'areas_editable'
|
9
|
+
}
|
10
|
+
},
|
11
|
+
|
12
|
+
'.panorama_image': {
|
13
|
+
view: pageflow.BackgroundImageEmbeddedView,
|
14
|
+
options: {
|
15
|
+
propertyName: 'panorama_image_id',
|
16
|
+
dataSizeAttributes : true
|
17
|
+
}
|
18
|
+
},
|
19
|
+
|
20
|
+
'.panorama_video': {
|
21
|
+
view: pageflow.LazyVideoEmbeddedView,
|
22
|
+
options: {
|
23
|
+
propertyName: 'panorama_video_id',
|
24
|
+
dataSizeAttributes: true
|
25
|
+
}
|
26
|
+
},
|
27
|
+
|
28
|
+
'.linkmap_areas': {
|
29
|
+
view: pageflow.linkmapPage.AreasEmbeddedView
|
30
|
+
},
|
31
|
+
|
32
|
+
'.fixed_background': {
|
33
|
+
view: pageflow.BackgroundImageEmbeddedView,
|
34
|
+
options: {propertyName: 'fixed_background_image_id'}
|
35
|
+
}
|
36
|
+
},
|
37
|
+
|
38
|
+
pageLinks: function(configuration) {
|
39
|
+
return configuration.linkmapPageLinks();
|
40
|
+
}
|
41
|
+
});
|
42
|
+
|
43
|
+
pageflow.editor.registerPageConfigurationMixin(pageflow.linkmapPage.pageConfigurationMixin);
|
44
|
+
|
45
|
+
pageflow.editor.registerFileSelectionHandler('linkmapPage.area', pageflow.linkmapPage.AreaFileSelectionHandler);
|
46
|
+
pageflow.editor.registerFileSelectionHandler('linkmapPage.newArea', pageflow.linkmapPage.NewAreaFileSelectionHandler);
|
47
|
+
|
48
|
+
pageflow.editor.registerSideBarRouting({
|
49
|
+
router: pageflow.linkmapPage.SideBarRouter,
|
50
|
+
controller: pageflow.linkmapPage.SideBarController
|
51
|
+
});
|
@@ -0,0 +1,15 @@
|
|
1
|
+
pageflow.linkmapPage.SideBarController = Backbone.Marionette.Controller.extend({
|
2
|
+
initialize: function(options) {
|
3
|
+
this.region = options.region;
|
4
|
+
},
|
5
|
+
|
6
|
+
area: function(pageId, areaIndex) {
|
7
|
+
var page = pageflow.pages.get(pageId);
|
8
|
+
|
9
|
+
this.region.show(new pageflow.linkmapPage.EditAreaView({
|
10
|
+
model: page.configuration.linkmapAreas().at(parseInt(areaIndex, 10)),
|
11
|
+
page: page,
|
12
|
+
areaIndex: areaIndex
|
13
|
+
}));
|
14
|
+
}
|
15
|
+
});
|
@@ -0,0 +1,79 @@
|
|
1
|
+
pageflow.linkmapPage.Area = Backbone.Model.extend({
|
2
|
+
modelName: 'area',
|
3
|
+
i18nKey: 'pageflow/linkmap_page/area',
|
4
|
+
|
5
|
+
mixins: [pageflow.transientReferences],
|
6
|
+
|
7
|
+
target: function() {
|
8
|
+
// This should eventually be replaces with some sort of
|
9
|
+
// polymorphic lookup for referenceable objects i.e.
|
10
|
+
//
|
11
|
+
// pageflow.xxx.getPolymorphic(this.get('target_type'), this.get('target_id'));
|
12
|
+
//
|
13
|
+
if (this.get('target_type') === 'audio_file') {
|
14
|
+
return pageflow.audioFiles.get(this.get('target_id'));
|
15
|
+
}
|
16
|
+
else if (this.get('target_type') === 'page') {
|
17
|
+
return pageflow.pages.getByPermaId(this.get('target_id'));
|
18
|
+
}
|
19
|
+
else if (this.get('target_type') === 'external_site') {
|
20
|
+
return pageflow.externalLinks.sites.getByPermaId(this.get('target_id'));
|
21
|
+
}
|
22
|
+
},
|
23
|
+
|
24
|
+
targetPage: function() {
|
25
|
+
return this.get('target_type') === 'page' ? this.target() : null;
|
26
|
+
},
|
27
|
+
|
28
|
+
title: function() {
|
29
|
+
var target = this.target();
|
30
|
+
return target ? target.title() : null;
|
31
|
+
},
|
32
|
+
|
33
|
+
thumbnailFile: function() {
|
34
|
+
if (this.get('target_type') === 'text_only') {
|
35
|
+
return this.textOnlyAreaPlaceholderFile();
|
36
|
+
}
|
37
|
+
|
38
|
+
var target = this.target();
|
39
|
+
return target ? target.thumbnailFile() : null;
|
40
|
+
},
|
41
|
+
|
42
|
+
textOnlyAreaPlaceholderFile: function() {
|
43
|
+
if (!pageflow.linkmapPage.Area.textOnlyAreaPlaceholderFile) {
|
44
|
+
var file = new pageflow.AudioFile({
|
45
|
+
state: 'encoded'
|
46
|
+
});
|
47
|
+
|
48
|
+
file.thumbnailPictogram = 'text_only';
|
49
|
+
pageflow.linkmapPage.Area.textOnlyAreaPlaceholderFile = file;
|
50
|
+
}
|
51
|
+
|
52
|
+
return pageflow.linkmapPage.Area.textOnlyAreaPlaceholderFile;
|
53
|
+
},
|
54
|
+
|
55
|
+
label: function() {
|
56
|
+
return this.get('name');
|
57
|
+
},
|
58
|
+
|
59
|
+
highlight: function() {
|
60
|
+
this.set('highlighted', true);
|
61
|
+
},
|
62
|
+
|
63
|
+
resetHighlight: function() {
|
64
|
+
this.unset('highlighted');
|
65
|
+
},
|
66
|
+
|
67
|
+
editPath: function() {
|
68
|
+
var areaIndex = this.collection.indexOf(this);
|
69
|
+
return '/linkmap_pages/' + this.getRoutableId() + '/areas/' + areaIndex;
|
70
|
+
},
|
71
|
+
|
72
|
+
getRoutableId: function() {
|
73
|
+
return this.collection.page.id;
|
74
|
+
},
|
75
|
+
|
76
|
+
remove: function() {
|
77
|
+
this.collection.remove(this);
|
78
|
+
}
|
79
|
+
});
|