adva-core 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/bundler/repository.rb +118 -0
- metadata +68 -317
- data/app/controllers/admin/base_controller.rb +0 -21
- data/app/controllers/admin/pages_controller.rb +0 -7
- data/app/controllers/admin/sections_controller.rb +0 -39
- data/app/controllers/admin/sites_controller.rb +0 -21
- data/app/controllers/articles_controller.rb +0 -3
- data/app/controllers/base_controller.rb +0 -22
- data/app/controllers/installations_controller.rb +0 -28
- data/app/controllers/pages_controller.rb +0 -2
- data/app/controllers/sections_controller.rb +0 -3
- data/app/helpers/form_helper.rb +0 -13
- data/app/helpers/sections_helper.rb +0 -7
- data/app/helpers/url_helper.rb +0 -18
- data/app/models/account.rb +0 -3
- data/app/models/article.rb +0 -2
- data/app/models/content.rb +0 -4
- data/app/models/page.rb +0 -17
- data/app/models/section.rb +0 -59
- data/app/models/site.rb +0 -26
- data/app/views/admin/contents/_menu.html.rb +0 -17
- data/app/views/admin/pages/_menu.html.rb +0 -10
- data/app/views/admin/pages/new.html.rb +0 -19
- data/app/views/admin/pages/show.html.rb +0 -25
- data/app/views/admin/sections/_menu.html.rb +0 -45
- data/app/views/admin/sections/_section.html.rb +0 -7
- data/app/views/admin/sections/_select_type.html.rb +0 -16
- data/app/views/admin/sections/index.html.rb +0 -28
- data/app/views/admin/sites/_menu.html.rb +0 -2
- data/app/views/admin/sites/edit.html.rb +0 -22
- data/app/views/admin/sites/index.html.rb +0 -12
- data/app/views/admin/sites/new.html.rb +0 -39
- data/app/views/admin/sites/show.html.rb +0 -7
- data/app/views/installations/new.html.rb +0 -39
- data/app/views/installations/show.html.rb +0 -9
- data/app/views/layouts/_flash.html.rb +0 -9
- data/app/views/layouts/admin.rb +0 -38
- data/app/views/layouts/admin/_header.rb +0 -48
- data/app/views/layouts/admin/_tabs.html.rb +0 -18
- data/app/views/layouts/admin/_top.rb +0 -58
- data/app/views/layouts/base.rb +0 -58
- data/app/views/layouts/default.rb +0 -45
- data/app/views/layouts/default/_menu.rb +0 -19
- data/app/views/layouts/simple.rb +0 -16
- data/app/views/pages/show.html.rb +0 -7
- data/config/initializers/simple_form.rb +0 -53
- data/config/locales/en.yml +0 -129
- data/config/redirects.rb +0 -8
- data/config/routes.rb +0 -21
- data/lib/adva-core.rb +0 -1
- data/lib/adva.rb +0 -37
- data/lib/adva/active_record/has_options.rb +0 -55
- data/lib/adva/cli.rb +0 -16
- data/lib/adva/controller.rb +0 -7
- data/lib/adva/controller/abstract_actions.rb +0 -87
- data/lib/adva/controller/internal_redirect.rb +0 -26
- data/lib/adva/controller/references.rb +0 -28
- data/lib/adva/core.rb +0 -85
- data/lib/adva/engine.rb +0 -64
- data/lib/adva/engine/sliced_models.rb +0 -35
- data/lib/adva/generators.rb +0 -8
- data/lib/adva/generators/app.rb +0 -121
- data/lib/adva/generators/engine.rb +0 -58
- data/lib/adva/generators/gemfile.rb +0 -50
- data/lib/adva/generators/install.rb +0 -31
- data/lib/adva/generators/templates/app/app_template.rb +0 -3
- data/lib/adva/generators/templates/engine/Gemfile.erb +0 -3
- data/lib/adva/generators/templates/engine/all.rb +0 -1
- data/lib/adva/generators/templates/engine/en.yml.erb +0 -2
- data/lib/adva/generators/templates/engine/engine.rb.erb +0 -11
- data/lib/adva/generators/templates/engine/gemspec.erb +0 -21
- data/lib/adva/generators/templates/engine/migration.rb.erb +0 -11
- data/lib/adva/generators/templates/engine/redirects.rb.erb +0 -3
- data/lib/adva/generators/templates/engine/routes.rb.erb +0 -3
- data/lib/adva/generators/templates/engine/test_helper.rb.erb +0 -3
- data/lib/adva/i18n.rb +0 -73
- data/lib/adva/rack.rb +0 -5
- data/lib/adva/rack/static.rb +0 -50
- data/lib/adva/registry.rb +0 -62
- data/lib/adva/responder.rb +0 -21
- data/lib/adva/responder/redirect.rb +0 -31
- data/lib/adva/routing_filters/section_path.rb +0 -72
- data/lib/adva/routing_filters/section_root.rb +0 -65
- data/lib/adva/tasks/core.rake +0 -9
- data/lib/adva/tasks/core.rb +0 -160
- data/lib/adva/testing.rb +0 -57
- data/lib/adva/testing/engine.rb +0 -37
- data/lib/adva/view.rb +0 -7
- data/lib/adva/view/form.rb +0 -44
- data/lib/adva/view/form/tabs.rb +0 -46
- data/lib/adva/view/helper/i18n.rb +0 -26
- data/lib/adva/view/menu.rb +0 -73
- data/lib/adva/view/menu/admin.rb +0 -100
- data/lib/adva/view/menu/items.rb +0 -26
- data/lib/adva/view/tabs.rb +0 -28
- data/lib/adva_core/version.rb +0 -3
- data/lib/core_ext/rails/action_view/has_many_through_collection_helpers.rb +0 -27
- data/lib/core_ext/rails/active_record/skip_callbacks.rb +0 -51
- data/lib/core_ext/ruby/array/flatten_once.rb +0 -9
- data/lib/core_ext/ruby/kernel/silence_stream.rb +0 -17
- data/lib/core_ext/ruby/module/include_anonymous.rb +0 -36
- data/lib/core_ext/ruby/module/option_reader.rb +0 -9
- data/lib/patches/arel/table_initialization_fixes.rb +0 -68
- data/lib/patches/inherited_resources.rb +0 -34
- data/lib/patches/rails/arel_table_options_fix.rb +0 -13
- data/lib/patches/rails/asset_expansion_multiple_registrations.rb +0 -21
- data/lib/patches/rails/recognize_path_env.rb +0 -43
- data/lib/patches/rails/route_set_to_param.rb +0 -25
- data/lib/patches/rails/sti_associations.rb +0 -17
- data/lib/patches/rails/template_resolver_caching.rb +0 -9
- data/lib/patches/rails/url_for.rb +0 -60
- data/lib/patches/responders/flash_responder.rb +0 -17
- data/lib/patches/simple_form.rb +0 -37
- data/lib/patches/thor/core_ext/hash.rb +0 -7
- data/lib/patches/thor/group/symbolized_options.rb +0 -8
- data/lib/patches/webrat/links-data-method.rb +0 -19
- data/lib/patches/webrat/logger.rb +0 -19
- data/lib/patches/webrat/upload_file.rb +0 -28
- data/lib/testing/assertions.rb +0 -19
- data/lib/testing/factories.rb +0 -30
- data/lib/testing/helpers/global_helpers.rb +0 -9
- data/lib/testing/paths.rb +0 -54
- data/lib/testing/step_definitions/common_steps.rb +0 -279
- data/lib/testing/step_definitions/menu_steps.rb +0 -11
- data/lib/testing/step_definitions/routes_steps.rb +0 -18
- data/lib/testing/step_definitions/transforms.rb +0 -50
- data/lib/testing/step_definitions/webrat_steps.rb +0 -291
- data/lib/testing/step_definitions/within_steps.rb +0 -17
- data/lib/webrat/integrations/rails.rb +0 -33
- data/public/images/adva-core/admin/header_bg.png +0 -0
- data/public/images/adva-core/admin/menu_checkmark.png +0 -0
- data/public/images/adva-core/admin/section_menu_bg.png +0 -0
- data/public/images/adva-core/admin/tab_action_active.png +0 -0
- data/public/images/adva-core/admin/tab_main_active.png +0 -0
- data/public/images/adva-core/admin/tab_sidebar_active.png +0 -0
- data/public/images/adva-core/admin/tab_top_active.png +0 -0
- data/public/images/adva-core/asset_selected.png +0 -0
- data/public/images/adva-core/avatar.gif +0 -0
- data/public/images/adva-core/feed.mini.png +0 -0
- data/public/images/adva-core/filter-bg.png +0 -0
- data/public/images/adva-core/grid.png +0 -0
- data/public/images/adva-core/icons/accept.png +0 -0
- data/public/images/adva-core/icons/add.png +0 -0
- data/public/images/adva-core/icons/arrow_cross.png +0 -0
- data/public/images/adva-core/icons/arrow_cross_2.png +0 -0
- data/public/images/adva-core/icons/arrow_cross_3.png +0 -0
- data/public/images/adva-core/icons/arrow_up_down.png +0 -0
- data/public/images/adva-core/icons/assets/audio.png +0 -0
- data/public/images/adva-core/icons/assets/doc.png +0 -0
- data/public/images/adva-core/icons/assets/pdf.png +0 -0
- data/public/images/adva-core/icons/assets/video.png +0 -0
- data/public/images/adva-core/icons/attach.png +0 -0
- data/public/images/adva-core/icons/bin.png +0 -0
- data/public/images/adva-core/icons/bin_closed.png +0 -0
- data/public/images/adva-core/icons/bin_empty.png +0 -0
- data/public/images/adva-core/icons/bullet_black.png +0 -0
- data/public/images/adva-core/icons/bullet_delete.png +0 -0
- data/public/images/adva-core/icons/bullet_error.png +0 -0
- data/public/images/adva-core/icons/bullet_go.png +0 -0
- data/public/images/adva-core/icons/bullet_red.png +0 -0
- data/public/images/adva-core/icons/bullet_white.png +0 -0
- data/public/images/adva-core/icons/bullet_yellow.png +0 -0
- data/public/images/adva-core/icons/cancel.png +0 -0
- data/public/images/adva-core/icons/comment.gif +0 -0
- data/public/images/adva-core/icons/comment.png +0 -0
- data/public/images/adva-core/icons/comment_add.png +0 -0
- data/public/images/adva-core/icons/comment_blue.gif +0 -0
- data/public/images/adva-core/icons/comment_delete.png +0 -0
- data/public/images/adva-core/icons/comment_edit.png +0 -0
- data/public/images/adva-core/icons/comment_yellow.gif +0 -0
- data/public/images/adva-core/icons/cross.png +0 -0
- data/public/images/adva-core/icons/delete.png +0 -0
- data/public/images/adva-core/icons/eye.png +0 -0
- data/public/images/adva-core/icons/favorites.png +0 -0
- data/public/images/adva-core/icons/help.png +0 -0
- data/public/images/adva-core/icons/hourglass.png +0 -0
- data/public/images/adva-core/icons/icon_attachment.gif +0 -0
- data/public/images/adva-core/icons/icon_padlock.gif +0 -0
- data/public/images/adva-core/icons/link.png +0 -0
- data/public/images/adva-core/icons/lock.png +0 -0
- data/public/images/adva-core/icons/magnifier.png +0 -0
- data/public/images/adva-core/icons/minus.gif +0 -0
- data/public/images/adva-core/icons/page_add.png +0 -0
- data/public/images/adva-core/icons/page_delete.png +0 -0
- data/public/images/adva-core/icons/page_edit.png +0 -0
- data/public/images/adva-core/icons/page_favorites.png +0 -0
- data/public/images/adva-core/icons/page_go.png +0 -0
- data/public/images/adva-core/icons/page_green.png +0 -0
- data/public/images/adva-core/icons/page_red.png +0 -0
- data/public/images/adva-core/icons/page_white_add.png +0 -0
- data/public/images/adva-core/icons/page_white_delete.png +0 -0
- data/public/images/adva-core/icons/page_white_edit.png +0 -0
- data/public/images/adva-core/icons/page_white_go.png +0 -0
- data/public/images/adva-core/icons/page_white_link.png +0 -0
- data/public/images/adva-core/icons/page_white_magnify.png +0 -0
- data/public/images/adva-core/icons/pencil.png +0 -0
- data/public/images/adva-core/icons/star.png +0 -0
- data/public/images/adva-core/icons/stop.png +0 -0
- data/public/images/adva-core/icons/tag_green.png +0 -0
- data/public/images/adva-core/icons/tick.png +0 -0
- data/public/images/adva-core/icons/zoom.png +0 -0
- data/public/images/adva-core/indicator.gif +0 -0
- data/public/images/adva-core/lines.png +0 -0
- data/public/images/adva-core/preview.png +0 -0
- data/public/images/adva-core/theme_selected.png +0 -0
- data/public/javascripts/adva-core/admin.js +0 -22
- data/public/javascripts/adva-core/jquery/jquery-1.4.2.min.js +0 -154
- data/public/javascripts/adva-core/jquery/jquery.table_tree.js +0 -296
- data/public/javascripts/adva-core/jquery/jquery.tablednd_0_5.js +0 -386
- data/public/javascripts/adva-core/rails.js +0 -127
- data/public/javascripts/backup/admin/jquery.admin.js +0 -77
- data/public/javascripts/backup/admin/jquery.article.js +0 -22
- data/public/javascripts/backup/admin/jquery.cached_pages.js +0 -14
- data/public/javascripts/backup/admin/jquery.table_tree.backup.js +0 -279
- data/public/javascripts/backup/admin/jquery.table_tree.js +0 -10
- data/public/javascripts/backup/application.js +0 -38
- data/public/javascripts/backup/application.prototype.js +0 -135
- data/public/javascripts/backup/builder.js +0 -136
- data/public/javascripts/backup/controls.js +0 -965
- data/public/javascripts/backup/cookie.js +0 -49
- data/public/javascripts/backup/dragdrop.js +0 -975
- data/public/javascripts/backup/effects.js +0 -1130
- data/public/javascripts/backup/flash.js +0 -49
- data/public/javascripts/backup/jquery.dates.js +0 -49
- data/public/javascripts/backup/jquery.flash.js +0 -40
- data/public/javascripts/backup/jquery.roles.js +0 -23
- data/public/javascripts/backup/jquery/jquery-lowpro.js +0 -224
- data/public/javascripts/backup/jquery/jquery-ui.js +0 -273
- data/public/javascripts/backup/jquery/jquery.js +0 -19
- data/public/javascripts/backup/jquery/jquery.qtip.min.js +0 -15
- data/public/javascripts/backup/json.js +0 -139
- data/public/javascripts/backup/lowpro.js +0 -320
- data/public/javascripts/backup/parseuri.js +0 -39
- data/public/javascripts/backup/prototype.js +0 -4320
- data/public/javascripts/backup/roles.js +0 -16
- data/public/javascripts/backup/scriptaculous.js +0 -60
- data/public/javascripts/backup/slider.js +0 -275
- data/public/javascripts/backup/sound.js +0 -55
- data/public/javascripts/backup/unittest.js +0 -568
- data/public/stylesheets/adva-core/admin/forms.css +0 -172
- data/public/stylesheets/adva-core/admin/layout.css +0 -38
- data/public/stylesheets/adva-core/admin/lists.css +0 -54
- data/public/stylesheets/adva-core/admin/navigation.css +0 -234
- data/public/stylesheets/adva-core/admin/sidebar.css +0 -87
- data/public/stylesheets/adva-core/admin/styles.css +0 -136
- data/public/stylesheets/adva-core/common/forms.css +0 -174
- data/public/stylesheets/adva-core/common/layout.css +0 -93
- data/public/stylesheets/adva-core/common/reset.css +0 -42
- data/public/stylesheets/adva-core/common/styles.css +0 -41
- data/public/stylesheets/adva-core/default/layout.css +0 -0
- data/public/stylesheets/adva-core/default/styles.css +0 -30
- data/public/stylesheets/adva-core/simple/layout.css +0 -11
- data/public/stylesheets/backup/alternate/common.css +0 -76
- data/public/stylesheets/backup/alternate/forms.css +0 -121
- data/public/stylesheets/backup/alternate/header.css +0 -125
- data/public/stylesheets/backup/alternate/layout.css +0 -103
- data/public/stylesheets/backup/alternate/lists.css +0 -153
- data/public/stylesheets/backup/alternate/sidebar.css +0 -65
- data/public/stylesheets/backup/alternate/top.css +0 -123
- data/public/stylesheets/backup/content.css +0 -11
- data/public/stylesheets/backup/helptip.css +0 -35
- data/public/stylesheets/backup/jquery/alternate/jquery.tooltip.css +0 -13
- data/public/stylesheets/backup/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-icons_222222_256x240.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-icons_454545_256x240.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-icons_888888_256x240.png +0 -0
- data/public/stylesheets/backup/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/stylesheets/backup/jquery/jquery-ui.css +0 -406
- data/public/stylesheets/backup/jquery/jquery.tooltip.css +0 -10
- data/public/stylesheets/backup/layout.css +0 -22
- data/public/stylesheets/backup/lists.css +0 -17
- data/public/stylesheets/backup/menu.css +0 -129
- data/public/stylesheets/backup/projection.css +0 -118
- data/public/stylesheets/backup/screen/top.css +0 -8
- data/public/stylesheets/backup/themes.css +0 -49
- data/public/stylesheets/backup/users.css +0 -40
@@ -1,77 +0,0 @@
|
|
1
|
-
$(document).ready(function() {
|
2
|
-
$('div.tabs li a').click(function() {
|
3
|
-
var tabs = $(this).closest('div');
|
4
|
-
$('div.active, li.active', tabs).removeClass('active')
|
5
|
-
// activate selected tab and tab content
|
6
|
-
$(this).closest('li').addClass('active');
|
7
|
-
selected = '#tab_' + $(this).attr('href').replace('#', '');
|
8
|
-
$(selected).addClass('active');
|
9
|
-
});
|
10
|
-
|
11
|
-
$('#toggle_draft').click(function() {
|
12
|
-
if($(this).attr('checked')) {
|
13
|
-
$('#publish_date_wrapper').hide();
|
14
|
-
} else {
|
15
|
-
$('#publish_date_wrapper').show();
|
16
|
-
}
|
17
|
-
});
|
18
|
-
|
19
|
-
$('.hint').each(function() {
|
20
|
-
if(!$(this).hasClass('text_only')) {
|
21
|
-
var label = $('label[for=' + this.getAttribute('for') + ']');
|
22
|
-
|
23
|
-
if(label) {
|
24
|
-
$(this).appendTo(label).addClass('move_up');
|
25
|
-
}
|
26
|
-
|
27
|
-
$(this).addClass('enabled');
|
28
|
-
}
|
29
|
-
});
|
30
|
-
|
31
|
-
$('.hint.enabled').each(function() {
|
32
|
-
$(this).qtip({
|
33
|
-
content: $(this).html(),
|
34
|
-
position: {
|
35
|
-
corner: {
|
36
|
-
target: 'topMiddle',
|
37
|
-
tooltip: 'bottomMiddle'
|
38
|
-
},
|
39
|
-
adjust: {
|
40
|
-
screen: true,
|
41
|
-
scroll: true
|
42
|
-
}
|
43
|
-
},
|
44
|
-
// FIXME tip option for qtip is broken currently on firefox, add this when this is fixed: tip: 'bottomMiddle'
|
45
|
-
style: {
|
46
|
-
background: '#FBF7E4',
|
47
|
-
color: '#black',
|
48
|
-
name: 'cream',
|
49
|
-
border: {
|
50
|
-
width: 3,
|
51
|
-
radius: 5,
|
52
|
-
color: '#DDDDDD'
|
53
|
-
}
|
54
|
-
},
|
55
|
-
show: {
|
56
|
-
delay: 0,
|
57
|
-
when: {
|
58
|
-
event: 'click'
|
59
|
-
}
|
60
|
-
},
|
61
|
-
hide: {
|
62
|
-
when: {
|
63
|
-
event: 'unfocus'
|
64
|
-
},
|
65
|
-
effect: {
|
66
|
-
length: 1000
|
67
|
-
}
|
68
|
-
}
|
69
|
-
});
|
70
|
-
});
|
71
|
-
|
72
|
-
// TODO make the new section creation maybe a two-step form and get rid of this here...
|
73
|
-
$('form.section_type input[type=submit]').hide();
|
74
|
-
$('form.section_type input[type=radio]').change(function(e) {
|
75
|
-
$('form.section_type').submit();
|
76
|
-
})
|
77
|
-
});
|
@@ -1,22 +0,0 @@
|
|
1
|
-
var Excerpt = {
|
2
|
-
show: function(event) {
|
3
|
-
event.preventDefault();
|
4
|
-
$('#article_excerpt_wrapper').show();
|
5
|
-
$('#add_excerpt_hint').hide();
|
6
|
-
$('#hide_excerpt_hint').show();
|
7
|
-
$('#article_excerpt').removeAttr('disabled');
|
8
|
-
},
|
9
|
-
|
10
|
-
hide: function(event) {
|
11
|
-
event.preventDefault();
|
12
|
-
$('#article_excerpt_wrapper').hide();
|
13
|
-
$('#hide_excerpt_hint').hide();
|
14
|
-
$('#add_excerpt_hint').show();
|
15
|
-
$('#article_excerpt').attr('disabled', 'disabled');
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
$(document).ready(function() {
|
20
|
-
$('a#add_excerpt').click(Excerpt.show);
|
21
|
-
$('a#hide_excerpt').click(Excerpt.hide);
|
22
|
-
});
|
@@ -1,14 +0,0 @@
|
|
1
|
-
var CachedPage = {
|
2
|
-
clearAll: function(event) {
|
3
|
-
event.preventDefault();
|
4
|
-
$.ajax({
|
5
|
-
url: this.href,
|
6
|
-
type: 'delete',
|
7
|
-
dataType: 'script'
|
8
|
-
});
|
9
|
-
}
|
10
|
-
}
|
11
|
-
|
12
|
-
$(document).ready(function() {
|
13
|
-
$('td.actions a.clear').click(CachedPage.clearAll);
|
14
|
-
});
|
@@ -1,279 +0,0 @@
|
|
1
|
-
TableTree = {
|
2
|
-
tableDnDOptions: {
|
3
|
-
onDragClass: 'drag',
|
4
|
-
onDragStart: function(table, row) {
|
5
|
-
row.level = 1;
|
6
|
-
TableTree.startOffset = jQuery.tableDnD.mouseOffset.x;
|
7
|
-
$(row).mousemove(TableTree.mousemove);
|
8
|
-
if (node = $(row).ttnode()) node.dragStart();
|
9
|
-
},
|
10
|
-
onDrag: function(table, row) {
|
11
|
-
TableTree.current_table.dirty = true;
|
12
|
-
if (node = $(row).ttnode()) node.update_children();
|
13
|
-
},
|
14
|
-
onDrop: function(table, row) {
|
15
|
-
$(row).unbind('mousemove', TableTree.mousemove);
|
16
|
-
if (node = $(row).ttnode()) node.drop();
|
17
|
-
TableTree.current_table.rebuild();
|
18
|
-
TableTree.current_table.update_remote(row);
|
19
|
-
},
|
20
|
-
onAllowDrop: function(draggedRow, row, movingDown) {
|
21
|
-
var node = $(row).ttnode();
|
22
|
-
next = movingDown ? $(node.next_row_sibling()).ttnode() : node;
|
23
|
-
if (next) {
|
24
|
-
level = next.parent.level ? next.parent.level : 0;
|
25
|
-
if (level >= $(draggedRow).ttnode().level) return false;
|
26
|
-
}
|
27
|
-
return $(row).ttnode() ? true : false;
|
28
|
-
}
|
29
|
-
},
|
30
|
-
toggle: function(table, type, collection_url) {
|
31
|
-
TableTree.current_table ? TableTree.teardown(table) : TableTree.setup(table, type, collection_url);
|
32
|
-
},
|
33
|
-
setup: function(table, type, collection_url) {
|
34
|
-
table.tableDnD(TableTree.tableDnDOptions);
|
35
|
-
TableTree.current_table = new TableTree.Table($(table).get(0), type, collection_url);
|
36
|
-
TableTree.current_table.setSortable();
|
37
|
-
},
|
38
|
-
teardown: function(table) {
|
39
|
-
// TableTree.current_table.update_remote();
|
40
|
-
jQuery.tableDnD.teardown(table);
|
41
|
-
TableTree.current_table.setUnsortable();
|
42
|
-
TableTree.current_table = null;
|
43
|
-
},
|
44
|
-
level: function(element) {
|
45
|
-
var match = element.className.match(/level_([\d]+)/);
|
46
|
-
return match ? parseInt(match[1]) : 0;
|
47
|
-
},
|
48
|
-
setSortable: function(element) {
|
49
|
-
if (element.tagName != 'TD') return
|
50
|
-
$('a', element).each(function() {
|
51
|
-
$(this).hide();
|
52
|
-
element.appendChild(document.createTextNode($(this).text()))
|
53
|
-
});
|
54
|
-
},
|
55
|
-
setUnsortable: function(element) {
|
56
|
-
if (element.tagName != 'TD') return;
|
57
|
-
$('a', element).each(function() { $(this).show(); });
|
58
|
-
$('img.spinner', element).remove();
|
59
|
-
element.removeChild(element.lastChild);
|
60
|
-
},
|
61
|
-
mousemove: function(event) {
|
62
|
-
var offset = jQuery.tableDnD.getMouseOffset(this, event).x - TableTree.startOffset;
|
63
|
-
if(offset > 25) {
|
64
|
-
TableTree.current_table.dirty = true;
|
65
|
-
$(this).ttnode().increment_level(event);
|
66
|
-
} else if(offset < -25) {
|
67
|
-
TableTree.current_table.dirty = true;
|
68
|
-
$(this).ttnode().decrement_level(event);
|
69
|
-
}
|
70
|
-
},
|
71
|
-
Base: function() {},
|
72
|
-
Table: function(table, type, collection_url) {
|
73
|
-
this.table = table;
|
74
|
-
this.type = type;
|
75
|
-
this.collection_url = collection_url;
|
76
|
-
this.rebuild();
|
77
|
-
},
|
78
|
-
Node: function(parent, element, level) {
|
79
|
-
var _this = this;
|
80
|
-
this.parent = parent;
|
81
|
-
this.element = element;
|
82
|
-
this.level = level;
|
83
|
-
|
84
|
-
this.children = this.find_children().map(function() {
|
85
|
-
var level = TableTree.level(this);
|
86
|
-
if(level == _this.level + 1) { return new TableTree.Node(_this, this, level); }
|
87
|
-
});
|
88
|
-
}
|
89
|
-
}
|
90
|
-
|
91
|
-
TableTree.Base.prototype = {
|
92
|
-
find_node: function(element) {
|
93
|
-
for (var i = 0; i < this.children.length; i++) {
|
94
|
-
var child = this.children[i];
|
95
|
-
if (this.children[i].element == element) {
|
96
|
-
return this.children[i];
|
97
|
-
} else {
|
98
|
-
var result = this.children[i].find_node(element);
|
99
|
-
if (result) return result;
|
100
|
-
}
|
101
|
-
}
|
102
|
-
}
|
103
|
-
}
|
104
|
-
TableTree.Table.prototype = jQuery.extend(new TableTree.Base(), {
|
105
|
-
rebuild: function() {
|
106
|
-
var _this = this;
|
107
|
-
this.children = $('tr', this.table).map(function() {
|
108
|
-
if(TableTree.level(this) == 1) { return new TableTree.Node(_this, this, 1); }
|
109
|
-
});
|
110
|
-
},
|
111
|
-
setSortable: function() {
|
112
|
-
this.children.each(function() { this.setSortable(); });
|
113
|
-
},
|
114
|
-
setUnsortable: function() {
|
115
|
-
this.children.each(function() { this.setUnsortable(); });
|
116
|
-
},
|
117
|
-
update_remote: function(row) {
|
118
|
-
if(!this.dirty) return;
|
119
|
-
this.dirty = false;
|
120
|
-
_this = this;
|
121
|
-
|
122
|
-
this.show_spinner(row);
|
123
|
-
$.ajax({
|
124
|
-
type: "POST",
|
125
|
-
url: this.collection_url,
|
126
|
-
data: jQuery.extend(this.serialize(row), { authenticity_token: window._auth_token, '_method': 'put' }),
|
127
|
-
success: function(msg) { _this.hide_spinner(row); },
|
128
|
-
error: function(msg) { _this.hide_spinner(row); }
|
129
|
-
});
|
130
|
-
},
|
131
|
-
serialize: function(row) {
|
132
|
-
row = $(row).ttnode();
|
133
|
-
data = {};
|
134
|
-
data[this.type + '[' + row.id() + '][parent_id]'] = row.parent_id();
|
135
|
-
data[this.type +'[' + row.id() + '][left_id]'] = row.left_id();
|
136
|
-
return data;
|
137
|
-
},
|
138
|
-
show_spinner: function(row) {
|
139
|
-
img = document.createElement('img');
|
140
|
-
img.src = '/images/adva_cms/indicator.gif';
|
141
|
-
img.className = 'spinner';
|
142
|
-
$('td', row)[0].appendChild(img);
|
143
|
-
},
|
144
|
-
hide_spinner: function(row) {
|
145
|
-
cell = $('td', row)[0];
|
146
|
-
cell.removeChild(cell.lastChild);
|
147
|
-
}
|
148
|
-
});
|
149
|
-
|
150
|
-
TableTree.Node.prototype = jQuery.extend(new TableTree.Base(), {
|
151
|
-
find_children: function() {
|
152
|
-
var lvl = this.level;
|
153
|
-
var stop = false;
|
154
|
-
return this.row_siblings().slice(this.row_index() + 1).filter(function() {
|
155
|
-
var level = TableTree.level(this);
|
156
|
-
if(lvl == level) stop = true; // how to break from a jquery iterator?
|
157
|
-
return !stop && lvl + 1 == level;
|
158
|
-
});
|
159
|
-
},
|
160
|
-
depth: function() {
|
161
|
-
if (this.children.length > 0) {
|
162
|
-
return Math.max.apply(Math, this.children.map(function() { return this.depth() }).get());
|
163
|
-
} else {
|
164
|
-
return this.level;
|
165
|
-
}
|
166
|
-
},
|
167
|
-
siblings: function() {
|
168
|
-
return this.parent.children;
|
169
|
-
},
|
170
|
-
id: function() {
|
171
|
-
return this.element ? this.to_int(this.element.id) : 'null';
|
172
|
-
},
|
173
|
-
parent_id: function() {
|
174
|
-
return this.parent.element ? this.to_int(this.parent.element.id) : 'null';
|
175
|
-
},
|
176
|
-
left_id: function() {
|
177
|
-
left = this.left()
|
178
|
-
return left ? this.to_int(left.element.id) : 'null';
|
179
|
-
},
|
180
|
-
left: function() {
|
181
|
-
siblings = this.siblings().get();
|
182
|
-
ix = siblings.indexOf(this);
|
183
|
-
if(ix > 0) return siblings[ix - 1];
|
184
|
-
},
|
185
|
-
to_int: function(str) {
|
186
|
-
if(str) return str.replace(/[\D]+/, '')
|
187
|
-
},
|
188
|
-
next_row_sibling: function () {
|
189
|
-
return this.row_siblings()[this.row_index() + 1];
|
190
|
-
},
|
191
|
-
row_siblings: function() {
|
192
|
-
if(!this._row_siblings) { this._row_siblings = $(this.element).parent().children(); }
|
193
|
-
return this._row_siblings;
|
194
|
-
},
|
195
|
-
row_index: function() {
|
196
|
-
return this.row_siblings().get().indexOf(this.element);
|
197
|
-
},
|
198
|
-
dragStart: function() {
|
199
|
-
$(this.element).addClass('drag');
|
200
|
-
this.children.each(function() { this.dragStart(); })
|
201
|
-
},
|
202
|
-
drop: function() {
|
203
|
-
$(this.element).removeClass('drag');
|
204
|
-
this.children.each(function() { this.drop(); })
|
205
|
-
this.adjust_level();
|
206
|
-
},
|
207
|
-
increment_level: function(event) {
|
208
|
-
var prev = $(this.element).prev().ttnode();
|
209
|
-
if(!prev || prev.level < this.level || this.depth() >= 5) return;
|
210
|
-
this.update_level(event, this.level + 1);
|
211
|
-
},
|
212
|
-
decrement_level: function(event) {
|
213
|
-
if(this.level == 1) return;
|
214
|
-
this.update_level(event, this.level - 1);
|
215
|
-
},
|
216
|
-
update_level: function(event, level) {
|
217
|
-
if (event) TableTree.startOffset = jQuery.tableDnD.getMouseOffset(this.element, event).x;
|
218
|
-
|
219
|
-
$(this.element).removeClass('level_' + this.level);
|
220
|
-
$(this.element).addClass('level_' + level);
|
221
|
-
|
222
|
-
this.level = level;
|
223
|
-
this.children.each(function() { this.update_level(event, level + 1); });
|
224
|
-
},
|
225
|
-
adjust_level: function() {
|
226
|
-
var prev = $(this.element).prev().ttnode();
|
227
|
-
if(!prev) {
|
228
|
-
this.update_level(null, 1);
|
229
|
-
} else if(prev.level + 1 < this.level) {
|
230
|
-
this.update_level(null, prev.level + 1);
|
231
|
-
}
|
232
|
-
},
|
233
|
-
update_children: function() {
|
234
|
-
this.children.each(function() { this.element.parentNode.removeChild(this.element); });
|
235
|
-
var _this = this;
|
236
|
-
var _next = _this.element.nextSibling;
|
237
|
-
this.children.each(function() { _this.element.parentNode.insertBefore(this.element, _next); });
|
238
|
-
this.children.each(function() { this.update_children() });
|
239
|
-
},
|
240
|
-
setSortable: function() {
|
241
|
-
$(this.element).children().each(function(ix) { ix == 0 ? TableTree.setSortable(this) : $(this).hide(); });
|
242
|
-
this.children.each(function() { this.setSortable(); });
|
243
|
-
},
|
244
|
-
setUnsortable: function() {
|
245
|
-
$(this.element).children().each(function(ix) { ix == 0 ? TableTree.setUnsortable(this) : $(this).show(); });
|
246
|
-
this.children.each(function() { this.setUnsortable(); });
|
247
|
-
}
|
248
|
-
});
|
249
|
-
|
250
|
-
jQuery.fn.extend({
|
251
|
-
ttnode: function() {
|
252
|
-
var subject = this.push ? this[0] : this;
|
253
|
-
return TableTree.current_table.find_node(subject);
|
254
|
-
}
|
255
|
-
});
|
256
|
-
|
257
|
-
jQuery.extend(jQuery.tableDnD, {
|
258
|
-
teardown: function(table) {
|
259
|
-
jQuery('tr', table).each(function() { $(this).unbind('mousedown'); }).css('cursor', 'auto');
|
260
|
-
jQuery.tableDnD.dragObject = null;
|
261
|
-
jQuery.tableDnD.currentTable = null;
|
262
|
-
jQuery.tableDnD.mouseOffset = null;
|
263
|
-
}
|
264
|
-
});
|
265
|
-
|
266
|
-
tableDnD {
|
267
|
-
toggle: function() {
|
268
|
-
if (table.hasClass('tree')) {
|
269
|
-
setupTree()
|
270
|
-
}
|
271
|
-
}
|
272
|
-
// aslödkjföksdfk
|
273
|
-
Tree {
|
274
|
-
|
275
|
-
}
|
276
|
-
}
|
277
|
-
|
278
|
-
|
279
|
-
|
@@ -1,10 +0,0 @@
|
|
1
|
-
$(document).ready(function() {
|
2
|
-
if (reorder = $('a.reorder')) {
|
3
|
-
reorder.click(function(event) {
|
4
|
-
$(this).parent().toggleClass('active');
|
5
|
-
TableTree.toggle($('table.list'), this.id.replace('reorder_', ''), this.href);
|
6
|
-
event.preventDefault();
|
7
|
-
return false;
|
8
|
-
})
|
9
|
-
}
|
10
|
-
});
|
@@ -1,38 +0,0 @@
|
|
1
|
-
var LoginLinks = {
|
2
|
-
init: function() {
|
3
|
-
var user_id = Cookie.get('uid');
|
4
|
-
var user_name = decodeURIComponent(Cookie.get('uname')).replace(/\+/g, " ");
|
5
|
-
try {
|
6
|
-
LoginLinks.update_user_links(user_name)
|
7
|
-
} catch(err) {}
|
8
|
-
if (user_id) {
|
9
|
-
try {
|
10
|
-
$('#logout_links').show();
|
11
|
-
$('#login_links').hide();
|
12
|
-
} catch(err) {}
|
13
|
-
}
|
14
|
-
},
|
15
|
-
|
16
|
-
update_user_links: function(user_name) {
|
17
|
-
if($('#logout_link')) $('#logout_link').href = $('#logout_link').href + "?return_to=" + escape(document.location.href);
|
18
|
-
if($('#login_link')) $('#login_link').href = $('#login_link').href + "?return_to=" + escape(document.location.href);
|
19
|
-
|
20
|
-
$('span.user_name').each(function() {
|
21
|
-
$(this).html(user_name);
|
22
|
-
});
|
23
|
-
}
|
24
|
-
};
|
25
|
-
|
26
|
-
$(document).ready(function() {
|
27
|
-
if($('#logout_links')) {
|
28
|
-
LoginLinks.init();
|
29
|
-
}
|
30
|
-
jQuery('#lang').bind('change',function(){
|
31
|
-
url = location.href;
|
32
|
-
if(url.match(/\/[\w]{2}\/admin/)) {
|
33
|
-
location.href = url.replace(/\/[\w]{2}\/admin/, '/' + jQuery(this).val() + '/admin');
|
34
|
-
} else {
|
35
|
-
location.href = url.replace(/\/admin/, '/' + jQuery(this).val() + '/admin');
|
36
|
-
}
|
37
|
-
});
|
38
|
-
});
|
@@ -1,135 +0,0 @@
|
|
1
|
-
var CommentForm = {
|
2
|
-
init: function() {
|
3
|
-
var user_name = unescape(Cookie.get('uname')).replace(/\+/g, " ");
|
4
|
-
if (user_name) {
|
5
|
-
try { $$('#registered_author span')[0].update(user_name); } catch(err) {}
|
6
|
-
try { $('registered_author').show(); } catch(err) {}
|
7
|
-
try { $('anonymous_author').hide(); } catch(err) {}
|
8
|
-
}
|
9
|
-
}
|
10
|
-
}
|
11
|
-
|
12
|
-
var LoginLinks = {
|
13
|
-
init: function() {
|
14
|
-
var user_id = Cookie.get('uid');
|
15
|
-
var user_name = unescape(Cookie.get('uname')).replace(/\+/g, " ");
|
16
|
-
try {
|
17
|
-
this.update_user_links(user_name)
|
18
|
-
} catch(err) {}
|
19
|
-
if (user_id) {
|
20
|
-
try {
|
21
|
-
$('logout_links').show();
|
22
|
-
$('login_links').hide();
|
23
|
-
} catch(err) {}
|
24
|
-
}
|
25
|
-
},
|
26
|
-
|
27
|
-
update_user_links: function(user_name) {
|
28
|
-
if($('logout_link')) $('logout_link').href = $('logout_link').href + "?return_to=" + escape(document.location.href);
|
29
|
-
if($('login_link')) $('login_link').href = $('login_link').href + "?return_to=" + escape(document.location.href);
|
30
|
-
|
31
|
-
$$('span.user_name').invoke('update', user_name);
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
/* Date functions */
|
36
|
-
|
37
|
-
Date.UTCNow = function() {
|
38
|
-
d = new Date();
|
39
|
-
utc = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()));
|
40
|
-
// we need to correct the timezone offset because JS sucks really bad with timezones ...
|
41
|
-
return new Date(utc.getTime() + utc.getTimezoneOffset()*60000);
|
42
|
-
}
|
43
|
-
|
44
|
-
// parse an ISO8601 UTC date string (YYYY-mm-ddZHH:MM:SSZ)
|
45
|
-
Date.parseISO8601 = function(iso8601_date) {
|
46
|
-
return new Date(Date.parse(iso8601_date.replace(/-/g, '/').replace('T', ' ').substr(0, 19))); // always has exactly 19 chars
|
47
|
-
}
|
48
|
-
|
49
|
-
distanceOfTimeInWords = function(seconds) {
|
50
|
-
d = seconds/60; // in minutes
|
51
|
-
|
52
|
-
if (d < 1) return 'less than a minute';
|
53
|
-
|
54
|
-
d = Math.ceil(d); // if it's more than a minute, ceil it
|
55
|
-
if (d < 50) return (d + ' minute' + (d == 1 ? '' : 's'));
|
56
|
-
if (d < 90) return 'about one hour';
|
57
|
-
if (d < 1080) return (Math.round(d/60) + ' hours');
|
58
|
-
if (d < 1440) return 'one day';
|
59
|
-
if (d < 2880) return 'about one day';
|
60
|
-
else return (Math.round(d/1440) + ' days');
|
61
|
-
}
|
62
|
-
|
63
|
-
timeAgoInWords = function(iso8601_date) {
|
64
|
-
utc_date = Date.parseISO8601(iso8601_date);
|
65
|
-
utc_now = Date.UTCNow();
|
66
|
-
d = (utc_now.getTime() - utc_date.getTime())/1000; // in seconds
|
67
|
-
if (d > 0) {
|
68
|
-
return distanceOfTimeInWords(d) + ' ago';
|
69
|
-
} else {
|
70
|
-
return 'in '+ distanceOfTimeInWords(-d);
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
createAndFormatDateSpan = function(abbr) {
|
75
|
-
// create a new span element and set its title to the abbr's innerHTML and its value to the timeAgoInWords string
|
76
|
-
abbr.update(new Element('span', { title: abbr.innerHTML }).update(timeAgoInWords(abbr.title))); // only used for past dates right now so we can safely use time_ago_in_words here
|
77
|
-
}
|
78
|
-
|
79
|
-
/* Link functions */
|
80
|
-
|
81
|
-
// determine if a given link is an outbound link
|
82
|
-
URI.parseOptions.strictMode = true;
|
83
|
-
|
84
|
-
GoogleAnalyticsTracking = {};
|
85
|
-
|
86
|
-
GoogleAnalyticsTracking.isOutboundLink = function(link) {
|
87
|
-
targetURI = URI.parse(link);
|
88
|
-
currentURI = URI.parse(window.location);
|
89
|
-
/*
|
90
|
-
targetHost = link.split('/')[2].replace(/www\./, ''); // [0] is the protocol, [1] is empty
|
91
|
-
currentHost = window.location.host.replace(/www\./, '');
|
92
|
-
*/
|
93
|
-
return ['http', 'https', 'ftp'].include(targetURI.protocol) && targetURI.host != currentURI.host;
|
94
|
-
}
|
95
|
-
|
96
|
-
// track the outbound link with Google Analytics
|
97
|
-
if (typeof(pageTracker) == 'undefined') {
|
98
|
-
pageTracker = null;
|
99
|
-
}
|
100
|
-
GoogleAnalyticsTracking.trackOutboundLink = function(link) {
|
101
|
-
if(pageTracker && GoogleAnalyticsTracking.isOutboundLink(link.href)) {
|
102
|
-
hostName = URI.parse(link).host.replace(/www\./, '');;
|
103
|
-
//hostName = link.href.split('/')[2].replace(/www\./, '');
|
104
|
-
pageTracker._trackEvent('Outbound links [' + hostName + ']', 'Click', link.href);
|
105
|
-
//window.location.href = link.href;
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
// find all outbound links and mark them accordingly
|
110
|
-
GoogleAnalyticsTracking.markOutboundLinks = function() {
|
111
|
-
$$('a').each(function(link) {
|
112
|
-
if(GoogleAnalyticsTracking.isOutboundLink(link.href)) {
|
113
|
-
link.addClassName('outbound');
|
114
|
-
link.writeAttribute('onclick', "GoogleAnalyticsTracking.trackOutboundLink(this); return false;");
|
115
|
-
}
|
116
|
-
});
|
117
|
-
}
|
118
|
-
|
119
|
-
/* event handlers */
|
120
|
-
Event.onReady(function() {
|
121
|
-
if($('anonymous_author')) {
|
122
|
-
CommentForm.init();
|
123
|
-
}
|
124
|
-
if($('logout_links')) {
|
125
|
-
LoginLinks.init();
|
126
|
-
}
|
127
|
-
// parse all microformatted dates and re-format them as time distance
|
128
|
-
$$('abbr.datetime').each(function(abbr) {
|
129
|
-
createAndFormatDateSpan(abbr);
|
130
|
-
});
|
131
|
-
// mark outbound links and apply hook
|
132
|
-
if(pageTracker) {
|
133
|
-
GoogleAnalyticsTracking.markOutboundLinks();
|
134
|
-
}
|
135
|
-
});
|