inline_forms 7.0.4 → 7.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +7 -0
- data/CHANGELOG.md +163 -0
- data/app/assets/fonts/foundation-icons.svg +970 -0
- data/app/assets/fonts/foundation-icons.ttf +0 -0
- data/app/assets/fonts/foundation-icons.woff +0 -0
- data/app/assets/images/jquery-ui/animated-overlay.gif +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_25_c5ddfc_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_40_db4865_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_262626_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_93c3cd_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_50_ff3853_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-small_75_ccd232_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_20_e69700_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_22_1484e6_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_26_2293f7_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_8_333333_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diagonals-thick_95_ffdc2e_40x40.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_10_4f4221_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_20_372806_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_25_675423_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_25_d5ac5d_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_8_261803_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_diamond_8_443113_10x8.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-medium_80_ffff38_4x4.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-small_20_333333_2x2.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-small_35_35414f_2x2.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-small_40_00498f_2x2.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_303030_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_333333_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_4c4c4c_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_e69700_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_e6b900_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_30_cccccc_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_40_292929_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_994d53_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_999999_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_c0402a_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_eeeeee_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_fafafa_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_65_ffffff_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_75_ba9217_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_75_ddd4b0_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_100_f8f8f8_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_15_5f391b_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_20_555555_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_25_cb842e_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_35_dddddd_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_40_0078a3_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_40_0a0a0a_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_40_111111_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_40_ffc73d_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_45_0078ae_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_50_3baae3_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_1c1c1c_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_f1fbe5_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_f8da4e_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_60_000000_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_60_eeeeee_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_70_ede4d4_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_79c9ec_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_16_121212_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_20_1c160d_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_25_453326_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_3d3644_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_30_44372c_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_000000_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_85_9fda58_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_gloss-wave_95_f6ecd5_500x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_15_888888_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_20_0972a5_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_30_285c00_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_40_aaaaaa_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_55_555555_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_dcd9de_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eae6ea_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_f9f9f9_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_201913_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_20_619226_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_30273a_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_003147_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_33_3a8104_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_222222_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_35_adadad_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_44_444444_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_45_5f5964_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_4eb305_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_aaaaaa_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_4ca20b_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_60_dddddd_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_eeeeee_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_45_cd0a0a_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_55_ffeb80_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-hard_75_999999_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_201913_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_10_285c00_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_121212_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_25_000000_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_inset-soft_50_c9c9c9_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_loop_25_000000_21x21.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_white-lines_85_f7f7ba_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_000000_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_004276_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_00498f_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_0078ae_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_056b93_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_070603_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_0a82eb_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_0b54d5_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_1f1f1f_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_217bc0_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_2694e8_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_3383bb_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_3572ac_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_3d3d3d_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_3d80b3_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_469bdd_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_4b8e0b_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_4ca300_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_4eb305_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_5fa5e3_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_6da8d5_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_70b2e1_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_72a7cf_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_72b42d_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_734d99_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_808080_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_847e71_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_88a206_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_8DC262_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_8c291d_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_8d78a5_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_98d2fb_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_999999_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_9bcc60_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_9ccdfc_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_9fda58_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_a83300_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_a8a3ae_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_aaaaaa_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_add978_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_b83400_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_b8ec79_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_bbbbbb_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_bd7b00_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_c02669_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_c47a23_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_c98000_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cb672b_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cccccc_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_d19405_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_d8e7f3_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_e0fdff_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_e1e463_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_e3ddc9_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_e8e2b5_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_e9cd86_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_eb990f_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ebccce_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ed9f26_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ededed_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_eeeeee_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_efec9f_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f08000_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f1fd86_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f29a00_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f2ec64_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f35f07_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f5e175_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f7a50d_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f9bd01_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_f9f2bd_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_fadc7a_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_fbc856_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_fbdb93_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_fcd113_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_fcdd4a_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ff7519_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffcf29_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffe180_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffeb33_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/javascripts/inline_forms/inline_forms.js +14 -0
- data/app/assets/stylesheets/inline_forms/_foundation_icons.scss +596 -0
- data/app/assets/stylesheets/inline_forms/devise.scss +34 -3
- data/app/assets/stylesheets/inline_forms/foundation_and_overrides.scss +62 -4
- data/app/assets/stylesheets/inline_forms/inline_forms.scss +196 -44
- data/app/assets/stylesheets/jquery_ui/jquery.ui.accordion.css.scss +39 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.all.css.scss +14 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.autocomplete.css.scss +17 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.base.css.scss +27 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.button.css.scss +115 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.core.css.scss +92 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.datepicker.css.scss +179 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.dialog.css.scss +70 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.menu.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.progressbar.css.scss +29 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.resizable.css.scss +79 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.selectable.css.scss +16 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.slider.css.scss +74 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.spinner.css.scss +66 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.tabs.css.scss +53 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.theme.css.scss +408 -0
- data/app/assets/stylesheets/jquery_ui/jquery.ui.tooltip.css.scss +20 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.base.css.scss +78 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.black-tie.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.blitzer.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.cupertino.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dark-hive.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.dot-luv.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.eggplant.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.excite-bike.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.flick.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.hot-sneaks.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.humanity.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.le-frog.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.mint-choc.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.overcast.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.pepper-grinder.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.redmond.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.smoothness.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.south-street.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.start.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.sunny.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.swanky-purse.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.trontastic.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-darkness.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.ui-lightness.css.scss +80 -0
- data/app/assets/stylesheets/jquery_ui/themes/_jquery.ui.vader.css.scss +80 -0
- data/app/controllers/inline_forms_controller.rb +29 -1
- data/app/views/devise/passwords/_top-bar-and-flash.html.erb +8 -9
- data/app/views/devise/passwords/edit.html.erb +1 -1
- data/app/views/devise/passwords/new.html.erb +1 -1
- data/app/views/devise/sessions/_top-bar.html.erb +8 -9
- data/app/views/devise/sessions/new.html.erb +1 -1
- data/app/views/inline_forms/_header.html.erb +18 -25
- data/app/views/inline_forms/_list.html.erb +64 -4
- data/app/views/inline_forms/_versions_list.html.erb +83 -74
- data/app/views/layouts/application.html.erb +10 -1
- data/app/views/layouts/inline_forms.html.erb +11 -1
- data/bin/inline_forms_app_template.rb +3 -1
- data/bin/inline_forms_installer_core.rb +132 -5
- data/lib/generators/assets/stylesheets/inline_forms.scss +215 -76
- data/lib/generators/templates/_inline_forms_tabs.html.erb +38 -39
- data/lib/inline_forms/version.rb +1 -1
- data/lib/inline_forms.rb +10 -0
- data/lib/installer_templates/dartsass/devise_main.scss +2 -0
- data/lib/installer_templates/dartsass/inline_forms_dartsass_builds.rb +14 -0
- data/lib/installer_templates/dartsass/inline_forms_main.scss +2 -0
- data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_photos_pagination_test.rb +228 -0
- data/lib/installer_templates/example_app_tests/test/integration/example_app_turbo_layout_test.rb +28 -0
- metadata +327 -1
|
@@ -41,7 +41,20 @@
|
|
|
41
41
|
<% end %>
|
|
42
42
|
<% end %>
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
<%#
|
|
45
|
+
Container element. For the nested has_many case (parent_class set) we
|
|
46
|
+
emit a `<turbo-frame>` so pagination clicks (and any future in-frame
|
|
47
|
+
re-render of this list) swap only the matching frame instead of doing
|
|
48
|
+
a full-page navigation. Top-level lists (parent_class.nil?) keep the
|
|
49
|
+
classic <div> + full-page pagination they already had.
|
|
50
|
+
-%>
|
|
51
|
+
<% if ul_needed -%>
|
|
52
|
+
<% if parent_class.nil? -%>
|
|
53
|
+
<%= raw "<div class=\"list_container\" id=\"#{update_span}\">" -%>
|
|
54
|
+
<% else -%>
|
|
55
|
+
<%= raw "<turbo-frame id=\"#{update_span}\" class=\"list_container\">" -%>
|
|
56
|
+
<% end -%>
|
|
57
|
+
<% end -%>
|
|
45
58
|
|
|
46
59
|
<!-- # list of objects -->
|
|
47
60
|
<% for object in objects %>
|
|
@@ -52,7 +65,30 @@
|
|
|
52
65
|
<% css_class_id = parent_class.to_s.underscore + '_' + parent_id.to_s + '_' + attribute.to_s.singularize.underscore + "_" + object.id.to_s -%>
|
|
53
66
|
<% path_to_object = attribute.to_s.singularize.underscore + "_path" %>
|
|
54
67
|
<% end %>
|
|
55
|
-
|
|
68
|
+
<%#
|
|
69
|
+
For NESTED rows (parent_class present) the surrounding
|
|
70
|
+
<turbo-frame> would otherwise intercept the UJS-driven inline-edit
|
|
71
|
+
links/forms swapped in by show.js.erb / edit.js.erb / new.js.erb
|
|
72
|
+
-- those all do `$('#<row_id>').html(...)`, so the swapped content
|
|
73
|
+
stays a descendant of this row. Turbo would submit the multipart
|
|
74
|
+
`<form>` from _edit.html.erb with `Accept: text/html`, which
|
|
75
|
+
inline_forms_controller's update / create / destroy only respond
|
|
76
|
+
to via format.js, raising `ActionController::UnknownFormat` (HTTP
|
|
77
|
+
406) AFTER the DB write already happened. `data-turbo="false"`
|
|
78
|
+
here keeps UJS handling those, unchanged.
|
|
79
|
+
|
|
80
|
+
For TOP-LEVEL rows (parent_class.nil?) there is no surrounding
|
|
81
|
+
frame, so the attribute would be a no-op for the row's own click
|
|
82
|
+
-- BUT after UJS swaps in the inline edit (which itself contains
|
|
83
|
+
the nested-photos `<turbo-frame>`), Turbo's `elementIsNavigatable`
|
|
84
|
+
walks up from any link inside that inner frame looking for the
|
|
85
|
+
closest `[data-turbo]` ancestor; it does NOT stop at the
|
|
86
|
+
intervening `<turbo-frame>`. A `data-turbo="false"` on the
|
|
87
|
+
top-level row therefore poisons every descendant including the
|
|
88
|
+
pagination links inside the inner photos frame, breaking
|
|
89
|
+
in-frame navigation. So we only emit it on nested rows.
|
|
90
|
+
-%>
|
|
91
|
+
<div class="row <%= cycle('odd', 'even') %><%= " top-level" if parent_class.nil? %>" id="<%= css_class_id -%>"<%= raw ' data-turbo="false"' unless parent_class.nil? %>>
|
|
56
92
|
<% if cancan_disabled? || ( can? :soft_delete, object ) %>
|
|
57
93
|
<div class="small-1 column">
|
|
58
94
|
<%= link_to_soft_delete(object, css_class_id) -%>
|
|
@@ -77,7 +113,25 @@
|
|
|
77
113
|
<% pagination = will_paginate objects -%>
|
|
78
114
|
<% else %>
|
|
79
115
|
<% if pagination %>
|
|
80
|
-
|
|
116
|
+
<%#
|
|
117
|
+
Nested pagination is now driven by the surrounding <turbo-frame>:
|
|
118
|
+
the link's same-URL GET returns a fresh frame and Turbo swaps
|
|
119
|
+
just that region. No more remote: true + list.js.erb on the
|
|
120
|
+
pagination path.
|
|
121
|
+
|
|
122
|
+
The `update:` param must match the frame's id (`<update_span>`,
|
|
123
|
+
which is `…_list`). The legacy UJS pagination passed the OUTER
|
|
124
|
+
wrapper's id (`…` without `_list`) because list.js.erb did
|
|
125
|
+
`$('#<outer>').html(<rendered _list partial>)` and needed the
|
|
126
|
+
outer container, not the inner one. Turbo Frames swaps the
|
|
127
|
+
element with the matching id, so the param now carries the
|
|
128
|
+
frame id itself; otherwise the response (`<turbo-frame
|
|
129
|
+
id="…_list">`) and the request expectation (`Turbo-Frame:
|
|
130
|
+
<update_span>` derived from the URL `update=…` param) would
|
|
131
|
+
disagree and Turbo would log "the response did not contain the
|
|
132
|
+
expected <turbo-frame>" and ignore the page.
|
|
133
|
+
-%>
|
|
134
|
+
<% pagination = will_paginate objects, :params => {:controller => attribute, :action => :index, :id => nil, :parent_class => parent_class, :parent_id => parent_id, :update => "#{parent_class.to_s.underscore}_#{parent_id}_#{attribute}_list", :ul_needed => true } %>
|
|
81
135
|
<% end %>
|
|
82
136
|
<% end %>
|
|
83
137
|
<% if pagination %>
|
|
@@ -87,4 +141,10 @@
|
|
|
87
141
|
</div>
|
|
88
142
|
</div>
|
|
89
143
|
<% end %>
|
|
90
|
-
|
|
144
|
+
<% if ul_needed -%>
|
|
145
|
+
<% if parent_class.nil? -%>
|
|
146
|
+
<%= raw "</div>" -%>
|
|
147
|
+
<% else -%>
|
|
148
|
+
<%= raw "</turbo-frame>" -%>
|
|
149
|
+
<% end -%>
|
|
150
|
+
<% end -%>
|
|
@@ -13,82 +13,91 @@
|
|
|
13
13
|
%>
|
|
14
14
|
</div>
|
|
15
15
|
</div>
|
|
16
|
+
<%#
|
|
17
|
+
Header / per-entry rows: every entry was previously wrapped in a single
|
|
18
|
+
`<div class='small-12 column'>` whose direct children were `.small-N
|
|
19
|
+
column` divs. F5's float-based grid floated them side-by-side because
|
|
20
|
+
every `.column` was `float: left`; F6's flex grid only makes the direct
|
|
21
|
+
children of `.row` flex items, so once those `.small-N column` divs sit
|
|
22
|
+
inside a plain `.column` (not a `.row`) they collapse to stacked blocks
|
|
23
|
+
-- which is why opening Versions on F6 rendered Event/Done by/Changeset
|
|
24
|
+
vertically and the per-entry restore/timestamp/changeset cells one per
|
|
25
|
+
line. Each entry is now its own `<div class="row">` whose direct
|
|
26
|
+
children ARE the cell columns, so F6's flex grid lays them out
|
|
27
|
+
horizontally and the partial keeps F5's visual layout.
|
|
28
|
+
-%>
|
|
16
29
|
<div class="row <%= cycle('odd', 'even') %>">
|
|
17
|
-
<div class=
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<strong>Changeset</strong>
|
|
29
|
-
</div>
|
|
30
|
+
<div class="small-1 column">
|
|
31
|
+
|
|
32
|
+
</div>
|
|
33
|
+
<div class="small-1 column">
|
|
34
|
+
<strong>Event</strong>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="small-2 column">
|
|
37
|
+
<strong>Done by</strong>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="small-8 column">
|
|
40
|
+
<strong>Changeset</strong>
|
|
30
41
|
</div>
|
|
31
42
|
</div>
|
|
32
|
-
|
|
33
|
-
<%
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<div class=
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
<
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<%
|
|
64
|
-
<%
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
</table>
|
|
89
|
-
<% end %>
|
|
43
|
+
<% entries.reverse.each do |entry| %>
|
|
44
|
+
<% version = entry[:version] -%>
|
|
45
|
+
<% rich_text_name = entry[:rich_text_name] -%>
|
|
46
|
+
<div class="row <%= cycle('odd', 'even') %>">
|
|
47
|
+
<div class="small-1 column">
|
|
48
|
+
<% if entry[:kind] == :primary %>
|
|
49
|
+
<%= link_to t('inline_forms.view.restore'),
|
|
50
|
+
send('revert_' + @object.class.to_s.underscore + "_path",
|
|
51
|
+
version,
|
|
52
|
+
:update => "#{@object.class.name.underscore}_#{@object.id}"
|
|
53
|
+
),
|
|
54
|
+
:remote => true,
|
|
55
|
+
:method => :post
|
|
56
|
+
%>
|
|
57
|
+
<% else %>
|
|
58
|
+
|
|
59
|
+
<% end %>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="small-1 column">
|
|
62
|
+
<%= version.event -%><% if entry[:kind] == :rich_text %> <em>(rich text)</em><% end %>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="small-2 column">
|
|
65
|
+
<%= version.created_at -%>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="small-2 column">
|
|
68
|
+
<%= version_modified_by version.whodunnit -%>
|
|
69
|
+
</div>
|
|
70
|
+
<div class="small-6 column">
|
|
71
|
+
<% if version.changeset.nil? || version.changeset.empty? %>
|
|
72
|
+
<em>empty</em>
|
|
73
|
+
<% else %>
|
|
74
|
+
<% version.changeset.each do |attribute, value| %>
|
|
75
|
+
<% next if attribute == 'updated_at' %>
|
|
76
|
+
<% next if entry[:kind] == :rich_text && attribute == 'record_id' %>
|
|
77
|
+
<% next if entry[:kind] == :rich_text && attribute == 'record_type' %>
|
|
78
|
+
<% next if entry[:kind] == :rich_text && attribute == 'name' %>
|
|
79
|
+
<% display_attribute = entry[:kind] == :rich_text && attribute == 'body' ? rich_text_name : attribute -%>
|
|
80
|
+
<table>
|
|
81
|
+
<tr>
|
|
82
|
+
<th colspan="2" class="text-center"><%= display_attribute %></th>
|
|
83
|
+
<th></th>
|
|
84
|
+
</tr>
|
|
85
|
+
<tr>
|
|
86
|
+
<td>old value</td>
|
|
87
|
+
<td>new value</td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr>
|
|
90
|
+
<% if entry[:kind] == :rich_text && attribute == 'body' %>
|
|
91
|
+
<td><%= raw value[0] %></td>
|
|
92
|
+
<td><%= raw value[1] %></td>
|
|
93
|
+
<% else %>
|
|
94
|
+
<td><%= value[0] %></td>
|
|
95
|
+
<td><%= value[1] %></td>
|
|
96
|
+
<% end %>
|
|
97
|
+
</tr>
|
|
98
|
+
</table>
|
|
90
99
|
<% end %>
|
|
91
|
-
|
|
100
|
+
<% end %>
|
|
92
101
|
</div>
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
</div>
|
|
103
|
+
<% end %>
|
|
@@ -13,7 +13,16 @@
|
|
|
13
13
|
|
|
14
14
|
<body>
|
|
15
15
|
<%= yield %>
|
|
16
|
-
<%= javascript_include_tag "application"
|
|
16
|
+
<%= javascript_include_tag "application" %>
|
|
17
|
+
<%# Turbo (Hotwire) is loaded as an ES module so it does not collide with %>
|
|
18
|
+
<%# the classic-script Sprockets bundle above. Drive is disabled here so %>
|
|
19
|
+
<%# existing UJS-driven links/forms keep working unchanged; `<turbo-frame>` %>
|
|
20
|
+
<%# and `format.turbo_stream` remain available for per-view conversions. %>
|
|
21
|
+
<script type="module">
|
|
22
|
+
import { Turbo } from "<%= asset_path('turbo.min.js') %>"
|
|
23
|
+
Turbo.session.drive = false
|
|
24
|
+
window.Turbo = Turbo
|
|
25
|
+
</script>
|
|
17
26
|
<%= javascript_include_tag "https://unpkg.com/trix@1.3.1/dist/trix.js" %>
|
|
18
27
|
<%= javascript_include_tag Ckeditor.cdn_url if defined?(Ckeditor) %>
|
|
19
28
|
</body>
|
|
@@ -16,7 +16,17 @@
|
|
|
16
16
|
<div id="outer_container">
|
|
17
17
|
<%= yield %>
|
|
18
18
|
</div>
|
|
19
|
-
<%= javascript_include_tag 'inline_forms/inline_forms'
|
|
19
|
+
<%= javascript_include_tag 'inline_forms/inline_forms' %>
|
|
20
|
+
<%# Turbo (Hotwire) is loaded as an ES module so it does not collide with %>
|
|
21
|
+
<%# the classic-script Sprockets bundle above (jquery_ujs etc.). Drive is %>
|
|
22
|
+
<%# disabled here so existing UJS-driven links/forms keep working unchanged; %>
|
|
23
|
+
<%# `<turbo-frame>` and `format.turbo_stream` are still available for the %>
|
|
24
|
+
<%# per-view conversions that follow this slice. %>
|
|
25
|
+
<script type="module">
|
|
26
|
+
import { Turbo } from "<%= asset_path('turbo.min.js') %>"
|
|
27
|
+
Turbo.session.drive = false
|
|
28
|
+
window.Turbo = Turbo
|
|
29
|
+
</script>
|
|
20
30
|
<%= javascript_include_tag "https://unpkg.com/trix@1.3.1/dist/trix.js" %>
|
|
21
31
|
<%= javascript_include_tag Ckeditor.cdn_url if defined?(Ckeditor) %>
|
|
22
32
|
</body>
|
|
@@ -2,7 +2,9 @@ require 'rvm'
|
|
|
2
2
|
|
|
3
3
|
if RVM.current && ENV['skiprvm'] !='true'
|
|
4
4
|
rvm_version = "#{ENV['ruby_version']}@#{app_name}"
|
|
5
|
-
|
|
5
|
+
# Rails' `app_name` is underscored (e.g. my_app) while the directory may be
|
|
6
|
+
# camel-cased (MyApp); `../#{app_name}` breaks on case-sensitive filesystems.
|
|
7
|
+
RVM.chdir(File.expand_path(".")) do
|
|
6
8
|
say "Working directory is #{`pwd`}"
|
|
7
9
|
RVM.use_from_path! '.' # TODO ROYTJE FIX THIS BELOW
|
|
8
10
|
# Warning! PATH is not properly set up, '/home/vagrant/.rvm/gems/ruby-2.0.0-p247@MyApp/bin' is not available,
|
|
@@ -11,13 +11,20 @@ gem 'cancancan'
|
|
|
11
11
|
gem 'carrierwave', '~> 3.1'
|
|
12
12
|
gem 'devise-i18n', :git => 'https://github.com/acesuares/devise-i18n.git'
|
|
13
13
|
gem 'devise'
|
|
14
|
-
gem '
|
|
15
|
-
|
|
14
|
+
gem 'autoprefixer-rails'
|
|
15
|
+
# foundation-rails 6.7+ uses Dart Sass (`sass:math`); sass-rails/sassc removed.
|
|
16
|
+
# Visually tuned against foundation-rails ~> 6.6.2; current pin ~> 6.9 (6.9.0.x).
|
|
17
|
+
gem 'foundation-rails', '~> 6.9'
|
|
16
18
|
gem 'i18n-active_record', :git => 'https://github.com/acesuares/i18n-active_record.git'
|
|
17
19
|
gem 'inline_forms', path: "#{File.expand_path(GENERATOR_PATH)}"
|
|
18
20
|
gem 'jquery-rails'
|
|
19
21
|
gem 'jquery-timepicker-rails'
|
|
20
|
-
|
|
22
|
+
# jQuery UI JavaScript (`//= require jquery.ui.all` in inline_forms.js). SCSS + PNGs
|
|
23
|
+
# are vendored in the inline_forms engine (Dart Sass cannot evaluate sass-rails
|
|
24
|
+
# `image-path()`). Pin matches former jquery-ui-sass-rails 4.0.3.x stack.
|
|
25
|
+
gem 'jquery-ui-rails', '4.0.3'
|
|
26
|
+
# Foundation Icons SCSS + fonts are vendored in the inline_forms engine (Dart Sass;
|
|
27
|
+
# foundation-icons-sass-rails depended on sass-rails).
|
|
21
28
|
gem 'mini_magick'
|
|
22
29
|
gem 'mysql2'
|
|
23
30
|
gem 'paper_trail', '~> 16.0'
|
|
@@ -27,13 +34,18 @@ gem 'rails', '~> 7.0.0'
|
|
|
27
34
|
gem 'rake'
|
|
28
35
|
gem 'remotipart', '~> 1.0'
|
|
29
36
|
gem 'rvm'
|
|
30
|
-
gem '
|
|
37
|
+
gem 'dartsass-rails'
|
|
31
38
|
# Rails 7 no longer adds sprockets-rails to the default Gemfile; declare it
|
|
32
39
|
# explicitly because the gem's own assets (foundation, jquery, etc.) live in
|
|
33
40
|
# app/assets and rely on the Sprockets pipeline.
|
|
34
41
|
gem 'sprockets-rails'
|
|
35
42
|
# Rails 7 default JavaScript tooling: importmap-rails replaces Webpacker.
|
|
36
43
|
gem 'importmap-rails'
|
|
44
|
+
# Hotwire/Turbo. Loaded into the Sprockets bundle by inline_forms.js with
|
|
45
|
+
# Turbo Drive disabled by default so existing UJS-driven links/forms keep
|
|
46
|
+
# working; turbo-rails also registers the `turbo_stream` Mime type and view
|
|
47
|
+
# format so future controllers can opt in to Turbo Stream responses.
|
|
48
|
+
gem 'turbo-rails'
|
|
37
49
|
gem 'tabs_on_rails', :git => 'https://github.com/acesuares/tabs_on_rails.git', :branch => 'update_remote_before_action'
|
|
38
50
|
gem 'unicorn'
|
|
39
51
|
gem 'validation_hints'
|
|
@@ -55,7 +67,6 @@ gem_group :development do
|
|
|
55
67
|
gem 'seed_dump', '~> 0.5.3'
|
|
56
68
|
# Rails 6.1 ActiveRecord's sqlite3 adapter requires sqlite3 ~> 1.4; 2.x activates first and breaks.
|
|
57
69
|
gem 'sqlite3', '~> 1.4'
|
|
58
|
-
gem 'switch_user'
|
|
59
70
|
gem 'thin'
|
|
60
71
|
gem 'yaml_db'
|
|
61
72
|
end
|
|
@@ -69,6 +80,27 @@ say "- Running bundle..."
|
|
|
69
80
|
run "gem install bundler"
|
|
70
81
|
run "bundle install"
|
|
71
82
|
|
|
83
|
+
say "- Dart Sass: inline_forms stylesheet entrypoints + initializer..."
|
|
84
|
+
copy_file File.join(GENERATOR_PATH, "lib/installer_templates/dartsass/inline_forms_dartsass_builds.rb"),
|
|
85
|
+
"config/initializers/inline_forms_dartsass_builds.rb"
|
|
86
|
+
copy_file File.join(GENERATOR_PATH, "lib/installer_templates/dartsass/inline_forms_main.scss"),
|
|
87
|
+
"app/assets/stylesheets/inline_forms_install/inline_forms_main.scss"
|
|
88
|
+
copy_file File.join(GENERATOR_PATH, "lib/installer_templates/dartsass/devise_main.scss"),
|
|
89
|
+
"app/assets/stylesheets/inline_forms_install/devise_main.scss"
|
|
90
|
+
|
|
91
|
+
say "- Dart Sass: rails dartsass:install (builds/, manifest, Procfile.dev)..."
|
|
92
|
+
run "bundle exec rails dartsass:install"
|
|
93
|
+
|
|
94
|
+
say "- Dart Sass: drop default application.css (manifest links builds/*.css only)..."
|
|
95
|
+
remove_file "app/assets/stylesheets/application.css"
|
|
96
|
+
|
|
97
|
+
insert_into_file "test/test_helper.rb", <<~'DARTSASS_TEST', after: %(require "rails/test_help"\n)
|
|
98
|
+
|
|
99
|
+
# Dart Sass writes CSS to app/assets/builds; Sprockets does not compile .scss.
|
|
100
|
+
Rails.application.load_tasks
|
|
101
|
+
Rake::Task["dartsass:build"].invoke
|
|
102
|
+
DARTSASS_TEST
|
|
103
|
+
|
|
72
104
|
say "- Database setup: creating config/database.yml with development database #{ENV['database']}"
|
|
73
105
|
remove_file "config/database.yml" # the one that 'rails new' created
|
|
74
106
|
if ENV['using_sqlite'] == 'true'
|
|
@@ -336,6 +368,9 @@ say "- Installaing ZURB Foundation..."
|
|
|
336
368
|
say "- Copy inline_forms_devise file for custom styles..."
|
|
337
369
|
copy_file File.join(GENERATOR_PATH, 'lib/generators/assets/stylesheets/inline_forms_devise.css'), 'app/assets/stylesheets/inline_forms_devise.css'
|
|
338
370
|
|
|
371
|
+
say "- Sprockets: link inline_forms_devise.css (logical path; dartsass:install drops link_directory ../stylesheets)..."
|
|
372
|
+
append_to_file "app/assets/config/manifest.js", "//= link inline_forms_devise.css\n"
|
|
373
|
+
|
|
339
374
|
say "- Add human_attribute_name in app/models/application_record.rb"
|
|
340
375
|
remove_file 'app/models/application_record.rb' # the one that 'rails new' created
|
|
341
376
|
copy_file File.join(GENERATOR_PATH, 'lib/generators/templates/application_record.rb'), "app/models/application_record.rb"
|
|
@@ -621,8 +656,100 @@ if ENV['install_example'] == 'true'
|
|
|
621
656
|
run 'bundle exec rails g inline_forms Photo name:string caption:string image:image_field description:rich_text apartment:belongs_to _presentation:\'#{name}\''
|
|
622
657
|
run 'bundle exec rails generate uploader Image'
|
|
623
658
|
run 'bundle exec rails g inline_forms Apartment name:string title:string description:rich_text photos:has_many photos:associated _enabled:yes _presentation:\'#{name}\''
|
|
659
|
+
|
|
660
|
+
say "- Lower Photo.per_page so the seeded gallery paginates..."
|
|
661
|
+
# The model template (lib/generators/templates/model.erb) emits
|
|
662
|
+
# attr_reader :per_page
|
|
663
|
+
# @per_page = 7
|
|
664
|
+
# which is a long-standing typo: `attr_reader :per_page` defines an
|
|
665
|
+
# *instance* method, then `@per_page = 7` (executed in the class body)
|
|
666
|
+
# actively *clobbers* the class-level per_page that will_paginate
|
|
667
|
+
# exposes via `class_attribute :per_page` (its singleton-ivar storage
|
|
668
|
+
# also lives on `@per_page`). Net effect: nothing reads 7 anywhere,
|
|
669
|
+
# and the class-level per_page silently reverts to will_paginate's
|
|
670
|
+
# 30-default. Replace the pair on Photo with a real `self.per_page = 5`
|
|
671
|
+
# so the seeded gallery (12 photos) actually paginates 5/5/2.
|
|
672
|
+
gsub_file "app/models/photo.rb",
|
|
673
|
+
/^\s*attr_reader\s+:per_page\s*\n\s*@per_page\s*=\s*\d+\s*\n/,
|
|
674
|
+
" self.per_page = 5\n"
|
|
675
|
+
|
|
624
676
|
run 'bundle exec rake db:migrate'
|
|
625
677
|
|
|
678
|
+
# Seed the photos gallery from a local `pics/` folder. The folder is
|
|
679
|
+
# *gitignored* in the gem source (so the built .gem stays small and
|
|
680
|
+
# the gallery images are not committed) which means GENERATOR_PATH/pics
|
|
681
|
+
# exists only when the installer is run from the source repo, not when
|
|
682
|
+
# it is run from an installed gem on the developer's box. We therefore
|
|
683
|
+
# check, in order:
|
|
684
|
+
# 1. ENV['INLINE_FORMS_SEED_PICS'] -- explicit override path
|
|
685
|
+
# 2. GENERATOR_PATH/pics -- gem source repo checkout
|
|
686
|
+
# 3. /home/code/inline_forms/pics -- local dev convention
|
|
687
|
+
# and copy whichever is found into the generated app's db/seed_images/.
|
|
688
|
+
# The migration generated below is what reads from db/seed_images at
|
|
689
|
+
# `db:migrate` / `db:test:prepare` time, so this copy is only ever a
|
|
690
|
+
# one-shot at app generation.
|
|
691
|
+
pics_candidates = [
|
|
692
|
+
ENV["INLINE_FORMS_SEED_PICS"],
|
|
693
|
+
File.join(GENERATOR_PATH, "pics"),
|
|
694
|
+
"/home/code/inline_forms/pics",
|
|
695
|
+
].compact
|
|
696
|
+
pics_src = pics_candidates.find { |p| Dir.exist?(p) }
|
|
697
|
+
if pics_src
|
|
698
|
+
seed_pics = Dir.glob(File.join(pics_src, "*.{jpg,jpeg,JPG,JPEG,png,PNG,gif,GIF}")).sort
|
|
699
|
+
if seed_pics.any?
|
|
700
|
+
say "- Copying #{seed_pics.size} sample photo(s) into db/seed_images/..."
|
|
701
|
+
empty_directory "db/seed_images"
|
|
702
|
+
seed_pics.each do |abs|
|
|
703
|
+
copy_file abs, File.join("db/seed_images", File.basename(abs))
|
|
704
|
+
end
|
|
705
|
+
|
|
706
|
+
say "- Generating Konferensha apartment + photos seed migration..."
|
|
707
|
+
sleep 1 # unique migration timestamp
|
|
708
|
+
seed_ts = Time.now.utc.strftime("%Y%m%d%H%M%S")
|
|
709
|
+
create_file "db/migrate/#{seed_ts}_seed_konferensha_photos.rb", <<-SEED_MIGRATION.strip_heredoc
|
|
710
|
+
class SeedKonferenshaPhotos < ActiveRecord::Migration[7.0]
|
|
711
|
+
# Seed an Apartment with a gallery of photos so the nested
|
|
712
|
+
# has_many list (apartments -> photos) has enough rows to
|
|
713
|
+
# trigger pagination. Driven by db/seed_images/, which the
|
|
714
|
+
# inline_forms installer copies from the gem's pics/ dir.
|
|
715
|
+
# Runs in development (via db:migrate) and against the test
|
|
716
|
+
# DB (via db:test:prepare), so integration tests can assert
|
|
717
|
+
# the paginated <turbo-frame> renders without seeding manually.
|
|
718
|
+
def up
|
|
719
|
+
apartment = Apartment.find_or_create_by!(name: "Konferensha") do |a|
|
|
720
|
+
a.title = "Konferensha sobre Papiamentu"
|
|
721
|
+
end
|
|
722
|
+
|
|
723
|
+
seed_dir = Rails.root.join("db", "seed_images")
|
|
724
|
+
return unless seed_dir.directory?
|
|
725
|
+
|
|
726
|
+
Dir.glob(seed_dir.join("*.{jpg,jpeg,png,gif}"), File::FNM_CASEFOLD).sort.each do |abs|
|
|
727
|
+
base = File.basename(abs)
|
|
728
|
+
next if Photo.exists?(name: base, apartment_id: apartment.id)
|
|
729
|
+
File.open(abs, "rb") do |io|
|
|
730
|
+
Photo.create!(
|
|
731
|
+
name: base,
|
|
732
|
+
caption: "Konferensha foto \#{base}",
|
|
733
|
+
apartment: apartment,
|
|
734
|
+
image: io
|
|
735
|
+
)
|
|
736
|
+
end
|
|
737
|
+
end
|
|
738
|
+
end
|
|
739
|
+
|
|
740
|
+
def down
|
|
741
|
+
apartment = Apartment.find_by(name: "Konferensha")
|
|
742
|
+
return unless apartment
|
|
743
|
+
apartment.photos.destroy_all
|
|
744
|
+
apartment.destroy
|
|
745
|
+
end
|
|
746
|
+
end
|
|
747
|
+
SEED_MIGRATION
|
|
748
|
+
|
|
749
|
+
run "bundle exec rake db:migrate"
|
|
750
|
+
end
|
|
751
|
+
end
|
|
752
|
+
|
|
626
753
|
remove_file 'public/index.html'
|
|
627
754
|
|
|
628
755
|
route "root :to => 'apartments#index'"
|