pages_cms 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/stylesheets/pages_cms/select2.min.css +495 -1
- data/app/controllers/pages_cms/admin/images_controller.rb +6 -37
- data/app/models/pages_cms/image.rb +2 -20
- data/app/uploaders/pages_cms/image_uploader.rb +54 -0
- data/app/views/pages_cms/admin/images/index.html.haml +13 -23
- data/app/views/pages_cms/admin/pages/index.html.haml +16 -5
- data/app/views/pages_cms/pages/_main.html.haml +2 -2
- data/app/views/pages_cms/pages/_slider.html.erb +1 -1
- data/app/views/pages_cms/pages/show.html.haml +3 -3
- data/config/routes.rb +2 -2
- data/lib/pages_cms/engine.rb +3 -0
- data/lib/pages_cms/version.rb +1 -1
- data/test/dummy/config/initializers/carrier_wave.rb +11 -0
- data/test/dummy/log/development.log +7880 -0
- data/test/dummy/public/images/1435125556My Image +0 -0
- data/test/dummy/public/images/1435125755m-image +0 -0
- data/test/dummy/public/images/14351258131415251672879.jpg +0 -0
- data/test/dummy/public/images/14351267251415157913705.jpg +0 -0
- data/test/dummy/public/images/cadillac-6531.jpg +0 -0
- data/test/dummy/public/uploads/tmp/1435124724-39312-0784/cadillac-6531.jpg +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-lOmzZ5qDC3DxWaGQU-7HJwc94N6tJIinIYAmUVIoRQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0xtixgpGyaq0N-WK0hMuY26ZItKdDUOkA1hHGqUdPS8.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/18rRJ0LoHe3uFLatEO8ebVrfV8rnAJYU2bp9K5Ezc1g.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2KcyYqaZqTY7UgCCH_Dea1ywFlj_qga38O8cWi143cs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/52E5xcyk_DA-IV5qQuW2disy5nFXyK7pEV8ajYmgJho.cache +3 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/64Jv1o0gdz0OAYkqNI4C18F3NsFm8UHNfC6bWbn-0Tw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7sBziZeN1LuYOTZTFLOuGSKfMZZuiQvIzcvXgZQsnvM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/899qsxako_YeWS0vtGY-uC2QLGEA9K7exmnTLVU5s8E.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8DFDFhGbzmUAJaBttqAcZkaWnPfxL8Kk9Ae4yflWKdk.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9Jjn2M5heYQN9ne9JtP1NwhH_EEZyic2u1-Y-2DUNfU.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9X6OoK62kCncAZFd1t6pFzJxjdt0bDjkBleNfZ0fmZM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AfTk_3r2rT8E62rY4M9VeTmXav6QUBRf7psngW8ZIPg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BGKtfYQsfkOfr9ifegWHnsVXqQzgk6ATmdSbWncI8q0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C6XB49ObB7e6JwnbQFKLIe_sSaXRjiLRm4cT-vuQuAo.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Efbo3UpXTn66pa0sNUN5MVk_a__zFpeh08j4HAabZ9w.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HctsZjTAda61VX-mppvzp89Nr_LLK_hJ2GF6gsSJmsQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/IAitp9yd5ssqxqvFD7-FRSnMALLvW5GIpidZ0bjaybk.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J2YjR7WH4pBb37JtVAbShtVajuVqjRx2udO7hrgNO6M.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/O7E0_fHAP-btAD-grcVQPnMV8OI4lDEpiz4L5hdeCkc.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PU4VUqLa2hhY1VchXLQb64cqbaoxH6Pl2T6g0ABOnVA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Pa6DsLOg2-bLSNAlEThDDEmbWCMxAdPu-PdZswXwNJM.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Q1XuPZHU6X2sUU6vMOxgX5wrKWvm5igMR-rr9jMeTKk.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RJ-0rs6u2wqJ74gO4wcOucSIu-S05IrUtyFuztGu04k.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SFHemPd80mlY3aSBTcYzVZ0ctNI2TKfwte0eY3EF9TE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UA3kym8Vb6S_cQEWPfPccyOFRpaQLOINGgzO1RtxgcY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V_GZ9PxDGuUTaZ80QqA292-PAdR0P-Ds4lU49NHxgg0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vdyi8tBM4Jkjbb4SwTqvKpZ9hjB-nWe7Do-CC6yBF6w.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WpDfY1Qq5jOVvzeZHeO8mbRuKAF7pK69sstcriijjVE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XUk0EKo0R7KpGwFBZwm6pXUA8gfPaBPHv7_rTMNVa0o.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_g8R2-QouLzovkcCMY6F8IS2wcsT-PgCNUOoUgcyC1o.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dPuSdPXYe1vtESmL9JPDF4VQzV675qyY4FIJHxG3Cs4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dXy1IkeRkbXjdbL_33caR_fU-1A25nnU-Anu_IhWwHg.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e2YRtLBJ8YrSbmJl8UCtB31PTTl8w6w-moXBbJLS8o0.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/i8Az0cVSg5ilKfOyr7n9B3ZWHI8etJAn08-2ST-z03s.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ihUFz-KtyQkiGrCDOgyEnx5kuAwFs5zQS7MAq5Tu5D4.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oflwcRDRlItrtOMmp-MiNBdyxULUeI35Zb9OR-4s5ig.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uD8ZYRXYZ957QscomKWi9XODs8OoBge7CIJLPZPSu2M.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/upNaW3h5pUPw2lICsLSEI9RZYx8sBa3quA1cCqBpprI.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yiFjyMoN9cT2aeQ7Eq6PxcZu9-pZDIysc3c5GM7oeCs.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zJWLyxLfgkHfFH0kRPuRhpaEySAXVMGFNnqdICyS4Zo.cache +1 -0
- data/test/dummy/tmp/pids/server.pid +1 -1
- metadata +124 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5967ae3034c56c1ddcb9bc163f4cf822bd8cecc8
|
4
|
+
data.tar.gz: a53cca7cd73b664042fb909ffed833a1bd25ffc9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0c90c57471ef085b3723edbb059c75ec2f47e805361c98ab545728bd4fd42575c230ed949a3e39b7ae4495e2fc2722d2a0e66b1b2d0cd9cbf5bd144781d0f97
|
7
|
+
data.tar.gz: 2c7498f0f03dcb1ccf7d9cd18d8ab030de9aff3ca09f7041ca987202b4cd12fb8cfd43660763fe5d206bbeea98706e68c9f4013795f798742ed3bf890afc753b
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ These content types can be interpreted by a designer to create a unique look and
|
|
25
25
|
|
26
26
|
## Installation
|
27
27
|
|
28
|
-
1. Add: `gem 'pages_cms', '~>
|
28
|
+
1. Add: `gem 'pages_cms', '~> 2.0.1'` to your `Gemfile`
|
29
29
|
2. Run: `$ rails generate pages_cms:install`
|
30
30
|
3. Add: `//= require cocoon` to your `application.js` file
|
31
31
|
|
@@ -1 +1,495 @@
|
|
1
|
-
.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px;}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none;}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap;}.select2-container .select2-search--inline{float:left;}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051;}.select2-results{display:block;}.select2-results__options{list-style:none;margin:0;padding:0;}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none;}.select2-results__option[aria-selected]{cursor:pointer;}.select2-container--open .select2-dropdown{left:0;}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-search--dropdown{display:block;padding:4px;}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box;}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none;}.select2-search--dropdown.select2-search--hide{display:none;}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0);}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px;}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px;}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto;}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none;}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%;}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left;}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder{float:right;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0;}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default;}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none;}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0;}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa;}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--default .select2-results__option[role=group]{padding:0;}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999;}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd;}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em;}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em;}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white;}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic .select2-selection--single{background-color:#f6f6f6;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:-o-linear-gradient(top, #ffffff 50%, #eeeeee 100%);background-image:linear-gradient(to bottom, #ffffff 50%, #eeeeee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px;}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px;}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999;}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left;}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto;}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none;}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:-o-linear-gradient(top, #ffffff 0%, #eeeeee 50%);background-image:linear-gradient(to bottom, #ffffff 0%, #eeeeee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:-o-linear-gradient(top, #eeeeee 50%, #ffffff 100%);background-image:linear-gradient(to bottom, #eeeeee 50%, #ffffff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb;}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none;}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px;}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto;}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto;}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb;}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0;}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0;}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;}.select2-container--classic .select2-dropdown{background-color:white;border:1px solid transparent;}.select2-container--classic .select2-dropdown--above{border-bottom:none;}.select2-container--classic .select2-dropdown--below{border-top:none;}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto;}.select2-container--classic .select2-results__option[role=group]{padding:0;}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey;}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:white;}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px;}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb;}
|
1
|
+
/*! Select2 Bootstrap 3 CSS v1.4.6 | MIT License | github.com/t0m/select2-bootstrap-css */
|
2
|
+
/**
|
3
|
+
* Reset Bootstrap 3 .form-control styles which - if applied to the
|
4
|
+
* original <select>-element the Select2-plugin may be run against -
|
5
|
+
* are copied to the .select2-container.
|
6
|
+
*
|
7
|
+
* 1. Overwrite .select2-container's original display:inline-block
|
8
|
+
* with Bootstrap 3's default for .form-control, display:block;
|
9
|
+
* courtesy of @juristr (@see https://github.com/fk/select2-bootstrap-css/pull/1)
|
10
|
+
*/
|
11
|
+
.select2-container.form-control {
|
12
|
+
background: transparent;
|
13
|
+
box-shadow: none;
|
14
|
+
border: none;
|
15
|
+
display: block;
|
16
|
+
/* 1 */
|
17
|
+
margin: 0;
|
18
|
+
padding: 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Adjust Select2 inputs to fit Bootstrap 3 default .form-control appearance.
|
23
|
+
*/
|
24
|
+
.select2-container .select2-choices .select2-search-field input,
|
25
|
+
.select2-container .select2-choice,
|
26
|
+
.select2-container .select2-choices {
|
27
|
+
background: none;
|
28
|
+
padding: 0;
|
29
|
+
border-color: #cccccc;
|
30
|
+
border-radius: 4px;
|
31
|
+
color: #555555;
|
32
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
33
|
+
background-color: white;
|
34
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
35
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
36
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
37
|
+
}
|
38
|
+
|
39
|
+
.select2-search input {
|
40
|
+
border-color: #cccccc;
|
41
|
+
border-radius: 4px;
|
42
|
+
color: #555555;
|
43
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
44
|
+
background-color: white;
|
45
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
46
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
47
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
48
|
+
}
|
49
|
+
|
50
|
+
.select2-container .select2-choices .select2-search-field input {
|
51
|
+
-webkit-box-shadow: none;
|
52
|
+
box-shadow: none;
|
53
|
+
}
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Adjust Select2 input heights to match the Bootstrap default.
|
57
|
+
*/
|
58
|
+
.select2-container .select2-choice {
|
59
|
+
height: 34px;
|
60
|
+
line-height: 1.42857;
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Address Multi Select2's height which - depending on how many elements have been selected -
|
65
|
+
* may grown higher than their initial size.
|
66
|
+
*/
|
67
|
+
.select2-container.select2-container-multi.form-control {
|
68
|
+
height: auto;
|
69
|
+
}
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Address Bootstrap 3 control sizing classes
|
73
|
+
* @see http://getbootstrap.com/css/#forms-control-sizes
|
74
|
+
*/
|
75
|
+
.select2-container.input-sm .select2-choice,
|
76
|
+
.input-group-sm .select2-container .select2-choice {
|
77
|
+
height: 30px;
|
78
|
+
line-height: 1.5;
|
79
|
+
border-radius: 3px;
|
80
|
+
}
|
81
|
+
|
82
|
+
.select2-container.input-lg .select2-choice,
|
83
|
+
.input-group-lg .select2-container .select2-choice {
|
84
|
+
height: 46px;
|
85
|
+
line-height: 1.33333;
|
86
|
+
border-radius: 6px;
|
87
|
+
}
|
88
|
+
|
89
|
+
.select2-container-multi .select2-choices .select2-search-field input {
|
90
|
+
height: 32px;
|
91
|
+
}
|
92
|
+
|
93
|
+
.select2-container-multi.input-sm .select2-choices .select2-search-field input,
|
94
|
+
.input-group-sm .select2-container-multi .select2-choices .select2-search-field input {
|
95
|
+
height: 28px;
|
96
|
+
}
|
97
|
+
|
98
|
+
.select2-container-multi.input-lg .select2-choices .select2-search-field input,
|
99
|
+
.input-group-lg .select2-container-multi .select2-choices .select2-search-field input {
|
100
|
+
height: 44px;
|
101
|
+
}
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Adjust height and line-height for .select2-search-field amd multi-select Select2 widgets.
|
105
|
+
*
|
106
|
+
* 1. Class repetition to address missing .select2-chosen in Select2 < 3.3.2.
|
107
|
+
*/
|
108
|
+
.select2-container-multi .select2-choices .select2-search-field input {
|
109
|
+
margin: 0;
|
110
|
+
}
|
111
|
+
|
112
|
+
.select2-chosen,
|
113
|
+
.select2-choice > span:first-child,
|
114
|
+
.select2-container .select2-choices .select2-search-field input {
|
115
|
+
padding: 6px 12px;
|
116
|
+
}
|
117
|
+
|
118
|
+
.input-sm .select2-chosen,
|
119
|
+
.input-group-sm .select2-chosen,
|
120
|
+
.input-sm .select2-choice > span:first-child,
|
121
|
+
.input-group-sm .select2-choice > span:first-child,
|
122
|
+
.input-sm .select2-choices .select2-search-field input,
|
123
|
+
.input-group-sm .select2-choices .select2-search-field input {
|
124
|
+
padding: 5px 10px;
|
125
|
+
}
|
126
|
+
|
127
|
+
.input-lg .select2-chosen,
|
128
|
+
.input-group-lg .select2-chosen,
|
129
|
+
.input-lg .select2-choice > span:first-child,
|
130
|
+
.input-group-lg .select2-choice > span:first-child,
|
131
|
+
.input-lg .select2-choices .select2-search-field input,
|
132
|
+
.input-group-lg .select2-choices .select2-search-field input {
|
133
|
+
padding: 10px 16px;
|
134
|
+
}
|
135
|
+
|
136
|
+
.select2-container-multi .select2-choices .select2-search-choice {
|
137
|
+
margin-top: 5px;
|
138
|
+
margin-bottom: 3px;
|
139
|
+
}
|
140
|
+
|
141
|
+
.select2-container-multi.input-sm .select2-choices .select2-search-choice,
|
142
|
+
.input-group-sm .select2-container-multi .select2-choices .select2-search-choice {
|
143
|
+
margin-top: 3px;
|
144
|
+
margin-bottom: 2px;
|
145
|
+
}
|
146
|
+
|
147
|
+
.select2-container-multi.input-lg .select2-choices .select2-search-choice,
|
148
|
+
.input-group-lg .select2-container-multi .select2-choices .select2-search-choice {
|
149
|
+
line-height: 24px;
|
150
|
+
}
|
151
|
+
|
152
|
+
/**
|
153
|
+
* Adjust the single Select2's dropdown arrow button appearance.
|
154
|
+
*
|
155
|
+
* 1. For Select2 v.3.3.2.
|
156
|
+
*/
|
157
|
+
.select2-container .select2-choice .select2-arrow,
|
158
|
+
.select2-container .select2-choice div {
|
159
|
+
border-left: none;
|
160
|
+
background: none;
|
161
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
162
|
+
}
|
163
|
+
|
164
|
+
.select2-dropdown-open .select2-choice .select2-arrow,
|
165
|
+
.select2-dropdown-open .select2-choice div {
|
166
|
+
border-left-color: transparent;
|
167
|
+
background: none;
|
168
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
169
|
+
}
|
170
|
+
|
171
|
+
/**
|
172
|
+
* Adjust the dropdown arrow button icon position for the single-select Select2 elements
|
173
|
+
* to make it line up vertically now that we increased the height of .select2-container.
|
174
|
+
*
|
175
|
+
* 1. Class repetition to address missing .select2-chosen in Select2 v.3.3.2.
|
176
|
+
*/
|
177
|
+
.select2-container .select2-choice .select2-arrow b,
|
178
|
+
.select2-container .select2-choice div b {
|
179
|
+
background-position: 0 3px;
|
180
|
+
}
|
181
|
+
|
182
|
+
.select2-dropdown-open .select2-choice .select2-arrow b,
|
183
|
+
.select2-dropdown-open .select2-choice div b {
|
184
|
+
background-position: -18px 3px;
|
185
|
+
}
|
186
|
+
|
187
|
+
.select2-container.input-sm .select2-choice .select2-arrow b,
|
188
|
+
.input-group-sm .select2-container .select2-choice .select2-arrow b,
|
189
|
+
.select2-container.input-sm .select2-choice div b,
|
190
|
+
.input-group-sm .select2-container .select2-choice div b {
|
191
|
+
background-position: 0 1px;
|
192
|
+
}
|
193
|
+
|
194
|
+
.select2-dropdown-open.input-sm .select2-choice .select2-arrow b,
|
195
|
+
.input-group-sm .select2-dropdown-open .select2-choice .select2-arrow b,
|
196
|
+
.select2-dropdown-open.input-sm .select2-choice div b,
|
197
|
+
.input-group-sm .select2-dropdown-open .select2-choice div b {
|
198
|
+
background-position: -18px 1px;
|
199
|
+
}
|
200
|
+
|
201
|
+
.select2-container.input-lg .select2-choice .select2-arrow b,
|
202
|
+
.input-group-lg .select2-container .select2-choice .select2-arrow b,
|
203
|
+
.select2-container.input-lg .select2-choice div b,
|
204
|
+
.input-group-lg .select2-container .select2-choice div b {
|
205
|
+
background-position: 0 9px;
|
206
|
+
}
|
207
|
+
|
208
|
+
.select2-dropdown-open.input-lg .select2-choice .select2-arrow b,
|
209
|
+
.input-group-lg .select2-dropdown-open .select2-choice .select2-arrow b,
|
210
|
+
.select2-dropdown-open.input-lg .select2-choice div b,
|
211
|
+
.input-group-lg .select2-dropdown-open .select2-choice div b {
|
212
|
+
background-position: -18px 9px;
|
213
|
+
}
|
214
|
+
|
215
|
+
/**
|
216
|
+
* Address Bootstrap's validation states and change Select2's border colors and focus states.
|
217
|
+
* Apply .has-warning, .has-danger or .has-succes to #select2-drop to match Bootstraps' colors.
|
218
|
+
*/
|
219
|
+
.has-warning .select2-choice,
|
220
|
+
.has-warning .select2-choices {
|
221
|
+
border-color: #8a6d3b;
|
222
|
+
}
|
223
|
+
.has-warning .select2-container-active .select2-choice,
|
224
|
+
.has-warning .select2-container-multi.select2-container-active .select2-choices {
|
225
|
+
border-color: #66512c;
|
226
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
|
227
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
|
228
|
+
}
|
229
|
+
.has-warning.select2-drop-active {
|
230
|
+
border-color: #66512c;
|
231
|
+
}
|
232
|
+
.has-warning.select2-drop-active.select2-drop.select2-drop-above {
|
233
|
+
border-top-color: #66512c;
|
234
|
+
}
|
235
|
+
|
236
|
+
.has-error .select2-choice,
|
237
|
+
.has-error .select2-choices {
|
238
|
+
border-color: #a94442;
|
239
|
+
}
|
240
|
+
.has-error .select2-container-active .select2-choice,
|
241
|
+
.has-error .select2-container-multi.select2-container-active .select2-choices {
|
242
|
+
border-color: #843534;
|
243
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
|
244
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
|
245
|
+
}
|
246
|
+
.has-error.select2-drop-active {
|
247
|
+
border-color: #843534;
|
248
|
+
}
|
249
|
+
.has-error.select2-drop-active.select2-drop.select2-drop-above {
|
250
|
+
border-top-color: #843534;
|
251
|
+
}
|
252
|
+
|
253
|
+
.has-success .select2-choice,
|
254
|
+
.has-success .select2-choices {
|
255
|
+
border-color: #3c763d;
|
256
|
+
}
|
257
|
+
.has-success .select2-container-active .select2-choice,
|
258
|
+
.has-success .select2-container-multi.select2-container-active .select2-choices {
|
259
|
+
border-color: #2b542c;
|
260
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
|
261
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
|
262
|
+
}
|
263
|
+
.has-success.select2-drop-active {
|
264
|
+
border-color: #2b542c;
|
265
|
+
}
|
266
|
+
.has-success.select2-drop-active.select2-drop.select2-drop-above {
|
267
|
+
border-top-color: #2b542c;
|
268
|
+
}
|
269
|
+
|
270
|
+
/**
|
271
|
+
* Make Select2's active-styles - applied to .select2-container when the widget receives focus -
|
272
|
+
* fit Bootstrap 3's .form-element:focus appearance.
|
273
|
+
*/
|
274
|
+
.select2-container-active .select2-choice,
|
275
|
+
.select2-container-multi.select2-container-active .select2-choices {
|
276
|
+
border-color: #66afe9;
|
277
|
+
outline: none;
|
278
|
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
|
279
|
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
|
280
|
+
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
281
|
+
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
282
|
+
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
283
|
+
}
|
284
|
+
|
285
|
+
.select2-drop-active {
|
286
|
+
border-color: #66afe9;
|
287
|
+
}
|
288
|
+
|
289
|
+
.select2-drop-auto-width,
|
290
|
+
.select2-drop.select2-drop-above.select2-drop-active {
|
291
|
+
border-top-color: #66afe9;
|
292
|
+
}
|
293
|
+
|
294
|
+
/**
|
295
|
+
* Select2 widgets in Bootstrap Input Groups
|
296
|
+
*
|
297
|
+
* When Select2 widgets are combined with other elements using Bootstrap 3's
|
298
|
+
* "Input Group" component, we don't want specific edges of the Select2 container
|
299
|
+
* to have a border-radius.
|
300
|
+
*
|
301
|
+
* In Bootstrap 2, input groups required a markup where these style adjustments
|
302
|
+
* could be bound to a CSS-class identifying if the additional elements are appended,
|
303
|
+
* prepended or both.
|
304
|
+
*
|
305
|
+
* Bootstrap 3 doesn't rely on these classes anymore, so we have to use our own.
|
306
|
+
* Use .select2-bootstrap-prepend and .select2-bootstrap-append on a Bootstrap 3 .input-group
|
307
|
+
* to let the contained Select2 widget know which edges should not be rounded as they are
|
308
|
+
* directly followed by another element.
|
309
|
+
*
|
310
|
+
* @see http://getbootstrap.com/components/#input-groups
|
311
|
+
*/
|
312
|
+
.input-group.select2-bootstrap-prepend [class^="select2-choice"] {
|
313
|
+
border-bottom-left-radius: 0 !important;
|
314
|
+
border-top-left-radius: 0 !important;
|
315
|
+
}
|
316
|
+
|
317
|
+
.input-group.select2-bootstrap-append [class^="select2-choice"] {
|
318
|
+
border-bottom-right-radius: 0 !important;
|
319
|
+
border-top-right-radius: 0 !important;
|
320
|
+
}
|
321
|
+
|
322
|
+
.select2-dropdown-open [class^="select2-choice"] {
|
323
|
+
border-bottom-right-radius: 0 !important;
|
324
|
+
border-bottom-left-radius: 0 !important;
|
325
|
+
}
|
326
|
+
|
327
|
+
.select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
328
|
+
border-top-right-radius: 0 !important;
|
329
|
+
border-top-left-radius: 0 !important;
|
330
|
+
border-bottom-right-radius: 4px !important;
|
331
|
+
border-bottom-left-radius: 4px !important;
|
332
|
+
background: white;
|
333
|
+
filter: none;
|
334
|
+
}
|
335
|
+
.input-group.select2-bootstrap-prepend .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
336
|
+
border-bottom-left-radius: 0 !important;
|
337
|
+
border-top-left-radius: 0 !important;
|
338
|
+
}
|
339
|
+
.input-group.select2-bootstrap-append .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
340
|
+
border-bottom-right-radius: 0 !important;
|
341
|
+
border-top-right-radius: 0 !important;
|
342
|
+
}
|
343
|
+
.input-group.input-group-sm.select2-bootstrap-prepend .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
344
|
+
border-bottom-right-radius: 3px !important;
|
345
|
+
}
|
346
|
+
.input-group.input-group-lg.select2-bootstrap-prepend .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
347
|
+
border-bottom-right-radius: 6px !important;
|
348
|
+
}
|
349
|
+
.input-group.input-group-sm.select2-bootstrap-append .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
350
|
+
border-bottom-left-radius: 3px !important;
|
351
|
+
}
|
352
|
+
.input-group.input-group-lg.select2-bootstrap-append .select2-dropdown-open.select2-drop-above [class^="select2-choice"] {
|
353
|
+
border-bottom-left-radius: 6px !important;
|
354
|
+
}
|
355
|
+
|
356
|
+
/**
|
357
|
+
* Adjust Select2's choices hover and selected styles to match Bootstrap 3's default dropdown styles.
|
358
|
+
*/
|
359
|
+
.select2-results .select2-highlighted {
|
360
|
+
color: white;
|
361
|
+
background-color: #337ab7;
|
362
|
+
}
|
363
|
+
|
364
|
+
/**
|
365
|
+
* Adjust alignment of Bootstrap 3 buttons in Bootstrap 3 Input Groups to address
|
366
|
+
* Multi Select2's height which - depending on how many elements have been selected -
|
367
|
+
* may grown higher than their initial size.
|
368
|
+
*/
|
369
|
+
.select2-bootstrap-append .select2-container-multiple,
|
370
|
+
.select2-bootstrap-append .input-group-btn,
|
371
|
+
.select2-bootstrap-append .input-group-btn .btn,
|
372
|
+
.select2-bootstrap-prepend .select2-container-multiple,
|
373
|
+
.select2-bootstrap-prepend .input-group-btn,
|
374
|
+
.select2-bootstrap-prepend .input-group-btn .btn {
|
375
|
+
vertical-align: top;
|
376
|
+
}
|
377
|
+
|
378
|
+
/**
|
379
|
+
* Make Multi Select2's choices match Bootstrap 3's default button styles.
|
380
|
+
*/
|
381
|
+
.select2-container-multi .select2-choices .select2-search-choice {
|
382
|
+
color: #555555;
|
383
|
+
background: white;
|
384
|
+
border-color: #cccccc;
|
385
|
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
386
|
+
-webkit-box-shadow: none;
|
387
|
+
box-shadow: none;
|
388
|
+
}
|
389
|
+
|
390
|
+
.select2-container-multi .select2-choices .select2-search-choice-focus {
|
391
|
+
background: #ebebeb;
|
392
|
+
border-color: #adadad;
|
393
|
+
color: #333333;
|
394
|
+
-webkit-box-shadow: none;
|
395
|
+
box-shadow: none;
|
396
|
+
}
|
397
|
+
|
398
|
+
/**
|
399
|
+
* Address Multi Select2's choice close-button vertical alignment.
|
400
|
+
*/
|
401
|
+
.select2-search-choice-close {
|
402
|
+
margin-top: -7px;
|
403
|
+
top: 50%;
|
404
|
+
}
|
405
|
+
|
406
|
+
/**
|
407
|
+
* Adjust the single Select2's clear button position (used to reset the select box
|
408
|
+
* back to the placeholder value and visible once a selection is made
|
409
|
+
* activated by Select2's "allowClear" option).
|
410
|
+
*/
|
411
|
+
.select2-container .select2-choice abbr {
|
412
|
+
top: 50%;
|
413
|
+
}
|
414
|
+
|
415
|
+
/**
|
416
|
+
* Adjust "no results" and "selection limit" messages to make use
|
417
|
+
* of Bootstrap 3's default "Alert" style.
|
418
|
+
*
|
419
|
+
* @see http://getbootstrap.com/components/#alerts-default
|
420
|
+
*/
|
421
|
+
.select2-results .select2-no-results,
|
422
|
+
.select2-results .select2-searching,
|
423
|
+
.select2-results .select2-selection-limit {
|
424
|
+
background-color: #fcf8e3;
|
425
|
+
color: #8a6d3b;
|
426
|
+
}
|
427
|
+
|
428
|
+
/**
|
429
|
+
* Address disabled Select2 styles.
|
430
|
+
*
|
431
|
+
* 1. For Select2 v.3.3.2.
|
432
|
+
* 2. Revert border-left:0 inherited from Select2's CSS to prevent the arrow
|
433
|
+
* from jumping when switching from disabled to enabled state and vice versa.
|
434
|
+
*/
|
435
|
+
.select2-container.select2-container-disabled .select2-choice,
|
436
|
+
.select2-container.select2-container-disabled .select2-choices {
|
437
|
+
cursor: not-allowed;
|
438
|
+
background-color: #eeeeee;
|
439
|
+
border-color: #cccccc;
|
440
|
+
}
|
441
|
+
.select2-container.select2-container-disabled .select2-choice .select2-arrow,
|
442
|
+
.select2-container.select2-container-disabled .select2-choice div,
|
443
|
+
.select2-container.select2-container-disabled .select2-choices .select2-arrow,
|
444
|
+
.select2-container.select2-container-disabled .select2-choices div {
|
445
|
+
background-color: transparent;
|
446
|
+
border-left: 1px solid transparent;
|
447
|
+
/* 2 */
|
448
|
+
}
|
449
|
+
|
450
|
+
/**
|
451
|
+
* Address Select2's loading indicator position - which should not stick
|
452
|
+
* to the right edge of Select2's search input.
|
453
|
+
*
|
454
|
+
* 1. in .select2-search input
|
455
|
+
* 2. in Multi Select2's .select2-search-field input
|
456
|
+
* 3. in the status-message of infinite-scroll with remote data (@see http://ivaynberg.github.io/select2/#infinite)
|
457
|
+
*
|
458
|
+
* These styles alter Select2's default background-position of 100%
|
459
|
+
* and supply the new background-position syntax to browsers which support it:
|
460
|
+
*
|
461
|
+
* 1. Android, Safari < 6/Mobile, IE<9: change to a relative background-position of 99%
|
462
|
+
* 2. Chrome 25+, Firefox 13+, IE 9+, Opera 10.5+: use the new CSS3-background-position syntax
|
463
|
+
*
|
464
|
+
* @see http://www.w3.org/TR/css3-background/#background-position
|
465
|
+
*
|
466
|
+
* @todo Since both Select2 and Bootstrap 3 only support IE8 and above,
|
467
|
+
* we could use the :after-pseudo-element to display the loading indicator.
|
468
|
+
* Alternatively, we could supply an altered loading indicator image which already
|
469
|
+
* contains an offset to the right.
|
470
|
+
*/
|
471
|
+
.select2-search input.select2-active,
|
472
|
+
.select2-container-multi .select2-choices .select2-search-field input.select2-active,
|
473
|
+
.select2-more-results.select2-active {
|
474
|
+
background-position: 99%;
|
475
|
+
/* 4 */
|
476
|
+
background-position: right 4px center;
|
477
|
+
/* 5 */
|
478
|
+
}
|
479
|
+
|
480
|
+
/**
|
481
|
+
* To support Select2 pre v3.4.2 in combination with Bootstrap v3.2.0,
|
482
|
+
* ensure that .select2-offscreen width, height and position can not be overwritten.
|
483
|
+
*
|
484
|
+
* This adresses changes in Bootstrap somewhere after the initial v3.0.0 which -
|
485
|
+
* in combination with Select2's pre-v3.4.2 CSS missing the "!important" after
|
486
|
+
* the following rules - allow Bootstrap to overwrite the latter, which results in
|
487
|
+
* the original <select> element Select2 is replacing not be properly being hidden
|
488
|
+
* when used in a "Bootstrap Input Group with Addon".
|
489
|
+
**/
|
490
|
+
.select2-offscreen,
|
491
|
+
.select2-offscreen:focus {
|
492
|
+
width: 1px !important;
|
493
|
+
height: 1px !important;
|
494
|
+
position: absolute !important;
|
495
|
+
}
|
@@ -11,50 +11,19 @@ module PagesCms
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def create
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
redirect_to admin_images_path
|
19
|
-
else
|
20
|
-
flash[:danger] = 'Failed to create file'
|
21
|
-
redirect_to admin_images_path
|
22
|
-
end
|
14
|
+
@image = current_account.images.build(image_params)
|
15
|
+
if @image.save
|
16
|
+
flash[:success] = 'Successfully uploaded file.'
|
17
|
+
redirect_to admin_images_path
|
23
18
|
else
|
24
|
-
|
25
|
-
|
26
|
-
user_named = params[:image][:name]
|
27
|
-
uploaded_io = params[:image][:file]
|
28
|
-
extension = uploaded_io.original_filename.split('.')[1]
|
29
|
-
name = "#{Time.now.to_i}_#{user_named}.#{extension}"
|
30
|
-
@image = current_account.images.build(file: "/images/#{name}", name: user_named)
|
31
|
-
if @image.save
|
32
|
-
File.open(Rails.root.join('public', 'images', name), 'wb') do |file|
|
33
|
-
file.write(uploaded_io.read)
|
34
|
-
end
|
35
|
-
if File.exists?(Rails.root.join('public', 'images', name))
|
36
|
-
flash[:success] = 'Successfully uploaded file.'
|
37
|
-
redirect_to admin_images_path
|
38
|
-
else
|
39
|
-
@image.destroy
|
40
|
-
flash[:danger] = 'Failed to create file'
|
41
|
-
redirect_to admin_images_path
|
42
|
-
end
|
43
|
-
else
|
44
|
-
flash[:danger] = "Error: #{@image.errors.full_messages.to_sentence}"
|
45
|
-
redirect_to admin_images_path
|
46
|
-
end
|
47
|
-
else
|
48
|
-
flash[:danger] = "Error #{validate_image.errors.full_messages.to_sentence}"
|
49
|
-
redirect_to admin_images_path
|
50
|
-
end
|
19
|
+
flash[:danger] = 'Failed to create file'
|
20
|
+
redirect_to admin_images_path
|
51
21
|
end
|
52
22
|
end
|
53
23
|
|
54
24
|
def destroy
|
55
25
|
image = Image.find(params[:id])
|
56
26
|
image.destroy
|
57
|
-
FileUtils.rm(Rails.root.join('public', 'images', image.file))
|
58
27
|
flash[:success] = 'Image deleted'
|
59
28
|
redirect_to admin_images_path
|
60
29
|
end
|
@@ -1,24 +1,6 @@
|
|
1
1
|
module PagesCms
|
2
2
|
class Image < ActiveRecord::Base
|
3
|
-
belongs_to
|
4
|
-
|
5
|
-
|
6
|
-
validates :file, presence: true
|
7
|
-
validates_format_of :file, with: /png|jpg|jpeg/, message: 'is not an image.'
|
8
|
-
validate :file_no_spaces
|
9
|
-
|
10
|
-
def validate_file_type(file)
|
11
|
-
Image.validators_on(:file).each do |validator|
|
12
|
-
validator.validate_each(self, :file, file)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
def file_no_spaces
|
18
|
-
if file.split(' ').count > 1
|
19
|
-
errors.add(:file, "has an improper name, file:#{file.split(' ').count}")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
3
|
+
belongs_to :account
|
4
|
+
mount_uploader :file, ImageUploader
|
23
5
|
end
|
24
6
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module PagesCms
|
3
|
+
class ImageUploader < CarrierWave::Uploader::Base
|
4
|
+
|
5
|
+
# Include RMagick or MiniMagick support:
|
6
|
+
# include CarrierWave::RMagick
|
7
|
+
# include CarrierWave::MiniMagick
|
8
|
+
|
9
|
+
# choose the storage system
|
10
|
+
if Rails.env.production?
|
11
|
+
storage :fog
|
12
|
+
else
|
13
|
+
storage :file
|
14
|
+
end
|
15
|
+
|
16
|
+
# Override the directory where uploaded files will be stored.
|
17
|
+
def store_dir
|
18
|
+
"images/"
|
19
|
+
end
|
20
|
+
|
21
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
22
|
+
# def default_url
|
23
|
+
# # For Rails 3.1+ asset pipeline compatibility:
|
24
|
+
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
25
|
+
#
|
26
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
27
|
+
# end
|
28
|
+
|
29
|
+
# Process files as they are uploaded:
|
30
|
+
# process :scale => [200, 300]
|
31
|
+
#
|
32
|
+
# def scale(width, height)
|
33
|
+
# # do something
|
34
|
+
# end
|
35
|
+
|
36
|
+
# Create different versions of your uploaded files:
|
37
|
+
# version :thumb do
|
38
|
+
# process :resize_to_fit => [50, 50]
|
39
|
+
# end
|
40
|
+
|
41
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
42
|
+
# For images you might use something like this:
|
43
|
+
def extension_white_list
|
44
|
+
%w(jpg jpeg gif png)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Override the filename of the uploaded files:
|
48
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
49
|
+
def filename
|
50
|
+
"#{Time.now.to_i}#{original_filename}" if original_filename
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|