spiderfw 0.5.19 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/VERSION +1 -1
- data/apps/core/auth/lib/rbac.rb +7 -2
- data/apps/core/auth/models/mixins/rbac_provider.rb +66 -4
- data/apps/core/components/assets.rb +63 -33
- data/apps/core/components/public/js/jquery/{jquery-1.4.3.js → jquery-1.5.2.js} +2617 -1126
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/overlay/overlay.apple.js +155 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/overlay/overlay.js +293 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/scrollable/scrollable.js +335 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tabs/tabs.css +59 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tabs/tabs.js +283 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/toolbox/toolbox.expose.js +224 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.dynamic.js +150 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.js +343 -0
- data/apps/core/components/public/js/jquery/jquery-tools-1.2.5/tooltip/tooltip.slide.js +78 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/button_bg.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/datepicker.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/icon_sprite.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/progress_bar.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_h_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_handles.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/slider_v_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/tab_bg.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/the_gradient.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-anim_basic_16x16.gif +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_222222_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_228ef1_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ef8c08_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ffd27a_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/images/ui-icons_ffffff_256x240.png +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4 → jquery-ui-1.8.11}/css/Aristo/jquery-ui.custom.css +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-af.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ar.js +7 -8
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-az.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-bg.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-bs.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ca.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-cs.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-da.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-de.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-el.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-en-AU.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-en-GB.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-eo.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-es.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-et.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-eu.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fa.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fi.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fo.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fr-CH.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-fr.js +12 -10
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-gl.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-he.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hu.js +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-hy.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-id.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-is.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-it.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ja.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ko.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-kz.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-lt.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-lv.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-ml.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ms.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-nl.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-no.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-pl.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-pt-BR.js +0 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-pt.js +22 -0
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-rm.js +21 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ro.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ru.js +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sk.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sl.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sq.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sr-SR.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-sv.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-ta.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-th.js +1 -1
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-tj.js +23 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-tr.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-uk.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-vi.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-CN.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-HK.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/i18n/jquery.ui.datepicker-zh-TW.js +0 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.blind.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.bounce.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.clip.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.core.js +48 -15
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.drop.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.explode.js +2 -2
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/jquery.effects.fade.js +32 -0
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.fold.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.highlight.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.pulsate.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.scale.js +4 -4
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.shake.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.slide.js +4 -4
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.effects.transfer.js +2 -2
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.accordion.js +33 -20
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.autocomplete.js +104 -42
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.button.js +35 -13
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.core.js +111 -84
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.datepicker.js +87 -46
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.dialog.js +105 -75
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.draggable.js +17 -15
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.droppable.js +5 -5
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.mouse.js +16 -11
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.position.js +51 -32
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.progressbar.js +24 -10
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.resizable.js +7 -7
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.selectable.js +3 -3
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.slider.js +9 -7
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.sortable.js +22 -20
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.tabs.js +15 -14
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → jquery-ui-1.8.11}/ui/jquery.ui.widget.js +50 -25
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → plugins/bsmselect}/GPL-LICENSE.txt +1 -1
- data/apps/core/components/public/js/jquery/{jquery-ui-1.8.4/development-bundle → plugins/bsmselect}/MIT-LICENSE.txt +3 -7
- data/apps/core/components/public/js/jquery/plugins/bsmselect/README.md +185 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/css/jquery.bsmselect.css +64 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.compatibility.js +60 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +381 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.sortable.js +49 -0
- data/apps/core/components/public/js/plugins/sortable.js +16 -7
- data/apps/core/components/public/js/spider.js +60 -41
- data/apps/core/components/widgets/admin/admin.shtml +1 -1
- data/apps/core/components/widgets/list/list.shtml +2 -2
- data/apps/core/components/widgets/month_calendar/month_calendar.shtml +23 -20
- data/apps/core/components/widgets/switcher/switcher.rb +77 -21
- data/apps/core/components/widgets/switcher/templates/default.shtml +8 -0
- data/apps/core/components/widgets/switcher/templates/table.shtml +15 -0
- data/apps/core/components/widgets/table/table.rb +4 -1
- data/apps/core/components/widgets/table/table.shtml +10 -8
- data/apps/core/forms/public/css/form.css +9 -1
- data/apps/core/forms/public/date_time.js +14 -2
- data/apps/core/forms/public/input.js +1 -1
- data/apps/core/forms/public/select.js +4 -3
- data/apps/core/forms/tags/element_row.erb +11 -2
- data/apps/core/forms/widgets/inputs/date_time/date_time.rb +9 -0
- data/apps/core/forms/widgets/inputs/date_time/date_time.shtml +1 -1
- data/apps/core/forms/widgets/inputs/html_area/html_area.shtml +2 -2
- data/apps/core/forms/widgets/inputs/input/input.rb +0 -3
- data/apps/core/forms/widgets/inputs/select/select.shtml +2 -2
- data/apps/messenger/backends/email/sendmail.rb +20 -0
- data/apps/messenger/backends/email/smtp.rb +12 -14
- data/apps/messenger/backends/email/test.rb +20 -0
- data/apps/messenger/config/options.rb +9 -9
- data/apps/messenger/config/test.config.yml +2 -0
- data/apps/messenger/controllers/mixins/messenger_helper.rb +41 -15
- data/apps/messenger/lib/email_backend.rb +10 -0
- data/apps/messenger/messenger.rb +45 -26
- data/apps/messenger/test/features/attachments.feature +26 -0
- data/apps/messenger/test/features/messenger_helper.feature +31 -0
- data/apps/messenger/test/features/sending_email.feature +10 -0
- data/apps/messenger/test/features/step_definitions/common_steps.rb +11 -0
- data/apps/messenger/test/features/step_definitions/email_steps.rb +98 -0
- data/apps/messenger/test/features/support/env.rb +11 -0
- data/apps/messenger/test/files/test_file1.txt +1 -0
- data/apps/messenger/test/lib/controllers/mail_test_controller.rb +34 -0
- data/apps/messenger/test/templates/email/multipart.html.erb +1 -0
- data/apps/messenger/test/templates/email/multipart.txt.erb +1 -0
- data/apps/messenger/test/templates/email/simple.erb +1 -0
- data/apps/messenger/test/templates/email/vars.erb +1 -0
- data/lib/spiderfw/cmd/cmd.rb +4 -0
- data/lib/spiderfw/cmd/commands/webserver.rb +12 -59
- data/lib/spiderfw/config/configuration.rb +4 -0
- data/lib/spiderfw/config/options/spider.rb +25 -8
- data/lib/spiderfw/controller/controller.rb +10 -4
- data/lib/spiderfw/controller/first_responder.rb +6 -20
- data/lib/spiderfw/controller/http_controller.rb +2 -1
- data/lib/spiderfw/controller/mixins/http_mixin.rb +12 -1
- data/lib/spiderfw/controller/mixins/visual.rb +3 -16
- data/lib/spiderfw/env.rb +1 -1
- data/lib/spiderfw/http/server.rb +178 -2
- data/lib/spiderfw/model/base_model.rb +142 -111
- data/lib/spiderfw/model/data_type.rb +15 -0
- data/lib/spiderfw/model/datatypes/decimal.rb +8 -0
- data/lib/spiderfw/model/datatypes/pk.rb +29 -0
- data/lib/spiderfw/model/datatypes.rb +1 -0
- data/lib/spiderfw/model/element.rb +5 -1
- data/lib/spiderfw/model/extended_models/managed.rb +1 -1
- data/lib/spiderfw/model/junction.rb +23 -0
- data/lib/spiderfw/model/mappers/db_mapper.rb +96 -80
- data/lib/spiderfw/model/mappers/document_mapper.rb +315 -0
- data/lib/spiderfw/model/mappers/mapper.rb +164 -75
- data/lib/spiderfw/model/mixins/list.rb +1 -0
- data/lib/spiderfw/model/mixins/versioned.rb +63 -27
- data/lib/spiderfw/model/model.rb +36 -9
- data/lib/spiderfw/model/query_funcs.rb +3 -0
- data/lib/spiderfw/model/query_set.rb +21 -1
- data/lib/spiderfw/model/storage/base_storage.rb +259 -6
- data/lib/spiderfw/model/storage/{db/db_connection_pool.rb → connection_pool.rb} +25 -21
- data/lib/spiderfw/model/storage/db/adapters/mysql.rb +25 -5
- data/lib/spiderfw/model/storage/db/adapters/oracle.rb +1 -1
- data/lib/spiderfw/model/storage/db/connectors/jdbc_oracle.rb +2 -2
- data/lib/spiderfw/model/storage/db/connectors/oci8.rb +3 -4
- data/lib/spiderfw/model/storage/db/db_storage.rb +18 -219
- data/lib/spiderfw/model/storage/document/adapters/mongodb.rb +307 -0
- data/lib/spiderfw/model/storage/document/document.rb +7 -0
- data/lib/spiderfw/model/storage/document/document_storage.rb +34 -0
- data/lib/spiderfw/model/storage.rb +23 -11
- data/lib/spiderfw/model/unit_of_work.rb +45 -22
- data/lib/spiderfw/spider.rb +660 -0
- data/lib/spiderfw/templates/blocks/html.rb +4 -2
- data/lib/spiderfw/templates/blocks/run.rb +1 -1
- data/lib/spiderfw/templates/blocks/tag_if.rb +1 -1
- data/lib/spiderfw/templates/blocks/widget.rb +1 -1
- data/lib/spiderfw/templates/layout.rb +29 -5
- data/lib/spiderfw/templates/template.rb +72 -7
- data/lib/spiderfw/templates/template_blocks.rb +1 -1
- data/lib/spiderfw/test/capybara.rb +7 -0
- data/lib/spiderfw/test/cucumber.rb +12 -0
- data/lib/spiderfw/test/page_object.rb +29 -0
- data/lib/spiderfw/test/spec.rb +20 -0
- data/lib/spiderfw/test/stubs/mapper_stub.rb +18 -0
- data/lib/spiderfw/test/stubs/storage_stub.rb +23 -0
- data/lib/spiderfw/test/unit.rb +23 -0
- data/lib/spiderfw/test.rb +89 -0
- data/lib/spiderfw/utils/json.rb +6 -0
- data/lib/spiderfw/utils/logger.rb +17 -4
- data/lib/spiderfw/utils/loggers/apache_commons_logger.rb +61 -0
- data/lib/spiderfw/utils/monkey/date_time.rb +2 -2
- data/lib/spiderfw/utils/monkey/module.rb +3 -1
- data/lib/spiderfw/utils/profiling.rb +2 -2
- data/lib/spiderfw/widget/widget.rb +31 -13
- data/lib/spiderfw.rb +1 -597
- data/spider.gemspec +9 -10
- metadata +193 -132
- data/apps/admin/_init.rb +0 -9
- data/apps/admin/controllers/admin_controller.rb +0 -12
- data/apps/admin/widgets/dashboard_widget/dashboard_widget.rb +0 -8
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/AUTHORS.txt +0 -30
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/ui/i18n/jquery-ui-i18n.js +0 -1176
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/ui/i18n/jquery.ui.datepicker-no.js +0 -23
- data/apps/core/components/public/js/jquery/jquery-ui-1.8.4/development-bundle/version.txt +0 -1
- data/apps/core/components/public/js/jquery/plugins/asmselect/jquery.asmselect.css +0 -64
- data/apps/core/components/public/js/jquery/plugins/asmselect/jquery.asmselect.js +0 -407
- data/apps/core/components/widgets/switcher/switcher.shtml +0 -17
- data/apps/master/po/master.pot +0 -400
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
|
-
* jQuery UI Tabs
|
2
|
+
* jQuery UI Tabs @VERSION
|
3
3
|
*
|
4
|
-
* Copyright
|
4
|
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5
5
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
6
|
* http://jquery.org/license
|
7
7
|
*
|
@@ -63,7 +63,7 @@ $.widget( "ui.tabs", {
|
|
63
63
|
},
|
64
64
|
|
65
65
|
_tabId: function( a ) {
|
66
|
-
return a.title && a.title.replace( /\s/g, "_" ).replace( /[
|
66
|
+
return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
|
67
67
|
this.options.idPrefix + getNextTabId();
|
68
68
|
},
|
69
69
|
|
@@ -103,7 +103,7 @@ $.widget( "ui.tabs", {
|
|
103
103
|
fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
|
104
104
|
|
105
105
|
this.list = this.element.find( "ol,ul" ).eq( 0 );
|
106
|
-
this.lis = $( "li:has(a[href])", this.list );
|
106
|
+
this.lis = $( " > li:has(a[href])", this.list );
|
107
107
|
this.anchors = this.lis.map(function() {
|
108
108
|
return $( "a", this )[ 0 ];
|
109
109
|
});
|
@@ -126,10 +126,10 @@ $.widget( "ui.tabs", {
|
|
126
126
|
|
127
127
|
// inline tab
|
128
128
|
if ( fragmentId.test( href ) ) {
|
129
|
-
self.panels = self.panels.add( self._sanitizeSelector( href ) );
|
129
|
+
self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
|
130
130
|
// remote tab
|
131
131
|
// prevent loading the page itself if href is just "#"
|
132
|
-
} else if ( href !== "#" ) {
|
132
|
+
} else if ( href && href !== "#" ) {
|
133
133
|
// required for restore on destroy
|
134
134
|
$.data( a, "href.tabs", href );
|
135
135
|
|
@@ -139,7 +139,7 @@ $.widget( "ui.tabs", {
|
|
139
139
|
|
140
140
|
var id = self._tabId( a );
|
141
141
|
a.href = "#" + id;
|
142
|
-
var $panel =
|
142
|
+
var $panel = self.element.find( "#" + id );
|
143
143
|
if ( !$panel.length ) {
|
144
144
|
$panel = $( o.panelTemplate )
|
145
145
|
.attr( "id", id )
|
@@ -210,13 +210,13 @@ $.widget( "ui.tabs", {
|
|
210
210
|
this.lis.removeClass( "ui-tabs-selected ui-state-active" );
|
211
211
|
// check for length avoids error when initializing empty list
|
212
212
|
if ( o.selected >= 0 && this.anchors.length ) {
|
213
|
-
|
213
|
+
self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
|
214
214
|
this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
|
215
215
|
|
216
216
|
// seems to be expected behavior that the show callback is fired
|
217
217
|
self.element.queue( "tabs", function() {
|
218
218
|
self._trigger( "show", null,
|
219
|
-
self._ui( self.anchors[ o.selected ], self.
|
219
|
+
self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
|
220
220
|
});
|
221
221
|
|
222
222
|
this.load( o.selected );
|
@@ -337,7 +337,7 @@ $.widget( "ui.tabs", {
|
|
337
337
|
var el = this,
|
338
338
|
$li = $(el).closest( "li" ),
|
339
339
|
$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
|
340
|
-
$show =
|
340
|
+
$show = self.element.find( self._sanitizeSelector( el.hash ) );
|
341
341
|
|
342
342
|
// If tab is already selected and not collapsible or tab disabled or
|
343
343
|
// or is already loading or click callback returns false stop here.
|
@@ -346,6 +346,7 @@ $.widget( "ui.tabs", {
|
|
346
346
|
if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
|
347
347
|
$li.hasClass( "ui-state-disabled" ) ||
|
348
348
|
$li.hasClass( "ui-state-processing" ) ||
|
349
|
+
self.panels.filter( ":animated" ).length ||
|
349
350
|
self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
|
350
351
|
this.blur();
|
351
352
|
return false;
|
@@ -495,7 +496,7 @@ $.widget( "ui.tabs", {
|
|
495
496
|
$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
|
496
497
|
|
497
498
|
// try to find an existing element before creating a new one
|
498
|
-
var $panel =
|
499
|
+
var $panel = self.element.find( "#" + id );
|
499
500
|
if ( !$panel.length ) {
|
500
501
|
$panel = $( o.panelTemplate )
|
501
502
|
.attr( "id", id )
|
@@ -603,7 +604,7 @@ $.widget( "ui.tabs", {
|
|
603
604
|
return this;
|
604
605
|
},
|
605
606
|
|
606
|
-
load: function( index
|
607
|
+
load: function( index ) {
|
607
608
|
index = this._getIndex( index );
|
608
609
|
var self = this,
|
609
610
|
o = this.options,
|
@@ -629,7 +630,7 @@ $.widget( "ui.tabs", {
|
|
629
630
|
this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
|
630
631
|
url: url,
|
631
632
|
success: function( r, s ) {
|
632
|
-
|
633
|
+
self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
|
633
634
|
|
634
635
|
// take care of tab labels
|
635
636
|
self._cleanup();
|
@@ -697,7 +698,7 @@ $.widget( "ui.tabs", {
|
|
697
698
|
});
|
698
699
|
|
699
700
|
$.extend( $.ui.tabs, {
|
700
|
-
version: "
|
701
|
+
version: "@VERSION"
|
701
702
|
});
|
702
703
|
|
703
704
|
/*
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*!
|
2
|
-
* jQuery UI Widget
|
2
|
+
* jQuery UI Widget @VERSION
|
3
3
|
*
|
4
|
-
* Copyright
|
4
|
+
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
5
5
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
6
6
|
* http://jquery.org/license
|
7
7
|
*
|
@@ -9,20 +9,30 @@
|
|
9
9
|
*/
|
10
10
|
(function( $, undefined ) {
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
$( "*", this ).add( [ this ] ).each(function() {
|
19
|
-
$( this ).triggerHandler( "remove" );
|
20
|
-
});
|
21
|
-
}
|
12
|
+
// jQuery 1.4+
|
13
|
+
if ( $.cleanData ) {
|
14
|
+
var _cleanData = $.cleanData;
|
15
|
+
$.cleanData = function( elems ) {
|
16
|
+
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
|
17
|
+
$( elem ).triggerHandler( "remove" );
|
22
18
|
}
|
23
|
-
|
24
|
-
}
|
25
|
-
}
|
19
|
+
_cleanData( elems );
|
20
|
+
};
|
21
|
+
} else {
|
22
|
+
var _remove = $.fn.remove;
|
23
|
+
$.fn.remove = function( selector, keepData ) {
|
24
|
+
return this.each(function() {
|
25
|
+
if ( !keepData ) {
|
26
|
+
if ( !selector || $.filter( selector, [ this ] ).length ) {
|
27
|
+
$( "*", this ).add( [ this ] ).each(function() {
|
28
|
+
$( this ).triggerHandler( "remove" );
|
29
|
+
});
|
30
|
+
}
|
31
|
+
}
|
32
|
+
return _remove.call( $(this), selector, keepData );
|
33
|
+
});
|
34
|
+
};
|
35
|
+
}
|
26
36
|
|
27
37
|
$.widget = function( name, base, prototype ) {
|
28
38
|
var namespace = name.split( "." )[ 0 ],
|
@@ -80,7 +90,7 @@ $.widget.bridge = function( name, object ) {
|
|
80
90
|
options;
|
81
91
|
|
82
92
|
// prevent calls to internal methods
|
83
|
-
if ( isMethodCall && options.
|
93
|
+
if ( isMethodCall && options.charAt( 0 ) === "_" ) {
|
84
94
|
return returnValue;
|
85
95
|
}
|
86
96
|
|
@@ -90,6 +100,15 @@ $.widget.bridge = function( name, object ) {
|
|
90
100
|
methodValue = instance && $.isFunction( instance[options] ) ?
|
91
101
|
instance[ options ].apply( instance, args ) :
|
92
102
|
instance;
|
103
|
+
// TODO: add this back in 1.9 and use $.error() (see #5972)
|
104
|
+
// if ( !instance ) {
|
105
|
+
// throw "cannot call methods on " + name + " prior to initialization; " +
|
106
|
+
// "attempted to call method '" + options + "'";
|
107
|
+
// }
|
108
|
+
// if ( !$.isFunction( instance[options] ) ) {
|
109
|
+
// throw "no such method '" + options + "' for " + name + " widget instance";
|
110
|
+
// }
|
111
|
+
// var methodValue = instance[ options ].apply( instance, args );
|
93
112
|
if ( methodValue !== instance && methodValue !== undefined ) {
|
94
113
|
returnValue = methodValue;
|
95
114
|
return false;
|
@@ -99,10 +118,7 @@ $.widget.bridge = function( name, object ) {
|
|
99
118
|
this.each(function() {
|
100
119
|
var instance = $.data( this, name );
|
101
120
|
if ( instance ) {
|
102
|
-
|
103
|
-
instance.option( options );
|
104
|
-
}
|
105
|
-
instance._init();
|
121
|
+
instance.option( options || {} )._init();
|
106
122
|
} else {
|
107
123
|
$.data( this, name, new object( options, this ) );
|
108
124
|
}
|
@@ -133,7 +149,7 @@ $.Widget.prototype = {
|
|
133
149
|
this.element = $( element );
|
134
150
|
this.options = $.extend( true, {},
|
135
151
|
this.options,
|
136
|
-
|
152
|
+
this._getCreateOptions(),
|
137
153
|
options );
|
138
154
|
|
139
155
|
var self = this;
|
@@ -142,8 +158,12 @@ $.Widget.prototype = {
|
|
142
158
|
});
|
143
159
|
|
144
160
|
this._create();
|
161
|
+
this._trigger( "create" );
|
145
162
|
this._init();
|
146
163
|
},
|
164
|
+
_getCreateOptions: function() {
|
165
|
+
return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
|
166
|
+
},
|
147
167
|
_create: function() {},
|
148
168
|
_init: function() {},
|
149
169
|
|
@@ -164,12 +184,11 @@ $.Widget.prototype = {
|
|
164
184
|
},
|
165
185
|
|
166
186
|
option: function( key, value ) {
|
167
|
-
var options = key
|
168
|
-
self = this;
|
187
|
+
var options = key;
|
169
188
|
|
170
189
|
if ( arguments.length === 0 ) {
|
171
190
|
// don't return a reference to the internal hash
|
172
|
-
return $.extend( {},
|
191
|
+
return $.extend( {}, this.options );
|
173
192
|
}
|
174
193
|
|
175
194
|
if (typeof key === "string" ) {
|
@@ -180,11 +199,17 @@ $.Widget.prototype = {
|
|
180
199
|
options[ key ] = value;
|
181
200
|
}
|
182
201
|
|
202
|
+
this._setOptions( options );
|
203
|
+
|
204
|
+
return this;
|
205
|
+
},
|
206
|
+
_setOptions: function( options ) {
|
207
|
+
var self = this;
|
183
208
|
$.each( options, function( key, value ) {
|
184
209
|
self._setOption( key, value );
|
185
210
|
});
|
186
211
|
|
187
|
-
return
|
212
|
+
return this;
|
188
213
|
},
|
189
214
|
_setOption: function( key, value ) {
|
190
215
|
this.options[ key ] = value;
|
@@ -275,4 +275,4 @@ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
275
275
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276
276
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277
277
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278
|
-
POSSIBILITY OF SUCH DAMAGES.
|
278
|
+
POSSIBILITY OF SUCH DAMAGES.
|
@@ -1,9 +1,5 @@
|
|
1
|
-
Copyright (c)
|
2
|
-
|
3
|
-
This software consists of voluntary contributions made by many
|
4
|
-
individuals (AUTHORS.txt, http://jqueryui.com/about) For exact
|
5
|
-
contribution history, see the revision history and logs, available
|
6
|
-
at http://jquery-ui.googlecode.com/svn/
|
1
|
+
Copyright (c) 2008 by Ryan Cramer, http://www.ryancramer.com
|
2
|
+
Copyright (c) 2010 by Victor Berchet
|
7
3
|
|
8
4
|
Permission is hereby granted, free of charge, to any person obtaining
|
9
5
|
a copy of this software and associated documentation files (the
|
@@ -22,4 +18,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
22
18
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
23
19
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
24
20
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
25
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# bsmSelect - Better Select Multiple #
|
2
|
+
|
3
|
+
based on asmSelect - Alternate Select Multiple by Ryan Cramer
|
4
|
+
|
5
|
+
* [Google code project](http://code.google.com/p/jquery-asmselect/)
|
6
|
+
* [Github page](http://github.com/ryancramerdesign/jquery-asmSelect)
|
7
|
+
* [Ryan's article about asmSelect](http://www.ryancramer.com/journal/entries/select_multiple/)
|
8
|
+
* the original README can be found in the project root folder
|
9
|
+
|
10
|
+
## Demo ##
|
11
|
+
|
12
|
+
[bsmSelect demo](http://www.suumit.com/projects/bsmSelect/examples/index.html)
|
13
|
+
|
14
|
+
## Usage ##
|
15
|
+
|
16
|
+
Include jquery, bsmSelect, and css in document head:
|
17
|
+
|
18
|
+
<script type="text/javascript" src="jquery.js"></script>
|
19
|
+
<script type="text/javascript" src="jquery.bsmselect.js"></script>
|
20
|
+
<link rel="stylesheet" type="text/css" href="jquery.bsmselect.css" />
|
21
|
+
|
22
|
+
Use a jQuery selector in your document ready function:
|
23
|
+
|
24
|
+
jQuery(function($) {
|
25
|
+
$("select[multiple]").bsmSelect();
|
26
|
+
});
|
27
|
+
|
28
|
+
If desired, you can specify options when you call the plugin:
|
29
|
+
|
30
|
+
jQuery(function($) {
|
31
|
+
$("select[multiple]").bsmSelect({
|
32
|
+
addItemTarget: 'top'
|
33
|
+
});
|
34
|
+
});
|
35
|
+
|
36
|
+
The newly created select default option is the original select title attribute:
|
37
|
+
|
38
|
+
<select name="cities" multiple="multiple" title="Please select a city">
|
39
|
+
...
|
40
|
+
</select>
|
41
|
+
|
42
|
+
## Requirements ##
|
43
|
+
|
44
|
+
* jQuery 1.4+
|
45
|
+
|
46
|
+
## Options ##
|
47
|
+
|
48
|
+
### Primary Options ###
|
49
|
+
|
50
|
+
* listType:
|
51
|
+
|
52
|
+
* Specify what list will be created or used as part of the bsmSelect.
|
53
|
+
* Can accept a callback that accepts the original <select> as an argument and returns a jQuery object with a single list.
|
54
|
+
* Allowed values:
|
55
|
+
* 'ol'
|
56
|
+
* 'ul'
|
57
|
+
* function(originalSelect) { // your code; return $('<ul>'); }
|
58
|
+
* Default: 'ol'
|
59
|
+
|
60
|
+
* highlightEffect:
|
61
|
+
|
62
|
+
* Show a quick highlight of what item was added or removed?
|
63
|
+
* Allowed values:
|
64
|
+
* an animation function
|
65
|
+
* Default: $.noop (no effect)
|
66
|
+
|
67
|
+
* showEffect:
|
68
|
+
|
69
|
+
* Animate the addition of an item to the list
|
70
|
+
* Allowed values:
|
71
|
+
* an animation function
|
72
|
+
* Default: $.bsmSelect.effects.show
|
73
|
+
|
74
|
+
* hideEffect:
|
75
|
+
|
76
|
+
* Animate the removal of an items from the list
|
77
|
+
* Allowed values:
|
78
|
+
* an animation function
|
79
|
+
* Default: $.bsmSelect.effects.remove
|
80
|
+
|
81
|
+
* hideWhenAdded:
|
82
|
+
|
83
|
+
* Stop showing in select after item has been added?
|
84
|
+
* Allowed values: true or false
|
85
|
+
* Default: false
|
86
|
+
* Note: Only functional in Firefox 3 at this time.
|
87
|
+
|
88
|
+
* addItemTarget:
|
89
|
+
|
90
|
+
* Where to place new selected items that are added to the list.
|
91
|
+
* Allowed values: 'top' or 'bottom' or 'original' to keep the original select sort order
|
92
|
+
* Default: 'bottom'
|
93
|
+
* Note: When using the 'original' mode, the sort order can be overriden by setting the 'bsm-order' data on each option.
|
94
|
+
|
95
|
+
* debugMode:
|
96
|
+
|
97
|
+
* Keeps original select multiple visible so that you can monitor live changes made to it when debugging.
|
98
|
+
* Default: false
|
99
|
+
|
100
|
+
* extractLabel:
|
101
|
+
|
102
|
+
* A function to compute the list element name from the option object
|
103
|
+
* Default: extract the option html
|
104
|
+
|
105
|
+
* plugins
|
106
|
+
|
107
|
+
* An array of plugins objects to enable (they only are required to have an `init` method which is called on init with the Bsmselect instance as single argument).
|
108
|
+
* Default: an empty array (no plugin enabled by default)
|
109
|
+
|
110
|
+
### Text Labels ###
|
111
|
+
|
112
|
+
* title
|
113
|
+
|
114
|
+
* Text used for the default select label (when original select title attribute is not set)
|
115
|
+
* Default: 'Select...'
|
116
|
+
|
117
|
+
* removeLabel:
|
118
|
+
|
119
|
+
* Text used for the remove link of each list item.
|
120
|
+
* Default: 'remove'
|
121
|
+
|
122
|
+
* highlightAddedLabel:
|
123
|
+
|
124
|
+
* Text that precedes highlight of item added.
|
125
|
+
* Default: 'Added: '
|
126
|
+
|
127
|
+
* highlightRemovedLabel:
|
128
|
+
|
129
|
+
* Text that precedes highlight of item removed.
|
130
|
+
* Default: 'Removed: '
|
131
|
+
|
132
|
+
### Modifiable CSS Classes ###
|
133
|
+
|
134
|
+
* containerClass:
|
135
|
+
|
136
|
+
* Class for container that wraps the entire bsmSelect.
|
137
|
+
* Default: 'bsmContainer'
|
138
|
+
|
139
|
+
* selectClass:
|
140
|
+
|
141
|
+
* Class for the newly created <select>.
|
142
|
+
* Default: 'bsmSelect'
|
143
|
+
|
144
|
+
* listClass:
|
145
|
+
|
146
|
+
* Class for the newly created list of listType (ol or ul).
|
147
|
+
* Default: 'bsmList'
|
148
|
+
|
149
|
+
* listSortableClass:
|
150
|
+
|
151
|
+
* Another class given to the list when sortable is active.
|
152
|
+
* Default: 'bsmListSortable'
|
153
|
+
|
154
|
+
* listItemClass:
|
155
|
+
|
156
|
+
* Class given to the <li> list items.
|
157
|
+
* Default: 'bsmListItem'
|
158
|
+
|
159
|
+
* listItemLabelClass:
|
160
|
+
|
161
|
+
* Class for the label text that appears in list items.
|
162
|
+
* Default: 'bsmListItemLabel'
|
163
|
+
|
164
|
+
* removeClass:
|
165
|
+
|
166
|
+
* Class given to the remove link in each list item.
|
167
|
+
* Any element found in the <li> with this class will remove it.
|
168
|
+
* If you give the <li> this class, clicking anywhere on the <li> will remove it.
|
169
|
+
* Default: 'bsmListItemRemove'
|
170
|
+
|
171
|
+
* highlightClass:
|
172
|
+
|
173
|
+
* Class given to the highlight <span>.
|
174
|
+
* Default: 'bsmHighlight'
|
175
|
+
|
176
|
+
## Authors and contributors ##
|
177
|
+
|
178
|
+
* [Ryan Cramer](http://www.ryancramer.com/) is the author of the original asmSelect
|
179
|
+
* [Victor Berchet](http://github.com/vicb) is the author of bsmSelect
|
180
|
+
* [Andy Fowler](http://github.com/andyfowler) has contributed many enhancements
|
181
|
+
|
182
|
+
## History ##
|
183
|
+
|
184
|
+
see [history.md](history.md).
|
185
|
+
|
@@ -0,0 +1,64 @@
|
|
1
|
+
.bsmContainer {
|
2
|
+
/* container that surrounds entire bsmSelect widget */
|
3
|
+
}
|
4
|
+
|
5
|
+
.bsmSelect {
|
6
|
+
/* the newly created regular 'select' */
|
7
|
+
display: inline;
|
8
|
+
}
|
9
|
+
|
10
|
+
.bsmOptionDisabled {
|
11
|
+
/* disabled options in new select */
|
12
|
+
color: #999;
|
13
|
+
}
|
14
|
+
|
15
|
+
.bsmHighlight {
|
16
|
+
/* the highlight span */
|
17
|
+
float: right;
|
18
|
+
padding: 0;
|
19
|
+
margin: 0 0 0 1em;
|
20
|
+
}
|
21
|
+
|
22
|
+
.bsmList {
|
23
|
+
/* html list that contains selected items */
|
24
|
+
margin: 0.25em 0 1em 0;
|
25
|
+
position: relative;
|
26
|
+
display: block;
|
27
|
+
padding-left: 0;
|
28
|
+
list-style: none;
|
29
|
+
}
|
30
|
+
|
31
|
+
.bsmListItem {
|
32
|
+
/* li item from the html list above */
|
33
|
+
position: relative;
|
34
|
+
margin-left: 0;
|
35
|
+
padding-left: 0;
|
36
|
+
list-style: none;
|
37
|
+
background: #ddd;
|
38
|
+
border: 1px solid #bbb;
|
39
|
+
width: 100%;
|
40
|
+
margin: 0 0 -1px 0;
|
41
|
+
line-height: 1em;
|
42
|
+
}
|
43
|
+
|
44
|
+
.bsmListItem:hover {
|
45
|
+
background-color: #e5e5e5;
|
46
|
+
}
|
47
|
+
|
48
|
+
.bsmListItemLabel {
|
49
|
+
/* this is a span that surrounds the text in the item, except for the remove link */
|
50
|
+
padding: 5px;
|
51
|
+
display: block;
|
52
|
+
}
|
53
|
+
|
54
|
+
.bsmListSortable .bsmListItemLabel {
|
55
|
+
cursor: move;
|
56
|
+
}
|
57
|
+
|
58
|
+
.bsmListItemRemove {
|
59
|
+
/* the remove link in each list item */
|
60
|
+
position: absolute;
|
61
|
+
right: 0;
|
62
|
+
top: 0;
|
63
|
+
padding: 5px;
|
64
|
+
}
|
data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.compatibility.js
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
/*
|
2
|
+
* Better Select Multiple Compatibility Plugin - jQuery Plugin
|
3
|
+
*
|
4
|
+
* Copyright (c) 2010 by Victor Berchet - http://www.github.com/vicb
|
5
|
+
*
|
6
|
+
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
7
|
+
*
|
8
|
+
* version: v1.0.0 - 2010-09-05
|
9
|
+
*/
|
10
|
+
(function($) {
|
11
|
+
$.bsmSelect.plugins.compatibility = function()
|
12
|
+
{
|
13
|
+
if (!(this instanceof arguments.callee)) {
|
14
|
+
return new arguments.callee();
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
$.extend($.bsmSelect.plugins.compatibility.prototype, {
|
19
|
+
init: function(bsm) {
|
20
|
+
|
21
|
+
var o = bsm.options;
|
22
|
+
|
23
|
+
if (typeof o.animate != 'undefined')
|
24
|
+
{
|
25
|
+
if (o.animate === true) {
|
26
|
+
o.showEffect = $.bsmSelect.effects.verticalListAdd;
|
27
|
+
o.hideEffect = $.bsmSelect.effects.verticalListRemove;
|
28
|
+
} else if ($.isFunction(o.animate.add)) {
|
29
|
+
o.showEffect = o.animate.add;
|
30
|
+
} else if (typeof(o.animate.add) == 'string' && $.isFunction($.bsmSelect.effects[o.animate.add])) {
|
31
|
+
o.showEffect = $.bsmSelect.effects[o.animate.add];
|
32
|
+
} else {
|
33
|
+
o.showEffect = $.bsmSelect.effects.show;
|
34
|
+
}
|
35
|
+
|
36
|
+
if ($.isFunction(o.animate.drop)) {
|
37
|
+
o.hideEffect = o.animate.drop;
|
38
|
+
} else if (typeof(o.animate.drop) == 'string' && $.isFunction($.bsmSelect.effects[o.animate.drop])) {
|
39
|
+
o.hideEffect = $.bsmSelect.effects[o.animate.drop];
|
40
|
+
} else {
|
41
|
+
o.hideEffect = $.bsmSelect.effects.remove;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
if (typeof o.highlight != 'undefined')
|
46
|
+
{
|
47
|
+
if (o.highlight === true) {
|
48
|
+
o.highlightEffect = $.bsmSelect.effects.highlight;
|
49
|
+
} else if ($.isFunction(o.highlight)) {
|
50
|
+
o.highlightEffect = o.highlight;
|
51
|
+
} else if (typeof(o.highlight) == 'string' && $.isFunction($.bsmSelect.effects[o.highlight])) {
|
52
|
+
o.highlightEffect = $.bsmSelect.effects[o.highlight];
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
}
|
57
|
+
|
58
|
+
});
|
59
|
+
})(jQuery);
|
60
|
+
|