From a76854c414242793ffbbe6d2e5c42f7204d66a45 Mon Sep 17 00:00:00 2001 From: Matt Barringer Date: Sun, 20 Jan 2013 12:49:25 +0100 Subject: [PATCH] Adding arrival/departure time to the registration form --- .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 182 -> 0 bytes .../images/ui-bg_glass_55_fcf0ba_1x400.png | Bin 0 -> 127 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 124 -> 0 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 123 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 149 -> 0 bytes .../ui-bg_gloss-wave_100_ece8da_500x100.png | Bin 0 -> 2595 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 3457 -> 0 bytes .../ui-bg_highlight-hard_100_f5f3e5_1x100.png | Bin 0 -> 110 bytes .../ui-bg_highlight-hard_100_fafaf4_1x100.png | Bin 0 -> 96 bytes .../ui-bg_highlight-hard_15_459e00_1x100.png | Bin 0 -> 153 bytes .../ui-bg_highlight-hard_95_cccccc_1x100.png | Bin 0 -> 105 bytes .../ui-bg_highlight-soft_25_67b021_1x100.png | Bin 0 -> 124 bytes .../ui-bg_highlight-soft_95_ffedad_1x100.png | Bin 0 -> 130 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 104 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 88 -> 0 bytes .../ui-bg_inset-soft_15_2b2922_1x100.png | Bin 0 -> 119 bytes ...56x240.png => ui-icons_808080_256x240.png} | Bin 4369 -> 4369 bytes ...56x240.png => ui-icons_847e71_256x240.png} | Bin 4369 -> 4369 bytes ...56x240.png => ui-icons_8DC262_256x240.png} | Bin 4369 -> 4369 bytes .../images/images/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes ...56x240.png => ui-icons_eeeeee_256x240.png} | Bin 4369 -> 4369 bytes .../images/images/ui-icons_f9bd01_256x240.png | Bin 5355 -> 0 bytes .../images/images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes app/assets/javascripts/application.js | 1 + .../javascripts/jquery-ui-timepicker-addon.js | 1902 +++++++++++++++++ app/assets/javascripts/osem.js | 13 +- app/assets/stylesheets/application.css | 1 + .../stylesheets/jquery-ui-1.9.2.custom.css | 203 +- .../jquery-ui-timepicker-addon.css | 10 + .../register.html.haml | 4 +- config/initializers/time_formats.rb | 1 + ..._arrival_registrations_date_to_datetime.rb | 11 + db/schema.rb | 6 +- ...ation-986409c25606174904024db627737590.js} | 5 +- ...on-986409c25606174904024db627737590.js.gz} | Bin 115067 -> 123940 bytes ...on-a27f5b2eb07c9d527e71e7faa1f98399.css.gz | Bin 24101 -> 0 bytes ...tion-bcc3d2bf9bcd0688a30ee4cc370479fc.css} | 8 +- ...on-bcc3d2bf9bcd0688a30ee4cc370479fc.css.gz | Bin 0 -> 25694 bytes public/assets/application.css | 8 +- public/assets/application.css.gz | Bin 24049 -> 25642 bytes public/assets/application.js | 5 +- public/assets/application.js.gz | Bin 115067 -> 123940 bytes ...0x100-7d1197a52442bc56fcad60d0390f4b32.png | Bin 180 -> 0 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 0 bytes ...0x100-6bd1905222cab173dc4996f12b7a07cb.png | Bin 182 -> 0 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 182 -> 0 bytes ...1x400-a4f67bf469297b24eec88f4d112ae41b.png | Bin 0 -> 127 bytes .../images/ui-bg_glass_55_fcf0ba_1x400.png | Bin 0 -> 127 bytes ...1x400-d4e12d9ce6e2b20ae0aadf27c8dcd12c.png | Bin 124 -> 0 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 124 -> 0 bytes ...1x400-d1dabcb9501a4ed8c9bfc1b19c966022.png | Bin 123 -> 0 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 123 -> 0 bytes ...1x400-ab58fbcd66af992f067fcbc7c6488996.png | Bin 149 -> 0 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 149 -> 0 bytes ...0x100-a8e979ed48b8dca11987e53ab2ea4af3.png | Bin 0 -> 2595 bytes .../ui-bg_gloss-wave_100_ece8da_500x100.png | Bin 0 -> 2595 bytes ...0x100-b9ac529234515ff4971dee7e7281c14b.png | Bin 3457 -> 0 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 3457 -> 0 bytes ...1x100-a78c00206328c2918bc4afc14127c2ca.png | Bin 0 -> 110 bytes .../ui-bg_highlight-hard_100_f5f3e5_1x100.png | Bin 0 -> 110 bytes ...1x100-d0247d04766a6885cbd5d9c362d9c2b5.png | Bin 0 -> 96 bytes .../ui-bg_highlight-hard_100_fafaf4_1x100.png | Bin 0 -> 96 bytes ...1x100-6af1e83eb2203de895da80d83a25da44.png | Bin 0 -> 153 bytes .../ui-bg_highlight-hard_15_459e00_1x100.png | Bin 0 -> 153 bytes ...1x100-a4b85b21d7efa7357a9ffd2ed5793daf.png | Bin 0 -> 105 bytes .../ui-bg_highlight-hard_95_cccccc_1x100.png | Bin 0 -> 105 bytes ...1x100-222d123a086ded5714ea1ea6fc90336b.png | Bin 0 -> 124 bytes .../ui-bg_highlight-soft_25_67b021_1x100.png | Bin 0 -> 124 bytes ...1x100-b48df7a6ef4088b45e47d8a0d41d95be.png | Bin 0 -> 130 bytes .../ui-bg_highlight-soft_95_ffedad_1x100.png | Bin 0 -> 130 bytes ...1x100-ad5cffb7206618b1667599d7c6c24e00.png | Bin 104 -> 0 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 104 -> 0 bytes ...1x100-9f0c2e70b06a9eaec77d569b25b04d7e.png | Bin 88 -> 0 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 88 -> 0 bytes ...1x100-9f5631700dd0bd99fb6287498f8d23c6.png | Bin 0 -> 119 bytes .../ui-bg_inset-soft_15_2b2922_1x100.png | Bin 0 -> 119 bytes ...6x240-2f9a30594e6475d5f34e3e43d6447b41.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_217bc0_256x240.png | Bin 4369 -> 0 bytes ...6x240-2ea4c160a75c1992daa2eeac86255b99.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes ...6x240-232cd1e8416c1a5e7bbc316084708d2c.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_469bdd_256x240.png | Bin 4369 -> 0 bytes ...6x240-d155be4d851213e810cb13fc5e009fbf.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_6da8d5_256x240.png | Bin 4369 -> 0 bytes ...6x240-a0c69c1f1e3ce6948ad11fa321acf048.png | Bin 0 -> 4369 bytes .../assets/images/ui-icons_808080_256x240.png | Bin 0 -> 4369 bytes ...6x240-a22671b3eb8d881817d5cbfa1bab5063.png | Bin 0 -> 4369 bytes .../assets/images/ui-icons_847e71_256x240.png | Bin 0 -> 4369 bytes ...6x240-8bee7c40b9bae4ba7ce3fd71ba09f887.png | Bin 0 -> 4369 bytes .../assets/images/ui-icons_8DC262_256x240.png | Bin 0 -> 4369 bytes ...6x240-e5dd5fb46ca349d167fbabdcb57e8f7c.png | Bin 4369 -> 0 bytes .../assets/images/ui-icons_d8e7f3_256x240.png | Bin 4369 -> 0 bytes ...6x240-c2379642443800302cea31bed13d686b.png | Bin 0 -> 4369 bytes .../assets/images/ui-icons_eeeeee_256x240.png | Bin 0 -> 4369 bytes ...6x240-08305efda447dd00f0eaf5e34994bc92.png | Bin 5355 -> 0 bytes .../assets/images/ui-icons_f9bd01_256x240.png | Bin 5355 -> 0 bytes ...6x240-72e106fbaa40ef9c0f5f4376620a2a14.png | Bin 0 -> 4369 bytes .../assets/images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes public/assets/manifest.yml | 64 +- 100 files changed, 2156 insertions(+), 86 deletions(-) delete mode 100644 app/assets/images/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 app/assets/images/images/ui-bg_flat_55_fbec88_40x100.png create mode 100644 app/assets/images/images/ui-bg_glass_55_fcf0ba_1x400.png delete mode 100644 app/assets/images/images/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 app/assets/images/images/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 app/assets/images/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 app/assets/images/images/ui-bg_gloss-wave_100_ece8da_500x100.png delete mode 100644 app/assets/images/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-hard_100_fafaf4_1x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-hard_15_459e00_1x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-hard_95_cccccc_1x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-soft_25_67b021_1x100.png create mode 100644 app/assets/images/images/ui-bg_highlight-soft_95_ffedad_1x100.png delete mode 100644 app/assets/images/images/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 app/assets/images/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100644 app/assets/images/images/ui-bg_inset-soft_15_2b2922_1x100.png rename app/assets/images/images/{ui-icons_6da8d5_256x240.png => ui-icons_808080_256x240.png} (91%) rename app/assets/images/images/{ui-icons_217bc0_256x240.png => ui-icons_847e71_256x240.png} (91%) rename app/assets/images/images/{ui-icons_2e83ff_256x240.png => ui-icons_8DC262_256x240.png} (91%) delete mode 100644 app/assets/images/images/ui-icons_d8e7f3_256x240.png rename app/assets/images/images/{ui-icons_469bdd_256x240.png => ui-icons_eeeeee_256x240.png} (91%) delete mode 100644 app/assets/images/images/ui-icons_f9bd01_256x240.png create mode 100644 app/assets/images/images/ui-icons_ffffff_256x240.png create mode 100644 app/assets/javascripts/jquery-ui-timepicker-addon.js create mode 100644 app/assets/stylesheets/jquery-ui-timepicker-addon.css create mode 100644 config/initializers/time_formats.rb create mode 100644 db/migrate/20130120104029_change_arrival_registrations_date_to_datetime.rb rename public/assets/{application-29159c13c2c5ef2fb3368b9d8e2f08a4.js => application-986409c25606174904024db627737590.js} (85%) rename public/assets/{application-29159c13c2c5ef2fb3368b9d8e2f08a4.js.gz => application-986409c25606174904024db627737590.js.gz} (65%) delete mode 100644 public/assets/application-a27f5b2eb07c9d527e71e7faa1f98399.css.gz rename public/assets/{application-a27f5b2eb07c9d527e71e7faa1f98399.css => application-bcc3d2bf9bcd0688a30ee4cc370479fc.css} (81%) create mode 100644 public/assets/application-bcc3d2bf9bcd0688a30ee4cc370479fc.css.gz delete mode 100644 public/assets/images/ui-bg_flat_0_aaaaaa_40x100-7d1197a52442bc56fcad60d0390f4b32.png delete mode 100644 public/assets/images/ui-bg_flat_0_aaaaaa_40x100.png delete mode 100644 public/assets/images/ui-bg_flat_55_fbec88_40x100-6bd1905222cab173dc4996f12b7a07cb.png delete mode 100644 public/assets/images/ui-bg_flat_55_fbec88_40x100.png create mode 100644 public/assets/images/ui-bg_glass_55_fcf0ba_1x400-a4f67bf469297b24eec88f4d112ae41b.png create mode 100644 public/assets/images/ui-bg_glass_55_fcf0ba_1x400.png delete mode 100644 public/assets/images/ui-bg_glass_75_d0e5f5_1x400-d4e12d9ce6e2b20ae0aadf27c8dcd12c.png delete mode 100644 public/assets/images/ui-bg_glass_75_d0e5f5_1x400.png delete mode 100644 public/assets/images/ui-bg_glass_85_dfeffc_1x400-d1dabcb9501a4ed8c9bfc1b19c966022.png delete mode 100644 public/assets/images/ui-bg_glass_85_dfeffc_1x400.png delete mode 100644 public/assets/images/ui-bg_glass_95_fef1ec_1x400-ab58fbcd66af992f067fcbc7c6488996.png delete mode 100644 public/assets/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 public/assets/images/ui-bg_gloss-wave_100_ece8da_500x100-a8e979ed48b8dca11987e53ab2ea4af3.png create mode 100644 public/assets/images/ui-bg_gloss-wave_100_ece8da_500x100.png delete mode 100644 public/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100-b9ac529234515ff4971dee7e7281c14b.png delete mode 100644 public/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100644 public/assets/images/ui-bg_highlight-hard_100_f5f3e5_1x100-a78c00206328c2918bc4afc14127c2ca.png create mode 100644 public/assets/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png create mode 100644 public/assets/images/ui-bg_highlight-hard_100_fafaf4_1x100-d0247d04766a6885cbd5d9c362d9c2b5.png create mode 100644 public/assets/images/ui-bg_highlight-hard_100_fafaf4_1x100.png create mode 100644 public/assets/images/ui-bg_highlight-hard_15_459e00_1x100-6af1e83eb2203de895da80d83a25da44.png create mode 100644 public/assets/images/ui-bg_highlight-hard_15_459e00_1x100.png create mode 100644 public/assets/images/ui-bg_highlight-hard_95_cccccc_1x100-a4b85b21d7efa7357a9ffd2ed5793daf.png create mode 100644 public/assets/images/ui-bg_highlight-hard_95_cccccc_1x100.png create mode 100644 public/assets/images/ui-bg_highlight-soft_25_67b021_1x100-222d123a086ded5714ea1ea6fc90336b.png create mode 100644 public/assets/images/ui-bg_highlight-soft_25_67b021_1x100.png create mode 100644 public/assets/images/ui-bg_highlight-soft_95_ffedad_1x100-b48df7a6ef4088b45e47d8a0d41d95be.png create mode 100644 public/assets/images/ui-bg_highlight-soft_95_ffedad_1x100.png delete mode 100644 public/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100-ad5cffb7206618b1667599d7c6c24e00.png delete mode 100644 public/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png delete mode 100644 public/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100-9f0c2e70b06a9eaec77d569b25b04d7e.png delete mode 100644 public/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100644 public/assets/images/ui-bg_inset-soft_15_2b2922_1x100-9f5631700dd0bd99fb6287498f8d23c6.png create mode 100644 public/assets/images/ui-bg_inset-soft_15_2b2922_1x100.png delete mode 100644 public/assets/images/ui-icons_217bc0_256x240-2f9a30594e6475d5f34e3e43d6447b41.png delete mode 100644 public/assets/images/ui-icons_217bc0_256x240.png delete mode 100644 public/assets/images/ui-icons_2e83ff_256x240-2ea4c160a75c1992daa2eeac86255b99.png delete mode 100644 public/assets/images/ui-icons_2e83ff_256x240.png delete mode 100644 public/assets/images/ui-icons_469bdd_256x240-232cd1e8416c1a5e7bbc316084708d2c.png delete mode 100644 public/assets/images/ui-icons_469bdd_256x240.png delete mode 100644 public/assets/images/ui-icons_6da8d5_256x240-d155be4d851213e810cb13fc5e009fbf.png delete mode 100644 public/assets/images/ui-icons_6da8d5_256x240.png create mode 100644 public/assets/images/ui-icons_808080_256x240-a0c69c1f1e3ce6948ad11fa321acf048.png create mode 100644 public/assets/images/ui-icons_808080_256x240.png create mode 100644 public/assets/images/ui-icons_847e71_256x240-a22671b3eb8d881817d5cbfa1bab5063.png create mode 100644 public/assets/images/ui-icons_847e71_256x240.png create mode 100644 public/assets/images/ui-icons_8DC262_256x240-8bee7c40b9bae4ba7ce3fd71ba09f887.png create mode 100644 public/assets/images/ui-icons_8DC262_256x240.png delete mode 100644 public/assets/images/ui-icons_d8e7f3_256x240-e5dd5fb46ca349d167fbabdcb57e8f7c.png delete mode 100644 public/assets/images/ui-icons_d8e7f3_256x240.png create mode 100644 public/assets/images/ui-icons_eeeeee_256x240-c2379642443800302cea31bed13d686b.png create mode 100644 public/assets/images/ui-icons_eeeeee_256x240.png delete mode 100644 public/assets/images/ui-icons_f9bd01_256x240-08305efda447dd00f0eaf5e34994bc92.png delete mode 100644 public/assets/images/ui-icons_f9bd01_256x240.png create mode 100644 public/assets/images/ui-icons_ffffff_256x240-72e106fbaa40ef9c0f5f4376620a2a14.png create mode 100644 public/assets/images/ui-icons_ffffff_256x240.png diff --git a/app/assets/images/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/images/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 diff --git a/app/assets/images/images/ui-bg_flat_55_fbec88_40x100.png b/app/assets/images/images/ui-bg_flat_55_fbec88_40x100.png deleted file mode 100644 index 47acaadd737478ddb090f47f618810712163317b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA993)+ za~~)OO5|O5sDCi_{N8&XlRv*c;OQ6|AR59NN?mFzWBXJVGojypu|S6~c)I$ztaD0e F0syyrGF|`x diff --git a/app/assets/images/images/ui-bg_glass_55_fcf0ba_1x400.png b/app/assets/images/images/ui-bg_glass_55_fcf0ba_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a95fa334ed460cfae0f7be46c622558969a120a9 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq})7R978O6-<~(*I$*%#d{O`D zKlamwPS-`s3%9*%UG!A3*P=#+E1{@pF!m*t^JZyLz>j b4~LkYGkNYge|6CZn#kbk>gTe~DWM4fRyitb literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_glass_75_d0e5f5_1x400.png b/app/assets/images/images/ui-bg_glass_75_d0e5f5_1x400.png deleted file mode 100644 index 9fb564f8d0a117f17aa6b844490309dadbd94821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|on978O6-=0_GYj6;7zWBfT zzjhI`OjAO{6(N>+Em!s|xjZW|^1EO|(5d{JeUmv{p6fa-GJh;t>KCH4`R~7(L8qj} Y_egNRQF(If70@^aPgg&ebxsLQ0Qgob)Bpeg diff --git a/app/assets/images/images/ui-bg_glass_85_dfeffc_1x400.png b/app/assets/images/images/ui-bg_glass_85_dfeffc_1x400.png deleted file mode 100644 index 014951529c315d6042e72febc310a4d2db5b4a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq?|lm978O6-<~(*YA_IRxoBVf zfAX@vsV!R#l$@#*eLnw)_Sv|_?i7P!ORnX)SxaXh+BPpZ!Fw~yjr&#G|Jw^YMHDhV X&EsZx`7bsSXc~j3tDnm{r-UW|&(SK+ diff --git a/app/assets/images/images/ui-bg_glass_95_fef1ec_1x400.png b/app/assets/images/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 8f28bc99ce22db960f2fd75640c290a6b85d935f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 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 J71qAr`~kJp2q6Ff literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png b/app/assets/images/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png deleted file mode 100644 index 81ecc362d50ef5abbc0420aacd5345822f1f6098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3457 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 J%Q~loCIAYFA?*MF literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_highlight-hard_100_fafaf4_1x100.png b/app/assets/images/images/ui-bg_highlight-hard_100_fafaf4_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc39c676c1a0cd4e53ad9cad0d66f47cadae4af GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)9&jV~E7myC*hsGB9u)Iq=}0 v@M-5arOdOHTbAfHOt0{I&#W2yUYA+9gm2w4kyYz}S{OWC{an^LB{Ts5Qmh-C literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_highlight-hard_15_459e00_1x100.png b/app/assets/images/images/ui-bg_highlight-hard_15_459e00_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..677a9020a8ac0d6714384a18af24953e2b1f9fe6 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3Ja)XlH!`auPgU9780gZtXYZI_$v1(q8LQ z_e}p+z2b!8HIvO+?@GuVPQ2u^&{bLY@}CV1ejiV^MeR8k%uvU5s`cJSm%T{^-=+34 zx$0${WtHUTdM6{_o*Uv9qH^k0b!+akKfl@CYZ&)%nR#}x-&zf{i^0>?&t;ucLK6UJ Ck~V?> literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_highlight-hard_95_cccccc_1x100.png b/app/assets/images/images/ui-bg_highlight-hard_95_cccccc_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..ca80bffc64e4aed87a021b53260373ae22f0f175 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l!2#w literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_highlight-soft_25_67b021_1x100.png b/app/assets/images/images/ui-bg_highlight-soft_25_67b021_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..51773351978c84da7955422db14ae3c90b4f9b61 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(VOcV~E7mtNj~!8yo}<`?w_= zs3mWk!DRcQnrq+2NgBI?EzaF#&}oTk5^Buoob7yf!W2JA|JF%Xkp(ez^$+B~)%9>+ Xi!%M!VJE@@G>*a3)z4*}Q$iB}AxI}% literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_highlight-soft_95_ffedad_1x100.png b/app/assets/images/images/ui-bg_highlight-soft_95_ffedad_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..12686a5a9cd498c20d82f5d00b103f48b49b81ad GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l&7bQV~E7mtNjN#4>$-gx&MA| zQ2S(R^yeLWmoy%j*ssvnbfxkLgT0XE3=uyr=S0CdJ$y^Dv|lw&_g#1NnIG1$ edhh;Ur(>R!s2k7y^J)^%PzFy|KbLh*2~7a@3oX9@ literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/app/assets/images/images/ui-bg_inset-hard_100_f5f8f9_1x100.png deleted file mode 100644 index 4f3faf8aa8b1054ef1b18b80ab58f670b406a794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT diff --git a/app/assets/images/images/ui-bg_inset-soft_15_2b2922_1x100.png b/app/assets/images/images/ui-bg_inset-soft_15_2b2922_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..8568394c6728273ad913200e4ba74c3ee8723794 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%1!GV~E7myZyU)4=9Knc_XbF zd*t6|$IlK;eOf_Muj|fUytkbFL3;qV!bM%}l$AHt6g4I$+o)?S)c^hSsx(jiapvNV T6s_YxlNdZ*{an^LB{Ts5?W`w^ literal 0 HcmV?d00001 diff --git a/app/assets/images/images/ui-icons_6da8d5_256x240.png b/app/assets/images/images/ui-icons_808080_256x240.png similarity index 91% rename from app/assets/images/images/ui-icons_6da8d5_256x240.png rename to app/assets/images/images/ui-icons_808080_256x240.png index 9f3eafaab0f048da81e1e072c3091282742c4980..69ba6d81a0e807f9190e3e780ce3ce70d6c1e8a6 100644 GIT binary patch delta 267 tcmbQJG*M}SW_?Rj%Rr)f`dXjwf2@&#fx)jN$S;^dLcoY+vpVA|egJzbf}j8Z delta 267 tcmbQJG*M}SW_`}8D+7t@>1)06?uI-D1_r;9AirP+2>~OP&FYM=_yM>+pa%c| diff --git a/app/assets/images/images/ui-icons_217bc0_256x240.png b/app/assets/images/images/ui-icons_847e71_256x240.png similarity index 91% rename from app/assets/images/images/ui-icons_217bc0_256x240.png rename to app/assets/images/images/ui-icons_847e71_256x240.png index 6f4bd87c041453ef037c4a9a1a698f0105d02eba..b20c322060f8c59faea3d9396482aae058168d9d 100644 GIT binary patch delta 267 tcmbQJG*M}SW_?Rt$v~od`dUBP#dQ?}1A|{lkY6x^gn$vtW_89_`~VS>d^G?7 delta 267 ucmbQJG*M}SX1z+)k%2_@^tJxp*_@9I3=DoHL4Lsu5&}jno7EX#@dE&hB6mvw diff --git a/app/assets/images/images/ui-icons_2e83ff_256x240.png b/app/assets/images/images/ui-icons_8DC262_256x240.png similarity index 91% rename from app/assets/images/images/ui-icons_2e83ff_256x240.png rename to app/assets/images/images/ui-icons_8DC262_256x240.png index 09d1cdc856c292c4ab6dd818c7543ac0828bd616..004295757fa25c1f7fbe44bb111ba8fa972e8f22 100644 GIT binary patch delta 267 tcmbQJG*M}SW_{10lz~L`^tIlUzgM1tfx)jN$S;^dLcoY+vpVA|egH)VjpG0S delta 267 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 diff --git a/app/assets/images/images/ui-icons_469bdd_256x240.png b/app/assets/images/images/ui-icons_eeeeee_256x240.png similarity index 91% rename from app/assets/images/images/ui-icons_469bdd_256x240.png rename to app/assets/images/images/ui-icons_eeeeee_256x240.png index bd2cf079add1ca236adeb509698adabbffb08acb..01bb36ba7668a4a9e181f4af7ad89dcf1fe3022d 100644 GIT binary patch delta 267 ucmbQJG*M}SX8oIYZw3<8)7N^njBkky3=DoHL4Lsu5&}jno7EX#@dE&5aO4C4 delta 267 ucmbQJG*M}SX1&X-I|GU8>1+L|h02Q<7#RFYg8YIRBm|6DHmftf;s*eME|Hr6 diff --git a/app/assets/images/images/ui-icons_f9bd01_256x240.png b/app/assets/images/images/ui-icons_f9bd01_256x240.png deleted file mode 100644 index c7c53cb11904843e176e4ce1f4e7247cd90b3590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5355 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 literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 3dbfef84..70918676 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -14,6 +14,7 @@ //= require jquery_ujs //= require jquery-ui //= require jquery-fileupload +//= require jquery-ui-timepicker-addon //= require cocoon //= require bootstrap.min //= require osem diff --git a/app/assets/javascripts/jquery-ui-timepicker-addon.js b/app/assets/javascripts/jquery-ui-timepicker-addon.js new file mode 100644 index 00000000..1bc8d53b --- /dev/null +++ b/app/assets/javascripts/jquery-ui-timepicker-addon.js @@ -0,0 +1,1902 @@ +/* + * jQuery timepicker addon + * By: Trent Richardson [http://trentrichardson.com] + * Version 1.1.2 + * Last Modified: 01/19/2013 + * + * Copyright 2012 Trent Richardson + * You may use this project under MIT or GPL licenses. + * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt + * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt + */ + +/*jslint evil: true, white: false, undef: false, nomen: false */ + +(function($) { + + /* + * Lets not redefine timepicker, Prevent "Uncaught RangeError: Maximum call stack size exceeded" + */ + $.ui.timepicker = $.ui.timepicker || {}; + if ($.ui.timepicker.version) { + return; + } + + /* + * Extend jQueryUI, get it started with our version number + */ + $.extend($.ui, { + timepicker: { + version: "1.1.2" + } + }); + + /* + * Timepicker manager. + * Use the singleton instance of this class, $.timepicker, to interact with the time picker. + * Settings for (groups of) time pickers are maintained in an instance object, + * allowing multiple different settings on the same page. + */ + function Timepicker() { + this.regional = []; // Available regional settings, indexed by language code + this.regional[''] = { // Default regional settings + currentText: 'Now', + closeText: 'Done', + amNames: ['AM', 'A'], + pmNames: ['PM', 'P'], + timeFormat: 'HH:mm', + timeSuffix: '', + timeOnlyTitle: 'Choose Time', + timeText: 'Time', + hourText: 'Hour', + minuteText: 'Minute', + secondText: 'Second', + millisecText: 'Millisecond', + timezoneText: 'Time Zone', + isRTL: false + }; + this._defaults = { // Global defaults for all the datetime picker instances + showButtonPanel: true, + timeOnly: false, + showHour: true, + showMinute: true, + showSecond: false, + showMillisec: false, + showTimezone: false, + showTime: true, + stepHour: 1, + stepMinute: 1, + stepSecond: 1, + stepMillisec: 1, + hour: 0, + minute: 0, + second: 0, + millisec: 0, + timezone: null, + useLocalTimezone: false, + defaultTimezone: "+0000", + hourMin: 0, + minuteMin: 0, + secondMin: 0, + millisecMin: 0, + hourMax: 23, + minuteMax: 59, + secondMax: 59, + millisecMax: 999, + minDateTime: null, + maxDateTime: null, + onSelect: null, + hourGrid: 0, + minuteGrid: 0, + secondGrid: 0, + millisecGrid: 0, + alwaysSetTime: true, + separator: ' ', + altFieldTimeOnly: true, + altTimeFormat: null, + altSeparator: null, + altTimeSuffix: null, + pickerTimeFormat: null, + pickerTimeSuffix: null, + showTimepicker: true, + timezoneIso8601: false, + timezoneList: null, + addSliderAccess: false, + sliderAccessArgs: null, + controlType: 'slider', + defaultValue: null, + parse: 'strict' + }; + $.extend(this._defaults, this.regional['']); + } + + $.extend(Timepicker.prototype, { + $input: null, + $altInput: null, + $timeObj: null, + inst: null, + hour_slider: null, + minute_slider: null, + second_slider: null, + millisec_slider: null, + timezone_select: null, + hour: 0, + minute: 0, + second: 0, + millisec: 0, + timezone: null, + defaultTimezone: "+0000", + hourMinOriginal: null, + minuteMinOriginal: null, + secondMinOriginal: null, + millisecMinOriginal: null, + hourMaxOriginal: null, + minuteMaxOriginal: null, + secondMaxOriginal: null, + millisecMaxOriginal: null, + ampm: '', + formattedDate: '', + formattedTime: '', + formattedDateTime: '', + timezoneList: null, + units: ['hour','minute','second','millisec'], + control: null, + + /* + * Override the default settings for all instances of the time picker. + * @param settings object - the new settings to use as defaults (anonymous object) + * @return the manager object + */ + setDefaults: function(settings) { + extendRemove(this._defaults, settings || {}); + return this; + }, + + /* + * Create a new Timepicker instance + */ + _newInst: function($input, o) { + var tp_inst = new Timepicker(), + inlineSettings = {}, + fns = {}, + overrides, i; + + for (var attrName in this._defaults) { + if(this._defaults.hasOwnProperty(attrName)){ + var attrValue = $input.attr('time:' + attrName); + if (attrValue) { + try { + inlineSettings[attrName] = eval(attrValue); + } catch (err) { + inlineSettings[attrName] = attrValue; + } + } + } + } + overrides = { + beforeShow: function (input, dp_inst) { + if ($.isFunction(tp_inst._defaults.evnts.beforeShow)) { + return tp_inst._defaults.evnts.beforeShow.call($input[0], input, dp_inst, tp_inst); + } + }, + onChangeMonthYear: function (year, month, dp_inst) { + // Update the time as well : this prevents the time from disappearing from the $input field. + tp_inst._updateDateTime(dp_inst); + if ($.isFunction(tp_inst._defaults.evnts.onChangeMonthYear)) { + tp_inst._defaults.evnts.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst); + } + }, + onClose: function (dateText, dp_inst) { + if (tp_inst.timeDefined === true && $input.val() !== '') { + tp_inst._updateDateTime(dp_inst); + } + if ($.isFunction(tp_inst._defaults.evnts.onClose)) { + tp_inst._defaults.evnts.onClose.call($input[0], dateText, dp_inst, tp_inst); + } + } + }; + for (i in overrides) { + if (overrides.hasOwnProperty(i)) { + fns[i] = o[i] || null; + } + } + tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, overrides, { + evnts:fns, + timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker'); + }); + tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { + return val.toUpperCase(); + }); + tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { + return val.toUpperCase(); + }); + + // controlType is string - key to our this._controls + if(typeof(tp_inst._defaults.controlType) === 'string'){ + if($.fn[tp_inst._defaults.controlType] === undefined){ + tp_inst._defaults.controlType = 'select'; + } + tp_inst.control = tp_inst._controls[tp_inst._defaults.controlType]; + } + // controlType is an object and must implement create, options, value methods + else{ + tp_inst.control = tp_inst._defaults.controlType; + } + + if (tp_inst._defaults.timezoneList === null) { + var timezoneList = ['-1200', '-1100', '-1000', '-0930', '-0900', '-0800', '-0700', '-0600', '-0500', '-0430', '-0400', '-0330', '-0300', '-0200', '-0100', '+0000', + '+0100', '+0200', '+0300', '+0330', '+0400', '+0430', '+0500', '+0530', '+0545', '+0600', '+0630', '+0700', '+0800', '+0845', '+0900', '+0930', + '+1000', '+1030', '+1100', '+1130', '+1200', '+1245', '+1300', '+1400']; + + if (tp_inst._defaults.timezoneIso8601) { + timezoneList = $.map(timezoneList, function(val) { + return val == '+0000' ? 'Z' : (val.substring(0, 3) + ':' + val.substring(3)); + }); + } + tp_inst._defaults.timezoneList = timezoneList; + } + + tp_inst.timezone = tp_inst._defaults.timezone; + tp_inst.hour = tp_inst._defaults.hour < tp_inst._defaults.hourMin? tp_inst._defaults.hourMin : + tp_inst._defaults.hour > tp_inst._defaults.hourMax? tp_inst._defaults.hourMax : tp_inst._defaults.hour; + tp_inst.minute = tp_inst._defaults.minute < tp_inst._defaults.minuteMin? tp_inst._defaults.minuteMin : + tp_inst._defaults.minute > tp_inst._defaults.minuteMax? tp_inst._defaults.minuteMax : tp_inst._defaults.minute; + tp_inst.second = tp_inst._defaults.second < tp_inst._defaults.secondMin? tp_inst._defaults.secondMin : + tp_inst._defaults.second > tp_inst._defaults.secondMax? tp_inst._defaults.secondMax : tp_inst._defaults.second; + tp_inst.millisec = tp_inst._defaults.millisec < tp_inst._defaults.millisecMin? tp_inst._defaults.millisecMin : + tp_inst._defaults.millisec > tp_inst._defaults.millisecMax? tp_inst._defaults.millisecMax : tp_inst._defaults.millisec; + tp_inst.ampm = ''; + tp_inst.$input = $input; + + if (o.altField) { + tp_inst.$altInput = $(o.altField).css({ + cursor: 'pointer' + }).focus(function() { + $input.trigger("focus"); + }); + } + + if (tp_inst._defaults.minDate === 0 || tp_inst._defaults.minDateTime === 0) { + tp_inst._defaults.minDate = new Date(); + } + if (tp_inst._defaults.maxDate === 0 || tp_inst._defaults.maxDateTime === 0) { + tp_inst._defaults.maxDate = new Date(); + } + + // datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime.. + if (tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date) { + tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime()); + } + if (tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date) { + tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime()); + } + if (tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date) { + tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime()); + } + if (tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date) { + tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime()); + } + tp_inst.$input.bind('focus', function() { + tp_inst._onFocus(); + }); + + return tp_inst; + }, + + /* + * add our sliders to the calendar + */ + _addTimePicker: function(dp_inst) { + var currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ? this.$input.val() + ' ' + this.$altInput.val() : this.$input.val(); + + this.timeDefined = this._parseTime(currDT); + this._limitMinMaxDateTime(dp_inst, false); + this._injectTimePicker(); + }, + + /* + * parse the time string from input value or _setTime + */ + _parseTime: function(timeString, withDate) { + if (!this.inst) { + this.inst = $.datepicker._getInst(this.$input[0]); + } + + if (withDate || !this._defaults.timeOnly) { + var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat'); + try { + var parseRes = parseDateTimeInternal(dp_dateFormat, this._defaults.timeFormat, timeString, $.datepicker._getFormatConfig(this.inst), this._defaults); + if (!parseRes.timeObj) { + return false; + } + $.extend(this, parseRes.timeObj); + } catch (err) { + $.datepicker.log("Error parsing the date/time string: " + err + + "\ndate/time string = " + timeString + + "\ntimeFormat = " + this._defaults.timeFormat + + "\ndateFormat = " + dp_dateFormat); + return false; + } + return true; + } else { + var timeObj = $.datepicker.parseTime(this._defaults.timeFormat, timeString, this._defaults); + if (!timeObj) { + return false; + } + $.extend(this, timeObj); + return true; + } + }, + + /* + * generate and inject html for timepicker into ui datepicker + */ + _injectTimePicker: function() { + var $dp = this.inst.dpDiv, + o = this.inst.settings, + tp_inst = this, + litem = '', + uitem = '', + max = {}, + gridSize = {}, + size = null; + + // Prevent displaying twice + if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) { + var noDisplay = ' style="display:none;"', + html = '
' + '
' + o.timeText + '
' + + '
'; + + // Create the markup + for(var i=0,l=this.units.length; i' + o[litem +'Text'] + '' + + '
'; + + if (o['show'+uitem] && o[litem+'Grid'] > 0) { + html += '
'; + + if(litem == 'hour'){ + for (var h = o[litem+'Min']; h <= max[litem]; h += parseInt(o[litem+'Grid'], 10)) { + gridSize[litem]++; + var tmph = $.datepicker.formatTime(useAmpm(o.pickerTimeFormat || o.timeFormat)? 'hht':'HH', {hour:h}, o); + html += ''; + } + } + else{ + for (var m = o[litem+'Min']; m <= max[litem]; m += parseInt(o[litem+'Grid'], 10)) { + gridSize[litem]++; + html += ''; + } + } + + html += '
' + tmph + '' + ((m < 10) ? '0' : '') + m + '
'; + } + html += '
'; + } + + // Timezone + html += '
' + o.timezoneText + '
'; + html += '
'; + + // Create the elements from string + html += '
'; + var $tp = $(html); + + // if we only want time picker... + if (o.timeOnly === true) { + $tp.prepend('
' + '
' + o.timeOnlyTitle + '
' + '
'); + $dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide(); + } + + // add sliders, adjust grids, add events + for(var i=0,l=tp_inst.units.length; i 0) { + size = 100 * gridSize[litem] * o[litem+'Grid'] / (max[litem] - o[litem+'Min']); + $tp.find('.ui_tpicker_'+litem+' table').css({ + width: size + "%", + marginLeft: o.isRTL? '0' : ((size / (-2 * gridSize[litem])) + "%"), + marginRight: o.isRTL? ((size / (-2 * gridSize[litem])) + "%") : '0', + borderCollapse: 'collapse' + }).find("td").click(function(e){ + var $t = $(this), + h = $t.html(), + n = parseInt(h.replace(/[^0-9]/g),10), + ap = h.replace(/[^apm]/ig), + f = $t.data('for'); // loses scope, so we use data-for + + if(f == 'hour'){ + if(ap.indexOf('p') !== -1 && n < 12){ + n += 12; + } + else{ + if(ap.indexOf('a') !== -1 && n === 12){ + n = 0; + } + } + } + + tp_inst.control.value(tp_inst, tp_inst[f+'_slider'], litem, n); + + tp_inst._onTimeChange(); + tp_inst._onSelectHandler(); + }) + .css({ + cursor: 'pointer', + width: (100 / gridSize[litem]) + '%', + textAlign: 'center', + overflow: 'hidden' + }); + } // end if grid > 0 + } // end for loop + + // Add timezone options + this.timezone_select = $tp.find('.ui_tpicker_timezone').append('').find("select"); + $.fn.append.apply(this.timezone_select, + $.map(o.timezoneList, function(val, idx) { + return $("