backlog 0.37.2 → 0.41.4
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.
- checksums.yaml +7 -0
- data/History.txt +128 -0
- data/README.txt +4 -2
- data/bin/backlog +1 -1
- data/lib/array_helper.rb +4 -4
- data/{vendor/plugins → lib}/backlog_jira/README +0 -0
- data/{vendor/plugins → lib}/backlog_jira/Rakefile +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/backlog_jira_generator.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/templates/migration.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/history_model/history_model_generator.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/fixtures.yml +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/functional_test.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/model.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/unit_test.rb +0 -0
- data/lib/backlog_jira/init.rb +66 -0
- data/{vendor/plugins → lib}/backlog_jira/install.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/lib/backlog_jira.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/lib/tasks/backlog_jira_tasks.rake +0 -0
- data/{vendor/plugins → lib}/backlog_jira/test/backlog_jira_test.rb +0 -0
- data/{vendor/plugins → lib}/backlog_jira/uninstall.rb +0 -0
- data/lib/big_decimal_yaml_fix.rb +16 -25
- data/lib/tasks/backup.rake +18 -18
- data/lib/time_extras.rb +6 -6
- data/lib/user_system.rb +41 -38
- data/lib/version_from_history.rb +2 -2
- metadata +196 -749
- data/Capfile +0 -2
- data/Gemfile +0 -34
- data/Gemfile.lock +0 -139
- data/MODIFICATIONS.txt +0 -13
- data/Manifest.txt +0 -0
- data/README_LOGIN_SUGAR +0 -194
- data/Rakefile +0 -73
- data/Rakefile~ +0 -73
- data/Screenshot.png +0 -0
- data/app/controllers/absences_controller.rb +0 -67
- data/app/controllers/application_controller.rb +0 -185
- data/app/controllers/application_controller.rb.rails2 +0 -186
- data/app/controllers/customers_controller.rb +0 -51
- data/app/controllers/dashboard_controller.rb +0 -17
- data/app/controllers/estimates_controller.rb +0 -49
- data/app/controllers/groups_controller.rb +0 -65
- data/app/controllers/parties_controller.rb +0 -33
- data/app/controllers/periods_controller.rb +0 -242
- data/app/controllers/projects_controller.rb +0 -185
- data/app/controllers/public_holidays_controller.rb +0 -70
- data/app/controllers/search_controller.rb +0 -15
- data/app/controllers/task_files_controller.rb +0 -19
- data/app/controllers/tasks_controller.rb +0 -305
- data/app/controllers/user_controller.rb +0 -251
- data/app/controllers/welcome_controller.rb +0 -29
- data/app/controllers/work_locks_controller.rb +0 -88
- data/app/controllers/works_controller.rb +0 -383
- data/app/helpers/absences_helper.rb +0 -2
- data/app/helpers/application_helper.rb +0 -119
- data/app/helpers/application_helper.rb.rails2 +0 -118
- data/app/helpers/customers_helper.rb +0 -2
- data/app/helpers/dashboard_helper.rb +0 -2
- data/app/helpers/estimates_helper.rb +0 -2
- data/app/helpers/groups_helper.rb +0 -2
- data/app/helpers/parties_helper.rb +0 -2
- data/app/helpers/periods_helper.rb +0 -57
- data/app/helpers/projects_helper.rb +0 -74
- data/app/helpers/public_holidays_helper.rb +0 -2
- data/app/helpers/search_helper.rb +0 -2
- data/app/helpers/task_files_helper.rb +0 -2
- data/app/helpers/tasks_helper.rb +0 -2
- data/app/helpers/user_helper.rb +0 -53
- data/app/helpers/welcome_helper.rb +0 -2
- data/app/helpers/work_locks_helper.rb +0 -2
- data/app/helpers/works_helper.rb +0 -5
- data/app/mailers/user_notify.rb +0 -76
- data/app/models/absence.rb +0 -27
- data/app/models/chart.rb +0 -5
- data/app/models/clock.rb +0 -14
- data/app/models/configuration.rb +0 -2
- data/app/models/customer.rb +0 -2
- data/app/models/estimate.rb +0 -17
- data/app/models/group.rb +0 -16
- data/app/models/party.rb +0 -27
- data/app/models/period.rb +0 -251
- data/app/models/project.rb +0 -49
- data/app/models/public_holiday.rb +0 -13
- data/app/models/report_filter.rb +0 -29
- data/app/models/search_result.rb +0 -8
- data/app/models/sidebar.rb +0 -41
- data/app/models/task.rb +0 -425
- data/app/models/task_file.rb +0 -7
- data/app/models/task_notify.rb +0 -27
- data/app/models/user.rb +0 -146
- data/app/models/work.rb +0 -191
- data/app/models/work_lock.rb +0 -11
- data/app/models/work_lock_nagger.rb +0 -60
- data/app/models/work_lock_notify.rb +0 -43
- data/app/models/works_report_filter.rb +0 -27
- data/app/views/absences/_form.rhtml +0 -10
- data/app/views/absences/edit.rhtml +0 -9
- data/app/views/absences/list.rhtml +0 -25
- data/app/views/absences/new.rhtml +0 -8
- data/app/views/absences/show.rhtml +0 -8
- data/app/views/customers/_form.rhtml +0 -7
- data/app/views/customers/_name_list.rhtml +0 -5
- data/app/views/customers/edit.rhtml +0 -9
- data/app/views/customers/list.rhtml +0 -28
- data/app/views/customers/new.rhtml +0 -8
- data/app/views/customers/show.rhtml +0 -8
- data/app/views/dashboard/show.rhtml +0 -24
- data/app/views/display_notice.rjs +0 -1
- data/app/views/groups/_form.rhtml +0 -7
- data/app/views/groups/edit.rhtml +0 -57
- data/app/views/groups/list.rhtml +0 -26
- data/app/views/groups/new.rhtml +0 -7
- data/app/views/groups/set_member.rjs +0 -1
- data/app/views/layouts/_headers.rhtml +0 -24
- data/app/views/layouts/_left_top.rhtml +0 -33
- data/app/views/layouts/_notice.rhtml +0 -12
- data/app/views/layouts/_shortcuts.rhtml +0 -22
- data/app/views/layouts/_shortcuts_js.rhtml +0 -19
- data/app/views/layouts/mwrt002.html.erb +0 -44
- data/app/views/layouts/wide.rhtml +0 -23
- data/app/views/periods/_burn_down_chart.rhtml +0 -9
- data/app/views/periods/_form.rhtml +0 -74
- data/app/views/periods/_link.rhtml +0 -3
- data/app/views/periods/_show_active.rhtml +0 -61
- data/app/views/periods/_sidebar_block.rhtml +0 -11
- data/app/views/periods/_title.rhtml +0 -18
- data/app/views/periods/edit.rhtml +0 -10
- data/app/views/periods/finish_task.rjs +0 -4
- data/app/views/periods/move_task_to_period.rjs +0 -4
- data/app/views/periods/new.rhtml +0 -9
- data/app/views/periods/order.rjs +0 -0
- data/app/views/periods/reopen_task.rjs +0 -6
- data/app/views/periods/show.rhtml +0 -56
- data/app/views/projects/_buttons.rhtml +0 -4
- data/app/views/projects/_form.rhtml +0 -44
- data/app/views/projects/_name_list.rhtml +0 -5
- data/app/views/projects/edit.rhtml +0 -14
- data/app/views/projects/finish_task.rjs +0 -3
- data/app/views/projects/list.rhtml +0 -16
- data/app/views/projects/move_task_to_period.rjs +0 -3
- data/app/views/projects/new.rhtml +0 -11
- data/app/views/projects/reopen_task.rjs +0 -3
- data/app/views/projects/show.rhtml +0 -39
- data/app/views/public_holidays/_form.rhtml +0 -7
- data/app/views/public_holidays/edit.rhtml +0 -9
- data/app/views/public_holidays/list.rhtml +0 -25
- data/app/views/public_holidays/new.rhtml +0 -8
- data/app/views/public_holidays/show.rhtml +0 -8
- data/app/views/redirect.rjs +0 -1
- data/app/views/search/results.rhtml +0 -40
- data/app/views/task_notify/invite.en.html.erb +0 -13
- data/app/views/task_notify/invite.no.html.erb +0 -13
- data/app/views/tasks/_backlog_header.rhtml +0 -17
- data/app/views/tasks/_completed.rhtml +0 -18
- data/app/views/tasks/_fields_header.rhtml +0 -13
- data/app/views/tasks/_form.rhtml +0 -125
- data/app/views/tasks/_invite.rjs +0 -1
- data/app/views/tasks/_period_header.rhtml +0 -1
- data/app/views/tasks/_task.rhtml +0 -116
- data/app/views/tasks/_update.rjs +0 -2
- data/app/views/tasks/edit.rhtml +0 -81
- data/app/views/tasks/grab.rhtml +0 -9
- data/app/views/tasks/invite.rhtml +0 -9
- data/app/views/tasks/list.rhtml +0 -77
- data/app/views/tasks/list_started.rhtml +0 -62
- data/app/views/tasks/new.rhtml +0 -10
- data/app/views/tasks/notes.rhtml +0 -12
- data/app/views/tasks/start_work.rjs +0 -1
- data/app/views/tasks/update_estimate.rjs +0 -3
- data/app/views/user/_edit.rhtml +0 -31
- data/app/views/user/_password.rhtml +0 -21
- data/app/views/user/change_password.rhtml +0 -19
- data/app/views/user/delete.rhtml +0 -14
- data/app/views/user/edit.rhtml +0 -154
- data/app/views/user/forgot_password.rhtml +0 -19
- data/app/views/user/login.rhtml +0 -33
- data/app/views/user/logout.rhtml +0 -8
- data/app/views/user/set_group.rjs +0 -1
- data/app/views/user/signup.rhtml +0 -15
- data/app/views/user/toggle_work_lock_monitoring.rjs +0 -2
- data/app/views/user/welcome.rhtml +0 -8
- data/app/views/user_notify/change_password.en.html.erb +0 -10
- data/app/views/user_notify/change_password.no.html.erb +0 -10
- data/app/views/user_notify/forgot_password.en.html.erb +0 -11
- data/app/views/user_notify/forgot_password.no.html.erb +0 -11
- data/app/views/user_notify/monitoring.en.html.erb +0 -3
- data/app/views/user_notify/monitoring.no.html.erb +0 -3
- data/app/views/user_notify/monitoring_invitation.en.html.erb +0 -7
- data/app/views/user_notify/monitoring_invitation.no.html.erb +0 -7
- data/app/views/user_notify/signup.en.html.erb +0 -12
- data/app/views/user_notify/signup.no.html.erb +0 -12
- data/app/views/work_lock_notify/lock.en.html.erb +0 -7
- data/app/views/work_lock_notify/lock.no.html.erb +0 -7
- data/app/views/work_lock_notify/nag.en.html.erb +0 -6
- data/app/views/work_lock_notify/nag.no.html.erb +0 -7
- data/app/views/work_locks/_form.rhtml +0 -10
- data/app/views/work_locks/edit.rhtml +0 -9
- data/app/views/work_locks/list.rhtml +0 -25
- data/app/views/work_locks/new.rhtml +0 -8
- data/app/views/work_locks/show.rhtml +0 -8
- data/app/views/works/_buttons.rhtml +0 -2
- data/app/views/works/_description_list.rhtml +0 -5
- data/app/views/works/_form.rhtml +0 -107
- data/app/views/works/_new_row.rhtml +0 -141
- data/app/views/works/_row.rhtml +0 -115
- data/app/views/works/_row_field.rhtml +0 -17
- data/app/views/works/_task_id_list.rhtml +0 -5
- data/app/views/works/_weekly_work_sheet_buttons.rhtml +0 -22
- data/app/views/works/daily_work_sheet.rhtml +0 -108
- data/app/views/works/edit.rhtml +0 -11
- data/app/views/works/list.rhtml +0 -148
- data/app/views/works/list_excel.rhtml +0 -114
- data/app/views/works/new.rhtml +0 -12
- data/app/views/works/show.rhtml +0 -10
- data/app/views/works/timeliste.rhtml +0 -884
- data/app/views/works/update_new_row.rjs +0 -28
- data/app/views/works/update_row.rjs +0 -18
- data/app/views/works/update_time.rjs +0 -3
- data/app/views/works/weekly_work_sheet.rhtml +0 -64
- data/app/views/works/weekly_work_sheet_details.rhtml +0 -102
- data/backlog.gemspec +0 -44
- data/config.ru +0 -4
- data/config/application.rb +0 -11
- data/config/boot.rb +0 -13
- data/config/database.yml +0 -15
- data/config/database.yml~ +0 -17
- data/config/environment.rb +0 -100
- data/config/environments/development.rb +0 -30
- data/config/environments/development.rb.rails2 +0 -26
- data/config/environments/production.rb +0 -33
- data/config/environments/test.rb +0 -24
- data/config/environments/user_environment.rb +0 -21
- data/config/initializers/backtrace_silencers.rb +0 -7
- data/config/initializers/inflections.rb +0 -10
- data/config/initializers/jdbc.rb +0 -7
- data/config/initializers/mime_types.rb +0 -5
- data/config/initializers/secret_token.rb +0 -7
- data/config/initializers/session_store.rb +0 -8
- data/config/locales/en.yml +0 -200
- data/config/locales/no.yml +0 -193
- data/config/mime_types.yaml +0 -1
- data/config/routes.rb +0 -5
- data/config/war.rb +0 -27
- data/config/warble.rb +0 -84
- data/cruise_build.sh +0 -14
- data/cruise_config.rb +0 -5
- data/db/migrate/001_create_tasks.rb +0 -22
- data/db/migrate/003_add_estimation_points.rb +0 -16
- data/db/migrate/004_add_period.rb +0 -63
- data/db/migrate/005_add_field_work_started_at.rb +0 -9
- data/db/migrate/006_works_data_fix.rb +0 -13
- data/db/migrate/007_add_task_created_at.rb +0 -23
- data/db/migrate/008_add_backlog_options.rb +0 -13
- data/db/migrate/009_add_subtasks.rb +0 -29
- data/db/migrate/010_add_work_start.rb +0 -9
- data/db/migrate/011_login_sugar.rb +0 -21
- data/db/migrate/012_add_resolution.rb +0 -12
- data/db/migrate/013_create_estimates.rb +0 -20
- data/db/migrate/014_add_customer_option.rb +0 -11
- data/db/migrate/015_add_user_option.rb +0 -33
- data/db/migrate/016_add_invoicable_flag.rb +0 -11
- data/db/migrate/017_increase_backlog_name_limit.rb +0 -10
- data/db/migrate/018_create_groups.rb +0 -118
- data/db/migrate/019_remove_unique_index_for_period_position.rb +0 -9
- data/db/migrate/020_create_task_files.rb +0 -17
- data/db/migrate/021_create_work_accounts.rb +0 -111
- data/db/migrate/022_remove_track_done_flag.rb +0 -9
- data/db/migrate/023_add_indices_for_burn_down_chart.rb +0 -13
- data/db/migrate/024_add_sprint_option.rb +0 -10
- data/db/migrate/025_add_simple_auditing_of_tasks.rb +0 -11
- data/db/migrate/026_add_users_to_tasks.rb +0 -14
- data/db/migrate/027_create_work_locks.rb +0 -25
- data/db/migrate/028_create_absences.rb +0 -34
- data/db/migrate/029_add_work_comments.rb +0 -9
- data/db/migrate/030_create_public_holidays.rb +0 -11
- data/db/migrate/031_expand_work_done_precision.rb +0 -9
- data/db/migrate/20100720124707_merge_work_account_into_backlog.rb +0 -74
- data/db/migrate/20101006092700_rename_backlogs_to_projects.rb +0 -22
- data/db/migrate/20101006092700_rename_backlogs_to_projects.rb~ +0 -22
- data/db/schema.rb +0 -159
- data/db/seeds.rb +0 -7
- data/db/test.db +0 -0
- data/etc/backlog.conf +0 -32
- data/ext/mkrf_conf.rb +0 -26
- data/lib/class_table_inheritance.rb +0 -224
- data/lib/postgresql-8.2-504.jdbc4.jar +0 -0
- data/lib/tasks/jdbc.rake +0 -8
- data/lib/url_for_fix.rb +0 -30
- data/nbproject/private/config.properties +0 -0
- data/nbproject/private/private.properties +0 -1
- data/nbproject/private/private.xml +0 -4
- data/nbproject/private/rake-t.txt +0 -95
- data/nbproject/project.properties +0 -4
- data/nbproject/project.xml +0 -9
- data/public/404.html +0 -26
- data/public/422.html +0 -26
- data/public/500.html +0 -26
- data/public/Frav/303/246rsskjema.xls +0 -0
- data/public/applets/bsf.jar +0 -0
- data/public/applets/jruby.jar +0 -0
- data/public/favicon.ico +0 -0
- data/public/images/add.png +0 -0
- data/public/images/add.svg +0 -70
- data/public/images/ajax-loading.gif +0 -0
- data/public/images/appunti_architetto_franc_01.svg +0 -92
- data/public/images/arrow-down.gif +0 -0
- data/public/images/arrow-up.gif +0 -0
- data/public/images/arrow07_2.png +0 -0
- data/public/images/arrow07_4.png +0 -0
- data/public/images/arrow_down.png +0 -0
- data/public/images/arrow_down.svg +0 -59
- data/public/images/arrow_left.png +0 -0
- data/public/images/arrow_left.svg +0 -59
- data/public/images/arrow_right.png +0 -0
- data/public/images/arrow_right.svg +0 -59
- data/public/images/arrow_up.png +0 -0
- data/public/images/arrow_up.svg +0 -59
- data/public/images/black-70.png +0 -0
- data/public/images/black.png +0 -0
- data/public/images/blank.jpg +0 -0
- data/public/images/blank.png +0 -0
- data/public/images/cestino_pieno_architetto_01.svg +0 -470
- data/public/images/checkmark.png +0 -0
- data/public/images/checkmark_org.png +0 -0
- data/public/images/clipboard.png +0 -0
- data/public/images/clipboard.svg +0 -62
- data/public/images/construction_hammer_jon__01.svg +0 -116
- data/public/images/delete.png +0 -0
- data/public/images/email.png +0 -0
- data/public/images/email_grey.png +0 -0
- data/public/images/eraser.png +0 -0
- data/public/images/eraser_org.png +0 -0
- data/public/images/ernes_stop.png +0 -0
- data/public/images/ernes_stop_org.png +0 -0
- data/public/images/flag_red.png +0 -0
- data/public/images/flag_yellow.png +0 -0
- data/public/images/grab.png +0 -0
- data/public/images/grab_gray.png +0 -0
- data/public/images/group.png +0 -0
- data/public/images/hammer.png +0 -0
- data/public/images/header.jpg +0 -0
- data/public/images/nextlabel.gif +0 -0
- data/public/images/pagebak.jpg +0 -0
- data/public/images/paper3.svg +0 -54
- data/public/images/period.png +0 -0
- data/public/images/period_org.png +0 -0
- data/public/images/person.org.png +0 -0
- data/public/images/prevlabel.gif +0 -0
- data/public/images/question.svg +0 -56
- data/public/images/rails.png +0 -0
- data/public/images/refresh.png +0 -0
- data/public/images/rmagick.gif +0 -0
- data/public/images/rmagick_270.gif +0 -0
- data/public/images/tabella_architetto_franc_01.svg +0 -105
- data/public/images/task.png +0 -0
- data/public/images/text-x-generic.png +0 -0
- data/public/images/user group.png +0 -0
- data/public/images/user.png +0 -0
- data/public/images/view_fullscreen.png +0 -0
- data/public/images/work_account.png +0 -0
- data/public/javascripts/application.js +0 -2
- data/public/javascripts/builder.js +0 -136
- data/public/javascripts/controls.js +0 -965
- data/public/javascripts/dragdrop.js +0 -974
- data/public/javascripts/effects.js +0 -1123
- data/public/javascripts/lightwindow.js +0 -1921
- data/public/javascripts/prototype.js +0 -6001
- data/public/javascripts/rails.js +0 -175
- data/public/javascripts/ruby.js +0 -46
- data/public/javascripts/scriptaculous.js +0 -58
- data/public/javascripts/slider.js +0 -275
- data/public/javascripts/sound.js +0 -55
- data/public/javascripts/unittest.js +0 -568
- data/public/javascripts/zapatec/utils/transport.js +0 -2217
- data/public/javascripts/zapatec/utils/utils.js +0 -1799
- data/public/javascripts/zapatec/utils/zapatec.js +0 -90
- data/public/javascripts/zapatec/utils/zpeventdriven.js +0 -212
- data/public/javascripts/zapatec/utils/zpwidget.js +0 -729
- data/public/javascripts/zapatec/zpcal/lang/calendar-no.js +0 -124
- data/public/javascripts/zapatec/zpcal/src/calendar-core.js +0 -2878
- data/public/javascripts/zapatec/zpcal/src/calendar-date-core.js +0 -348
- data/public/javascripts/zapatec/zpcal/src/calendar-setup.js +0 -360
- data/public/javascripts/zapatec/zpcal/src/calendar.js +0 -35
- data/public/robots.txt +0 -5
- data/public/stylesheets/backlog.css +0 -135
- data/public/stylesheets/lightwindow.css +0 -376
- data/public/stylesheets/mwrt002.css +0 -54
- data/public/stylesheets/mwrt002MAC.css +0 -3
- data/public/stylesheets/mwrt002NN.css +0 -3
- data/public/stylesheets/scaffold.css +0 -74
- data/public/stylesheets/user.css +0 -74
- data/public/stylesheets/zpcal/themes/green.css +0 -153
- data/public/stylesheets/zpcal/themes/layouts/layout-2d.css +0 -134
- data/public/stylesheets/zpcal/themes/layouts/layout-common.css +0 -74
- data/public/stylesheets/zpcal/themes/menuarrow.gif +0 -0
- data/public/stylesheets/zpcal/themes/scroller-down.gif +0 -0
- data/public/stylesheets/zpcal/themes/scroller-up.gif +0 -0
- data/script/rails +0 -6
- data/test/client/login.rb +0 -23
- data/test/client/login_test.rb +0 -64
- data/test/client/setup.rb +0 -25
- data/test/fixtures/absences.yml +0 -11
- data/test/fixtures/configurations.yml +0 -5
- data/test/fixtures/customers.yml +0 -7
- data/test/fixtures/estimates.yml +0 -10
- data/test/fixtures/groups.yml +0 -6
- data/test/fixtures/groups_users.yml +0 -3
- data/test/fixtures/parties.yml +0 -32
- data/test/fixtures/periods.yml +0 -24
- data/test/fixtures/projects.yml +0 -8
- data/test/fixtures/public_holidays.yml +0 -7
- data/test/fixtures/task_files.yml +0 -13
- data/test/fixtures/tasks.yml +0 -82
- data/test/fixtures/users.yml +0 -59
- data/test/fixtures/work_lock_subscriptions.yml +0 -7
- data/test/fixtures/work_locks.yml +0 -11
- data/test/fixtures/works.yml +0 -47
- data/test/functional/absences_controller_test.rb +0 -93
- data/test/functional/customers_controller_test.rb +0 -93
- data/test/functional/dashboard_controller_test.rb +0 -18
- data/test/functional/estimates_controller_test.rb +0 -40
- data/test/functional/groups_controller_test.rb +0 -120
- data/test/functional/parties_controller_test.rb +0 -35
- data/test/functional/periods_controller_test.rb +0 -297
- data/test/functional/projects_controller_test.rb +0 -152
- data/test/functional/public_holidays_controller_test.rb +0 -93
- data/test/functional/search_controller_test.rb +0 -24
- data/test/functional/task_files_controller_test.rb +0 -29
- data/test/functional/tasks_controller_test.rb +0 -229
- data/test/functional/user_controller_test.rb +0 -261
- data/test/functional/welcome_controller_test.rb +0 -62
- data/test/functional/work_locks_controller_test.rb +0 -93
- data/test/functional/works_controller_test.rb +0 -220
- data/test/integration/user_system_test.rb +0 -95
- data/test/mocks/test/clock.rb +0 -14
- data/test/performance/browsing_test.rb +0 -9
- data/test/performance/common.rb +0 -91
- data/test/performance/jetty_test.rb +0 -15
- data/test/performance/server_test.rb +0 -17
- data/test/test_helper.rb +0 -119
- data/test/test_helper.rb~ +0 -121
- data/test/unit/absence_test.rb +0 -29
- data/test/unit/big_decimal_yaml_fix_test.rb +0 -15
- data/test/unit/configuration_test.rb +0 -10
- data/test/unit/customer_test.rb +0 -10
- data/test/unit/estimate_test.rb +0 -10
- data/test/unit/group_test.rb +0 -10
- data/test/unit/party_test.rb +0 -10
- data/test/unit/period_test.rb +0 -9
- data/test/unit/public_holiday_test.rb +0 -10
- data/test/unit/task_file_test.rb +0 -10
- data/test/unit/task_test.rb +0 -73
- data/test/unit/time_of_day_test.rb +0 -23
- data/test/unit/user_test.rb +0 -148
- data/test/unit/work_lock_subscription_test.rb +0 -10
- data/test/unit/work_lock_test.rb +0 -10
- data/test/unit/work_test.rb +0 -81
- data/vendor/plugins/acts_as_list/README +0 -23
- data/vendor/plugins/acts_as_list/init.rb +0 -3
- data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -256
- data/vendor/plugins/acts_as_list/test/list_test.rb +0 -332
- data/vendor/plugins/acts_as_tree/README +0 -26
- data/vendor/plugins/acts_as_tree/Rakefile +0 -22
- data/vendor/plugins/acts_as_tree/init.rb +0 -1
- data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +0 -96
- data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +0 -219
- data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
- data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
- data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
- data/vendor/plugins/assert_cookie/MIT-LICENSE +0 -7
- data/vendor/plugins/assert_cookie/README +0 -6
- data/vendor/plugins/assert_cookie/Rakefile +0 -21
- data/vendor/plugins/assert_cookie/init.rb +0 -1
- data/vendor/plugins/assert_cookie/lib/assert_cookie.rb +0 -73
- data/vendor/plugins/assert_cookie/meta.yml +0 -7
- data/vendor/plugins/assert_cookie/test/test_assert_cookie.rb +0 -124
- data/vendor/plugins/assert_cookie/test/test_helper.rb +0 -31
- data/vendor/plugins/auto_complete/README +0 -23
- data/vendor/plugins/auto_complete/Rakefile +0 -22
- data/vendor/plugins/auto_complete/init.rb +0 -2
- data/vendor/plugins/auto_complete/lib/auto_complete.rb +0 -47
- data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +0 -143
- data/vendor/plugins/auto_complete/test/auto_complete_test.rb +0 -67
- data/vendor/plugins/backlog_jira/init.rb +0 -66
- data/vendor/plugins/dynamic_form/MIT-LICENSE +0 -20
- data/vendor/plugins/dynamic_form/README +0 -13
- data/vendor/plugins/dynamic_form/Rakefile +0 -10
- data/vendor/plugins/dynamic_form/dynamic_form.gemspec +0 -12
- data/vendor/plugins/dynamic_form/init.rb +0 -1
- data/vendor/plugins/dynamic_form/lib/action_view/helpers/dynamic_form.rb +0 -300
- data/vendor/plugins/dynamic_form/lib/action_view/locale/en.yml +0 -8
- data/vendor/plugins/dynamic_form/lib/dynamic_form.rb +0 -5
- data/vendor/plugins/dynamic_form/test/dynamic_form_i18n_test.rb +0 -42
- data/vendor/plugins/dynamic_form/test/dynamic_form_test.rb +0 -370
- data/vendor/plugins/dynamic_form/test/test_helper.rb +0 -9
- data/vendor/plugins/has_history/README +0 -12
- data/vendor/plugins/has_history/Rakefile +0 -22
- data/vendor/plugins/has_history/generators/history_migration/history_migration_generator.rb +0 -30
- data/vendor/plugins/has_history/generators/history_migration/templates/migration.rb +0 -14
- data/vendor/plugins/has_history/generators/history_model/history_model_generator.rb +0 -39
- data/vendor/plugins/has_history/generators/history_model/templates/fixtures.yml +0 -17
- data/vendor/plugins/has_history/generators/history_model/templates/functional_test.rb +0 -129
- data/vendor/plugins/has_history/generators/history_model/templates/migration.rb +0 -14
- data/vendor/plugins/has_history/generators/history_model/templates/model.rb +0 -4
- data/vendor/plugins/has_history/generators/history_model/templates/unit_test.rb +0 -75
- data/vendor/plugins/has_history/init.rb +0 -5
- data/vendor/plugins/has_history/install.rb +0 -1
- data/vendor/plugins/has_history/lib/has_history.rb +0 -178
- data/vendor/plugins/has_history/lib/tasks/has_history_tasks.rake +0 -4
- data/vendor/plugins/has_history/test/has_history_test.rb +0 -31
- data/vendor/plugins/has_history/test/ignorant_master.rb +0 -3
- data/vendor/plugins/has_history/test/ignorant_master_history.rb +0 -4
- data/vendor/plugins/has_history/test/lone_master.rb +0 -42
- data/vendor/plugins/has_history/test/paired_master.rb +0 -5
- data/vendor/plugins/has_history/test/paired_master_history.rb +0 -5
- data/vendor/plugins/has_history/test/test_helper.rb +0 -154
- data/vendor/plugins/has_history/uninstall.rb +0 -1
- data/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +0 -432
- data/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +0 -297
- data/vendor/plugins/rails_time/MIT-LICENSE +0 -20
- data/vendor/plugins/rails_time/README +0 -28
- data/vendor/plugins/rails_time/init.rb +0 -2
- data/vendor/plugins/rails_time/lib/activerecord_time_extension.rb +0 -28
- data/vendor/plugins/rails_time/lib/time_of_day.rb +0 -88
- data/vendor/plugins/rails_time/test/database.yml +0 -18
- data/vendor/plugins/rails_time/test/debug.log +0 -1
- data/vendor/plugins/rails_time/test/rails_time_test.rb +0 -122
- data/vendor/plugins/rails_time/test/schema.rb +0 -10
- data/vendor/plugins/rails_time/test/test_helper.rb +0 -17
- data/vendor/plugins/verification/MIT-LICENSE +0 -20
- data/vendor/plugins/verification/README +0 -34
- data/vendor/plugins/verification/Rakefile +0 -22
- data/vendor/plugins/verification/init.rb +0 -3
- data/vendor/plugins/verification/lib/action_controller/verification.rb +0 -132
- data/vendor/plugins/verification/test/test_helper.rb +0 -18
- data/vendor/plugins/verification/test/verification_test.rb +0 -270
- data/vendor/plugins/will_paginate/LICENSE +0 -18
- data/vendor/plugins/will_paginate/README +0 -138
- data/vendor/plugins/will_paginate/Rakefile +0 -27
- data/vendor/plugins/will_paginate/init.rb +0 -4
- data/vendor/plugins/will_paginate/lib/will_paginate.rb +0 -61
- data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +0 -132
- data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +0 -80
- data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +0 -181
- data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +0 -206
- data/vendor/plugins/will_paginate/test/array_pagination_test.rb +0 -131
- data/vendor/plugins/will_paginate/test/boot.rb +0 -23
- data/vendor/plugins/will_paginate/test/console +0 -9
- data/vendor/plugins/will_paginate/test/finder_test.rb +0 -290
- data/vendor/plugins/will_paginate/test/fixtures/admin.rb +0 -3
- data/vendor/plugins/will_paginate/test/fixtures/developer.rb +0 -11
- data/vendor/plugins/will_paginate/test/fixtures/developers_projects.yml +0 -13
- data/vendor/plugins/will_paginate/test/fixtures/project.rb +0 -15
- data/vendor/plugins/will_paginate/test/fixtures/projects.yml +0 -7
- data/vendor/plugins/will_paginate/test/fixtures/replies.yml +0 -34
- data/vendor/plugins/will_paginate/test/fixtures/reply.rb +0 -5
- data/vendor/plugins/will_paginate/test/fixtures/schema.rb +0 -38
- data/vendor/plugins/will_paginate/test/fixtures/topic.rb +0 -4
- data/vendor/plugins/will_paginate/test/fixtures/topics.yml +0 -30
- data/vendor/plugins/will_paginate/test/fixtures/user.rb +0 -2
- data/vendor/plugins/will_paginate/test/fixtures/users.yml +0 -35
- data/vendor/plugins/will_paginate/test/helper.rb +0 -25
- data/vendor/plugins/will_paginate/test/lib/activerecord_test_case.rb +0 -23
- data/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +0 -67
- data/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +0 -13
- data/vendor/plugins/will_paginate/test/pagination_test.rb +0 -240
@@ -1,90 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview Loads generic modules required for all widgets.
|
3
|
-
*
|
4
|
-
* <pre>
|
5
|
-
* Copyright (c) 2004-2006 by Zapatec, Inc.
|
6
|
-
* http://www.zapatec.com
|
7
|
-
* 1700 MLK Way, Berkeley, California,
|
8
|
-
* 94709, U.S.A.
|
9
|
-
* All rights reserved.
|
10
|
-
* </pre>
|
11
|
-
*/
|
12
|
-
|
13
|
-
/* $Id: zapatec.js 4908 2006-10-25 15:19:32Z alex $ */
|
14
|
-
|
15
|
-
if (typeof Zapatec == 'undefined') {
|
16
|
-
/**
|
17
|
-
* Namespace definition.
|
18
|
-
* @constructor
|
19
|
-
*/
|
20
|
-
Zapatec = function() {};
|
21
|
-
}
|
22
|
-
|
23
|
-
/**
|
24
|
-
* Zapatec Suite version.
|
25
|
-
* @private
|
26
|
-
*/
|
27
|
-
Zapatec.version = '2.1';
|
28
|
-
|
29
|
-
/**
|
30
|
-
* Path to main Zapatec script.
|
31
|
-
* @private
|
32
|
-
*/
|
33
|
-
Zapatec.zapatecPath = function() {
|
34
|
-
// Get all script elements
|
35
|
-
var arrScripts = document.getElementsByTagName('script');
|
36
|
-
// Find the script in the list
|
37
|
-
for (var iScript = arrScripts.length - 1; iScript >= 0; iScript--) {
|
38
|
-
var strSrc = arrScripts[iScript].getAttribute('src');
|
39
|
-
if (!strSrc) {
|
40
|
-
continue;
|
41
|
-
}
|
42
|
-
var arrTokens = strSrc.split('/');
|
43
|
-
// Remove last token
|
44
|
-
var strLastToken;
|
45
|
-
if (Array.prototype.pop) {
|
46
|
-
strLastToken = arrTokens.pop();
|
47
|
-
} else {
|
48
|
-
// IE 5
|
49
|
-
strLastToken = arrTokens[arrTokens.length - 1];
|
50
|
-
arrTokens.length -= 1;
|
51
|
-
}
|
52
|
-
if (strLastToken.indexOf('zapatec.js') == 0) {
|
53
|
-
return arrTokens.length ? arrTokens.join('/') + '/' : '';
|
54
|
-
}
|
55
|
-
}
|
56
|
-
// Not found
|
57
|
-
return '';
|
58
|
-
} ();
|
59
|
-
|
60
|
-
// For backward compatibility
|
61
|
-
if (Zapatec.version == '2.1.comp') {
|
62
|
-
Zapatec.zapatecPath = Zapatec.zapatecPath.replace(/utils\/$/, '../utils/');
|
63
|
-
}
|
64
|
-
|
65
|
-
/**
|
66
|
-
* Simply writes script tag to the document.
|
67
|
-
*
|
68
|
-
* <pre>
|
69
|
-
* If special Zapatec.doNotInclude flag is set, this function does nothing.
|
70
|
-
* </pre>
|
71
|
-
*
|
72
|
-
* @private
|
73
|
-
* @param {string} strSrc Src attribute value of the script element
|
74
|
-
* @param {string} strId Optional. Id of the script element
|
75
|
-
*/
|
76
|
-
Zapatec.include = function(strSrc, strId) {
|
77
|
-
// Check flag
|
78
|
-
if (Zapatec.doNotInclude) {
|
79
|
-
return;
|
80
|
-
}
|
81
|
-
// Include file
|
82
|
-
document.write('<script type="text/javascript" src="' +
|
83
|
-
strSrc + (typeof strId == 'string' ? '" id="' + strId : '') + '"></script>');
|
84
|
-
};
|
85
|
-
|
86
|
-
// Include required scripts
|
87
|
-
Zapatec.include(Zapatec.zapatecPath + 'utils.js', 'Zapatec.Utils');
|
88
|
-
Zapatec.include(Zapatec.zapatecPath + 'zpeventdriven.js', 'Zapatec.EventDriven');
|
89
|
-
Zapatec.include(Zapatec.zapatecPath + 'transport.js', 'Zapatec.Transport');
|
90
|
-
Zapatec.include(Zapatec.zapatecPath + 'zpwidget.js', 'Zapatec.Widget');
|
@@ -1,212 +0,0 @@
|
|
1
|
-
// $Id: zpeventdriven.js 4322 2006-09-04 08:49:33Z shacka $
|
2
|
-
/**
|
3
|
-
* @fileoverview Zapatec EventDriven library. Base EventDriven class. Contains
|
4
|
-
* functions to handle events and basic methods for event-driven class.
|
5
|
-
*
|
6
|
-
* <pre>
|
7
|
-
* Copyright (c) 2004-2006 by Zapatec, Inc.
|
8
|
-
* http://www.zapatec.com
|
9
|
-
* 1700 MLK Way, Berkeley, California,
|
10
|
-
* 94709, U.S.A.
|
11
|
-
* All rights reserved.
|
12
|
-
* </pre>
|
13
|
-
*/
|
14
|
-
|
15
|
-
if (typeof Zapatec == 'undefined') {
|
16
|
-
/**
|
17
|
-
* @ignore Namespace definition.
|
18
|
-
*/
|
19
|
-
Zapatec = {};
|
20
|
-
}
|
21
|
-
|
22
|
-
/**
|
23
|
-
* Base event-driven class.
|
24
|
-
*
|
25
|
-
* @constructor
|
26
|
-
*/
|
27
|
-
Zapatec.EventDriven = function() {};
|
28
|
-
|
29
|
-
/**
|
30
|
-
* Initializes object.
|
31
|
-
*/
|
32
|
-
Zapatec.EventDriven.prototype.init = function() {
|
33
|
-
// Holds events of this object
|
34
|
-
this.events = {};
|
35
|
-
};
|
36
|
-
|
37
|
-
/**
|
38
|
-
* Adds event listener.
|
39
|
-
*
|
40
|
-
* @param {string} strEvent Event name
|
41
|
-
* @param {function} funcListener Event listener
|
42
|
-
* @param {function} first If true funcListener will be put as the first one
|
43
|
-
*/
|
44
|
-
Zapatec.EventDriven.prototype.
|
45
|
-
addEventListener = function(strEvent, funcListener, first) {
|
46
|
-
if (typeof funcListener != "function") {
|
47
|
-
return false;
|
48
|
-
}
|
49
|
-
if (!this.events[strEvent]) {
|
50
|
-
this.events[strEvent] = {
|
51
|
-
listeners: []
|
52
|
-
};
|
53
|
-
}
|
54
|
-
if (!first) {
|
55
|
-
this.events[strEvent].listeners.push(funcListener);
|
56
|
-
} else {
|
57
|
-
this.events[strEvent].listeners.unshift(funcListener);
|
58
|
-
}
|
59
|
-
};
|
60
|
-
|
61
|
-
/**
|
62
|
-
* Removes event listener.
|
63
|
-
*
|
64
|
-
* @param {string} strEvent Event name
|
65
|
-
* @param {function} funcListener Event listener
|
66
|
-
*/
|
67
|
-
Zapatec.EventDriven.prototype.
|
68
|
-
removeEventListener = function(strEvent, funcListener) {
|
69
|
-
if (!this.events[strEvent]) {
|
70
|
-
return;
|
71
|
-
}
|
72
|
-
var arrListeners = this.events[strEvent].listeners;
|
73
|
-
for (var iListener = 0; iListener < arrListeners.length; iListener++) {
|
74
|
-
if (arrListeners[iListener] == funcListener) {
|
75
|
-
arrListeners.splice(iListener, 1);
|
76
|
-
return;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
};
|
80
|
-
|
81
|
-
/**
|
82
|
-
* Checks if the event exists.
|
83
|
-
*
|
84
|
-
* @param {string} strEvent Event name
|
85
|
-
* @return Exists
|
86
|
-
* @type boolean
|
87
|
-
*/
|
88
|
-
Zapatec.EventDriven.prototype.isEvent = function(strEvent) {
|
89
|
-
if (this.events[strEvent]) {
|
90
|
-
return true;
|
91
|
-
}
|
92
|
-
return false;
|
93
|
-
};
|
94
|
-
|
95
|
-
/**
|
96
|
-
* Removes all listeners for the event.
|
97
|
-
*
|
98
|
-
* @param {string} strEvent Event name
|
99
|
-
*/
|
100
|
-
Zapatec.EventDriven.prototype.removeEvent = function(strEvent) {
|
101
|
-
if (this.events[strEvent]) {
|
102
|
-
var undef;
|
103
|
-
this.events[strEvent] = undef;
|
104
|
-
}
|
105
|
-
};
|
106
|
-
|
107
|
-
/**
|
108
|
-
* Fires event. Takes in one mandatory argument strEvent and optionally
|
109
|
-
* any number of other arguments that should be passed to the listeners.
|
110
|
-
*
|
111
|
-
* @param {string} strEvent Event name
|
112
|
-
*/
|
113
|
-
Zapatec.EventDriven.prototype.fireEvent = function(strEvent) {
|
114
|
-
if (!this.events[strEvent]) {
|
115
|
-
return;
|
116
|
-
}
|
117
|
-
var arrListeners = this.events[strEvent].listeners;
|
118
|
-
for (var iListener = 0; iListener < arrListeners.length; iListener++) {
|
119
|
-
// Remove first argument
|
120
|
-
var arrArgs = [].slice.call(arguments, 1);
|
121
|
-
// Call in scope of this object
|
122
|
-
arrListeners[iListener].apply(this, arrArgs);
|
123
|
-
}
|
124
|
-
};
|
125
|
-
|
126
|
-
/**
|
127
|
-
* Holds static events.
|
128
|
-
* @private
|
129
|
-
*/
|
130
|
-
Zapatec.EventDriven.events = {};
|
131
|
-
|
132
|
-
/**
|
133
|
-
* Adds event listener to static event.
|
134
|
-
*
|
135
|
-
* @param {string} strEvent Event name
|
136
|
-
* @param {function} funcListener Event listener
|
137
|
-
*/
|
138
|
-
Zapatec.EventDriven.addEventListener = function(strEvent, funcListener) {
|
139
|
-
if (typeof funcListener != "function") {
|
140
|
-
return false;
|
141
|
-
}
|
142
|
-
if (!Zapatec.EventDriven.events[strEvent]) {
|
143
|
-
Zapatec.EventDriven.events[strEvent] = {
|
144
|
-
listeners: []
|
145
|
-
};
|
146
|
-
}
|
147
|
-
Zapatec.EventDriven.events[strEvent].listeners.push(funcListener);
|
148
|
-
};
|
149
|
-
|
150
|
-
/**
|
151
|
-
* Removes event listener from static event.
|
152
|
-
*
|
153
|
-
* @param {string} strEvent Event name
|
154
|
-
* @param {function} funcListener Event listener
|
155
|
-
*/
|
156
|
-
Zapatec.EventDriven.removeEventListener = function(strEvent, funcListener) {
|
157
|
-
if (!Zapatec.EventDriven.events[strEvent]) {
|
158
|
-
return;
|
159
|
-
}
|
160
|
-
var arrListeners = Zapatec.EventDriven.events[strEvent].listeners;
|
161
|
-
for (var iListener = 0; iListener < arrListeners.length; iListener++) {
|
162
|
-
if (arrListeners[iListener] == funcListener) {
|
163
|
-
arrListeners.splice(iListener, 1);
|
164
|
-
return;
|
165
|
-
}
|
166
|
-
}
|
167
|
-
};
|
168
|
-
|
169
|
-
/**
|
170
|
-
* Checks if the static event exists.
|
171
|
-
*
|
172
|
-
* @param {string} strEvent Event name
|
173
|
-
* @return Exists
|
174
|
-
* @type boolean
|
175
|
-
*/
|
176
|
-
Zapatec.EventDriven.isEvent = function(strEvent) {
|
177
|
-
if (Zapatec.EventDriven.events[strEvent]) {
|
178
|
-
return true;
|
179
|
-
}
|
180
|
-
return false;
|
181
|
-
};
|
182
|
-
|
183
|
-
/**
|
184
|
-
* Removes all listeners for the static event.
|
185
|
-
*
|
186
|
-
* @param {string} strEvent Event name
|
187
|
-
*/
|
188
|
-
Zapatec.EventDriven.removeEvent = function(strEvent) {
|
189
|
-
if (Zapatec.EventDriven.events[strEvent]) {
|
190
|
-
var undef;
|
191
|
-
Zapatec.EventDriven.events[strEvent] = undef;
|
192
|
-
}
|
193
|
-
};
|
194
|
-
|
195
|
-
/**
|
196
|
-
* Fires static event. Takes in one mandatory argument strEvent and optionally
|
197
|
-
* any number of other arguments that should be passed to the listeners.
|
198
|
-
*
|
199
|
-
* @param {string} strEvent Event name
|
200
|
-
*/
|
201
|
-
Zapatec.EventDriven.fireEvent = function(strEvent) {
|
202
|
-
if (!Zapatec.EventDriven.events[strEvent]) {
|
203
|
-
return;
|
204
|
-
}
|
205
|
-
var arrListeners = Zapatec.EventDriven.events[strEvent].listeners;
|
206
|
-
for (var iListener = 0; iListener < arrListeners.length; iListener++) {
|
207
|
-
// Remove first argument
|
208
|
-
var arrArgs = [].slice.call(arguments, 1);
|
209
|
-
// Call listener
|
210
|
-
arrListeners[iListener].apply(arrListeners[iListener], arrArgs);
|
211
|
-
}
|
212
|
-
};
|
@@ -1,729 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview Zapatec Widget library. Base Widget class.
|
3
|
-
*
|
4
|
-
* <pre>
|
5
|
-
* Copyright (c) 2004-2006 by Zapatec, Inc.
|
6
|
-
* http://www.zapatec.com
|
7
|
-
* 1700 MLK Way, Berkeley, California,
|
8
|
-
* 94709, U.S.A.
|
9
|
-
* All rights reserved.
|
10
|
-
* </pre>
|
11
|
-
*/
|
12
|
-
|
13
|
-
/* $Id: zpwidget.js 4907 2006-10-25 15:09:26Z andrew $ */
|
14
|
-
|
15
|
-
if (typeof Zapatec == 'undefined') {
|
16
|
-
/**
|
17
|
-
* @ignore Namespace definition.
|
18
|
-
*/
|
19
|
-
Zapatec = {};
|
20
|
-
}
|
21
|
-
|
22
|
-
/**
|
23
|
-
* Base widget class.
|
24
|
-
*
|
25
|
-
* <pre>
|
26
|
-
* Defines following config options:
|
27
|
-
*
|
28
|
-
* <b>theme</b> [string] Theme name that will be used to display the widget.
|
29
|
-
* Corresponding CSS file will be picked and added into the HTML document
|
30
|
-
* automatically. Case insensitive. Default: "default".
|
31
|
-
* May also contain relative or absolute URL of themes directory.
|
32
|
-
* E.g. "../themes/default.css" or "http://my.web.host/themes/default.css".
|
33
|
-
*
|
34
|
-
* <b>themePath</b> [string] Relative or absolute URL to themes directory.
|
35
|
-
* Trailing slash is required. Default: path to child widget's file +
|
36
|
-
* "../themes/". You may also include path into "theme" option instead of using
|
37
|
-
* "themePath" option.
|
38
|
-
*
|
39
|
-
* <b>asyncTheme</b> [boolean] Load theme asynchronously. This means that script
|
40
|
-
* execution will not be suspended until theme is loaded. Theme will be applied
|
41
|
-
* once it is loaded. Default: false.
|
42
|
-
*
|
43
|
-
* <b>source</b> Depends on "sourceType" option. Possible sources:
|
44
|
-
* -----------------------------------------------------------------------------
|
45
|
-
* sourceType | source
|
46
|
-
* ---------------|-------------------------------------------------------------
|
47
|
-
* 1) "html" | [object or string] HTMLElement or its id.
|
48
|
-
* 2) "html/text" | [string] HTML fragment.
|
49
|
-
* 3) "html/url" | [string] URL of HTML fragment.
|
50
|
-
* 4) "json" | [object or string] JSON object or string (http://json.org).
|
51
|
-
* 5) "json/url" | [string] URL of JSON data source.
|
52
|
-
* 6) "xml" | [object or string] XMLDocument object or XML string.
|
53
|
-
* 7) "xml/url" | [string] URL of XML data source.
|
54
|
-
* -----------------------------------------------------------------------------
|
55
|
-
*
|
56
|
-
* <b>sourceType</b> [string] Used together with "source" option to specify how
|
57
|
-
* source should be processed. Possible source types:
|
58
|
-
* "html", "html/text", "html/url", "json", "json/url", "xml", "xml/url".
|
59
|
-
* JSON format is described at http://www.json.org.
|
60
|
-
*
|
61
|
-
* <b>callbackSource</b> [function] May be used instead of "source" and
|
62
|
-
* "sourceType" config options to get source depending on passed arguments.
|
63
|
-
* Receives object with passed arguments. Must return following object:
|
64
|
-
* {
|
65
|
-
* source: [object or string] see table above for possible sources,
|
66
|
-
* sourceType: [string] see table above for possible source types
|
67
|
-
* }
|
68
|
-
*
|
69
|
-
* <b>asyncSource</b> [boolean] Load source asynchronously. This means that
|
70
|
-
* script execution will not be suspended until source is loaded. Source will be
|
71
|
-
* processed once it is loaded. Default: true.
|
72
|
-
*
|
73
|
-
* <b>reliableSource</b> [boolean] Used together with "json" or "json/url"
|
74
|
-
* sourceType to skip JSON format verification. It saves a lot of time for large
|
75
|
-
* data sets. Default: true.
|
76
|
-
*
|
77
|
-
* <b>eventListeners</b> [object] Associative array with event listeners:
|
78
|
-
* {
|
79
|
-
* [string] event name: [function] event listener,
|
80
|
-
* ...
|
81
|
-
* }
|
82
|
-
* </pre>
|
83
|
-
*
|
84
|
-
* @constructor
|
85
|
-
* @extends Zapatec.EventDriven
|
86
|
-
* @param {object} objArgs User configuration
|
87
|
-
*/
|
88
|
-
Zapatec.Widget = function(objArgs) {
|
89
|
-
// User configuration
|
90
|
-
this.config = {};
|
91
|
-
// Call constructor of superclass
|
92
|
-
Zapatec.Widget.SUPERconstructor.call(this);
|
93
|
-
// Initialize object
|
94
|
-
this.init(objArgs);
|
95
|
-
};
|
96
|
-
|
97
|
-
// Inherit EventDriven
|
98
|
-
Zapatec.inherit(Zapatec.Widget, Zapatec.EventDriven);
|
99
|
-
|
100
|
-
/**
|
101
|
-
* @private Holds path to this file.
|
102
|
-
*/
|
103
|
-
Zapatec.Widget.path = Zapatec.getPath('Zapatec.Widget');
|
104
|
-
|
105
|
-
/**
|
106
|
-
* Initializes object.
|
107
|
-
*
|
108
|
-
* <pre>
|
109
|
-
* Important: Before calling this method, define config options for the widget.
|
110
|
-
* Initially "this.config" object should contain all config options with their
|
111
|
-
* default values. Then values of config options will be changed with user
|
112
|
-
* configuration in this method. Config options provided by user that were not
|
113
|
-
* found in "this.config" object will be ignored.
|
114
|
-
* </pre>
|
115
|
-
*
|
116
|
-
* @param {object} objArgs User configuration
|
117
|
-
*/
|
118
|
-
Zapatec.Widget.prototype.init = function(objArgs) {
|
119
|
-
// Call parent method
|
120
|
-
Zapatec.Widget.SUPERclass.init.call(this);
|
121
|
-
// Add this widget to the list
|
122
|
-
if (typeof this.id == 'undefined') {
|
123
|
-
this.id = Zapatec.Widget.all.length;
|
124
|
-
Zapatec.Widget.all.push(this);
|
125
|
-
}
|
126
|
-
// Configure
|
127
|
-
this.configure(objArgs);
|
128
|
-
// Add custom event listeners
|
129
|
-
this.addUserEventListeners();
|
130
|
-
// Add standard event listeners
|
131
|
-
this.addStandardEventListeners();
|
132
|
-
// Load theme
|
133
|
-
this.loadTheme();
|
134
|
-
};
|
135
|
-
|
136
|
-
/**
|
137
|
-
* Reconfigures the widget with new config options after it was initialized.
|
138
|
-
* May be used to change look or behavior of the widget after it has loaded
|
139
|
-
* the data. In the argument pass only values for changed config options.
|
140
|
-
* There is no need to pass config options that were not changed.
|
141
|
-
*
|
142
|
-
* <pre>
|
143
|
-
* Note: "eventListeners" config option is ignored by this method because it is
|
144
|
-
* useful only on initialization. To add event listener after the widget was
|
145
|
-
* initialized, use addEventListener method instead.
|
146
|
-
* </pre>
|
147
|
-
*
|
148
|
-
* @param {object} objArgs Changes to user configuration
|
149
|
-
*/
|
150
|
-
Zapatec.Widget.prototype.reconfigure = function(objArgs) {
|
151
|
-
// Configure
|
152
|
-
this.configure(objArgs);
|
153
|
-
// Load theme
|
154
|
-
this.loadTheme();
|
155
|
-
};
|
156
|
-
|
157
|
-
/**
|
158
|
-
* Configures widget.
|
159
|
-
*
|
160
|
-
* @param {object} objArgs User configuration
|
161
|
-
*/
|
162
|
-
Zapatec.Widget.prototype.configure = function(objArgs) {
|
163
|
-
// Default configuration
|
164
|
-
this.defineConfigOption('theme', 'default');
|
165
|
-
if (typeof this.constructor.path != 'undefined') {
|
166
|
-
this.defineConfigOption('themePath', this.constructor.path + '../themes/');
|
167
|
-
} else {
|
168
|
-
this.defineConfigOption('themePath', '../themes/');
|
169
|
-
}
|
170
|
-
this.defineConfigOption('asyncTheme', false);
|
171
|
-
this.defineConfigOption('source');
|
172
|
-
this.defineConfigOption('sourceType');
|
173
|
-
this.defineConfigOption('callbackSource');
|
174
|
-
this.defineConfigOption('asyncSource', true);
|
175
|
-
this.defineConfigOption('reliableSource', true);
|
176
|
-
this.defineConfigOption('eventListeners', {});
|
177
|
-
// Get user configuration
|
178
|
-
if (objArgs) {
|
179
|
-
for (var strOption in objArgs) {
|
180
|
-
if (typeof this.config[strOption] != 'undefined') {
|
181
|
-
this.config[strOption] = objArgs[strOption];
|
182
|
-
} else {
|
183
|
-
Zapatec.Log({
|
184
|
-
description: "Unknown config option: " + strOption
|
185
|
-
});
|
186
|
-
}
|
187
|
-
}
|
188
|
-
}
|
189
|
-
};
|
190
|
-
|
191
|
-
/**
|
192
|
-
* Returns current configuration of the widget.
|
193
|
-
*
|
194
|
-
* @return Current configuration
|
195
|
-
* @type object
|
196
|
-
*/
|
197
|
-
Zapatec.Widget.prototype.getConfiguration = function() {
|
198
|
-
return this.config;
|
199
|
-
};
|
200
|
-
|
201
|
-
/**
|
202
|
-
* @private Array to access any widget on the page by its id number.
|
203
|
-
*/
|
204
|
-
Zapatec.Widget.all = [];
|
205
|
-
|
206
|
-
/**
|
207
|
-
* Finds a widget by id.
|
208
|
-
*
|
209
|
-
* @param {number} Widget id
|
210
|
-
* @return Widget or undefined if not found
|
211
|
-
* @type object
|
212
|
-
*/
|
213
|
-
Zapatec.Widget.getWidgetById = function(iId) {
|
214
|
-
return Zapatec.Widget.all[iId];
|
215
|
-
};
|
216
|
-
|
217
|
-
/**
|
218
|
-
* @private Defines config option if it is not defined yet. Sets default value
|
219
|
-
* of new config option. If default value is not specified, it is set to null.
|
220
|
-
*
|
221
|
-
* @param {string} strOption Config option name
|
222
|
-
* @param {any} val Optional. Config option default value
|
223
|
-
*/
|
224
|
-
Zapatec.Widget.prototype.defineConfigOption = function(strOption, val) {
|
225
|
-
if (typeof this.config[strOption] == 'undefined') {
|
226
|
-
if (typeof val == 'undefined') {
|
227
|
-
this.config[strOption] = null;
|
228
|
-
} else {
|
229
|
-
this.config[strOption] = val;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
};
|
233
|
-
|
234
|
-
/**
|
235
|
-
* Adds custom event listeners.
|
236
|
-
*/
|
237
|
-
Zapatec.Widget.prototype.addUserEventListeners = function() {
|
238
|
-
for (var strEvent in this.config.eventListeners) {
|
239
|
-
if (this.config.eventListeners.hasOwnProperty(strEvent)) {
|
240
|
-
this.addEventListener(strEvent, this.config.eventListeners[strEvent]);
|
241
|
-
}
|
242
|
-
}
|
243
|
-
};
|
244
|
-
|
245
|
-
/**
|
246
|
-
* Adds standard event listeners.
|
247
|
-
*/
|
248
|
-
Zapatec.Widget.prototype.addStandardEventListeners = function() {
|
249
|
-
this.addEventListener('loadThemeError', Zapatec.Widget.loadThemeError);
|
250
|
-
};
|
251
|
-
|
252
|
-
/**
|
253
|
-
* Displays the reason why the theme was not loaded.
|
254
|
-
* @private
|
255
|
-
*/
|
256
|
-
Zapatec.Widget.loadThemeError = function(objError) {
|
257
|
-
var strDescription = "Can't load theme.";
|
258
|
-
if (objError && objError.errorDescription) {
|
259
|
-
strDescription += ' ' + objError.errorDescription;
|
260
|
-
}
|
261
|
-
Zapatec.Log({
|
262
|
-
description: strDescription
|
263
|
-
});
|
264
|
-
};
|
265
|
-
|
266
|
-
/**
|
267
|
-
* Loads specified theme.
|
268
|
-
*/
|
269
|
-
Zapatec.Widget.prototype.loadTheme = function() {
|
270
|
-
// Correct theme config option
|
271
|
-
if (typeof this.config.theme == 'string' && this.config.theme.length) {
|
272
|
-
// Remove path
|
273
|
-
var iPos = this.config.theme.lastIndexOf('/');
|
274
|
-
if (iPos >= 0) {
|
275
|
-
iPos++; // Go to first char of theme name
|
276
|
-
this.config.themePath = this.config.theme.substring(0, iPos);
|
277
|
-
this.config.theme = this.config.theme.substring(iPos);
|
278
|
-
}
|
279
|
-
// Remove file extension
|
280
|
-
iPos = this.config.theme.lastIndexOf('.');
|
281
|
-
if (iPos >= 0) {
|
282
|
-
this.config.theme = this.config.theme.substring(0, iPos);
|
283
|
-
}
|
284
|
-
// Make lower case
|
285
|
-
this.config.theme = this.config.theme.toLowerCase();
|
286
|
-
} else {
|
287
|
-
this.config.theme = '';
|
288
|
-
}
|
289
|
-
// Load theme
|
290
|
-
if(this.config.theme){
|
291
|
-
this.fireEvent('loadThemeStart');
|
292
|
-
this.themeLoaded = false;
|
293
|
-
var objWidget = this;
|
294
|
-
var strUrl = this.config.themePath + this.config.theme + '.css';
|
295
|
-
Zapatec.Transport.loadCss({
|
296
|
-
// URL of theme file
|
297
|
-
url: strUrl,
|
298
|
-
// Suspend script execution until theme is loaded or error received
|
299
|
-
async: this.config.asyncTheme,
|
300
|
-
// Onload event handler
|
301
|
-
onLoad: function() {
|
302
|
-
objWidget.fireEvent('loadThemeEnd');
|
303
|
-
objWidget.themeLoaded = true;
|
304
|
-
objWidget.hideLoader();
|
305
|
-
},
|
306
|
-
onError: function(objError) {
|
307
|
-
objWidget.fireEvent('loadThemeEnd');
|
308
|
-
objWidget.fireEvent('loadThemeError', objError);
|
309
|
-
objWidget.themeLoaded = true;
|
310
|
-
objWidget.hideLoader();
|
311
|
-
}
|
312
|
-
});
|
313
|
-
}
|
314
|
-
}
|
315
|
-
/**
|
316
|
-
* Forms class name from theme name and provided prefix and suffix.
|
317
|
-
*
|
318
|
-
* <pre>
|
319
|
-
* Arguments object format:
|
320
|
-
* {
|
321
|
-
* prefix: [string, optional] prefix,
|
322
|
-
* suffix: [string, optional] suffix
|
323
|
-
* }
|
324
|
-
* E.g. if this.config.theme == 'default' and following object provided
|
325
|
-
* {
|
326
|
-
* prefix: 'zpWidget',
|
327
|
-
* suffix: 'Container'
|
328
|
-
* },
|
329
|
-
* class name will be 'zpWidgetDefaultContainer'.
|
330
|
-
* </pre>
|
331
|
-
*
|
332
|
-
* @param objArgs [object] Arguments object
|
333
|
-
* @return Class name
|
334
|
-
* @type string
|
335
|
-
*/
|
336
|
-
Zapatec.Widget.prototype.getClassName = function(objArgs) {
|
337
|
-
var arrClassName = [];
|
338
|
-
if (objArgs && objArgs.prefix) {
|
339
|
-
arrClassName.push(objArgs.prefix);
|
340
|
-
}
|
341
|
-
if (this.config.theme != '') {
|
342
|
-
arrClassName.push(this.config.theme.charAt(0).toUpperCase());
|
343
|
-
arrClassName.push(this.config.theme.substr(1));
|
344
|
-
}
|
345
|
-
if (objArgs && objArgs.suffix) {
|
346
|
-
arrClassName.push(objArgs.suffix);
|
347
|
-
}
|
348
|
-
return arrClassName.join('');
|
349
|
-
};
|
350
|
-
|
351
|
-
/**
|
352
|
-
* @private if theme for current widget is not loaded yet - this method will
|
353
|
-
* hide widget container and show progress bar instead of it.
|
354
|
-
*/
|
355
|
-
Zapatec.Widget.prototype.showLoader = function(message){
|
356
|
-
if(this.container != null && this.config.theme && !this.themeLoaded){
|
357
|
-
// if window content is not fulle loaded - progress bar can resize
|
358
|
-
// incorrectly
|
359
|
-
if(!Zapatec.windowLoaded){
|
360
|
-
var self = this;
|
361
|
-
Zapatec.Utils.addEvent(window, "load", function(){self.showLoader(message)});
|
362
|
-
return null;
|
363
|
-
}
|
364
|
-
|
365
|
-
if(typeof(Zapatec.Progress) == 'undefined'){
|
366
|
-
var self = this;
|
367
|
-
|
368
|
-
Zapatec.Transport.loadJS({
|
369
|
-
module: 'progress',
|
370
|
-
onLoad: function() {
|
371
|
-
// if theme is already loaded - do not show progress bar
|
372
|
-
if(self.themeLoaded){
|
373
|
-
return null;
|
374
|
-
}
|
375
|
-
|
376
|
-
self.showLoader(message);
|
377
|
-
}
|
378
|
-
});
|
379
|
-
|
380
|
-
return null;
|
381
|
-
}
|
382
|
-
|
383
|
-
this.loader = new Zapatec.Progress({
|
384
|
-
container: this.container,
|
385
|
-
themePath: Zapatec.zapatecPath + "../zpextra/themes/progress/"
|
386
|
-
});
|
387
|
-
|
388
|
-
this.loader.start(message || 'loading');
|
389
|
-
this.container.style.visibility = 'hidden';
|
390
|
-
}
|
391
|
-
}
|
392
|
-
|
393
|
-
/**
|
394
|
-
* @private Hides progressbar created using #showLoader and shows widget.
|
395
|
-
* This method will be called automatically on theme loading.
|
396
|
-
*/
|
397
|
-
Zapatec.Widget.prototype.hideLoader = function(){
|
398
|
-
if(this.loader && this.loader.isActive()){
|
399
|
-
this.container.style.visibility = '';
|
400
|
-
this.loader.stop();
|
401
|
-
}
|
402
|
-
}
|
403
|
-
|
404
|
-
/**
|
405
|
-
* Shows widget using given effects and animation speed. You need to define
|
406
|
-
* this.container to use this method.
|
407
|
-
* @param {object} effects list of effects to apply
|
408
|
-
* @param {number} animSpeed possible values - 1..100. Bigger value - more fast animation.
|
409
|
-
* @param {function} onFinish Function to call on effect end.
|
410
|
-
*/
|
411
|
-
Zapatec.Widget.prototype.showContainer = function(effects, animSpeed, onFinish){
|
412
|
-
return this.showHideContainer(effects, animSpeed, onFinish, true);
|
413
|
-
}
|
414
|
-
|
415
|
-
/**
|
416
|
-
* Hides widget using given effects and animation speed. You need to define
|
417
|
-
* this.container to use this method.
|
418
|
-
* @param {object} effects list of effects to apply
|
419
|
-
* @param {number} animSpeed possible values - 1..100. Bigger value - more fast animation.
|
420
|
-
*/
|
421
|
-
Zapatec.Widget.prototype.hideContainer = function(effects, animSpeed, onFinish){
|
422
|
-
return this.showHideContainer(effects, animSpeed, onFinish, false);
|
423
|
-
}
|
424
|
-
|
425
|
-
/**
|
426
|
-
* Show/hides widget using given effects and animation speed. You need to define
|
427
|
-
* this.container to use this method.
|
428
|
-
* @param {object} effects list of effects to apply
|
429
|
-
* @param {number} animSpeed possible values - 1..100. Bigger value - more fast animation.
|
430
|
-
* @param {boolean} show if true - show widget. Otherwise - hide.
|
431
|
-
*/
|
432
|
-
Zapatec.Widget.prototype.showHideContainer = function(effects, animSpeed, onFinish, show){
|
433
|
-
if(this.container == null){
|
434
|
-
return null;
|
435
|
-
}
|
436
|
-
|
437
|
-
if(typeof(Zapatec.Effects) == 'undefined'){
|
438
|
-
var self = this;
|
439
|
-
|
440
|
-
Zapatec.Transport.loadJS({
|
441
|
-
url: Zapatec.Widget.path + '../../zpeffects/src/effects.js',
|
442
|
-
onLoad: function() {
|
443
|
-
self.showHideContainer(effects, animSpeed, onFinish, show);
|
444
|
-
}
|
445
|
-
});
|
446
|
-
|
447
|
-
return false;
|
448
|
-
}
|
449
|
-
|
450
|
-
if(animSpeed == null && isNaN(parseInt(animSpeed))){
|
451
|
-
animSpeed = 5;
|
452
|
-
}
|
453
|
-
|
454
|
-
if(effects == null || effects.length == 0){
|
455
|
-
if(show){
|
456
|
-
this.container.style.display = this.originalContainerDisplay;
|
457
|
-
this.originalContainerDisplay = null;
|
458
|
-
} else {
|
459
|
-
this.originalContainerDisplay = this.container.style.display;
|
460
|
-
this.container.style.display = 'none';
|
461
|
-
}
|
462
|
-
|
463
|
-
if (onFinish) {
|
464
|
-
onFinish();
|
465
|
-
}
|
466
|
-
} else {
|
467
|
-
if(show){
|
468
|
-
Zapatec.Effects.show(this.container, animSpeed, effects, onFinish);
|
469
|
-
} else {
|
470
|
-
Zapatec.Effects.hide(this.container, animSpeed, effects, onFinish);
|
471
|
-
}
|
472
|
-
}
|
473
|
-
|
474
|
-
return true;
|
475
|
-
}
|
476
|
-
|
477
|
-
/**
|
478
|
-
* Loads data from the specified source.
|
479
|
-
*
|
480
|
-
* <pre>
|
481
|
-
* If source is URL, fires following events:
|
482
|
-
* <ul>
|
483
|
-
* <li><i>fetchSourceStart</i> when Zapatec.Transport#fetch is called</li>
|
484
|
-
* <li><i>fetchSourceEnd</i> when Zapatec.Transport#fetch returns result or
|
485
|
-
* error</li>
|
486
|
-
* <li><i>fetchSourceError</i> when Zapatec.Transport#fetch returns error.
|
487
|
-
* fetchSourceError event listener receives object returned by
|
488
|
-
* Zapatec.Transport#fetch</li>
|
489
|
-
* </ul>
|
490
|
-
*
|
491
|
-
* Fires following events:
|
492
|
-
* <ul>
|
493
|
-
* <li><i>loadDataStart</i> when data parsing is started</li>
|
494
|
-
* <li><i>loadDataEnd</i> when data parsing is ended or error occured during
|
495
|
-
* fetch</li>
|
496
|
-
* </ul>
|
497
|
-
* </pre>
|
498
|
-
*
|
499
|
-
* @param {object} objArgs Arguments object passed to callbackSource function
|
500
|
-
*/
|
501
|
-
Zapatec.Widget.prototype.loadData = function(objArgs) {
|
502
|
-
// Get source using callback function
|
503
|
-
if (typeof this.config.callbackSource == 'function') {
|
504
|
-
var objSource = this.config.callbackSource(objArgs);
|
505
|
-
if (objSource) {
|
506
|
-
if (typeof objSource.source != 'undefined') {
|
507
|
-
this.config.source = objSource.source;
|
508
|
-
}
|
509
|
-
if (typeof objSource.sourceType != 'undefined') {
|
510
|
-
this.config.sourceType = objSource.sourceType;
|
511
|
-
}
|
512
|
-
}
|
513
|
-
}
|
514
|
-
// Process source
|
515
|
-
if (this.config.source != null && this.config.sourceType != null) {
|
516
|
-
var strSourceType = this.config.sourceType.toLowerCase();
|
517
|
-
if (strSourceType == 'html') {
|
518
|
-
this.fireEvent('loadDataStart');
|
519
|
-
this.loadDataHtml(Zapatec.Widget.getElementById(this.config.source));
|
520
|
-
this.fireEvent('loadDataEnd');
|
521
|
-
} else if (strSourceType == 'html/text') {
|
522
|
-
this.fireEvent('loadDataStart');
|
523
|
-
this.loadDataHtmlText(this.config.source);
|
524
|
-
this.fireEvent('loadDataEnd');
|
525
|
-
} else if (strSourceType == 'html/url') {
|
526
|
-
this.fireEvent('fetchSourceStart');
|
527
|
-
// Fetch source
|
528
|
-
var objWidget = this;
|
529
|
-
Zapatec.Transport.fetch({
|
530
|
-
// URL of the source
|
531
|
-
url: this.config.source,
|
532
|
-
// Suspend script execution until source is loaded or error received
|
533
|
-
async: this.config.asyncSource,
|
534
|
-
// Onload event handler
|
535
|
-
onLoad: function(objRequest) {
|
536
|
-
objWidget.fireEvent('fetchSourceEnd');
|
537
|
-
objWidget.fireEvent('loadDataStart');
|
538
|
-
objWidget.loadDataHtmlText(objRequest.responseText);
|
539
|
-
objWidget.fireEvent('loadDataEnd');
|
540
|
-
},
|
541
|
-
// Onerror event handler
|
542
|
-
onError: function(objError) {
|
543
|
-
objWidget.fireEvent('fetchSourceEnd');
|
544
|
-
objWidget.fireEvent('loadDataEnd');
|
545
|
-
objWidget.fireEvent('fetchSourceError', objError);
|
546
|
-
}
|
547
|
-
});
|
548
|
-
} else if (strSourceType == 'json') {
|
549
|
-
this.fireEvent('loadDataStart');
|
550
|
-
if (typeof this.config.source == 'object') {
|
551
|
-
this.loadDataJson(this.config.source);
|
552
|
-
} else if (this.config.reliableSource) {
|
553
|
-
this.loadDataJson(eval(this.config.source));
|
554
|
-
} else {
|
555
|
-
this.loadDataJson(Zapatec.Transport.parseJson({
|
556
|
-
strJson: this.config.source
|
557
|
-
}));
|
558
|
-
}
|
559
|
-
this.fireEvent('loadDataEnd');
|
560
|
-
} else if (strSourceType == 'json/url') {
|
561
|
-
this.fireEvent('fetchSourceStart');
|
562
|
-
// Fetch source
|
563
|
-
var objWidget = this;
|
564
|
-
Zapatec.Transport.fetchJsonObj({
|
565
|
-
// URL of the source
|
566
|
-
url: this.config.source,
|
567
|
-
// Suspend script execution until source is loaded or error received
|
568
|
-
async: this.config.asyncSource,
|
569
|
-
// Skip JSON format verification
|
570
|
-
reliable: this.config.reliableSource,
|
571
|
-
// Onload event handler
|
572
|
-
onLoad: function(objResult) {
|
573
|
-
objWidget.fireEvent('fetchSourceEnd');
|
574
|
-
objWidget.fireEvent('loadDataStart');
|
575
|
-
objWidget.loadDataJson(objResult);
|
576
|
-
objWidget.fireEvent('loadDataEnd');
|
577
|
-
},
|
578
|
-
// Onerror event handler
|
579
|
-
onError: function(objError) {
|
580
|
-
objWidget.fireEvent('fetchSourceEnd');
|
581
|
-
objWidget.fireEvent('loadDataEnd');
|
582
|
-
objWidget.fireEvent('fetchSourceError', objError);
|
583
|
-
}
|
584
|
-
});
|
585
|
-
} else if (strSourceType == 'xml') {
|
586
|
-
this.fireEvent('loadDataStart');
|
587
|
-
if (typeof this.config.source == 'object') {
|
588
|
-
this.loadDataXml(this.config.source);
|
589
|
-
} else {
|
590
|
-
this.loadDataXml(Zapatec.Transport.parseXml({
|
591
|
-
strXml: this.config.source
|
592
|
-
}));
|
593
|
-
}
|
594
|
-
this.fireEvent('loadDataEnd');
|
595
|
-
} else if (strSourceType == 'xml/url') {
|
596
|
-
this.fireEvent('fetchSourceStart');
|
597
|
-
// Fetch source
|
598
|
-
var objWidget = this;
|
599
|
-
Zapatec.Transport.fetchXmlDoc({
|
600
|
-
// URL of the source
|
601
|
-
url: this.config.source,
|
602
|
-
// Suspend script execution until source is loaded or error received
|
603
|
-
async: this.config.asyncSource,
|
604
|
-
// Onload event handler
|
605
|
-
onLoad: function(objResult) {
|
606
|
-
objWidget.fireEvent('fetchSourceEnd');
|
607
|
-
objWidget.fireEvent('loadDataStart');
|
608
|
-
objWidget.loadDataXml(objResult);
|
609
|
-
objWidget.fireEvent('loadDataEnd');
|
610
|
-
},
|
611
|
-
// Onerror event handler
|
612
|
-
onError: function(objError) {
|
613
|
-
objWidget.fireEvent('fetchSourceEnd');
|
614
|
-
objWidget.fireEvent('loadDataEnd');
|
615
|
-
objWidget.fireEvent('fetchSourceError', objError);
|
616
|
-
}
|
617
|
-
});
|
618
|
-
}
|
619
|
-
} else {
|
620
|
-
this.fireEvent('loadDataStart');
|
621
|
-
this.loadDataHtml(Zapatec.Widget.getElementById(this.config.source));
|
622
|
-
this.fireEvent('loadDataEnd');
|
623
|
-
}
|
624
|
-
};
|
625
|
-
|
626
|
-
/**
|
627
|
-
* Loads data from the HTML source. Override this in child class.
|
628
|
-
*
|
629
|
-
* @param {object} objSource Source HTMLElement object
|
630
|
-
*/
|
631
|
-
Zapatec.Widget.prototype.loadDataHtml = function(objSource) {};
|
632
|
-
|
633
|
-
/**
|
634
|
-
* Loads data from the HTML fragment source.
|
635
|
-
*
|
636
|
-
* @param {string} strSource Source HTML fragment
|
637
|
-
*/
|
638
|
-
Zapatec.Widget.prototype.loadDataHtmlText = function(strSource) {
|
639
|
-
// Parse HTML fragment
|
640
|
-
var objTempContainer = Zapatec.Transport.parseHtml(strSource);
|
641
|
-
// Load data
|
642
|
-
this.loadDataHtml(objTempContainer.firstChild);
|
643
|
-
};
|
644
|
-
|
645
|
-
/**
|
646
|
-
* Loads data from the JSON source. Override this in child class.
|
647
|
-
*
|
648
|
-
* @param {object} objSource Source JSON object
|
649
|
-
*/
|
650
|
-
Zapatec.Widget.prototype.loadDataJson = function(objSource) {};
|
651
|
-
|
652
|
-
/**
|
653
|
-
* Loads data from the XML source. Override this in child class.
|
654
|
-
*
|
655
|
-
* @param {object} objSource Source XMLDocument object
|
656
|
-
*/
|
657
|
-
Zapatec.Widget.prototype.loadDataXml = function(objSource) {
|
658
|
-
};
|
659
|
-
|
660
|
-
/**
|
661
|
-
* Finds a widget by id and calls specified method with specified arguments and
|
662
|
-
* returns value from the method.
|
663
|
-
*
|
664
|
-
* @param {number} iWidgetId Widget id
|
665
|
-
* @param {string} strMethod Method name
|
666
|
-
* @param {any} any Any number of arguments
|
667
|
-
* @return Value returned from the method
|
668
|
-
* @type any
|
669
|
-
*/
|
670
|
-
Zapatec.Widget.callMethod = function(iWidgetId, strMethod) {
|
671
|
-
// Get Widget object
|
672
|
-
var objWidget = Zapatec.Widget.getWidgetById(iWidgetId);
|
673
|
-
if (objWidget && typeof objWidget[strMethod] == 'function') {
|
674
|
-
// Remove first two arguments
|
675
|
-
var arrArgs = [].slice.call(arguments, 2);
|
676
|
-
// Call method
|
677
|
-
return objWidget[strMethod].apply(objWidget, arrArgs);
|
678
|
-
}
|
679
|
-
};
|
680
|
-
|
681
|
-
/**
|
682
|
-
* Converts element id to reference.
|
683
|
-
*
|
684
|
-
* @param {string} element Element id
|
685
|
-
* @return Reference to element
|
686
|
-
* @type object
|
687
|
-
*/
|
688
|
-
Zapatec.Widget.getElementById = function(element) {
|
689
|
-
if (typeof element == 'string') {
|
690
|
-
return document.getElementById(element);
|
691
|
-
}
|
692
|
-
return element;
|
693
|
-
};
|
694
|
-
|
695
|
-
/**
|
696
|
-
* Returns style attribute of the specified element.
|
697
|
-
*
|
698
|
-
* @param {object} element Element
|
699
|
-
* @return Style attribute value
|
700
|
-
* @type string
|
701
|
-
*/
|
702
|
-
Zapatec.Widget.getStyle = function(element) {
|
703
|
-
var style = element.getAttribute('style') || '';
|
704
|
-
if (typeof style == 'string') {
|
705
|
-
return style;
|
706
|
-
}
|
707
|
-
return style.cssText;
|
708
|
-
};
|
709
|
-
|
710
|
-
/**
|
711
|
-
* Emulates "window.event" for certain events in Mozilla. To be able to access
|
712
|
-
* Event object when event handler is set using element attribute, e.g.
|
713
|
-
* <a onclick="eventHandler()">.
|
714
|
-
*
|
715
|
-
* @param {object} arrEventNames array of event names where "window.event" is
|
716
|
-
* needed, e.g. ['click', 'dblclick'].
|
717
|
-
*/
|
718
|
-
Zapatec.Widget.emulateWindowEvent = function(arrEventNames) {
|
719
|
-
if (document.addEventListener) {
|
720
|
-
// Set up emulation for certain events
|
721
|
-
for (var iEvent = 0; iEvent < arrEventNames.length; iEvent++) {
|
722
|
-
document.addEventListener(arrEventNames[iEvent], function (objEvent) {
|
723
|
-
if (objEvent) {
|
724
|
-
window.event = objEvent;
|
725
|
-
}
|
726
|
-
}, true);
|
727
|
-
}
|
728
|
-
}
|
729
|
-
};
|