hourglass 0.0.1-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.rbenv-version +1 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +59 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +111 -0
- data/VERSION +1 -0
- data/bin/hourglass +7 -0
- data/db/.gitignore +3 -0
- data/db/migrate/001_create_projects.rb +8 -0
- data/db/migrate/002_create_activity.rb +11 -0
- data/db/migrate/003_create_settings.rb +10 -0
- data/db/migrate/004_create_tags.rb +12 -0
- data/hourglass.gemspec +882 -0
- data/lib/hourglass.rb +74 -0
- data/lib/hourglass/activity.rb +286 -0
- data/lib/hourglass/application.rb +134 -0
- data/lib/hourglass/database.rb +25 -0
- data/lib/hourglass/project.rb +5 -0
- data/lib/hourglass/runner.rb +183 -0
- data/lib/hourglass/setting.rb +4 -0
- data/lib/hourglass/tag.rb +4 -0
- data/log/.gitignore +1 -0
- data/public/css/base/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/base/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/base/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/css/base/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/base/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/css/base/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/css/base/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/css/base/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/base/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/css/base/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/base/images/ui-icons_888888_256x240.png +0 -0
- data/public/css/base/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/base/jquery-ui.css +563 -0
- data/public/css/base/jquery.ui.accordion.css +19 -0
- data/public/css/base/jquery.ui.all.css +11 -0
- data/public/css/base/jquery.ui.autocomplete.css +53 -0
- data/public/css/base/jquery.ui.base.css +21 -0
- data/public/css/base/jquery.ui.button.css +38 -0
- data/public/css/base/jquery.ui.core.css +38 -0
- data/public/css/base/jquery.ui.datepicker.css +68 -0
- data/public/css/base/jquery.ui.dialog.css +21 -0
- data/public/css/base/jquery.ui.progressbar.css +11 -0
- data/public/css/base/jquery.ui.resizable.css +20 -0
- data/public/css/base/jquery.ui.selectable.css +10 -0
- data/public/css/base/jquery.ui.slider.css +24 -0
- data/public/css/base/jquery.ui.tabs.css +18 -0
- data/public/css/base/jquery.ui.theme.css +247 -0
- data/public/css/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/base/minified/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/css/base/minified/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/base/minified/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/css/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/css/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/css/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/css/base/minified/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/base/minified/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/css/base/minified/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/base/minified/images/ui-icons_888888_256x240.png +0 -0
- data/public/css/base/minified/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/base/minified/jquery-ui.min.css +10 -0
- data/public/css/base/minified/jquery.ui.accordion.min.css +10 -0
- data/public/css/base/minified/jquery.ui.all.min.css +10 -0
- data/public/css/base/minified/jquery.ui.autocomplete.min.css +10 -0
- data/public/css/base/minified/jquery.ui.base.min.css +10 -0
- data/public/css/base/minified/jquery.ui.button.min.css +10 -0
- data/public/css/base/minified/jquery.ui.core.min.css +10 -0
- data/public/css/base/minified/jquery.ui.datepicker.min.css +10 -0
- data/public/css/base/minified/jquery.ui.dialog.min.css +10 -0
- data/public/css/base/minified/jquery.ui.progressbar.min.css +10 -0
- data/public/css/base/minified/jquery.ui.resizable.min.css +10 -0
- data/public/css/base/minified/jquery.ui.selectable.min.css +10 -0
- data/public/css/base/minified/jquery.ui.slider.min.css +10 -0
- data/public/css/base/minified/jquery.ui.tabs.min.css +10 -0
- data/public/css/base/minified/jquery.ui.theme.min.css +12 -0
- data/public/css/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png +0 -0
- data/public/css/black-tie/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
- data/public/css/black-tie/images/ui-bg_glass_40_111111_1x400.png +0 -0
- data/public/css/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png +0 -0
- data/public/css/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
- data/public/css/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png +0 -0
- data/public/css/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png +0 -0
- data/public/css/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png +0 -0
- data/public/css/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png +0 -0
- data/public/css/black-tie/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/black-tie/images/ui-icons_4ca300_256x240.png +0 -0
- data/public/css/black-tie/images/ui-icons_bbbbbb_256x240.png +0 -0
- data/public/css/black-tie/images/ui-icons_ededed_256x240.png +0 -0
- data/public/css/black-tie/images/ui-icons_ffcf29_256x240.png +0 -0
- data/public/css/black-tie/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/black-tie/jquery-ui.css +565 -0
- data/public/css/black-tie/jquery.ui.accordion.css +19 -0
- data/public/css/black-tie/jquery.ui.all.css +11 -0
- data/public/css/black-tie/jquery.ui.autocomplete.css +53 -0
- data/public/css/black-tie/jquery.ui.base.css +11 -0
- data/public/css/black-tie/jquery.ui.button.css +38 -0
- data/public/css/black-tie/jquery.ui.core.css +38 -0
- data/public/css/black-tie/jquery.ui.datepicker.css +68 -0
- data/public/css/black-tie/jquery.ui.dialog.css +21 -0
- data/public/css/black-tie/jquery.ui.progressbar.css +11 -0
- data/public/css/black-tie/jquery.ui.resizable.css +20 -0
- data/public/css/black-tie/jquery.ui.selectable.css +10 -0
- data/public/css/black-tie/jquery.ui.slider.css +24 -0
- data/public/css/black-tie/jquery.ui.tabs.css +18 -0
- data/public/css/black-tie/jquery.ui.theme.css +249 -0
- data/public/css/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
- data/public/css/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
- data/public/css/blitzer/images/ui-bg_flat_0_333333_40x100.png +0 -0
- data/public/css/blitzer/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
- data/public/css/blitzer/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
- data/public/css/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
- data/public/css/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
- data/public/css/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
- data/public/css/blitzer/images/ui-icons_004276_256x240.png +0 -0
- data/public/css/blitzer/images/ui-icons_cc0000_256x240.png +0 -0
- data/public/css/blitzer/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/blitzer/jquery-ui.css +565 -0
- data/public/css/blitzer/jquery.ui.accordion.css +19 -0
- data/public/css/blitzer/jquery.ui.all.css +11 -0
- data/public/css/blitzer/jquery.ui.autocomplete.css +53 -0
- data/public/css/blitzer/jquery.ui.base.css +11 -0
- data/public/css/blitzer/jquery.ui.button.css +38 -0
- data/public/css/blitzer/jquery.ui.core.css +38 -0
- data/public/css/blitzer/jquery.ui.datepicker.css +68 -0
- data/public/css/blitzer/jquery.ui.dialog.css +21 -0
- data/public/css/blitzer/jquery.ui.progressbar.css +11 -0
- data/public/css/blitzer/jquery.ui.resizable.css +20 -0
- data/public/css/blitzer/jquery.ui.selectable.css +10 -0
- data/public/css/blitzer/jquery.ui.slider.css +24 -0
- data/public/css/blitzer/jquery.ui.tabs.css +18 -0
- data/public/css/blitzer/jquery.ui.theme.css +249 -0
- data/public/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
- data/public/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
- data/public/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
- data/public/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png +0 -0
- data/public/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
- data/public/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
- data/public/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
- data/public/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
- data/public/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
- data/public/css/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
- data/public/css/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/css/cupertino/images/ui-icons_3d80b3_256x240.png +0 -0
- data/public/css/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
- data/public/css/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/cupertino/jquery-ui.css +565 -0
- data/public/css/cupertino/jquery.ui.accordion.css +19 -0
- data/public/css/cupertino/jquery.ui.all.css +11 -0
- data/public/css/cupertino/jquery.ui.autocomplete.css +53 -0
- data/public/css/cupertino/jquery.ui.base.css +11 -0
- data/public/css/cupertino/jquery.ui.button.css +38 -0
- data/public/css/cupertino/jquery.ui.core.css +38 -0
- data/public/css/cupertino/jquery.ui.datepicker.css +68 -0
- data/public/css/cupertino/jquery.ui.dialog.css +21 -0
- data/public/css/cupertino/jquery.ui.progressbar.css +11 -0
- data/public/css/cupertino/jquery.ui.resizable.css +20 -0
- data/public/css/cupertino/jquery.ui.selectable.css +10 -0
- data/public/css/cupertino/jquery.ui.slider.css +24 -0
- data/public/css/cupertino/jquery.ui.tabs.css +18 -0
- data/public/css/cupertino/jquery.ui.theme.css +249 -0
- data/public/css/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
- data/public/css/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
- data/public/css/dark-hive/images/ui-bg_loop_25_000000_21x21.png +0 -0
- data/public/css/dark-hive/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/dark-hive/images/ui-icons_4b8e0b_256x240.png +0 -0
- data/public/css/dark-hive/images/ui-icons_a83300_256x240.png +0 -0
- data/public/css/dark-hive/images/ui-icons_cccccc_256x240.png +0 -0
- data/public/css/dark-hive/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/dark-hive/jquery-ui.css +565 -0
- data/public/css/dark-hive/jquery.ui.accordion.css +19 -0
- data/public/css/dark-hive/jquery.ui.all.css +11 -0
- data/public/css/dark-hive/jquery.ui.autocomplete.css +53 -0
- data/public/css/dark-hive/jquery.ui.base.css +11 -0
- data/public/css/dark-hive/jquery.ui.button.css +38 -0
- data/public/css/dark-hive/jquery.ui.core.css +38 -0
- data/public/css/dark-hive/jquery.ui.datepicker.css +68 -0
- data/public/css/dark-hive/jquery.ui.dialog.css +21 -0
- data/public/css/dark-hive/jquery.ui.progressbar.css +11 -0
- data/public/css/dark-hive/jquery.ui.resizable.css +20 -0
- data/public/css/dark-hive/jquery.ui.selectable.css +10 -0
- data/public/css/dark-hive/jquery.ui.slider.css +24 -0
- data/public/css/dark-hive/jquery.ui.tabs.css +18 -0
- data/public/css/dark-hive/jquery.ui.theme.css +249 -0
- data/public/css/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
- data/public/css/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
- data/public/css/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png +0 -0
- data/public/css/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
- data/public/css/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png +0 -0
- data/public/css/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/dot-luv/images/ui-bg_flat_40_292929_40x100.png +0 -0
- data/public/css/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
- data/public/css/dot-luv/images/ui-icons_00498f_256x240.png +0 -0
- data/public/css/dot-luv/images/ui-icons_98d2fb_256x240.png +0 -0
- data/public/css/dot-luv/images/ui-icons_9ccdfc_256x240.png +0 -0
- data/public/css/dot-luv/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/dot-luv/jquery-ui.css +565 -0
- data/public/css/dot-luv/jquery.ui.accordion.css +19 -0
- data/public/css/dot-luv/jquery.ui.all.css +11 -0
- data/public/css/dot-luv/jquery.ui.autocomplete.css +53 -0
- data/public/css/dot-luv/jquery.ui.base.css +11 -0
- data/public/css/dot-luv/jquery.ui.button.css +38 -0
- data/public/css/dot-luv/jquery.ui.core.css +38 -0
- data/public/css/dot-luv/jquery.ui.datepicker.css +68 -0
- data/public/css/dot-luv/jquery.ui.dialog.css +21 -0
- data/public/css/dot-luv/jquery.ui.progressbar.css +11 -0
- data/public/css/dot-luv/jquery.ui.resizable.css +20 -0
- data/public/css/dot-luv/jquery.ui.selectable.css +10 -0
- data/public/css/dot-luv/jquery.ui.slider.css +24 -0
- data/public/css/dot-luv/jquery.ui.tabs.css +18 -0
- data/public/css/dot-luv/jquery.ui.theme.css +249 -0
- data/public/css/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_flat_55_994d53_40x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_flat_55_fafafa_40x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png +0 -0
- data/public/css/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png +0 -0
- data/public/css/eggplant/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/eggplant/images/ui-icons_734d99_256x240.png +0 -0
- data/public/css/eggplant/images/ui-icons_8d78a5_256x240.png +0 -0
- data/public/css/eggplant/images/ui-icons_a8a3ae_256x240.png +0 -0
- data/public/css/eggplant/images/ui-icons_ebccce_256x240.png +0 -0
- data/public/css/eggplant/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/eggplant/jquery-ui.css +565 -0
- data/public/css/eggplant/jquery.ui.accordion.css +19 -0
- data/public/css/eggplant/jquery.ui.all.css +11 -0
- data/public/css/eggplant/jquery.ui.autocomplete.css +53 -0
- data/public/css/eggplant/jquery.ui.base.css +11 -0
- data/public/css/eggplant/jquery.ui.button.css +38 -0
- data/public/css/eggplant/jquery.ui.core.css +38 -0
- data/public/css/eggplant/jquery.ui.datepicker.css +68 -0
- data/public/css/eggplant/jquery.ui.dialog.css +21 -0
- data/public/css/eggplant/jquery.ui.progressbar.css +11 -0
- data/public/css/eggplant/jquery.ui.resizable.css +20 -0
- data/public/css/eggplant/jquery.ui.selectable.css +10 -0
- data/public/css/eggplant/jquery.ui.slider.css +24 -0
- data/public/css/eggplant/jquery.ui.tabs.css +18 -0
- data/public/css/eggplant/jquery.ui.theme.css +249 -0
- data/public/css/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png +0 -0
- data/public/css/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png +0 -0
- data/public/css/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png +0 -0
- data/public/css/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png +0 -0
- data/public/css/excite-bike/images/ui-bg_flat_0_e69700_40x100.png +0 -0
- data/public/css/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png +0 -0
- data/public/css/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png +0 -0
- data/public/css/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png +0 -0
- data/public/css/excite-bike/images/ui-icons_0a82eb_256x240.png +0 -0
- data/public/css/excite-bike/images/ui-icons_0b54d5_256x240.png +0 -0
- data/public/css/excite-bike/images/ui-icons_5fa5e3_256x240.png +0 -0
- data/public/css/excite-bike/images/ui-icons_fcdd4a_256x240.png +0 -0
- data/public/css/excite-bike/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/excite-bike/jquery-ui.css +565 -0
- data/public/css/excite-bike/jquery.ui.accordion.css +19 -0
- data/public/css/excite-bike/jquery.ui.all.css +11 -0
- data/public/css/excite-bike/jquery.ui.autocomplete.css +53 -0
- data/public/css/excite-bike/jquery.ui.base.css +11 -0
- data/public/css/excite-bike/jquery.ui.button.css +38 -0
- data/public/css/excite-bike/jquery.ui.core.css +38 -0
- data/public/css/excite-bike/jquery.ui.datepicker.css +68 -0
- data/public/css/excite-bike/jquery.ui.dialog.css +21 -0
- data/public/css/excite-bike/jquery.ui.progressbar.css +11 -0
- data/public/css/excite-bike/jquery.ui.resizable.css +20 -0
- data/public/css/excite-bike/jquery.ui.selectable.css +10 -0
- data/public/css/excite-bike/jquery.ui.slider.css +24 -0
- data/public/css/excite-bike/jquery.ui.tabs.css +18 -0
- data/public/css/excite-bike/jquery.ui.theme.css +249 -0
- data/public/css/flick/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/public/css/flick/images/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/public/css/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/flick/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/public/css/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/public/css/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/public/css/flick/images/ui-icons_0073ea_256x240.png +0 -0
- data/public/css/flick/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/flick/images/ui-icons_666666_256x240.png +0 -0
- data/public/css/flick/images/ui-icons_ff0084_256x240.png +0 -0
- data/public/css/flick/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/flick/jquery-ui.css +565 -0
- data/public/css/flick/jquery.ui.accordion.css +19 -0
- data/public/css/flick/jquery.ui.all.css +11 -0
- data/public/css/flick/jquery.ui.autocomplete.css +53 -0
- data/public/css/flick/jquery.ui.base.css +11 -0
- data/public/css/flick/jquery.ui.button.css +38 -0
- data/public/css/flick/jquery.ui.core.css +38 -0
- data/public/css/flick/jquery.ui.datepicker.css +68 -0
- data/public/css/flick/jquery.ui.dialog.css +21 -0
- data/public/css/flick/jquery.ui.progressbar.css +11 -0
- data/public/css/flick/jquery.ui.resizable.css +20 -0
- data/public/css/flick/jquery.ui.selectable.css +10 -0
- data/public/css/flick/jquery.ui.slider.css +24 -0
- data/public/css/flick/jquery.ui.tabs.css +18 -0
- data/public/css/flick/jquery.ui.theme.css +249 -0
- data/public/css/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_88a206_256x240.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_c02669_256x240.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_e1e463_256x240.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_ffeb33_256x240.png +0 -0
- data/public/css/hot-sneaks/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/hot-sneaks/jquery-ui.css +565 -0
- data/public/css/hot-sneaks/jquery.ui.accordion.css +19 -0
- data/public/css/hot-sneaks/jquery.ui.all.css +11 -0
- data/public/css/hot-sneaks/jquery.ui.autocomplete.css +53 -0
- data/public/css/hot-sneaks/jquery.ui.base.css +11 -0
- data/public/css/hot-sneaks/jquery.ui.button.css +38 -0
- data/public/css/hot-sneaks/jquery.ui.core.css +38 -0
- data/public/css/hot-sneaks/jquery.ui.datepicker.css +68 -0
- data/public/css/hot-sneaks/jquery.ui.dialog.css +21 -0
- data/public/css/hot-sneaks/jquery.ui.progressbar.css +11 -0
- data/public/css/hot-sneaks/jquery.ui.resizable.css +20 -0
- data/public/css/hot-sneaks/jquery.ui.selectable.css +10 -0
- data/public/css/hot-sneaks/jquery.ui.slider.css +24 -0
- data/public/css/hot-sneaks/jquery.ui.tabs.css +18 -0
- data/public/css/hot-sneaks/jquery.ui.theme.css +249 -0
- data/public/css/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
- data/public/css/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
- data/public/css/humanity/images/ui-bg_glass_25_cb842e_1x400.png +0 -0
- data/public/css/humanity/images/ui-bg_glass_70_ede4d4_1x400.png +0 -0
- data/public/css/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
- data/public/css/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
- data/public/css/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
- data/public/css/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
- data/public/css/humanity/images/ui-icons_c47a23_256x240.png +0 -0
- data/public/css/humanity/images/ui-icons_cb672b_256x240.png +0 -0
- data/public/css/humanity/images/ui-icons_f08000_256x240.png +0 -0
- data/public/css/humanity/images/ui-icons_f35f07_256x240.png +0 -0
- data/public/css/humanity/images/ui-icons_ff7519_256x240.png +0 -0
- data/public/css/humanity/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/humanity/jquery-ui.css +565 -0
- data/public/css/humanity/jquery.ui.accordion.css +19 -0
- data/public/css/humanity/jquery.ui.all.css +11 -0
- data/public/css/humanity/jquery.ui.autocomplete.css +53 -0
- data/public/css/humanity/jquery.ui.base.css +11 -0
- data/public/css/humanity/jquery.ui.button.css +38 -0
- data/public/css/humanity/jquery.ui.core.css +38 -0
- data/public/css/humanity/jquery.ui.datepicker.css +68 -0
- data/public/css/humanity/jquery.ui.dialog.css +21 -0
- data/public/css/humanity/jquery.ui.progressbar.css +11 -0
- data/public/css/humanity/jquery.ui.resizable.css +20 -0
- data/public/css/humanity/jquery.ui.selectable.css +10 -0
- data/public/css/humanity/jquery.ui.slider.css +24 -0
- data/public/css/humanity/jquery.ui.tabs.css +18 -0
- data/public/css/humanity/jquery.ui.theme.css +249 -0
- data/public/css/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
- data/public/css/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
- data/public/css/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png +0 -0
- data/public/css/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
- data/public/css/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png +0 -0
- data/public/css/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png +0 -0
- data/public/css/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png +0 -0
- data/public/css/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png +0 -0
- data/public/css/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png +0 -0
- data/public/css/le-frog/images/ui-icons_4eb305_256x240.png +0 -0
- data/public/css/le-frog/images/ui-icons_72b42d_256x240.png +0 -0
- data/public/css/le-frog/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/le-frog/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/le-frog/jquery-ui.css +565 -0
- data/public/css/le-frog/jquery.ui.accordion.css +19 -0
- data/public/css/le-frog/jquery.ui.all.css +11 -0
- data/public/css/le-frog/jquery.ui.autocomplete.css +53 -0
- data/public/css/le-frog/jquery.ui.base.css +11 -0
- data/public/css/le-frog/jquery.ui.button.css +38 -0
- data/public/css/le-frog/jquery.ui.core.css +38 -0
- data/public/css/le-frog/jquery.ui.datepicker.css +68 -0
- data/public/css/le-frog/jquery.ui.dialog.css +21 -0
- data/public/css/le-frog/jquery.ui.progressbar.css +11 -0
- data/public/css/le-frog/jquery.ui.resizable.css +20 -0
- data/public/css/le-frog/jquery.ui.selectable.css +10 -0
- data/public/css/le-frog/jquery.ui.slider.css +24 -0
- data/public/css/le-frog/jquery.ui.tabs.css +18 -0
- data/public/css/le-frog/jquery.ui.theme.css +249 -0
- data/public/css/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png +0 -0
- data/public/css/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png +0 -0
- data/public/css/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png +0 -0
- data/public/css/mint-choc/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/mint-choc/images/ui-icons_9bcc60_256x240.png +0 -0
- data/public/css/mint-choc/images/ui-icons_add978_256x240.png +0 -0
- data/public/css/mint-choc/images/ui-icons_e3ddc9_256x240.png +0 -0
- data/public/css/mint-choc/images/ui-icons_f1fd86_256x240.png +0 -0
- data/public/css/mint-choc/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/mint-choc/jquery-ui.css +565 -0
- data/public/css/mint-choc/jquery.ui.accordion.css +19 -0
- data/public/css/mint-choc/jquery.ui.all.css +11 -0
- data/public/css/mint-choc/jquery.ui.autocomplete.css +53 -0
- data/public/css/mint-choc/jquery.ui.base.css +11 -0
- data/public/css/mint-choc/jquery.ui.button.css +38 -0
- data/public/css/mint-choc/jquery.ui.core.css +38 -0
- data/public/css/mint-choc/jquery.ui.datepicker.css +68 -0
- data/public/css/mint-choc/jquery.ui.dialog.css +21 -0
- data/public/css/mint-choc/jquery.ui.progressbar.css +11 -0
- data/public/css/mint-choc/jquery.ui.resizable.css +20 -0
- data/public/css/mint-choc/jquery.ui.selectable.css +10 -0
- data/public/css/mint-choc/jquery.ui.slider.css +24 -0
- data/public/css/mint-choc/jquery.ui.tabs.css +18 -0
- data/public/css/mint-choc/jquery.ui.theme.css +249 -0
- data/public/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/public/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png +0 -0
- data/public/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png +0 -0
- data/public/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png +0 -0
- data/public/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png +0 -0
- data/public/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png +0 -0
- data/public/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png +0 -0
- data/public/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png +0 -0
- data/public/css/overcast/images/ui-icons_3383bb_256x240.png +0 -0
- data/public/css/overcast/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/overcast/images/ui-icons_70b2e1_256x240.png +0 -0
- data/public/css/overcast/images/ui-icons_999999_256x240.png +0 -0
- data/public/css/overcast/images/ui-icons_fbc856_256x240.png +0 -0
- data/public/css/overcast/jquery-ui.css +565 -0
- data/public/css/overcast/jquery.ui.accordion.css +19 -0
- data/public/css/overcast/jquery.ui.all.css +11 -0
- data/public/css/overcast/jquery.ui.autocomplete.css +53 -0
- data/public/css/overcast/jquery.ui.base.css +11 -0
- data/public/css/overcast/jquery.ui.button.css +38 -0
- data/public/css/overcast/jquery.ui.core.css +38 -0
- data/public/css/overcast/jquery.ui.datepicker.css +68 -0
- data/public/css/overcast/jquery.ui.dialog.css +21 -0
- data/public/css/overcast/jquery.ui.progressbar.css +11 -0
- data/public/css/overcast/jquery.ui.resizable.css +20 -0
- data/public/css/overcast/jquery.ui.selectable.css +10 -0
- data/public/css/overcast/jquery.ui.slider.css +24 -0
- data/public/css/overcast/jquery.ui.tabs.css +18 -0
- data/public/css/overcast/jquery.ui.theme.css +249 -0
- data/public/css/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_3572ac_256x240.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_8c291d_256x240.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_b83400_256x240.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_fbdb93_256x240.png +0 -0
- data/public/css/pepper-grinder/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/pepper-grinder/jquery-ui.css +565 -0
- data/public/css/pepper-grinder/jquery.ui.accordion.css +19 -0
- data/public/css/pepper-grinder/jquery.ui.all.css +11 -0
- data/public/css/pepper-grinder/jquery.ui.autocomplete.css +53 -0
- data/public/css/pepper-grinder/jquery.ui.base.css +11 -0
- data/public/css/pepper-grinder/jquery.ui.button.css +38 -0
- data/public/css/pepper-grinder/jquery.ui.core.css +38 -0
- data/public/css/pepper-grinder/jquery.ui.datepicker.css +68 -0
- data/public/css/pepper-grinder/jquery.ui.dialog.css +21 -0
- data/public/css/pepper-grinder/jquery.ui.progressbar.css +11 -0
- data/public/css/pepper-grinder/jquery.ui.resizable.css +20 -0
- data/public/css/pepper-grinder/jquery.ui.selectable.css +10 -0
- data/public/css/pepper-grinder/jquery.ui.slider.css +24 -0
- data/public/css/pepper-grinder/jquery.ui.tabs.css +18 -0
- data/public/css/pepper-grinder/jquery.ui.theme.css +249 -0
- data/public/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/public/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/public/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/public/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/public/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/public/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/public/css/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/public/css/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/public/css/redmond/jquery-ui.css +565 -0
- data/public/css/redmond/jquery.ui.accordion.css +19 -0
- data/public/css/redmond/jquery.ui.all.css +11 -0
- data/public/css/redmond/jquery.ui.autocomplete.css +53 -0
- data/public/css/redmond/jquery.ui.base.css +11 -0
- data/public/css/redmond/jquery.ui.button.css +38 -0
- data/public/css/redmond/jquery.ui.core.css +38 -0
- data/public/css/redmond/jquery.ui.datepicker.css +68 -0
- data/public/css/redmond/jquery.ui.dialog.css +21 -0
- data/public/css/redmond/jquery.ui.progressbar.css +11 -0
- data/public/css/redmond/jquery.ui.resizable.css +20 -0
- data/public/css/redmond/jquery.ui.selectable.css +10 -0
- data/public/css/redmond/jquery.ui.slider.css +24 -0
- data/public/css/redmond/jquery.ui.tabs.css +18 -0
- data/public/css/redmond/jquery.ui.theme.css +249 -0
- data/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/public/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/public/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/public/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/smoothness/jquery-ui.css +565 -0
- data/public/css/smoothness/jquery.ui.accordion.css +19 -0
- data/public/css/smoothness/jquery.ui.all.css +11 -0
- data/public/css/smoothness/jquery.ui.autocomplete.css +53 -0
- data/public/css/smoothness/jquery.ui.base.css +11 -0
- data/public/css/smoothness/jquery.ui.button.css +38 -0
- data/public/css/smoothness/jquery.ui.core.css +38 -0
- data/public/css/smoothness/jquery.ui.datepicker.css +68 -0
- data/public/css/smoothness/jquery.ui.dialog.css +21 -0
- data/public/css/smoothness/jquery.ui.progressbar.css +11 -0
- data/public/css/smoothness/jquery.ui.resizable.css +20 -0
- data/public/css/smoothness/jquery.ui.selectable.css +10 -0
- data/public/css/smoothness/jquery.ui.slider.css +24 -0
- data/public/css/smoothness/jquery.ui.tabs.css +18 -0
- data/public/css/smoothness/jquery.ui.theme.css +249 -0
- data/public/css/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/public/css/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/public/css/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
- data/public/css/south-street/images/ui-icons_808080_256x240.png +0 -0
- data/public/css/south-street/images/ui-icons_847e71_256x240.png +0 -0
- data/public/css/south-street/images/ui-icons_8dc262_256x240.png +0 -0
- data/public/css/south-street/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/south-street/images/ui-icons_eeeeee_256x240.png +0 -0
- data/public/css/south-street/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/south-street/jquery-ui.css +565 -0
- data/public/css/south-street/jquery.ui.accordion.css +19 -0
- data/public/css/south-street/jquery.ui.all.css +11 -0
- data/public/css/south-street/jquery.ui.autocomplete.css +53 -0
- data/public/css/south-street/jquery.ui.base.css +11 -0
- data/public/css/south-street/jquery.ui.button.css +38 -0
- data/public/css/south-street/jquery.ui.core.css +38 -0
- data/public/css/south-street/jquery.ui.datepicker.css +68 -0
- data/public/css/south-street/jquery.ui.dialog.css +21 -0
- data/public/css/south-street/jquery.ui.progressbar.css +11 -0
- data/public/css/south-street/jquery.ui.resizable.css +20 -0
- data/public/css/south-street/jquery.ui.selectable.css +10 -0
- data/public/css/south-street/jquery.ui.slider.css +24 -0
- data/public/css/south-street/jquery.ui.tabs.css +18 -0
- data/public/css/south-street/jquery.ui.theme.css +249 -0
- data/public/css/start/images/ui-bg_flat_55_999999_40x100.png +0 -0
- data/public/css/start/images/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
- data/public/css/start/images/ui-bg_glass_45_0078ae_1x400.png +0 -0
- data/public/css/start/images/ui-bg_glass_55_f8da4e_1x400.png +0 -0
- data/public/css/start/images/ui-bg_glass_75_79c9ec_1x400.png +0 -0
- data/public/css/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
- data/public/css/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
- data/public/css/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
- data/public/css/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/public/css/start/images/ui-icons_0078ae_256x240.png +0 -0
- data/public/css/start/images/ui-icons_056b93_256x240.png +0 -0
- data/public/css/start/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/public/css/start/images/ui-icons_e0fdff_256x240.png +0 -0
- data/public/css/start/images/ui-icons_f5e175_256x240.png +0 -0
- data/public/css/start/images/ui-icons_f7a50d_256x240.png +0 -0
- data/public/css/start/images/ui-icons_fcd113_256x240.png +0 -0
- data/public/css/start/jquery-ui.css +565 -0
- data/public/css/start/jquery.ui.accordion.css +19 -0
- data/public/css/start/jquery.ui.all.css +11 -0
- data/public/css/start/jquery.ui.autocomplete.css +53 -0
- data/public/css/start/jquery.ui.base.css +11 -0
- data/public/css/start/jquery.ui.button.css +38 -0
- data/public/css/start/jquery.ui.core.css +38 -0
- data/public/css/start/jquery.ui.datepicker.css +68 -0
- data/public/css/start/jquery.ui.dialog.css +21 -0
- data/public/css/start/jquery.ui.progressbar.css +11 -0
- data/public/css/start/jquery.ui.resizable.css +20 -0
- data/public/css/start/jquery.ui.selectable.css +10 -0
- data/public/css/start/jquery.ui.slider.css +24 -0
- data/public/css/start/jquery.ui.tabs.css +18 -0
- data/public/css/start/jquery.ui.theme.css +249 -0
- data/public/css/style.css +190 -0
- data/public/css/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
- data/public/css/sunny/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/public/css/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/public/css/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
- data/public/css/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
- data/public/css/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
- data/public/css/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
- data/public/css/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
- data/public/css/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
- data/public/css/sunny/images/ui-icons_3d3d3d_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_bd7b00_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_d19405_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_eb990f_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_ed9f26_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_fadc7a_256x240.png +0 -0
- data/public/css/sunny/images/ui-icons_ffe180_256x240.png +0 -0
- data/public/css/sunny/jquery-ui.css +565 -0
- data/public/css/sunny/jquery.ui.accordion.css +19 -0
- data/public/css/sunny/jquery.ui.all.css +11 -0
- data/public/css/sunny/jquery.ui.autocomplete.css +53 -0
- data/public/css/sunny/jquery.ui.base.css +11 -0
- data/public/css/sunny/jquery.ui.button.css +38 -0
- data/public/css/sunny/jquery.ui.core.css +38 -0
- data/public/css/sunny/jquery.ui.datepicker.css +68 -0
- data/public/css/sunny/jquery.ui.dialog.css +21 -0
- data/public/css/sunny/jquery.ui.progressbar.css +11 -0
- data/public/css/sunny/jquery.ui.resizable.css +20 -0
- data/public/css/sunny/jquery.ui.selectable.css +10 -0
- data/public/css/sunny/jquery.ui.slider.css +24 -0
- data/public/css/sunny/jquery.ui.tabs.css +18 -0
- data/public/css/sunny/jquery.ui.theme.css +249 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png +0 -0
- data/public/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_070603_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_e9cd86_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_efec9f_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_f2ec64_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png +0 -0
- data/public/css/swanky-purse/images/ui-icons_ff7519_256x240.png +0 -0
- data/public/css/swanky-purse/jquery-ui.css +565 -0
- data/public/css/swanky-purse/jquery.ui.accordion.css +19 -0
- data/public/css/swanky-purse/jquery.ui.all.css +11 -0
- data/public/css/swanky-purse/jquery.ui.autocomplete.css +53 -0
- data/public/css/swanky-purse/jquery.ui.base.css +11 -0
- data/public/css/swanky-purse/jquery.ui.button.css +38 -0
- data/public/css/swanky-purse/jquery.ui.core.css +38 -0
- data/public/css/swanky-purse/jquery.ui.datepicker.css +68 -0
- data/public/css/swanky-purse/jquery.ui.dialog.css +21 -0
- data/public/css/swanky-purse/jquery.ui.progressbar.css +11 -0
- data/public/css/swanky-purse/jquery.ui.resizable.css +20 -0
- data/public/css/swanky-purse/jquery.ui.selectable.css +10 -0
- data/public/css/swanky-purse/jquery.ui.slider.css +24 -0
- data/public/css/swanky-purse/jquery.ui.tabs.css +18 -0
- data/public/css/swanky-purse/jquery.ui.theme.css +249 -0
- data/public/css/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png +0 -0
- data/public/css/trontastic/images/ui-bg_flat_0_303030_40x100.png +0 -0
- data/public/css/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png +0 -0
- data/public/css/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png +0 -0
- data/public/css/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png +0 -0
- data/public/css/trontastic/images/ui-bg_glass_60_000000_1x400.png +0 -0
- data/public/css/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png +0 -0
- data/public/css/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png +0 -0
- data/public/css/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png +0 -0
- data/public/css/trontastic/images/ui-icons_000000_256x240.png +0 -0
- data/public/css/trontastic/images/ui-icons_1f1f1f_256x240.png +0 -0
- data/public/css/trontastic/images/ui-icons_9fda58_256x240.png +0 -0
- data/public/css/trontastic/images/ui-icons_b8ec79_256x240.png +0 -0
- data/public/css/trontastic/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/trontastic/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/trontastic/jquery-ui.css +565 -0
- data/public/css/trontastic/jquery.ui.accordion.css +19 -0
- data/public/css/trontastic/jquery.ui.all.css +11 -0
- data/public/css/trontastic/jquery.ui.autocomplete.css +53 -0
- data/public/css/trontastic/jquery.ui.base.css +11 -0
- data/public/css/trontastic/jquery.ui.button.css +38 -0
- data/public/css/trontastic/jquery.ui.core.css +38 -0
- data/public/css/trontastic/jquery.ui.datepicker.css +68 -0
- data/public/css/trontastic/jquery.ui.dialog.css +21 -0
- data/public/css/trontastic/jquery.ui.progressbar.css +11 -0
- data/public/css/trontastic/jquery.ui.resizable.css +20 -0
- data/public/css/trontastic/jquery.ui.selectable.css +10 -0
- data/public/css/trontastic/jquery.ui.slider.css +24 -0
- data/public/css/trontastic/jquery.ui.tabs.css +18 -0
- data/public/css/trontastic/jquery.ui.theme.css +249 -0
- data/public/css/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_glass_20_555555_1x400.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
- data/public/css/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
- data/public/css/ui-darkness/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/ui-darkness/images/ui-icons_4b8e0b_256x240.png +0 -0
- data/public/css/ui-darkness/images/ui-icons_a83300_256x240.png +0 -0
- data/public/css/ui-darkness/images/ui-icons_cccccc_256x240.png +0 -0
- data/public/css/ui-darkness/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/ui-darkness/jquery-ui.css +565 -0
- data/public/css/ui-darkness/jquery.ui.accordion.css +19 -0
- data/public/css/ui-darkness/jquery.ui.all.css +11 -0
- data/public/css/ui-darkness/jquery.ui.autocomplete.css +53 -0
- data/public/css/ui-darkness/jquery.ui.base.css +11 -0
- data/public/css/ui-darkness/jquery.ui.button.css +38 -0
- data/public/css/ui-darkness/jquery.ui.core.css +38 -0
- data/public/css/ui-darkness/jquery.ui.datepicker.css +68 -0
- data/public/css/ui-darkness/jquery.ui.dialog.css +21 -0
- data/public/css/ui-darkness/jquery.ui.progressbar.css +11 -0
- data/public/css/ui-darkness/jquery.ui.resizable.css +20 -0
- data/public/css/ui-darkness/jquery.ui.selectable.css +10 -0
- data/public/css/ui-darkness/jquery.ui.slider.css +24 -0
- data/public/css/ui-darkness/jquery.ui.tabs.css +18 -0
- data/public/css/ui-darkness/jquery.ui.theme.css +249 -0
- data/public/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/ui-lightness/jquery-ui.css +565 -0
- data/public/css/ui-lightness/jquery.ui.accordion.css +19 -0
- data/public/css/ui-lightness/jquery.ui.all.css +11 -0
- data/public/css/ui-lightness/jquery.ui.autocomplete.css +53 -0
- data/public/css/ui-lightness/jquery.ui.base.css +11 -0
- data/public/css/ui-lightness/jquery.ui.button.css +38 -0
- data/public/css/ui-lightness/jquery.ui.core.css +38 -0
- data/public/css/ui-lightness/jquery.ui.datepicker.css +68 -0
- data/public/css/ui-lightness/jquery.ui.dialog.css +21 -0
- data/public/css/ui-lightness/jquery.ui.progressbar.css +11 -0
- data/public/css/ui-lightness/jquery.ui.resizable.css +20 -0
- data/public/css/ui-lightness/jquery.ui.selectable.css +10 -0
- data/public/css/ui-lightness/jquery.ui.slider.css +24 -0
- data/public/css/ui-lightness/jquery.ui.tabs.css +18 -0
- data/public/css/ui-lightness/jquery.ui.theme.css +249 -0
- data/public/css/vader/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/public/css/vader/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/public/css/vader/images/ui-bg_gloss-wave_16_121212_500x100.png +0 -0
- data/public/css/vader/images/ui-bg_highlight-hard_15_888888_1x100.png +0 -0
- data/public/css/vader/images/ui-bg_highlight-hard_55_555555_1x100.png +0 -0
- data/public/css/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png +0 -0
- data/public/css/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png +0 -0
- data/public/css/vader/images/ui-bg_inset-soft_15_121212_1x100.png +0 -0
- data/public/css/vader/images/ui-icons_666666_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_aaaaaa_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_bbbbbb_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_c98000_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_cccccc_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/css/vader/images/ui-icons_f29a00_256x240.png +0 -0
- data/public/css/vader/jquery-ui.css +565 -0
- data/public/css/vader/jquery.ui.accordion.css +19 -0
- data/public/css/vader/jquery.ui.all.css +11 -0
- data/public/css/vader/jquery.ui.autocomplete.css +53 -0
- data/public/css/vader/jquery.ui.base.css +11 -0
- data/public/css/vader/jquery.ui.button.css +38 -0
- data/public/css/vader/jquery.ui.core.css +38 -0
- data/public/css/vader/jquery.ui.datepicker.css +68 -0
- data/public/css/vader/jquery.ui.dialog.css +21 -0
- data/public/css/vader/jquery.ui.progressbar.css +11 -0
- data/public/css/vader/jquery.ui.resizable.css +20 -0
- data/public/css/vader/jquery.ui.selectable.css +10 -0
- data/public/css/vader/jquery.ui.slider.css +24 -0
- data/public/css/vader/jquery.ui.tabs.css +18 -0
- data/public/css/vader/jquery.ui.theme.css +249 -0
- data/public/images/ui-anim_basic_16x16.gif +0 -0
- data/public/js/autocomplete.js +183 -0
- data/public/js/dictionary.js +93 -0
- data/public/js/index.js +217 -0
- data/public/js/jquery-1.7.1.min.js +4 -0
- data/public/js/jquery-ui-1.8.18.custom.min.js +356 -0
- data/test/helper.rb +30 -0
- data/test/unit/test_activity.rb +287 -0
- data/test/unit/test_application.rb +126 -0
- data/test/unit/test_database.rb +21 -0
- data/test/unit/test_hourglass.rb +9 -0
- data/views/_activity.erb +17 -0
- data/views/_current.erb +19 -0
- data/views/_today.erb +5 -0
- data/views/_week.erb +15 -0
- data/views/form.erb +35 -0
- data/views/index.erb +39 -0
- data/views/layout.erb +21 -0
- data/views/popup.erb +48 -0
- metadata +1012 -0
|
Binary file
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
var activities, tags, projects;
|
|
2
|
+
|
|
3
|
+
function getActivities() {
|
|
4
|
+
$.get('/activities', function(data) {
|
|
5
|
+
var d = new Dictionary();
|
|
6
|
+
$.each(data, function(i, object) {
|
|
7
|
+
d.add(object);
|
|
8
|
+
});
|
|
9
|
+
activities = d;
|
|
10
|
+
}, 'json');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function getTags() {
|
|
14
|
+
$.get('/tags', function(data) {
|
|
15
|
+
var d = new Dictionary();
|
|
16
|
+
$.each(data, function(i, name) {
|
|
17
|
+
d.add(name);
|
|
18
|
+
});
|
|
19
|
+
tags = d;
|
|
20
|
+
}, 'json');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function splitTags(val) {
|
|
24
|
+
return val.split(/,\s*/);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function extractLastTag(term) {
|
|
28
|
+
return splitTags(term).pop();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function getProjects() {
|
|
32
|
+
$.get('/projects', function(data) {
|
|
33
|
+
var d = new Dictionary();
|
|
34
|
+
$.each(data, function(i, name) {
|
|
35
|
+
d.add(name);
|
|
36
|
+
});
|
|
37
|
+
projects = d;
|
|
38
|
+
}, 'json');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
$(function() {
|
|
42
|
+
// these return immediately
|
|
43
|
+
getActivities();
|
|
44
|
+
getTags();
|
|
45
|
+
getProjects();
|
|
46
|
+
|
|
47
|
+
$('input.activity-name').autocomplete({
|
|
48
|
+
minLength: 0,
|
|
49
|
+
delay: 0,
|
|
50
|
+
source: function(request, response) {
|
|
51
|
+
var result = [];
|
|
52
|
+
var parts = request.term.split('@');
|
|
53
|
+
if (parts.length == 2) {
|
|
54
|
+
if (projects != null) {
|
|
55
|
+
var values = projects.match(parts[1]);
|
|
56
|
+
if (values != null) {
|
|
57
|
+
result = values;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (activities != null) {
|
|
63
|
+
var values = activities.match(request.term);
|
|
64
|
+
if (values != null) {
|
|
65
|
+
result = values;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
response(result);
|
|
70
|
+
},
|
|
71
|
+
focus: function(event, ui) {
|
|
72
|
+
var item = ui.item;
|
|
73
|
+
var obj = $(event.target);
|
|
74
|
+
var parts = obj.val().split('@');
|
|
75
|
+
|
|
76
|
+
if (parts.length == 2) {
|
|
77
|
+
/* autocomplete only the project */
|
|
78
|
+
obj.val(parts[0] + '@' + item.value);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
obj.val(item.value);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return false;
|
|
85
|
+
},
|
|
86
|
+
select: function(event, ui) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
$('input.activity-tags')
|
|
92
|
+
// don't navigate away from the field on tab when selecting an item
|
|
93
|
+
.bind("keydown", function(event) {
|
|
94
|
+
if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
}
|
|
97
|
+
})
|
|
98
|
+
.autocomplete({
|
|
99
|
+
minLength: 0,
|
|
100
|
+
delay: 0,
|
|
101
|
+
source: function(request, response) {
|
|
102
|
+
var result = [];
|
|
103
|
+
var term = extractLastTag(request.term);
|
|
104
|
+
if (tags != null) {
|
|
105
|
+
var values = tags.match(term);
|
|
106
|
+
if (values != null) {
|
|
107
|
+
result = values;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
response(result);
|
|
111
|
+
},
|
|
112
|
+
focus: function() {
|
|
113
|
+
// prevent value inserted on focus
|
|
114
|
+
return false;
|
|
115
|
+
},
|
|
116
|
+
select: function(event, ui) {
|
|
117
|
+
var terms = splitTags(this.value);
|
|
118
|
+
|
|
119
|
+
// remove the current input
|
|
120
|
+
terms.pop();
|
|
121
|
+
|
|
122
|
+
// add the selected item
|
|
123
|
+
terms.push(ui.item.value);
|
|
124
|
+
|
|
125
|
+
// add placeholder to get the comma-and-space at the end
|
|
126
|
+
terms.push("");
|
|
127
|
+
|
|
128
|
+
this.value = terms.join(", ");
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
var times = []
|
|
134
|
+
for (var h = 0; h < 24; h++) {
|
|
135
|
+
if (h < 10) {
|
|
136
|
+
times.push('0'+h+':00', '0'+h+':15', '0'+h+':30', '0'+h+':45');
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
times.push(h+':00', h+':15', h+':30', h+':45');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
$('.activity-started-at-date, .activity-ended-at-date').datepicker();
|
|
143
|
+
var timeInputs = $('.activity-started-at-time, .activity-ended-at-time').autocomplete({
|
|
144
|
+
minLength: 0,
|
|
145
|
+
delay: 0,
|
|
146
|
+
source: function(request, response) {
|
|
147
|
+
response(times);
|
|
148
|
+
/* get the closest time and highlight it */
|
|
149
|
+
var parts = request.term.split(":");
|
|
150
|
+
if (parts[1]) {
|
|
151
|
+
var min;
|
|
152
|
+
if (parts[1].length == 1) {
|
|
153
|
+
min = parseInt(parts[1]) * 10;
|
|
154
|
+
}
|
|
155
|
+
else if (parts[1].substr(0, 1) == "0") {
|
|
156
|
+
min = parseInt(parts[1].substr(1, 1));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
min = parseInt(parts[1]);
|
|
160
|
+
}
|
|
161
|
+
min = Math.round(min / 15) * 15;
|
|
162
|
+
|
|
163
|
+
if (min == 0) {
|
|
164
|
+
parts[1] = '00';
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
parts[1] = min;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
parts[1] = '00';
|
|
172
|
+
}
|
|
173
|
+
var target = parts.join(':');
|
|
174
|
+
var index = times.indexOf(target);
|
|
175
|
+
if (index >= 0) {
|
|
176
|
+
this.menu.activate(new $.Event('mouseover'),
|
|
177
|
+
this.menu.element.find('li:nth-child('+(index+1)+')'));
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
}).each(function() {
|
|
181
|
+
$(this).data('autocomplete').menu.element.addClass('activity-time');
|
|
182
|
+
});
|
|
183
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
function Dictionary(attr) {
|
|
2
|
+
this.attr = typeof(attr) == 'undefined' ? null : attr;
|
|
3
|
+
this.entries = {all: []};
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
Dictionary.prototype.getObjectString = function(object) {
|
|
7
|
+
return (this.attr ? object[this.attr] : object).toLowerCase();
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
Dictionary.prototype.add = function(object) {
|
|
11
|
+
var str = this.getObjectString(object);
|
|
12
|
+
return this._add(this.entries, str, 0, object);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/* Recursive method to prevent duplicate items from being added
|
|
16
|
+
*
|
|
17
|
+
* NOTE: This does shallow comparisons, so different objects will always
|
|
18
|
+
* be "different" */
|
|
19
|
+
Dictionary.prototype._add = function(entries, str, index, object) {
|
|
20
|
+
var result;
|
|
21
|
+
if (index < str.length) {
|
|
22
|
+
var c = str.charAt(index);
|
|
23
|
+
if (!entries.hasOwnProperty(c)) {
|
|
24
|
+
entries[c] = {all: []};
|
|
25
|
+
}
|
|
26
|
+
result = this._add(entries[c], str, index + 1, object);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
/* Check to see if we've recorded this value yet. */
|
|
30
|
+
result = (entries.all.indexOf(object) == -1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (result) {
|
|
34
|
+
entries.all.push(object);
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
Dictionary.prototype.remove = function(object) {
|
|
40
|
+
var str = this.getObjectString(object);
|
|
41
|
+
return this._remove(this.entries, str, 0, object);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Same thing as _add, except remove :) */
|
|
45
|
+
/* DO IT! */
|
|
46
|
+
Dictionary.prototype._remove = function(entries, str, index, object) {
|
|
47
|
+
var result;
|
|
48
|
+
if (index < str.length) {
|
|
49
|
+
var c = str.charAt(index);
|
|
50
|
+
if (!entries.hasOwnProperty(c)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
result = this._remove(entries[c], str, index + 1, object);
|
|
55
|
+
if (result) {
|
|
56
|
+
if (entries[c].all.length == 0) {
|
|
57
|
+
/* prune! */
|
|
58
|
+
delete entries[c];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var index = entries.all.indexOf(object);
|
|
62
|
+
entries.all.splice(index, 1);
|
|
63
|
+
}
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
/* Check to see if the value's in the dictionary. */
|
|
69
|
+
var index = entries.all.indexOf(object);
|
|
70
|
+
if (index >= 0) {
|
|
71
|
+
entries.all.splice(index, 1);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
Dictionary.prototype.match = function(str) {
|
|
81
|
+
var cur = this.entries;
|
|
82
|
+
var all = cur.all;
|
|
83
|
+
var str = str.toLowerCase();
|
|
84
|
+
for (var i = 0; i < str.length; i++) {
|
|
85
|
+
var c = str.charAt(i);
|
|
86
|
+
if (!cur.hasOwnProperty(c)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
all = cur[c].all;
|
|
90
|
+
cur = cur[c];
|
|
91
|
+
}
|
|
92
|
+
return all;
|
|
93
|
+
}
|
data/public/js/index.js
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
var buttonWidth = 0;
|
|
2
|
+
|
|
3
|
+
function resizeUI() {
|
|
4
|
+
var h = $(window).height();
|
|
5
|
+
var w = $(window).width();
|
|
6
|
+
var t = $('#tabs');
|
|
7
|
+
var outerH = h - t.offset().top - t.next().outerHeight(true);
|
|
8
|
+
t.outerHeight(outerH);
|
|
9
|
+
|
|
10
|
+
var paneH = t.height() - t.find('.ui-tabs-nav').outerHeight(true);
|
|
11
|
+
t.find('.ui-tabs-panel').outerHeight(paneH);
|
|
12
|
+
}
|
|
13
|
+
function isSameDay(one, two) {
|
|
14
|
+
return one.getFullYear() == two.getFullYear() &&
|
|
15
|
+
one.getMonth() == two.getMonth() &&
|
|
16
|
+
one.getDate() == two.getDate()
|
|
17
|
+
}
|
|
18
|
+
function updateUI(data) {
|
|
19
|
+
$('#current-activity').html(data.current);
|
|
20
|
+
$('.stop-tracking').button().find('span').width(buttonWidth);
|
|
21
|
+
$('#today-tab').html(data.today);
|
|
22
|
+
$('#week-tab').html(data.week);
|
|
23
|
+
|
|
24
|
+
if (typeof(activities) == "object") {
|
|
25
|
+
/* add autocomplete stuff */
|
|
26
|
+
if (data.changes) {
|
|
27
|
+
var c = data.changes;
|
|
28
|
+
if (c.new_activity) {
|
|
29
|
+
activities.add(c.new_activity);
|
|
30
|
+
}
|
|
31
|
+
if (c.new_project) {
|
|
32
|
+
projects.add(c.new_project);
|
|
33
|
+
}
|
|
34
|
+
if (c.new_tags) {
|
|
35
|
+
$.each(c.new_tags, function() {
|
|
36
|
+
tags.add(this);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (c.delete_activity) {
|
|
40
|
+
activities.remove(c.delete_activity);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function millisecondsToWords(num) {
|
|
46
|
+
var total_minutes = Math.floor(num / 60000);
|
|
47
|
+
if (total_minutes == 0) {
|
|
48
|
+
return("0min");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
var minutes = total_minutes % 60;
|
|
52
|
+
var total_hours = Math.floor(total_minutes / 60);
|
|
53
|
+
var hours = total_hours % 24;
|
|
54
|
+
var days = Math.floor(hours / 24);
|
|
55
|
+
|
|
56
|
+
var strings = [];
|
|
57
|
+
if (days > 0) {
|
|
58
|
+
strings.push(days+'d');
|
|
59
|
+
}
|
|
60
|
+
if (hours > 0) {
|
|
61
|
+
strings.push(hours+'h');
|
|
62
|
+
}
|
|
63
|
+
if (minutes > 0) {
|
|
64
|
+
strings.push(minutes+'min');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return(strings.join(" "));
|
|
68
|
+
}
|
|
69
|
+
function updateCurrent() {
|
|
70
|
+
var now = new Date();
|
|
71
|
+
$('.activity-duration.activity-running').each(function() {
|
|
72
|
+
var obj = $(this);
|
|
73
|
+
var startedAt = obj.data('startedAt');
|
|
74
|
+
if (typeof(startedAt) == 'undefined') {
|
|
75
|
+
startedAt = new Date(obj.attr('title'));
|
|
76
|
+
obj.data('startedAt', startedAt);
|
|
77
|
+
}
|
|
78
|
+
var diff = now - startedAt;
|
|
79
|
+
obj.html(millisecondsToWords(diff));
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
$(function() {
|
|
84
|
+
$('#tabs').tabs();
|
|
85
|
+
|
|
86
|
+
$('#new-activity-form').submit(function(e) {
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
|
|
89
|
+
var form = $(this);
|
|
90
|
+
var name = form.find('.activity-name');
|
|
91
|
+
var tags = form.find('.activity-tags');
|
|
92
|
+
var data = {
|
|
93
|
+
'activity[name_with_project]': (name.hasClass('empty') ? "" : name.val()),
|
|
94
|
+
'activity[tag_names]': (tags.hasClass('empty') ? "" : tags.val()),
|
|
95
|
+
'activity[running]': 'true'
|
|
96
|
+
};
|
|
97
|
+
$.post('/activities', data, function(data, status) {
|
|
98
|
+
if (data && !data.errors) {
|
|
99
|
+
updateUI(data);
|
|
100
|
+
form.find('.activity-name').val('').blur();
|
|
101
|
+
form.find('.activity-tags').val('').blur();
|
|
102
|
+
}
|
|
103
|
+
}, 'json');
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
$('#new-activity-form .activity-name').focus(function() {
|
|
107
|
+
var obj = $(this);
|
|
108
|
+
if (obj.val() == "Activity") {
|
|
109
|
+
obj.val('');
|
|
110
|
+
}
|
|
111
|
+
obj.removeClass('empty');
|
|
112
|
+
}).blur(function() {
|
|
113
|
+
var obj = $(this);
|
|
114
|
+
if (!obj.val()) {
|
|
115
|
+
obj.val('Activity');
|
|
116
|
+
obj.addClass('empty');
|
|
117
|
+
}
|
|
118
|
+
}).blur();
|
|
119
|
+
|
|
120
|
+
$('#new-activity-form .activity-tags').focus(function() {
|
|
121
|
+
var obj = $(this);
|
|
122
|
+
if (obj.val() == "Tags") {
|
|
123
|
+
obj.val('');
|
|
124
|
+
}
|
|
125
|
+
obj.removeClass('empty');
|
|
126
|
+
}).blur(function() {
|
|
127
|
+
var obj = $(this);
|
|
128
|
+
if (!obj.val()) {
|
|
129
|
+
obj.val('Tags');
|
|
130
|
+
obj.addClass('empty');
|
|
131
|
+
}
|
|
132
|
+
}).blur();
|
|
133
|
+
|
|
134
|
+
$('#activity-dialog').dialog({
|
|
135
|
+
autoOpen: false,
|
|
136
|
+
width: 'auto',
|
|
137
|
+
title: 'Add earlier activity',
|
|
138
|
+
buttons: {
|
|
139
|
+
"Cancel": function() {
|
|
140
|
+
$(this).dialog('close');
|
|
141
|
+
},
|
|
142
|
+
"Save": function() {
|
|
143
|
+
$(this).find('form').submit();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}).find('form').submit(function(e) {
|
|
147
|
+
e.preventDefault();
|
|
148
|
+
f.parent().dialog('close');
|
|
149
|
+
}).find('input').keydown(function(e) {
|
|
150
|
+
if (e.keyCode == 13) {
|
|
151
|
+
$(this).closest('form').submit();
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
$('.stop-tracking').live('click', function(e) {
|
|
156
|
+
e.preventDefault();
|
|
157
|
+
$.get('/activities/current/stop', function(data) {
|
|
158
|
+
updateUI(data);
|
|
159
|
+
}, 'json')
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
$('#add-earlier-activity').click(function(e) {
|
|
163
|
+
var button = $(this);
|
|
164
|
+
var popup = window.open("/activities/new", '_blank');
|
|
165
|
+
/*
|
|
166
|
+
var popupInterval = setInterval(function() {
|
|
167
|
+
if (popup.closed) {
|
|
168
|
+
clearTimeout(popupInterval);
|
|
169
|
+
button.attr('disabled', false);
|
|
170
|
+
}
|
|
171
|
+
}, 200);
|
|
172
|
+
*/
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
var resizeTimer = null;
|
|
176
|
+
$(window).bind('resize', function() {
|
|
177
|
+
if (resizeTimer) clearTimeout(resizeTimer);
|
|
178
|
+
resizeTimer = setTimeout(resizeUI, 100);
|
|
179
|
+
});
|
|
180
|
+
resizeUI();
|
|
181
|
+
|
|
182
|
+
$('button').button();
|
|
183
|
+
buttonWidth = $('.start-tracking span').width();
|
|
184
|
+
$('.stop-tracking span').width(buttonWidth);
|
|
185
|
+
|
|
186
|
+
$('.activity .ui-icon-pencil').live('click', function(e) {
|
|
187
|
+
var icon = $(this);
|
|
188
|
+
var activityId = icon.closest('.activity').attr('class').match(/activity-(\d+)/)[1];
|
|
189
|
+
var popup = window.open("/activities/" + activityId + "/edit", '_blank');
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
var confirmationDialog = $('#confirmation-dialog').dialog({
|
|
193
|
+
autoOpen: false,
|
|
194
|
+
resizable: false,
|
|
195
|
+
modal: true,
|
|
196
|
+
buttons: {
|
|
197
|
+
"Delete": function() {
|
|
198
|
+
var obj = $(this);
|
|
199
|
+
var activityId = obj.data('activityId');
|
|
200
|
+
$.get("/activities/" + activityId + "/delete", function(data) {
|
|
201
|
+
updateUI(data);
|
|
202
|
+
}, 'json');
|
|
203
|
+
obj.dialog("close");
|
|
204
|
+
},
|
|
205
|
+
Cancel: function() {
|
|
206
|
+
$(this).dialog("close");
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
$('.activity .ui-icon-trash').live('click', function(e) {
|
|
212
|
+
var icon = $(this);
|
|
213
|
+
var activityId = icon.closest('.activity').attr('class').match(/activity-(\d+)/)[1];
|
|
214
|
+
confirmationDialog.data('activityId', activityId).dialog('open'); });
|
|
215
|
+
|
|
216
|
+
var updateInterval = setInterval(updateCurrent, 60000);
|
|
217
|
+
});
|