From 600b0d156773748c4067e49e2c8b865bf7cca1b4 Mon Sep 17 00:00:00 2001 From: David Wessman Date: Sun, 29 Mar 2015 22:31:07 +0200 Subject: [PATCH] Revert "Merge Cafebokning into master" --- .gitignore | 1 - Gemfile | 4 +- Gemfile.lock | 5 +- app/assets/images/border1.png | Bin 0 -> 629 bytes app/assets/images/border2.png | Bin 0 -> 112 bytes app/assets/images/classic-loader.gif | Bin 0 -> 1849 bytes app/assets/images/classic-map.png | Bin 0 -> 6927 bytes app/assets/images/fullscreen_off.png | Bin 0 -> 910 bytes app/assets/images/fullscreen_off.svg | 124 + app/assets/images/fullscreen_on.png | Bin 0 -> 961 bytes app/assets/images/fullscreen_on.svg | 124 + app/assets/images/hilbert.eps | Bin 722790 -> 0 bytes app/assets/images/hilbert.jpg | Bin 82943 -> 0 bytes app/assets/images/pausebutton.png | Bin 0 -> 547 bytes app/assets/images/pausebutton.svg | 218 + app/assets/images/playbutton.png | Bin 0 -> 968 bytes app/assets/images/playbutton.svg | 265 + app/assets/images/target.png | Bin 0 -> 2993 bytes app/assets/javascripts/application.js | 17 - app/assets/javascripts/cafe_works.js.coffee | 42 - app/assets/javascripts/election.js.coffee | 6 +- app/assets/javascripts/faq.js.coffee | 3 + .../assets/javascripts/jquery.mixitup.min.js | 0 .../javascripts/loading_spinner.js.coffee | 0 app/assets/javascripts/menus.js.coffee | 3 + .../{application.scss => application.css} | 8 - app/assets/stylesheets/cafe_works.scss | 21 - app/assets/stylesheets/colors.scss | 10 - .../{constants.scss => constants.css.scss} | 0 .../{custom.scss => custom.css.scss} | 0 .../{elections.scss => elections.css.scss} | 0 .../stylesheets/{faq.scss => faq.css.scss} | 0 ...stom.scss => fullcalendar-custom.css.scss} | 0 .../{gallery.scss => gallery.css.scss} | 0 app/assets/stylesheets/menus.css.scss | 3 + app/assets/stylesheets/nominations.css.scss | 3 + .../{notices.scss => notices.css.scss} | 0 .../stylesheets/{rent.scss => rent.css.scss} | 0 .../{scaffolds.scss => scaffolds.css.scss} | 0 .../{start_page.scss => start_page.css.scss} | 0 .../{wice_grid.scss => wice_grid.css.scss} | 0 .../admin/cafe_works_controller.rb | 103 - app/controllers/admin/elections_controller.rb | 71 +- app/controllers/application_controller.rb | 21 +- app/controllers/cafe_works_controller.rb | 62 - app/controllers/contacts_controller.rb | 55 +- app/controllers/councils_controller.rb | 60 +- .../election/candidates_controller.rb | 4 +- .../election/nominations_controller.rb | 16 +- app/controllers/elections_controller.rb | 19 +- app/controllers/faqs_controller.rb | 13 +- app/controllers/posts_controller.rb | 71 +- app/controllers/profiles_controller.rb | 4 +- app/controllers/rents_controller.rb | 1 - app/controllers/static_pages_controller.rb | 2 + app/mailers/cafe_mailer.rb | 20 - app/mailers/contact_mailer.rb | 16 +- app/models/ability.rb | 15 +- app/models/assignee.rb | 106 - app/models/cafe_work.rb | 249 - app/models/cafe_work_council.rb | 6 - app/models/cafetimmar.rb | 17 + app/models/candidate.rb | 14 - app/models/constant.rb | 5 +- app/models/council.rb | 23 +- app/models/election.rb | 9 +- app/models/news.rb | 23 +- app/models/nomination.rb | 2 +- app/models/notice.rb | 48 +- app/models/profile.rb | 36 +- app/models/rent.rb | 1 - app/models/role.rb | 1 + app/models/user.rb | 12 +- app/services/cafe_setup_week.rb | 28 - app/views/admin/cafe_works/_form.html.erb | 22 - app/views/admin/cafe_works/_links.html.erb | 5 - .../admin/cafe_works/_setup_form.html.erb | 22 - app/views/admin/cafe_works/destroy.js.erb | 3 - app/views/admin/cafe_works/edit.html.erb | 12 - app/views/admin/cafe_works/index.html.erb | 74 - app/views/admin/cafe_works/new.html.erb | 9 - .../admin/cafe_works/remove_worker.js.erb | 2 - app/views/admin/cafe_works/setup.html.erb | 40 - app/views/admin/cafe_works/show.html.erb | 57 - app/views/admin/elections/_form.html.erb | 45 +- app/views/admin/elections/index.html.erb | 3 +- app/views/admin/elections/new.html.erb | 4 +- app/views/admin/elections/show.html.erb | 4 +- app/views/admin/rents/_form.html.erb | 2 +- app/views/cafe_mailer/sign_up_email.html.erb | 49 - app/views/cafe_mailer/sign_up_email.text.erb | 21 - app/views/cafe_works/_authorization.html.erb | 10 - app/views/cafe_works/_form.html.erb | 74 - app/views/cafe_works/authorize.js.erb | 7 - app/views/cafe_works/index.html.erb | 58 - app/views/cafe_works/nyckelpiga.html.erb | 39 - app/views/cafe_works/show.html.erb | 51 - app/views/events/show.html.erb | 133 +- app/views/faqs/_form.html.erb | 40 +- app/views/faqs/index.html.erb | 122 +- app/views/layouts/_bottombar.html.erb | 2 +- app/views/layouts/_menu.html.erb | 92 +- app/views/layouts/application.html.erb | 186 +- app/views/posts/_form.html.erb | 106 +- .../rent_mailer/_attributes_html.html.erb | 2 +- app/views/rent_mailer/active_email.html.erb | 45 +- app/views/rent_mailer/rent_email.html.erb | 44 +- bin/haml | 16 + config/application.rb | 8 +- config/environments/production.rb | 2 +- config/environments/test.rb | 4 +- config/initializers/assets.rb | 10 - config/locales/en.yml | 5 +- config/locales/sv.the_role.yml | 17 - config/locales/sv.yml | 16 +- config/routes.rb | 32 +- db/migrate/20410822171422_fsek_structure.rb | 10 +- .../20410822171427_create_cafe_works.rb | 19 - .../20410822171429_add_cafe_works_councils.rb | 8 - ...20410822171441_add_access_code_to_rents.rb | 2 +- ...0410822171448_create_cafe_work_councils.rb | 9 - db/schema.rb | 337 +- lib/tasks/tests_data.rake | 72 - .../admin/cafe_works_controller_spec.rb | 143 - .../controllers/cafe_works_controller_spec.rb | 210 - spec/factories/assignees.rb | 23 - spec/factories/cafe_work_councils.rb | 6 - spec/factories/cafe_works.rb | 50 - spec/factories/{constants.rb => constant.rb} | 3 +- spec/factories/councils.rb | 18 +- spec/factories/page_elements.rb | 10 - spec/factories/pages.rb | 16 - spec/factories/rents.rb | 21 +- spec/factories/users.rb | 21 +- spec/{models => model}/short_link_spec.rb | 0 spec/models/ability_spec.rb | 33 +- spec/models/cafe_work_council_spec.rb | 8 - spec/models/cafe_work_spec.rb | 159 - spec/models/constant_spec.rb | 10 +- spec/models/rent_spec.rb | 284 +- spec/rails_helper.rb | 9 +- spec/spec_helper.rb | 8 +- spec/support/database_cleaner.rb | 9 +- spec/support/factory_girl.rb | 8 +- .../javascripts/bootstrap-datetimepicker.js | 1941 ----- vendor/assets/javascripts/pickers.js | 47 - .../stylesheets/bootstrap-datetimepicker.css | 366 - .../bootstrap-datetimepicker.min.css | 366 - vendor/assets/stylesheets/bootstrap.css | 7246 +++++++---------- 149 files changed, 4944 insertions(+), 10013 deletions(-) create mode 100644 app/assets/images/border1.png create mode 100644 app/assets/images/border2.png create mode 100644 app/assets/images/classic-loader.gif create mode 100644 app/assets/images/classic-map.png create mode 100644 app/assets/images/fullscreen_off.png create mode 100644 app/assets/images/fullscreen_off.svg create mode 100644 app/assets/images/fullscreen_on.png create mode 100644 app/assets/images/fullscreen_on.svg delete mode 100644 app/assets/images/hilbert.eps delete mode 100644 app/assets/images/hilbert.jpg create mode 100644 app/assets/images/pausebutton.png create mode 100644 app/assets/images/pausebutton.svg create mode 100644 app/assets/images/playbutton.png create mode 100644 app/assets/images/playbutton.svg create mode 100644 app/assets/images/target.png delete mode 100644 app/assets/javascripts/cafe_works.js.coffee create mode 100644 app/assets/javascripts/faq.js.coffee rename {vendor => app}/assets/javascripts/jquery.mixitup.min.js (100%) rename {lib => app}/assets/javascripts/loading_spinner.js.coffee (100%) create mode 100644 app/assets/javascripts/menus.js.coffee rename app/assets/stylesheets/{application.scss => application.css} (91%) delete mode 100644 app/assets/stylesheets/cafe_works.scss delete mode 100644 app/assets/stylesheets/colors.scss rename app/assets/stylesheets/{constants.scss => constants.css.scss} (100%) rename app/assets/stylesheets/{custom.scss => custom.css.scss} (100%) rename app/assets/stylesheets/{elections.scss => elections.css.scss} (100%) rename app/assets/stylesheets/{faq.scss => faq.css.scss} (100%) rename app/assets/stylesheets/{fullcalendar-custom.scss => fullcalendar-custom.css.scss} (100%) rename app/assets/stylesheets/{gallery.scss => gallery.css.scss} (100%) create mode 100644 app/assets/stylesheets/menus.css.scss create mode 100644 app/assets/stylesheets/nominations.css.scss rename app/assets/stylesheets/{notices.scss => notices.css.scss} (100%) rename app/assets/stylesheets/{rent.scss => rent.css.scss} (100%) rename app/assets/stylesheets/{scaffolds.scss => scaffolds.css.scss} (100%) rename app/assets/stylesheets/{start_page.scss => start_page.css.scss} (100%) rename app/assets/stylesheets/{wice_grid.scss => wice_grid.css.scss} (100%) delete mode 100644 app/controllers/admin/cafe_works_controller.rb delete mode 100644 app/controllers/cafe_works_controller.rb delete mode 100644 app/mailers/cafe_mailer.rb delete mode 100644 app/models/assignee.rb delete mode 100644 app/models/cafe_work.rb delete mode 100644 app/models/cafe_work_council.rb create mode 100644 app/models/cafetimmar.rb delete mode 100644 app/services/cafe_setup_week.rb delete mode 100644 app/views/admin/cafe_works/_form.html.erb delete mode 100644 app/views/admin/cafe_works/_links.html.erb delete mode 100644 app/views/admin/cafe_works/_setup_form.html.erb delete mode 100644 app/views/admin/cafe_works/destroy.js.erb delete mode 100644 app/views/admin/cafe_works/edit.html.erb delete mode 100644 app/views/admin/cafe_works/index.html.erb delete mode 100644 app/views/admin/cafe_works/new.html.erb delete mode 100644 app/views/admin/cafe_works/remove_worker.js.erb delete mode 100644 app/views/admin/cafe_works/setup.html.erb delete mode 100644 app/views/admin/cafe_works/show.html.erb delete mode 100644 app/views/cafe_mailer/sign_up_email.html.erb delete mode 100644 app/views/cafe_mailer/sign_up_email.text.erb delete mode 100644 app/views/cafe_works/_authorization.html.erb delete mode 100644 app/views/cafe_works/_form.html.erb delete mode 100644 app/views/cafe_works/authorize.js.erb delete mode 100644 app/views/cafe_works/index.html.erb delete mode 100644 app/views/cafe_works/nyckelpiga.html.erb delete mode 100644 app/views/cafe_works/show.html.erb create mode 100755 bin/haml delete mode 100644 config/locales/sv.the_role.yml delete mode 100644 db/migrate/20410822171427_create_cafe_works.rb delete mode 100644 db/migrate/20410822171429_add_cafe_works_councils.rb delete mode 100644 db/migrate/20410822171448_create_cafe_work_councils.rb delete mode 100644 lib/tasks/tests_data.rake delete mode 100644 spec/controllers/admin/cafe_works_controller_spec.rb delete mode 100644 spec/controllers/cafe_works_controller_spec.rb delete mode 100644 spec/factories/assignees.rb delete mode 100644 spec/factories/cafe_work_councils.rb delete mode 100644 spec/factories/cafe_works.rb rename spec/factories/{constants.rb => constant.rb} (56%) delete mode 100644 spec/factories/page_elements.rb delete mode 100644 spec/factories/pages.rb rename spec/{models => model}/short_link_spec.rb (100%) delete mode 100644 spec/models/cafe_work_council_spec.rb delete mode 100644 spec/models/cafe_work_spec.rb delete mode 100644 vendor/assets/javascripts/bootstrap-datetimepicker.js delete mode 100644 vendor/assets/javascripts/pickers.js delete mode 100644 vendor/assets/stylesheets/bootstrap-datetimepicker.css delete mode 100644 vendor/assets/stylesheets/bootstrap-datetimepicker.min.css diff --git a/.gitignore b/.gitignore index 57eb2180a..b39dc026c 100644 --- a/.gitignore +++ b/.gitignore @@ -18,7 +18,6 @@ config/database.yml config/initializers/secret_token.rb config/secrets.yml /storage/ - ## Environment normalisation: /.bundle /vendor/bundle diff --git a/Gemfile b/Gemfile index d0212b8cd..459e10e47 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,6 @@ gem 'coffee-rails' # Set to 1.8 due to https://github.com/jashkenas/coffeescript/issues/3829 gem 'coffee-script-source', '1.8.0' gem 'devise' -gem 'bootstrap3-datetimepicker-rails', '~> 4.7.14' gem 'fancybox2-rails' gem 'font-awesome-rails' gem 'fullcalendar-rails' @@ -24,7 +23,7 @@ gem 'jbuilder' gem 'jquery-rails' gem 'jquery-turbolinks' gem 'jquery-ui-rails' -gem 'momentjs-rails', "~> 2.9.0" +gem 'momentjs-rails' gem 'mysql2' gem 'paperclip' gem 'prawn-rails' @@ -56,3 +55,4 @@ group :test do gem 'database_cleaner' gem 'shoulda-matchers', require: false end + diff --git a/Gemfile.lock b/Gemfile.lock index b0ebecbcb..3764770d5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,8 +44,6 @@ GEM rack (>= 0.9.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - bootstrap3-datetimepicker-rails (4.7.14) - momentjs-rails (>= 2.8.1) builder (3.2.2) byebug (4.0.3) columnize (= 0.9.0) @@ -316,7 +314,6 @@ PLATFORMS DEPENDENCIES better_errors - bootstrap3-datetimepicker-rails (~> 4.7.14) cancancan capistrano (~> 3.1.0) capistrano-bundler (~> 1.1.2) @@ -339,7 +336,7 @@ DEPENDENCIES jquery-turbolinks jquery-ui-rails mailcatcher - momentjs-rails (~> 2.9.0) + momentjs-rails mysql2 paperclip poltergeist diff --git a/app/assets/images/border1.png b/app/assets/images/border1.png new file mode 100644 index 0000000000000000000000000000000000000000..ea73e15924a217aebfe03a8e140cfb4e4440b81d GIT binary patch literal 629 zcmV-*0*d{KP)(iH@PW!yVD=hD38Pl|*duYdaDt z-+v=~_e@L^HZY#BNioq899Xn}3oT+1@};%z!BQT9AVr%<-(Y?Kbfp{{*W0r& zD^0gF76!tyB!=i$4{5?NCt(Sr2nz$zw1h-}&>I~*J|!3BmUjGq_A0=VrRgLNDL{mf zFh|xb5)g?;%==g)gX%sLISY#x;k|f7-w4YZ2y&N+oC~sGVM0hiD88&-humf&7a$V8 zu=e}fM9L1?uO^wuIDB+S?Gfn)>FXr<$iluAKH>zTliXw?mpaLJJ9cb?Kn%qI6hb7V z6f~*m(otsrAsB@j!WIwoWfpi6cbC}y1p@yr@ZiBK3_eD1tk44z9QEMR0@p7H5+o9# za0g;42;87LfD#1i94MxsVuP{3%^rThK~og?A>=BMCXkyzx&cBj7WpIdq)I@sQy<5V~NlkkJHWxqt7@t?#W+%5kV1sGzc3NT5yoqPr~g2B_( K&t;ucLK6TDsv!vg literal 0 HcmV?d00001 diff --git a/app/assets/images/classic-loader.gif b/app/assets/images/classic-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..27df81f46d9fe7398b9daf3d0f5fc97337d93750 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&YVNJFGd2tkvOnD7cwta}qc5LgzdLd#=Gz_5lw4HSfJ z5y=A~$WvKdT&=pxQWR|gA7dXNMrNejaaU%Y-KlM7v_m^eZ42#oR-Nv;2~(K-(LeV5 zasD_n=bX=cf9E$Redi9t77Iim@-M_co;`ae5D4n)>mwo}u3o+BcDsEmBO@bs@7~SN z&*wO9adEM{y!`3Yr*m_2gM))BoBrP^^1qUlI;*ALx<}e*tKTcNR9Tv;_gVIAw!K=p z4~cvN5XyH{nkC~hc7+u%N^#HugZ42oEP(=_AKxXOEf3NyKX+TXPhO;lW@FgY6t4@HoWKwfv%vY zs5YDhz`Oa{XYNBUhg9|igKV@+hT)W*iZ{6m9RLElqqI4j$Cl`iywUvnal^@^;-pmy z8c1pKQ$A*V6p%`$$;jTxPPc0&u1-Dn-09lf*^qX$6$uenUGkcj43I~BCGv8RG?a&C zh}2Tm{O3BcW`td;*-QgjNXf8)xk>LC}>S z^Y0HdBI4A8%k~T8+*{`PT*aWCblpFFQnIvL`=gXk(keA@D*>j6(U!`pf7PZvq%ywJ zfADB0oi)(aS!!(2>rd-fa{+;r>Xj0S{kh1Rlg|&R<6Dw zL#u5x|Dw%P*%EccGpHXp8np_*0|705z`JT6z$qhL%aU0Ybtsv!=Udqqz$J;*IBvlv3!nS7QpQx7~5)LJvvS z{?MRW7fKNM8!LE_PnZdzQmJ4FjCk!}S!N&T*j`p5AT|loYm&$=`I?3Z)T}i0iUw7w z4@(uZs%gcKro>`VtT<>=`sbp_zwfl{jpU^tJ7;YYzdrdWQ`cd=rl0Y014 z-j&pv$+l>@;MO0$vWpptUqayN2-d{svj-3^1~dbPL50K%F%%JdRKriRB%;;IH47PN zSxH8DVqx^nO~w;hXOFyd?{2sHk5~R907pG(C5md-iL)D%6Q$kvV4^71GaJ^bdk}Fk z-f20n(})hQ@4KuC7tB9@W=1>!dTzMv83`c}FW|#y)`k(7P)ON}^JUF^vQGZccdk>Tm?@9W|9B z&hq!0!l!Zd#PvJDVblGmCq4?DzO`;)Ucna;b5rBbO94&tqN(i|!IC)5P;n|i2+>ZI zC$y<(z81%~!l4*BhV5U|P=T5T|EpQarn>l?{600A32Tf0W`Pr^idCz!$(4g8?rJg??6?SnrIi`9>|V<_Y$Q>-CB lXPcVF+Tga>T|!vOL#f|afc|5f*xFa*6zA6@`#++U@joVy6(Rrt literal 0 HcmV?d00001 diff --git a/app/assets/images/classic-map.png b/app/assets/images/classic-map.png new file mode 100644 index 0000000000000000000000000000000000000000..fef664f7003967ce4a393fda7f9ce0320bfe4bb1 GIT binary patch literal 6927 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/fullscreen_off.svg b/app/assets/images/fullscreen_off.svg new file mode 100644 index 000000000..083d8ce91 --- /dev/null +++ b/app/assets/images/fullscreen_off.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/app/assets/images/fullscreen_on.png b/app/assets/images/fullscreen_on.png new file mode 100644 index 0000000000000000000000000000000000000000..8666b1a91f72f7d5b5eef82ae0a71830523aa86d GIT binary patch literal 961 zcmV;y13vtTP)%q%)5-Z{Cyxw)DD+c{q+illVA-OtSM zk*c1nVnU3nDJ7^XoQTh|5J`MBu12lE)zwuV9o>J=OwSF65f2_#sH!9>DM%n|c#!lY zi*Yq-9g?Cbl9^s2amQd$RS~O*loHGgBtaokNSdap!AoF#z;>y>^WHbxH|BA_NBmj)9CK?)s$jwE}y+Uc0K|&8mt}HF)olWdbt{ zL2HEIJ)q^J8nv~!-|q)iy_u52%;20L%K}=haIMt}_gc*cymvS}Jp5%Q!1eX@XohdS zcN&66mIXNHJ}%4hDv3)Xa)-qCdwYA;On_!)TU+Iu&dE2S;o+QoxV^pk1uz<%+qZvx zAuSnj~+eq@!)vIXEW( zaHTHXR3Ly?Q&K#5SRuvaNr4ECKRFNQ+?BHY?(@2EQ-LX^w_}VkR>@Z}f*^cw$TETV za;~kOMN#}&H|P<^xCb>!F|$YhD|y;E jTUbw;GvG;c>Vba&&S%@9m5ZLq00000NkvXXu0mjf?hv`j literal 0 HcmV?d00001 diff --git a/app/assets/images/fullscreen_on.svg b/app/assets/images/fullscreen_on.svg new file mode 100644 index 000000000..a2a21bca1 --- /dev/null +++ b/app/assets/images/fullscreen_on.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/app/assets/images/hilbert.eps b/app/assets/images/hilbert.eps deleted file mode 100644 index d91a4b68f8119b61e61182f663823ec0efb22075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722790 zcmeFa>vCI3mM+#2=Z6CoQSY#QPFIKIIVJESN@7Kynx-JBN;9QuSybOlD-aL>k!XPc z1^`v!AoM8b0sIjDY5#VFfBFgh6vyAUE}1L$-T=Z@>E0SO5LX)2~lP^S9%#5AW?)PhXxs z!-u^uzxe9p$?yA5PJ8{Qv*CO+nVo-A{b@2A&3{@|ujZG78ESm>da|C5zp1{TOy7=| z>#8?+_kUMkS3k_p=j-c5bvYhY>+#3+z42nj+P&p?u%0i!sieE=`E+`=-W`hZ6-#>U%J$z6-`V#CXkxKsYF#vu){#ZS}UXNE_ezk|6!$bal@PNOMkNLaT z^QVXS;b)c}0yF;B(r3@W4R7|~0joX04}Y`Tg9ohk;K8$J4)pk#b&ii&=NLcI{P>vF zj*nT5pZJ^AdOcR_^$4nmAO2>YXU|yr?Ae0{()`&oR(SSI8!6I?vSOrtYAKttF@GN( zqB;Mt8tLM1Ry#aoHKkU|NEDy24vFG#q21Y`jY$`u@EeKZZ-OG~4w^*qv(U~DtVX)n zE2}Arq>i5nN=bW$AL2xYvL2A<2j#bNR2imCSwd3yThUkSw0}Wfn`$9{>kq4uM*b!! z6{J$GWhOWlu^MS~Nh@o#F=^y;ej|aZ2mEcw^AW$Y8foNj6{f0-GFLHRpRNmnJP~3w z(&)(X6F;+OWga<1@GN0x{4Jd42St!Q61FzwZ&vXi)**qeqa+ZVcgnSxH1Y|nsjibo z<%>4vZ`L7!Xzp6BYC%!)iS|KYS)JJ*339y?&qIIYQ8A&Sq-EL|-jQnWf

Ali4Y~XO=j+tjZtnnV(fuz25#lEp88E z*dB*j{kShb2M1EJm;WBf&;9%QJpa8fKWKh*q(%Afk^DS-sL%7?hw}62kv`{N>-~}a zoSbM;{(B-nk00yv{P(f^p!t(0T9p4jk)Nke^?CmLRDSd+e~aAtN57Ck`ialD;}NS9wiugKIk8IMl>pNwCn!7i@5F?? z1DWGz_K>LKN5C1nLQ=q>ci5 zM?*p-W>(>LeIyX9S7nnUaj6N&#pd$g>j_377^B0U!vx4@^!N1A<08gc9IKDv-{T z6VM-pR_{bv%ih6V=d%9AZ*Vww96Udu=Qv!P{3Ph zhqePFL-*tapnIl;z(lnIeM8OZQJ+0Ir0?Vd!9i#?Ig7y@8w1g6uh4;GvM%r&L^#TP z>LT;MB+Z_SpnIfUqzoDM#PL$2Q3duSILSBHO9v>773zg`3R6J0_DNp2okd(*)rK07 zBrZmr)hBW1A(#sc(K}fwI!xK&lQZgsvOV-(NgDZbWA9Q$>|V*K%RPQK+G*9Md*nX7 zN=@fLy_gbFJ`h0@IGTf>igwWe5_Z9XN>*(ucaKvl(QDUx*Q&&UI<@6@HdjX}Oc5

aeE#8#4K)*INCd}*TJ`B3|-tP@{H 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

>poZBAKlQt7Qldo^O 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/app/assets/images/playbutton.png b/app/assets/images/playbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef916deeec5fa7047a324540713c03ffe558319 GIT binary patch literal 968 zcmV;(12_DMP)JG+b9C^V6f_!~|_6iBqU_MK9o zlMq!T(xgcdiGl`QK|@D@L_tY`jsnG(b&JS}&0uetXq$^_YcxQHJ9))vJ1RRXd z_5~q-OUs`9=*@fM-6avhe>v)91O6>L;JVoX*UkS6NJO+P$fegzJqJgl(c>87n@Xu; z5&5#N>)*C)1CR*Z+uO@--h9<}U4V%6N)xlzKQQZe#^do%FCBPzczDD6?)Ro~@VYKEB0!9Sz7J>@9!+D_Y_@=N-DozOpC23? zynQV|5h;Pohe-qoF~WBNi`HY_IBu*foa?6hRrU2c)l3BzDaWOVAoKxk>(MkV=1mLd zy4z1@v-8nt^wt)ERHQB_SZ;gQ1uPaGP2<>FSNN{~uBxh!w*u6fUWpP{IznEornL^% zI&@w5a5x-&w#r{7r+g_!lo0$=8~!~KfJA}!0U{ns5wuqKs;cS%+)r5}wJL-S+$TsB z5K#nhEA=-?6(o`c5hAW&REof?Q5FVenMWdw2ZO=UMu7k-uqBRJBhMK{ZhB)lDn$o%T|Z7;XC)vJwJ8(wylRG#=LSX2VAhYA z^?O&n+ere7NK172JQ2~eUQ;M?17o<)^UM>WnoR0%uL4^M2%rVzFT&+^Dljj5tthxR zCSzv(m9_TnbUICLjkSPEsg{V;#YuC~XId*{86(d#H>t+XBH-7*`d5p@=&Jkn)0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/app/assets/images/target.png b/app/assets/images/target.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5c89611995b9b782279b49aaa7ea1c03f7e185 GIT binary patch literal 2993 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 literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 6792f541b..1ceb2408e 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -13,12 +13,10 @@ //= require jquery //= require jquery.turbolinks //= require jquery_ujs -//= require jquery-ui/effect.all //= require bootstrap //= require_self //= require jquery-ui/datepicker //= require moment -//= require moment/sv //= require fullcalendar //= require fullcalendar/lang/sv.js //= require fancybox @@ -27,18 +25,3 @@ //= require turbolinks //= require gallery_hook.js //= require jquery.countdown -//= require bootstrap-datetimepicker -//= require pickers - -var bottom; -bottom = function () { - var docHeight = $(window).height(); - var footerHeight = $('#copyright').height() - var footerTop = $('#copyright').position().top + footerHeight; - - if (footerTop < docHeight) { - $('#footer').css('margin-top', 22 + (docHeight - footerTop) + 'px'); - } -}; - -$(document).ready(bottom) diff --git a/app/assets/javascripts/cafe_works.js.coffee b/app/assets/javascripts/cafe_works.js.coffee deleted file mode 100644 index 1486edb13..000000000 --- a/app/assets/javascripts/cafe_works.js.coffee +++ /dev/null @@ -1,42 +0,0 @@ -jQuery -> - $('.datetimepicker').datetimepicker locale: 'sv', format: 'DD/MM/YYYY HH:mm' -jQuery -> - $('#date').datepicker() -jQuery -> - $('#date2').datepicker() -loadCalendar = -> - $('#hilbertkalender').fullCalendar - events: '/hilbertcafe', - weekNumbers: true, - minTime: "08:00:00", - maxTime: "13:00:00", - defaultView: 'agendaWeek', - height: "auto", - weekends: false, - header: { - left: 'prev,next today', - center: 'title', - }, - aspectRatio: 1.3, - weekNumberTitle: "V ", - allDaySlot: false, - slotEventOverlap: false, - eventMouseover: (calEvent, jsEvent) -> - style = 'width:auto;height:auto;background:#eb7125;' - style = style + 'position:absolute;z-index:10001;padding:10px;' - tooltip = '
' - tooltip = tooltip + calEvent.title - tooltip = tooltip + '
' + calEvent.start.format('LLL') - tooltip = tooltip + '
till
' + calEvent.end.format('LLL') + '
' - $('body').append tooltip - $(this).mouseover((e) -> - $(this).css 'z-index', 10000 - $('.tooltipevent').fadeIn '500' - $('.tooltipevent').fadeTo '10', 1.9 - ).mousemove (e) -> - $('.tooltipevent').css 'top', e.pageY + 10 - $('.tooltipevent').css 'left', e.pageX + 20 - eventMouseout: (calEvent, jsEvent) -> - $(this).css 'z-index', 8 - $('.tooltipevent').remove() -$(document).ready(loadCalendar) diff --git a/app/assets/javascripts/election.js.coffee b/app/assets/javascripts/election.js.coffee index b75529f80..658b9e391 100644 --- a/app/assets/javascripts/election.js.coffee +++ b/app/assets/javascripts/election.js.coffee @@ -1,6 +1,2 @@ $('.collapsing').on 'shown.bs.collapse', -> - $('html,body').animate {scrollTop: $('#views').offset().top}, 'slow' - -jQuery -> - $('.datetimepicker1').datetimepicker locale: 'sv', format: 'DD/MM/YYYY HH:mm' - $('.datetimepicker2').datetimepicker locale: 'sv', format: 'DD/MM/YYYY HH:mm' + $('html,body').animate { scrollTop: $('#views').offset().top }, 'slow' diff --git a/app/assets/javascripts/faq.js.coffee b/app/assets/javascripts/faq.js.coffee new file mode 100644 index 000000000..24f83d18b --- /dev/null +++ b/app/assets/javascripts/faq.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/vendor/assets/javascripts/jquery.mixitup.min.js b/app/assets/javascripts/jquery.mixitup.min.js similarity index 100% rename from vendor/assets/javascripts/jquery.mixitup.min.js rename to app/assets/javascripts/jquery.mixitup.min.js diff --git a/lib/assets/javascripts/loading_spinner.js.coffee b/app/assets/javascripts/loading_spinner.js.coffee similarity index 100% rename from lib/assets/javascripts/loading_spinner.js.coffee rename to app/assets/javascripts/loading_spinner.js.coffee diff --git a/app/assets/javascripts/menus.js.coffee b/app/assets/javascripts/menus.js.coffee new file mode 100644 index 000000000..24f83d18b --- /dev/null +++ b/app/assets/javascripts/menus.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.css similarity index 91% rename from app/assets/stylesheets/application.scss rename to app/assets/stylesheets/application.css index 7bd08aac3..ad962cd7c 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.css @@ -12,7 +12,6 @@ *= require app *= require bootstrap *= require_self - *= require colors *= require style *= require header1 *= require responsive @@ -40,13 +39,6 @@ */ /* Override for Bootstrap 3 font location */ - -// We should eventually import all files like this -@import "colors"; -@import "cafe_works"; -@import "bootstrap"; -@import "bootstrap-datetimepicker"; - @font-face { font-family: 'Glyphicons Halflings'; src: url('../assets/glyphicons-halflings-regular.eot'); diff --git a/app/assets/stylesheets/cafe_works.scss b/app/assets/stylesheets/cafe_works.scss deleted file mode 100644 index 7603c3fc3..000000000 --- a/app/assets/stylesheets/cafe_works.scss +++ /dev/null @@ -1,21 +0,0 @@ -@import "colors"; - -.cafe-date { - background: $box-color; - border: 2px; - border-color: $border-color; - border-radius: 10px !important; - color: $text-color; - float: center; - height: 85px; - margin: 7px 13px 0 0; - padding: 7px 10px 4px; - width: 100px; - - span { - display: block; - font-size: 20px; - font-weight: 200; - line-height: 25px; - } -} diff --git a/app/assets/stylesheets/colors.scss b/app/assets/stylesheets/colors.scss deleted file mode 100644 index cb95bab37..000000000 --- a/app/assets/stylesheets/colors.scss +++ /dev/null @@ -1,10 +0,0 @@ -// See http://sachagreif.com/sass-color-variables - -// Color definitions -$fsek-orange: #eb7125; -$black: #fff; - -// Function definitions -$text-color: $black; -$border-color: $black; -$box-color: $fsek-orange; diff --git a/app/assets/stylesheets/constants.scss b/app/assets/stylesheets/constants.css.scss similarity index 100% rename from app/assets/stylesheets/constants.scss rename to app/assets/stylesheets/constants.css.scss diff --git a/app/assets/stylesheets/custom.scss b/app/assets/stylesheets/custom.css.scss similarity index 100% rename from app/assets/stylesheets/custom.scss rename to app/assets/stylesheets/custom.css.scss diff --git a/app/assets/stylesheets/elections.scss b/app/assets/stylesheets/elections.css.scss similarity index 100% rename from app/assets/stylesheets/elections.scss rename to app/assets/stylesheets/elections.css.scss diff --git a/app/assets/stylesheets/faq.scss b/app/assets/stylesheets/faq.css.scss similarity index 100% rename from app/assets/stylesheets/faq.scss rename to app/assets/stylesheets/faq.css.scss diff --git a/app/assets/stylesheets/fullcalendar-custom.scss b/app/assets/stylesheets/fullcalendar-custom.css.scss similarity index 100% rename from app/assets/stylesheets/fullcalendar-custom.scss rename to app/assets/stylesheets/fullcalendar-custom.css.scss diff --git a/app/assets/stylesheets/gallery.scss b/app/assets/stylesheets/gallery.css.scss similarity index 100% rename from app/assets/stylesheets/gallery.scss rename to app/assets/stylesheets/gallery.css.scss diff --git a/app/assets/stylesheets/menus.css.scss b/app/assets/stylesheets/menus.css.scss new file mode 100644 index 000000000..ee0d72bb6 --- /dev/null +++ b/app/assets/stylesheets/menus.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Menus controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/nominations.css.scss b/app/assets/stylesheets/nominations.css.scss new file mode 100644 index 000000000..99a946f3c --- /dev/null +++ b/app/assets/stylesheets/nominations.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Nominations controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/notices.scss b/app/assets/stylesheets/notices.css.scss similarity index 100% rename from app/assets/stylesheets/notices.scss rename to app/assets/stylesheets/notices.css.scss diff --git a/app/assets/stylesheets/rent.scss b/app/assets/stylesheets/rent.css.scss similarity index 100% rename from app/assets/stylesheets/rent.scss rename to app/assets/stylesheets/rent.css.scss diff --git a/app/assets/stylesheets/scaffolds.scss b/app/assets/stylesheets/scaffolds.css.scss similarity index 100% rename from app/assets/stylesheets/scaffolds.scss rename to app/assets/stylesheets/scaffolds.css.scss diff --git a/app/assets/stylesheets/start_page.scss b/app/assets/stylesheets/start_page.css.scss similarity index 100% rename from app/assets/stylesheets/start_page.scss rename to app/assets/stylesheets/start_page.css.scss diff --git a/app/assets/stylesheets/wice_grid.scss b/app/assets/stylesheets/wice_grid.css.scss similarity index 100% rename from app/assets/stylesheets/wice_grid.scss rename to app/assets/stylesheets/wice_grid.css.scss diff --git a/app/controllers/admin/cafe_works_controller.rb b/app/controllers/admin/cafe_works_controller.rb deleted file mode 100644 index 43d1fccf6..000000000 --- a/app/controllers/admin/cafe_works_controller.rb +++ /dev/null @@ -1,103 +0,0 @@ -# encoding:UTF-8 -class Admin::CafeWorksController < ApplicationController - load_permissions_and_authorize_resource - before_action :authorize - before_action :set_lv, only: [:setup_create] - before_action :set_new_cafe_work, only: [:setup, :setup_create] - before_action :set_cafe_setup, only: [:setup_create] - - def show - end - - def new - end - - def edit - end - - def create - flash[:notice] = 'Cafejobbet skapades, success.' if @cafe_work.save - redirect_to [:admin, @cafe_work] - end - - def update - if @cafe_work.update(cafe_work_params) - flash[:notice] = 'Cafejobbet uppdaterades' - redirect_to [:admin, @cafe_work] - else - render action: :edit - end - end - - def destroy - # Id used to hide element - @id = @cafe_work.id - @cafe_work.destroy - respond_to do |format| - format.html { redirect_to :admin_hilbert, notice: 'Cafepasset raderades.' } - format.js - end - end - - def remove_worker - if !@cafe_work.clear_worker - render action: show, notice: 'Lyckades inte' - end - end - - def setup - end - - def setup_create - if preview? - @cafe_works = @r.preview(@lv_first, @lv_last) - elsif save? - @r.setup(@lv_first, @lv_last) - flash[:notice] = 'Cafejobben skapades' - end - render :setup - end - - def index - @faqs = Faq.category(:Hilbert).answered - @faq_unanswered = Faq.category(:Hilbert).where(answer: '').count - @cwork_grid = initialize_grid(CafeWork.all) - end - - private - - def authorize - authorize! :manage, CafeWork - end - - def cafe_work_params - params.require(:cafe_work).permit(:work_day, :pass, :lp, :lv) - end - - def set_new_cafe_work - if params[:cafe_work].present? - @cafe_work = CafeWork.new(cafe_work_params) - else - @cafe_work = CafeWork.new - end - end - - def set_cafe_setup - if cafe_work_params[:work_day].present? && cafe_work_params[:lp].present? - @r = CafeSetupWeek.new(Time.zone.parse(cafe_work_params[:work_day]), cafe_work_params[:lp]) - end - end - - def set_lv - @lv_first = (params[:lv_first].present?) ? params[:lv_first].to_i : 0 - @lv_last = (params[:lv_last].present?) ? params[:lv_last].to_i : 0 - end - - def preview? - params[:commit] == 'Förhandsgranska' - end - - def save? - params[:commit] == 'Spara' - end -end diff --git a/app/controllers/admin/elections_controller.rb b/app/controllers/admin/elections_controller.rb index afa4ea202..49d2a45e3 100644 --- a/app/controllers/admin/elections_controller.rb +++ b/app/controllers/admin/elections_controller.rb @@ -1,72 +1,75 @@ # encoding: UTF-8 class Admin::ElectionsController < ApplicationController - load_permissions_and_authorize_resource find_by: :url + # Quick fix because Cancancan doesn't load when we use URL as param. + # /d.wessman https://github.com/fsek/web/issues/134 before_action :authorize - before_action :set_posts, only: [:new, :show, :edit] + before_action :set_election, only: [:show,:edit,:update,:destroy,:candidates,:nominations] def new + @election = Election.new + @posts = Post.order(title: :asc) end - def show + @posts = Post.order(title: :asc) end - def edit + @posts = Post.order(title: :asc) end - def index @elections = Election.order(start: :desc) end - def create - if @election.save - redirect_to [:admin, @election], notice: 'Valet skapades' - else - render action: :new + @election = Election.new(election_params) + respond_to do |format| + if @election.save + format.html { redirect_to [:admin,@election], notice: 'Valet skapades!' } + else + format.html { render action: "new" } + end end end - def update - if @election.update(election_params) - redirect_to [:admin, @election], notice: 'Valet uppdaterades, gött' - else - render action: :edit + respond_to do |format| + if @election.update(election_params) + format.html { redirect_to admin_election_path(@election), notice: 'Valet uppdaterades, gött' } + format.json { head :no_content } + else + format.html { render action: 'edit' } + format.json { render json: @election.errors, status: :unprocessable_entity } + end end end def destroy @election.destroy - redirect_to admin_elections_path, notice: 'Valet raderades, hoppas att det var meningen!.' + respond_to do |format| + format.html { redirect_to elections_path,notice: 'Valet raderades, hoppas att det var meningen!.' } + format.json { head :no_content } + end end def nominations @nominations_grid = initialize_grid(@election.nominations, - name: 'g2', - enable_export_to_csv: true, - csv_file_name: 'nomineringar') + :name => 'g2', + :enable_export_to_csv => true, + :csv_file_name => 'nomineringar') end - def candidates - @candidates_grid = initialize_grid(@election.candidates, - name: 'candidates', - enable_export_to_csv: true, - csv_file_name: 'candidates') + @candidates_grid = initialize_grid(@election.candidates,name: "candidates",enable_export_to_csv: true, csv_file_name: 'candidates') export_grid_if_requested('g2' => 'nominations_grid') end - private - def authorize - authorize! :manage, Election + authorize! :manage, @election end def election_params - params.fetch(:election).permit(:title, :description, :start, :end, :url, - :visible, :mail_link, :mail_styrelse_link, :text_before, - :text_during, :text_after, :nominate_mail, :candidate_mail, - :extra_text, :candidate_mail_star, post_ids: []) + params.fetch(:election).permit(:title,:description,:start,:end,:url,:visible,:mail_link,:mail_styrelse_link,:text_before,:text_during,:text_after,:nominate_mail,:candidate_mail,:extra_text,:candidate_mail_star,:post_ids => []) end - - def set_posts - @posts = Post.all + def set_election + @election = Election.find_by_url(params[:id]) + if(!@election.instance_of?(Election)) + redirect_to action: :index + end end end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index b06929fd4..ac52ebc51 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,8 +2,8 @@ class ApplicationController < ActionController::Base protect_from_forgery - before_action :configure_permitted_devise_parameters, if: :devise_controller? - before_action :set_locale + before_filter :configure_permitted_devise_parameters, if: :devise_controller? + before_filter :set_locale rescue_from CanCan::AccessDenied do |ex| flash[:error] = ex.message @@ -12,7 +12,7 @@ class ApplicationController < ActionController::Base rescue_from ActiveRecord::RecordInvalid do |ex| flash[:error] = - "Fel i formulär: #{ex.record.errors.full_messages.join '; '}" + "Fel i formulär: #{ex.record.errors.full_messages.join '; '}" render referring_action, status: :unprocessable_entity end @@ -24,15 +24,9 @@ class ApplicationController < ActionController::Base protected def configure_permitted_devise_parameters - devise_parameter_sanitizer.for(:sign_in) do |u| - u.permit(:username, :password, :remember_me) - end - devise_parameter_sanitizer.for(:sign_up) do |u| - u.permit(:username, :email, :password, :password_confirmation) - end - devise_parameter_sanitizer.for(:account_update) do |u| - u.permit(:password, :password_confirmation, :current_password) - end + devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :password, :remember_me) } + devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } + devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:password, :password_confirmation, :current_password) } end def self.permission @@ -54,7 +48,7 @@ def load_permissions # Enables authentication and def self.load_permissions_and_authorize_resource(*args) load_and_authorize_resource(*args) - before_action(:load_permissions, *args) + before_filter(:load_permissions, *args) end def self.skip_authorization(*args) @@ -78,6 +72,7 @@ def set_locale locale = lang if langs.include? lang end end + I18n.locale = locale redirect_to(:back) if params[:locale] end diff --git a/app/controllers/cafe_works_controller.rb b/app/controllers/cafe_works_controller.rb deleted file mode 100644 index 8ea976a7b..000000000 --- a/app/controllers/cafe_works_controller.rb +++ /dev/null @@ -1,62 +0,0 @@ -# encoding:UTF-8 -class CafeWorksController < ApplicationController - load_permissions_and_authorize_resource - before_action :councils, except: [:index, :nyckelpiga] - before_action :set_faqs, only: :index - - def show - @cafe_work.load(current_user) - end - - def authorize - @authenticated = @cafe_work.authorize(worker_params[:access_code]) - end - - def update_worker - if @cafe_work.add_or_update(worker_params, current_user) - flash[:notice] = 'Bokningen uppdaterades - du arbetar!' - redirect_to @cafe_work - else - render action: :show - end - end - - def remove_worker - access = (params[:cafe_work].present?) ? worker_params[:access_code] : nil - if @cafe_work.remove_worker(current_user, access) - flash[:notice] = 'Du arbetar inte längre på passet' - redirect_to @cafe_work - else - render action: :show - end - end - - def index - respond_to do |format| - format.html { @lv = CafeWork.get_lv } - format.json { render json: CafeWork.between(params[:start], params[:end]) } - end - end - - def nyckelpiga - authorize! :nyckelpiga, CafeWork - @date = (params[:date].present?) ? Time.zone.parse(params[:date]) : Time.zone.now - @work_grid = initialize_grid(CafeWork.between(@date.beginning_of_day, - @date.end_of_day).ascending) - end - - private - - def worker_params - params.require(:cafe_work).permit(:profile_id, :name, :lastname, :phone, :email, - :utskottskamp, :access_code, council_ids: []) - end - - def councils - @councils = Council.all - end - - def set_faqs - @faqs = Faq.category(:Hilbert).answered - end -end diff --git a/app/controllers/contacts_controller.rb b/app/controllers/contacts_controller.rb index 2a7a054da..fbf80a28c 100644 --- a/app/controllers/contacts_controller.rb +++ b/app/controllers/contacts_controller.rb @@ -1,37 +1,44 @@ # encoding:UTF-8 class ContactsController < ApplicationController - before_filter :authenticate_edit, only: [:new, :edit, :update, :destroy] - before_action :set_contact, only: [:show, :edit, :update, :destroy, :mail] + before_filter :authenticate_edit, only: [:new,:edit,:update,:destroy] + before_action :set_contact, only: [:show, :edit,:update,:destroy,:mail] + # GET /councils + # GET /councils.json def index @contacts = Contact.all end + # GET /councils/1 + # GET /councils/1.json def show @sent = false end + # GET /councils/new def new @contact = Contact.new end + # GET /councils/1/edit def edit end - - def mail - if (params[:name]) && (params[:email]) && (params[:msg]) + def mail + if(params[:name]) && (params[:email]) && (params[:msg]) @name = params[:name] @email = params[:email] @msg = params[:msg] - ContactMailer.contact_email(@name, @email, @msg, @contact).deliver_now + ContactMailer.contact_email(@name,@email,@msg,@contact).deliver respond_to do |format| format.html { redirect_to @contact, notice: 'Meddelandet skickades.' } format.json { render action: 'show', status: :created, location: @contact } @sent = true end - end + end end + # POST /councils + # POST /councils.json def create @contact = Contact.new(contact_params) respond_to do |format| @@ -45,10 +52,12 @@ def create end end + # PATCH/PUT /councils/1 + # PATCH/PUT /councils/1.json def update respond_to do |format| if @contact.update(contact_params) - format.html { render action: 'edit', notice: 'Kontakten uppdaterades!' } + format.html { render action: 'edit' , notice: 'Kontakten uppdaterades!' } format.json { head :no_content } else format.html { render action: 'edit' } @@ -57,6 +66,8 @@ def update end end + # DELETE /councils/1 + # DELETE /councils/1.json def destroy @contact.destroy respond_to do |format| @@ -66,16 +77,22 @@ def destroy end private - # Use callbacks to share common setup or constraints between actions. - def set_contact - @contact = Contact.find_by_id(params[:id]) - if (@contact == nil) - redirect_to(contacts_path, notice: 'Ingen kontakt hittades.') + # Use callbacks to share common setup or constraints between actions. + def set_contact + @contact = Contact.find_by_id(params[:id]) + if(@contact == nil) + redirect_to(contacts_path,notice: 'Ingen kontakt hittades.') + end end - end - - # Never trust parameters from the scary internet, only allow the white list through. - def contact_params - params.require(:contact).permit(:name, :email, :public, :text, :council_id) - end + def authenticate_edit + + redirect_to(:back) unless current_user.moderator?(:kontakt) + + rescue ActionController::RedirectBackError + redirect_to root_path + end + # Never trust parameters from the scary internet, only allow the white list through. + def contact_params + params.require(:contact).permit(:name,:email,:public,:text,:council_id) + end end diff --git a/app/controllers/councils_controller.rb b/app/controllers/councils_controller.rb index bcd4da06b..182fedb5d 100644 --- a/app/controllers/councils_controller.rb +++ b/app/controllers/councils_controller.rb @@ -1,54 +1,82 @@ # encoding:UTF-8 class CouncilsController < ApplicationController - load_permissions_and_authorize_resource find_by: :url - before_action :set_page, only: :show + load_permissions_and_authorize_resource + before_action :set_council, only: [:show, :edit, :update, :destroy] before_action :set_councils + # GET /councils + # GET /councils.json def index end + # GET /councils/1 + # GET /councils/1.json def show if @page - @mainelements = @page.page_elements.where(visible: true, - sidebar: false).order(:displayIndex, :asc) - @sidebarelements = @page.page_elements.where(visible: true, - sidebar: true).order(:displayIndex, :asc) + @mainelements = @page.page_elements.where(visible: true, sidebar: false) + @sidebarelements = @page.page_elements.where(visible: true, sidebar: true) + if @mainelements.count > 1 + @mainelements = @mainelements.sort_by { |x| x[:displayIndex] } + end end @poster = @council.posts end + # GET /councils/new def new + @council = Council.new end + # GET /councils/1/edit def edit - @contact = Contact.where(council_id: @council.id).first + @contact = Contact.all.where(council_id: @council.id).first + if not @contact + @contact = Contact.new + @contact.council_id = @council.id + @contact.save + end end + # POST /councils def create + @council = Council.new(council_params) + @council.build_page(council_id: @council.id) if @council.save - @council.build_page!(council_id: @council.id) redirect_to edit_council_path(@council), notice: 'Utskott skapades, success.' else render action: 'new' end end + # PATCH/PUT /councils/1 + # PATCH/PUT /councils/1.json def update - if @council.update(council_params) - redirect_to edit_council_path(@council), notice: 'Utskott uppdaterades!' - else - render action: :edit + respond_to do |format| + if @council.update(council_params) + format.html { redirect_to edit_council_path(@council), notice: 'Utskott uppdaterades!' } + format.json { head :no_content } + else + format.html { render action: 'edit' } + format.json { render json: @council.errors, status: :unprocessable_entity } + end end end + # DELETE /councils/1 + # DELETE /councils/1.json def destroy @council.destroy - redirect_to councils_url, notice: 'Utskottet raderades' + respond_to do |format| + format.html { redirect_to councils_url } + format.json { head :no_content } + end end private - def set_page + # Use callbacks to share common setup or constraints between actions. + def set_council + @council = Council.find_by_id(params[:id]) @page = @council.page end @@ -56,8 +84,8 @@ def set_councils @councils = Council.all end + # Never trust parameters from the scary internet, only allow the white list through. def council_params - params.require(:council).permit(:title, :url, :description, - :president, :vicepresident, :public) + params.require(:council).permit(:title, :url, :description, :president, :vicepresident, :public) end end diff --git a/app/controllers/election/candidates_controller.rb b/app/controllers/election/candidates_controller.rb index 296955afc..e9a73d649 100644 --- a/app/controllers/election/candidates_controller.rb +++ b/app/controllers/election/candidates_controller.rb @@ -1,9 +1,11 @@ # encoding: UTF-8 class Election::CandidatesController < ApplicationController - before_action :set_election load_permissions_and_authorize_resource + before_action :set_election + before_action :set_candidate, only: [:show, :update, :destroy] respond_to :html + def index @candidates = current_user.profile.candidates.where(election: @election) @candidates_grid = initialize_grid(@candidates) diff --git a/app/controllers/election/nominations_controller.rb b/app/controllers/election/nominations_controller.rb index 2b47dbc23..8fd79d81f 100644 --- a/app/controllers/election/nominations_controller.rb +++ b/app/controllers/election/nominations_controller.rb @@ -1,8 +1,7 @@ # encoding: UTF-8 class Election::NominationsController < ApplicationController - before_action :set_election load_permissions_and_authorize_resource - + before_action :set_election def new @nomination = @election.nominations.new() if params[:post].present? @@ -12,18 +11,17 @@ def new def create @nomination = @election.nominations.build(nomination_params) - @saved = @nomination.save + if @nomination.save + @saved = true + # Background job send_mail + # ElectionMailer.nominate_email(@nomination).deliver + end end - private def set_election @election = Election.current - if @election.nil? - redirect_to elections_path - end end - def nomination_params - params.require(:nomination).permit(:name, :email, :motivation, :post_id) + params.require(:nomination).permit(:name,:email,:motivation,:post_id) end end diff --git a/app/controllers/elections_controller.rb b/app/controllers/elections_controller.rb index 65d1feb4b..7968d7f97 100644 --- a/app/controllers/elections_controller.rb +++ b/app/controllers/elections_controller.rb @@ -1,20 +1,21 @@ # encoding:UTF-8 class ElectionsController < ApplicationController - before_action :set_election load_permissions_and_authorize_resource - + before_filter :no_election, only: [:nominate,:create_nomination,:candidate] + def index - if @election.instance_of?(Election) - @grid_election = initialize_grid(@election.current_posts, name: 'election') - @grid_termins = initialize_grid(@election.posts.termins, name: 'election') + @election = Election.current + if(@election.instance_of?(Election)) + @grid_election = initialize_grid(@election.current_posts, name: "election") + @grid_termins = initialize_grid(@election.posts.termins, name: "election") else @election = nil - end + end end - private - def set_election - @election = Election.current +private + def election_params + params.fetch(:election).permit(:title,:description,:start,:end,:url,:visible,:mail_link,:mail_styrelse_link,:text_before,:text_during,:text_after,:nominate_mail,:candidate_mail,:extra_text,:candidate_mail_star,:post_ids => []) end end diff --git a/app/controllers/faqs_controller.rb b/app/controllers/faqs_controller.rb index ed2787f71..96b27791a 100644 --- a/app/controllers/faqs_controller.rb +++ b/app/controllers/faqs_controller.rb @@ -1,15 +1,18 @@ # encoding:UTF-8 class FaqsController < ApplicationController - before_action :authenticate_editor, only: [:edit, :update, :destroy] + before_filter :authenticate_editor, only: [:edit,:update,:destroy] before_action :set_editor, only: [:new, :show, :edit, :index] before_action :set_faq, only: [:show, :edit, :update, :destroy] + def index @faq = Faq.where.not(answer: '').where(category: 'main') + @faq_hilbert = Faq.where.not(answer: '').where(category: 'Hilbert') if @editor - @faq_unanswered = Faq.where(answer: '', category: 'main') + @faq_unanswered = Faq.where(answer: '',category: 'main') + @hilbert_unanswered = Faq.where(answer: '', category: 'Hilbert') end end @@ -18,7 +21,7 @@ def show def new @faq = Faq.new - if params[:category].present? + if(params[:category]) @faq.category = params[:category] end end @@ -83,7 +86,7 @@ def set_editor end def faq_params - params.require(:faq).permit(:question, :answer, :category) + params.require(:faq).permit(:question, :answer,:category) end -end +end \ No newline at end of file diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 988c4acb2..916f1f634 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -2,15 +2,15 @@ class PostsController < ApplicationController load_permissions_and_authorize_resource before_action :set_council + before_action :set_post, only: [:show, :edit, :update, :destroy, :remove_profile,:add_profile_username, :display] def remove_profile @profile = Profile.find_by_id(params[:profile_id]) - @post.profiles.delete(@profile) + @post.profiles.delete(@profile) respond_to do |format| - format.html { redirect_to council_posts_path(@council), notice: @profile.name.to_s + ' har inte längre posten ' + @post.title.to_s + '.' } - end + format.html { redirect_to council_posts_path(@council), notice: @profile.name.to_s + ' har inte längre posten ' + @post.title.to_s + '.'} + end end - def add_profile_username @user = User.find_by(username: params[:username]) if @user != nil @@ -18,48 +18,53 @@ def add_profile_username end if @profile == nil respond_to do |format| - format.html { redirect_to council_posts_path(@council), flash: {alert: 'Hittade ingen användare med det användarnamnet.'} } + format.html { redirect_to council_posts_path(@council), flash: {alert: 'Hittade ingen användare med det användarnamnet.'}} end - elsif @profile.name.blank? - redirect_to council_posts_path(@council), flash: {alert: 'Användaren :"' + @user.username.to_s + '" måste fylla i fler uppgifter i sin profil.'} + elsif @profile.name.blank? + redirect_to council_posts_path(@council), flash: {alert: 'Användaren :"' + @user.username.to_s + '" måste fylla i fler uppgifter i sin profil.'} elsif @profile.posts.include?(@post) - redirect_to council_posts_path(@council), flash: {alert: @profile.name.to_s + '(' + @user.username.to_s + ') har redan posten '+@post.title.to_s + '.'} + redirect_to council_posts_path(@council), flash: {alert: @profile.name.to_s + '(' + @user.username.to_s + ') har redan posten '+@post.title.to_s + '.'} elsif (@post.limit != nil) && (@post.profiles.size >= @post.limit) - redirect_to council_posts_path(@council), flash: {alert: @post.title.to_s + ' har sitt maxantal.'} - else - @post.profiles << @profile + redirect_to council_posts_path(@council), flash: {alert: @post.title.to_s + ' har sitt maxantal.'} + else + @post.profiles << @profile redirect_to council_posts_path(@council), notice: @profile.name.to_s + ' (' + @profile.user.username.to_s + ') tilldelades posten '+@post.title.to_s + '.' - if (@profile.first_post == nil) + if (@profile.first_post == nil) @profile.update(first_post: @post.id) - end + end end end - def index - if (@council) + + def index + if(@council) @posts = @council.posts else @posts = Post.all end - @post_grid = initialize_grid(@posts) + @post_grid = initialize_grid(@posts) end + # GET /news/new def new @post = @council.posts.build @councils = Council.order(title: :asc) end + # GET /news/1/edit def edit - @post_permissions = @post.permissions.collect! { |p| p.id } + @post_permissions = @post.permissions.collect!{|p| p.id} @councils = Council.order(title: :asc) @permissions = Permission.all end + # POST /news + # POST /news.json def create @councils = Council.order(title: :asc) - @post = @council.posts.build(post_params) + @post = @council.posts.build(post_params) respond_to do |format| - if @post.save + if @post.save format.html { redirect_to council_posts_path(@council), notice: 'Posten skapades!' } format.json { render action: 'show', status: :created, location: @post } else @@ -69,18 +74,20 @@ def create end end - def update + # PATCH/PUT /news/1 + # PATCH/PUT /news/1.json + def update respond_to do |format| @post.attributes = post_params @post.permissions = [] @post.set_permissions(params[:permissions]) if params[:permissions] if @post.save @council2 = Council.find_by_id(params[:post][:council]) - if (@council2) && (@council2.equal?(@council) == false) + if(@council2) && (@council2.equal?(@council) == false) @council2.posts << @post - @council = @council2 - end - format.html { redirect_to edit_council_post_path(@council, @post), notice: 'Posten uppdaterades!' } + @council = @council2 + end + format.html { redirect_to edit_council_post_path(@council,@post), notice: 'Posten uppdaterades!' } format.json { head :no_content } else @councils = Council.order(title: :asc) @@ -90,6 +97,8 @@ def update end end + # DELETE /news/1 + # DELETE /news/1.json def destroy @post.profiles.clear @post.destroy @@ -106,15 +115,15 @@ def collapse end private - def post_params - params.require(:post).permit(:title, :limit, :recLimit, - :description, :elected_by, :elected_at, - :styrelse, :car_rent, :council_id, :permissions) + params.require(:post).permit(:title, :limit,:recLimit,:description,:elected_by,:elected_at,:styrelse,:car_rent,:council_id,:permissions) end - - def set_council - @council = Council.find_by_url(params[:council_id]) + # Use callbacks to share common setup or constraints between actions. + def set_post + @post = Post.find(params[:id]) + end + def set_council + @council = Council.find_by_id(params[:council_id]) end end diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index 5d9a32013..5b79a1b6f 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -1,6 +1,8 @@ # encoding:UTF-8 class ProfilesController < ApplicationController - load_permissions_and_authorize_resource + #load_permissions_and_authorize_resource + + before_action :set_profile, only: [:show, :edit, :update,:remove_post, :avatar] def show if (@profile.owner?(current_user)) && (@profile.fresh?) diff --git a/app/controllers/rents_controller.rb b/app/controllers/rents_controller.rb index 3ba5ff98f..9450830ff 100644 --- a/app/controllers/rents_controller.rb +++ b/app/controllers/rents_controller.rb @@ -1,6 +1,5 @@ # encoding:UTF-8 class RentsController < ApplicationController - load_permissions_and_authorize_resource before_action :set_rents, only: [:new, :edit, :create, :update, :authorize] before_action :set_rent, only: [:show, :edit, :update, :authorize] respond_to :html, :json diff --git a/app/controllers/static_pages_controller.rb b/app/controllers/static_pages_controller.rb index 3be5b6c1b..b67a00443 100644 --- a/app/controllers/static_pages_controller.rb +++ b/app/controllers/static_pages_controller.rb @@ -15,3 +15,5 @@ def index end end end + + diff --git a/app/mailers/cafe_mailer.rb b/app/mailers/cafe_mailer.rb deleted file mode 100644 index 368f83d29..000000000 --- a/app/mailers/cafe_mailer.rb +++ /dev/null @@ -1,20 +0,0 @@ -# encoding: UTF-8 -class CafeMailer < ActionMailer::Base - before_action :load_hilbert - default from: '"Cafemästarna" ' - - def sign_up_email(cafe_work) - @cafe_work = cafe_work - if (@cafe_work) && (@cafe_work.email.present?) - mail to: @cafe_work.assignee.p_email, - subject: %(Hilbert Café: jobba den #{@cafe_work.print_date} (fsektionen.se)), - sent_on: Time.zone.now - end - end - - private - - def load_hilbert - attachments.inline['hilbert.jpg'] = File.read(Rails.root.join('app/assets/images/hilbert.jpg')) - end -end diff --git a/app/mailers/contact_mailer.rb b/app/mailers/contact_mailer.rb index c744bf833..0c0407aec 100644 --- a/app/mailers/contact_mailer.rb +++ b/app/mailers/contact_mailer.rb @@ -2,14 +2,14 @@ class ContactMailer < ActionMailer::Base default from: 'Spindelman ', parts_order: ["text/plain", "text/html"] default subject: 'Meddelande via Fsektionen.se' - - def contact_email(name, email, msg, kontakt) - @name = name - @email = email - @msg = msg - @kontakt = kontakt - if (@name) && (@email) && (@msg) && (@kontakt) + + def contact_email(name,email,msg,kontakt) + @name = name + @email = email + @msg = msg + @kontakt = kontakt + if(@name) && (@email) && (@msg) && (@kontakt) mail from: @name + ' <'+@email+'>', to: @kontakt.email - end + end end end diff --git a/app/models/ability.rb b/app/models/ability.rb index ce5a8cfb1..8639836b4 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -10,25 +10,14 @@ def initialize(user) can :read, News can :read, Council can :read, Election - can :read, Document, public: true - - # TODO Should be removed when everyone is required to log in. - # /d.wessman 2015-03-28 - can [:read, :update_worker, :remove_worker, :authorize], CafeWork - can [:read, :main], Rent # Abilities all signed in users get if user.id - can :nominate, Election - can :candidate, Election - can :manage, Candidate, profile_id: user.profile.id - can :manage, Profile, user_id: user.id can :read, Post can :read, Document can :read, :old_gallery can :read, Event - - # TODO We really need to move calendar to its own controller + # We really need to move calendar to its own controller can :calendar, Event end @@ -38,7 +27,7 @@ def initialize(user) user.profile.posts.each do |post| post.permissions.each do |permission| if permission.subject_class == 'all' - can permission.action.to_sym, :all + can permission.action.to_sym, permission.subject_class.to_sym else can permission.action.to_sym, permission.subject_class.constantize end diff --git a/app/models/assignee.rb b/app/models/assignee.rb deleted file mode 100644 index 16c896161..000000000 --- a/app/models/assignee.rb +++ /dev/null @@ -1,106 +0,0 @@ -# encoding: UTF-8 - -# An assignee describes a user and have some common attributes. -# The assignee is used as a Value Object, and is not saved with ActiveRecord. -# For example - see implementation in CafeWork model. -# An assignee can only be created with Assignee.new(param_hash), not create. -# You cannot save values here, that belongs in the ActiveRecord model. -# Ref: http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/ -# /d.wessman -class Assignee - include ActiveModel::Model - - # Attributes that can be set and be read. - attr_accessor :name, :lastname, :phone, :email, :profile_id, :access_code, :profile - - # Method used to setup new Assignee with a user > profile/access_code - # User present > Profile is set to User.profile - # User absent > Access Code is generated - def self.setup(assignee_params, user) - new(assignee_params).prepare(user) - end - - # To define if the Assignee is set and present. - def present? - has_profile? || has_access_code? - end - - # Printing methods - def p_name - %(#{name} #{lastname}) - end - - # Can be used in mailer, will generate proper tag. - def p_email - %("#{name} #{lastname}" <#{email}>) - end - - # A way to clear all the attributes of the Assignee - # Returns array of attributes, this way it can be used like: - # Model.attributes = assignee.clear_attributes - # Which saves a lot of rows and declarations. - def clear_attributes - self.name, self.lastname, self.phone = nil, nil, nil - self.email, self.profile_id, self.access_code = nil, nil, nil - attributes - end - - def load_profile(user) - if (user.present?) && !has_profile? - self.name, self.lastname = user.profile.name, user.profile.lastname - self.email,self.phone = user.profile.email, user.profile.phone - end - attributes - end - - # Returns a hash of the current attributes - def attributes - { - name: name, lastname: lastname, email: email, - phone: phone, profile_id: profile_id, access_code: access_code - } - end - - # Method to return the profile. - # The @profile variable is set if a profile is sent in with the parameter hash. - def profile - @profile || Profile.find_by_id(profile_id) - end - - def has_profile? - profile.present? - end - - def has_access_code? - access_code.present? - end - - def equals?(assignee) - name == assignee.name && - lastname == assignee.lastname && - email == assignee.email && - phone == assignee.phone - end - - # For custom creation action where parameters is set and - # profile or access_code setup is made. - def prepare(user) - set_profile(user) - set_access_code - self - end - - protected - - def set_profile(user) - if !has_profile? && user.present? - self.profile_id = (@profile = user.profile).id - end - end - - def set_access_code - if !has_profile? && !has_access_code? - self.access_code = (0...15).map { (65 + rand(26)).chr }.join.to_s - end - end -end diff --git a/app/models/cafe_work.rb b/app/models/cafe_work.rb deleted file mode 100644 index a4a631e56..000000000 --- a/app/models/cafe_work.rb +++ /dev/null @@ -1,249 +0,0 @@ -# encoding: UTF-8 -class CafeWork < ActiveRecord::Base - # Associations - belongs_to :profile - has_many :councils, through: :cafe_work_councils - has_many :cafe_work_councils - - # Validations - validates :work_day, :pass, :lp, :lv, presence: true - validates :pass, :lp, inclusion: { in: 1..4 } - validates :lv, inclusion: { in: 1..7 } - validates :name, :lastname, :phone, :email, presence: true, if: :has_worker? - validates :pass, uniqueness: { scope: [:work_day, :lv, :lp, :d_year] } - - # Scopes - scope :with_worker, -> { where('profile_id IS NOT null OR access_code IS NOT null') } - scope :between, ->(from, to) { where(work_day: from..to) } - scope :ascending, -> { order(pass: :asc) } - scope :week, ->(week) { where(lv: week) } - scope :period, ->(p) { where(lp: p) } - scope :year, ->(y) { where(d_year: y) } - - after_update :send_email, if: :has_worker? - - # A custom class for the worker - # For more information see Assignee model or - # read comments above methods - def worker - @worker || Assignee.new(worker_attributes) - end - - # Sends email to worker - # /d.wessman - def send_email - CafeMailer.sign_up_email(self).deliver_now - rescue - Rails.logger.info 'Mailer could not connect, rescued here' - end - - # Prepares work for a user to sign up, without saving - # Will only change attributes if there is no worker and - # user is present. - # /d.wessman - def load(user) - self.attributes = worker.load_profile(user) - end - - # Shows different status texts depending on the user. - # /d.wessman - def status_text(user) - case status_view(user) - when :sign_up - return 'Fyll i uppgifter och tryck på Spara för att skriva upp dig och arbeta på passet.' - when :edit - return 'Du är uppskriven för att arbeta på passet.' - when :assigned - return 'Passet är redan bokat.' - when :authorize - return 'Passet är bokat, fyll i koden som mailades ut vid anmälan för att redigera.' - end - end - - # Gives different statuses for the view - # 0 = everyone can sign up - # 1 = can be edited, either logged in or authorized - # 2 = shows no form - # 3 = shows form for authorization - # /d.wessman - def status_view(user) - if access_code.present? - return :authorize - elsif has_worker? - return owner?(user) ? :edit : :assigned - end - :sign_up - end - - def add_or_update(worker_params, user) - if has_worker? - update_worker(worker_params, user) - else - add_worker(worker_params, user) - end - end - - # User to update worker, checks for edit-access and triggers at_update - # /d.wessman - def add_worker(worker_params, user) - if has_worker? - errors.add('Arbetare', 'passet har redan en.') - return false - end - - # Should be done with a bang when the error handling works - # Ref: https://github.com/fsek/web/issues/93 - # /d.wessman - self.attributes = worker_params - self.attributes = Assignee.setup(worker_attributes, user).attributes - save - end - - # User to update worker, checks for edit-access - # /d.wessman - def update_worker(worker_params, user) - if !owner?(user) && !authorize(worker_params[:access_code]) - errors.add('Auktorisering', - 'misslyckades, du har inte rättighet att redigera eller skrev fel kod.') - return false - end - - # Should be done with a bang when the error handling works - # Ref: https://github.com/fsek/web/issues/93 - # /d.wessman - self.attributes = worker_params - self.attributes = Assignee.setup(worker_attributes, user).attributes - save - end - - # Remove-function used by the worker - # /d.wessman - def remove_worker(user, access) - if !owner?(user) && !authorize(access) - errors.add('Auktorisering', - 'misslyckades, du har inte rättighet att ta bort eller skrev fel kod.') - return false - end - - clear_worker - end - - # Method to remove the worker from current work. - # /d.wessman - def clear_worker - self.attributes = worker.clear_attributes - self.utskottskamp = false - councils.clear - self.save!(validate: false) - end - - # Returns true if the profiles are similar and not nil - # /d.wessman - def owner?(user) - user.present? && user.profile.present? && profile.present? && user.profile == profile - end - - # Returns true if the user can edit the object - # /d.wessman - def edit?(user) - editable? && (!has_worker? || owner?(user)) - end - - def editable? - work_day > Time.zone.now - end - - # Returns true only if the access_code is correct - # /d.wessman - def authorize(access) - access.present? && access_code.present? && access_code == access - end - - # Returns true if there is a worker - # /d.wessman - def has_worker? - worker.present? - end - - # Used to print date in a usable format. - # /d.wessman - def print_time - %(#{start.strftime('%H:%M')}-#{stop.strftime('%H:%M')}) - end - - # Used to print out date, reading week and work number - # /d.wessman - def print - %(#{print_date} LV: #{lv} Pass: #{pass}) - end - - def print_date - %(#{print_time}, #{start.strftime('%A %d/%m')}) - end - - # Prints the url or path for the current object - def p_url - Rails.application.routes.url_helpers.cafe_work_url(id, host: PUBLIC_URL) - end - - def p_path - Rails.application.routes.url_helpers.cafe_work_path(id) - end - - def as_json(*) - { - id: id, - title: %(Cafepass #{pass}), - start: start.iso8601, - end: stop.iso8601, - status: print, - url: p_path, - color: 'black', - backgroundColor: b_color, - textColor: 'black' - } - end - - # To print start time - def t_start - start.strftime('%H:%M') - end - - # To print end time - def t_end - stop.strftime('%H:%M') - end - - def start - work_day - end - - # End would be a better name, doesn't fit into code. - def stop - work_day + duration.hours - end - - def self.get_lv - check = CafeWork.between(Time.zone.now.beginning_of_day - 2.days, Time.zone.now.end_of_day).last - (check.present?) ? check.lv.to_s : '?' - end - - protected - - def worker_attributes - { - name: name, lastname: lastname, email: email, - phone: phone, profile: profile, profile_id: profile_id, access_code: access_code - } - end - - # Background color for the event - def b_color - (has_worker?) ? 'orange' : 'white' - end - - # Duration of work - def duration - ((pass == 1) || (pass == 2)) ? 2 : 3 - end -end diff --git a/app/models/cafe_work_council.rb b/app/models/cafe_work_council.rb deleted file mode 100644 index 85cad7491..000000000 --- a/app/models/cafe_work_council.rb +++ /dev/null @@ -1,6 +0,0 @@ -class CafeWorkCouncil < ActiveRecord::Base - belongs_to :cafe_work - belongs_to :council - - validates :cafe_work, :council, presence: true -end diff --git a/app/models/cafetimmar.rb b/app/models/cafetimmar.rb new file mode 100644 index 000000000..bff7e4811 --- /dev/null +++ b/app/models/cafetimmar.rb @@ -0,0 +1,17 @@ +# encoding: UTF-8 +class Cafetimmar < ActiveRecord::Base + + def ical + e=Icalendar::Event.new + e.uid=self.id + e.dtstart=DateTime.civil(self.date.year, self.date.month, self.date.day, self.date.hour, self.date.min) + e.dtend=DateTime.civil(self.end_date.year, self.end_date.month, self.end_date.day, self.end_date.hour, self.end_date.min) + e.location = self.location + e.summary=self.title + e.description = self.content + e.created=self.created_at + e.url= "#{PUBLIC_URL}/events/#{self.id}" + e.last_modified=self.updated_at + e + end +end diff --git a/app/models/candidate.rb b/app/models/candidate.rb index 1e2e9d516..23a9e0cbe 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -1,11 +1,9 @@ # encoding: UTF-8 class Candidate < ActiveRecord::Base - # Associations belongs_to :election belongs_to :profile belongs_to :post - # Validations validates :profile_id, uniqueness: { scope: [:post_id, :election_id], message: 'har redan en likadan kandidatur' }, on: :create @@ -30,18 +28,6 @@ def prepare(user) end end - def editable? - election.view_status == 2 || post.elected_by == 'Studierådet' - end - - def p_url - Rails.application.routes.url_helpers.election_candidate_url(id, host: PUBLIC_URL) - end - - def p_path - Rails.application.routes.url_helpers.election_candidate_path(id) - end - def owner?(user) user.present? && user.profile == profile end diff --git a/app/models/constant.rb b/app/models/constant.rb index 238aa6109..21789d596 100644 --- a/app/models/constant.rb +++ b/app/models/constant.rb @@ -1,7 +1,6 @@ class Constant < ActiveRecord::Base - # Validations - validates :name, :value, presence: true - validates :name, uniqueness: true + validates :name, presence: true, uniqueness: true + validates :value, presence: true def self.get(name) c = Constant.where(name: name).first diff --git a/app/models/council.rb b/app/models/council.rb index bb9777431..b3a0d184f 100644 --- a/app/models/council.rb +++ b/app/models/council.rb @@ -1,34 +1,15 @@ # encoding: UTF-8 class Council < ActiveRecord::Base - # Associations has_one :page, dependent: :destroy - belongs_to :president, foreign_key: :president, class_name: :Post belongs_to :vice_president, foreign_key: :vice_president, class_name: :Post - has_many :posts has_many :profiles, through: :posts - has_many :cafe_work_councils - has_many :cafe_works, through: :cafe_work_councils - # Validation - validates :title, :url, presence: true + validates :title,:url,:presence => true validates :url, uniqueness: true def to_s - title - end - - # To use the url as actual url - def to_param - (url.present?) ? url : id - end - - def p_url - Rails.application.routes.url_helpers.council_url(id, host: PUBLIC_URL) - end - - def p_path - Rails.application.routes.url_helpers.council_path(id) + self.title end end diff --git a/app/models/election.rb b/app/models/election.rb index 0fa742c7c..11ac3dac4 100644 --- a/app/models/election.rb +++ b/app/models/election.rb @@ -4,11 +4,10 @@ class Election < ActiveRecord::Base has_many :candidates, dependent: :destroy has_and_belongs_to_many :posts - validates :url, presence: true, uniqueness: true - - def self.current - self.order(start: :asc).where(visible: true).first || nil - end + validates_presence_of :url + validates_uniqueness_of :url + + scope :current, -> { order(start: :asc).where(visible: true).take } # Returns a number to load different views # 1: before the election opens diff --git a/app/models/news.rb b/app/models/news.rb index 9fd1441fe..14b80349a 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -2,18 +2,21 @@ class News < ActiveRecord::Base belongs_to :profile - has_attached_file :image, - styles: {original: '4000x4000>', large: '800x800>', small: '250x250>', thumb: '100x100>'}, - path: ':rails_root/public/system/images/news/:id/:style/:filename', - url: '/system/images/news/:id/:style/:filename' + has_attached_file :image, + :styles => { original: "4000x4000>", large: "800x800>", small: "250x250>",thumb: "100x100>" }, + :path => ":rails_root/public/system/images/news/:id/:style/:filename", + :url => "/system/images/news/:id/:style/:filename" # Validations - validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ - validates :title, :content, :profile, presence: true + validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ + validates :title, :presence => true + validates :content, :presence => true + validates :profile, :presence => true + # Scopes - scope :d_published, -> { where('d_publish <= ?', Time.zone.today) } - scope :not_removed, -> { where('d_remove > ?', Time.zone.today) } - scope :public_n, -> { where(public: true) } - scope :latest, -> { order(created_at: :asc).limit(5) } + scope :d_published, -> {where('d_publish <= ?',Time.zone.today)} + scope :not_removed, -> {where('d_remove > ?',Time.zone.today)} + scope :public_n, -> {where(public: true)} + scope :latest, -> {order(created_at: :asc).limit(5)} end diff --git a/app/models/nomination.rb b/app/models/nomination.rb index 9c5bf5f48..1c609f81c 100644 --- a/app/models/nomination.rb +++ b/app/models/nomination.rb @@ -8,6 +8,6 @@ class Nomination < ActiveRecord::Base after_create :send_email def send_email - ElectionMailer.nominate_email(self).deliver_now + ElectionMailer.nominate_email(self).deliver end end diff --git a/app/models/notice.rb b/app/models/notice.rb index 06ed5b229..e8319d6ba 100644 --- a/app/models/notice.rb +++ b/app/models/notice.rb @@ -1,27 +1,35 @@ #encoding: UTF-8 class Notice < ActiveRecord::Base # Relationships + # Paperclip attachment # The storage folder require the use of Sendfile. has_attached_file :image, - styles: { large: '400x400>', small: '250x250>' }, - path: ':rails_root/storage/notices/:id/:style-:filename' + :styles => {large: "400x400>",small: "250x250>"}, + :path => ":rails_root/storage/notices/:id/:style-:filename" # Validations - validates :title, :description, :sort, presence: true - validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/ + validates_presence_of :title,:description,:sort + validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ # Scopes - scope :d_published, -> { where('d_publish <= ?', Time.zone.today) } - scope :not_removed, -> { where('d_remove > ?', Time.zone.today) } - scope :public_n, -> { where(public: true) } - scope :published, -> { order(sort: :asc).d_published.not_removed } + scope :d_published, -> {where('d_publish <= ?',Time.zone.today)} + scope :not_removed, -> {where('d_remove > ?',Time.zone.today)} + scope :public_n, -> {where(public: true)} # Assures dates are set for queries # /d.wessman before_create :check_dates before_update :check_dates + # Methods + + # Return: all notices valued as published + # /d.wessman + def self.published + order(sort: :asc).d_published.not_removed + end + # Return: all published and public notices # /d.wessman def self.public_published @@ -32,26 +40,32 @@ def self.public_published # /d.wessman def display(bool) if bool == true - update(d_publish: Time.zone.today - 2.days, d_remove: '2094-03-25') - else - update(d_remove: Time.zone.today - 2.days) + self.d_publish = Time.zone.today - 2.days + self.d_remove = "2094-03-25" + self.save + else bool == false + self.d_remove = Time.zone.today - 2.days + self.save end end # Return: true if notice is valued to display or not def displayed? - d_publish <= Time.zone.today && d_remove > Time.zone.today + return (self.d_publish <= Time.zone.today) && (self.d_remove > Time.zone.today) end # Assures dates are set (if not present) to allow for good queries # Also my 100th birthday! # /d. wessman def check_dates - if d_publish.nil? + if(self.d_publish.nil?) && (self.d_remove.nil?) + self.d_remove = "2094-03-25" + self.d_publish = Time.zone.today + elsif(self.d_publish?) + self.d_remove = "2094-03-25" + elsif(self.d_remove?) self.d_publish = Time.zone.today - end - if d_remove.nil? - self.d_remove = '2094-03-25' end end -end + +end \ No newline at end of file diff --git a/app/models/profile.rb b/app/models/profile.rb index b21016f9e..b6cb8e346 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -1,5 +1,6 @@ # encoding: UTF-8 class Profile < ActiveRecord::Base + # Associations belongs_to :user has_and_belongs_to_many :posts @@ -8,15 +9,16 @@ class Profile < ActiveRecord::Base has_many :councils, through: :posts # Attachment - has_attached_file :avatar, - styles: {medium: '300x300>', thumb: '100x100>'}, - path: ':rails_root/storage/profile/:id/:style/:filename' + has_attached_file :avatar, + :styles => { medium: "300x300>", thumb: "100x100>" }, + :path => ":rails_root/storage/profile/:id/:style/:filename" + # Validations - validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ + validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ # Only on update! - validates :name, :lastname, presence: true, on: :update - validates :start_year, inclusion: { in: 1954..(Time.zone.today.year + 1) }, on: :update + validates_presence_of :name, :lastname, on: :update + validates_inclusion_of :start_year, in: 1954..(Time.zone.today.year+1), on: :update def full_name "#{name} #{lastname}".strip @@ -32,30 +34,38 @@ def car_councils # Check if profile has user data (name and lastname) # /d.wessman def has_profile_data? - name.present? && lastname.present? + return (self.name? && self.lastname?) end # Returns true if profile is fresh # /d.wessman def fresh? - created_at == updated_at + return self.created_at == self.updated_at end # Returns true if user is equal to profiles user # /d.wessman def owner?(user) - self.user == user + (self.user == user) end # Check if user has post, and in that case what first_post is set to # /d.wessman def check_posts - if posts.count > 0 && first_post == false - update(first_post: posts.first.id) - end + if(self.posts.count > 0) && (self.first_post?) + return + end + if(self.posts.count > 0) + self.first_post = self.posts.first.id + self.save + end end def print - %(#{name} #{lastname}) + if (self.name) && (self.lastname) + %(#{self.name} #{self.lastname}) + elsif (self.name) + self.name + end end end diff --git a/app/models/rent.rb b/app/models/rent.rb index c3b587397..7bad90dc5 100644 --- a/app/models/rent.rb +++ b/app/models/rent.rb @@ -31,7 +31,6 @@ class Rent < ActiveRecord::Base # /d.wessman scope :active, -> { where(aktiv: true).where.not(status: 'Nekad') } - # To scope all rents between two dates # /d.wessman scope :between, ->(from, to) { where('? >= d_from AND ? <= d_til', to, from) } diff --git a/app/models/role.rb b/app/models/role.rb index 02b13af1b..3f9de30f1 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -1,4 +1,5 @@ # encoding: utf-8 + class Role < ActiveRecord::Base has_many :users end diff --git a/app/models/user.rb b/app/models/user.rb index 7c61a756a..4f2f3c60d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,15 +1,15 @@ # encoding:UTF-8 require 'net/http' -class User < ActiveRecord::Base - has_one :profile +class User < ActiveRecord::Base + has_one :profile belongs_to :role - has_many :posts, through: :profile + has_many :posts, through: 'profiles' devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable - validates :username, uniqueness: true + validates_uniqueness_of :username validate :is_f_member after_create :create_profile_for_user @@ -19,13 +19,13 @@ def create_profile_for_user end def is_f_member - errors.add :f_member, 'är inte medlem i F-sektionen' unless @f_member || self.persisted? + errors.add :f_member, "är inte medlem i F-sektionen" unless @f_member || self.persisted? end def check_f_membership(civic) url = URI.parse("http://medcheck.tlth.se/?ssid=#{civic.gsub(/[^0-9]/i, "")}") req = Net::HTTP::Get.new(url.to_s) - res = Net::HTTP.start(url.host, url.port) { |http| + res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) } diff --git a/app/services/cafe_setup_week.rb b/app/services/cafe_setup_week.rb deleted file mode 100644 index d6add627a..000000000 --- a/app/services/cafe_setup_week.rb +++ /dev/null @@ -1,28 +0,0 @@ -#encoding: UTF-8 -class CafeSetupWeek - def initialize(day, lp) - @day = day - @lp = lp - end - - def setup(start, stop) - preview(start,stop).each do |cwork| - cwork.save - end - end - - def preview(start, stop) - @cworks = [] - (start..stop).each do |lv| - (0..4).each do - @cworks << CafeWork.new(work_day: @day, lp: @lp, pass: 1, lv: lv, d_year: @day.year) - @cworks << CafeWork.new(work_day: @day, lp: @lp, pass: 2, lv: lv, d_year: @day.year) - @cworks << CafeWork.new(work_day: @day + 2.hours, lp: @lp, pass: 3, lv: lv, d_year: @day.year) - @cworks << CafeWork.new(work_day: @day + 2.hours, lp: @lp, pass: 4, lv: lv, d_year: @day.year) - @day = @day + 1.days - end - @day = @day + 2.days - end - @cworks - end -end diff --git a/app/views/admin/cafe_works/_form.html.erb b/app/views/admin/cafe_works/_form.html.erb deleted file mode 100644 index bafd35036..000000000 --- a/app/views/admin/cafe_works/_form.html.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= form_for([:admin, @cafe_work]) do |form| %> - <%= render 'shared/form_errors', current: @cafe_work %> - <%= form.label 'Datum', class: 'reg-label' %> -
- <%= form.text_field :work_day, class: 'form-control datetimepicker' %> -
- <%= form.label 'Pass (1 & 2, 08:00-10:00) (3 & 4, 10:00-13:00)', class: 'reg-label' %> -
- <%= form.number_field :pass, min: 1, max: 4, class: 'form-control' %> -
- <%= form.label 'Läsperiod', class: 'reg-label' %> -
- <%= form.number_field :lp, min: 1, max: 4, class: 'form-control' %> -
- <%= form.label 'Läsvecka', class: 'reg-label' %> -
- <%= form.number_field :lv, min: 1, max: 7, class: 'form-control' %> -
-
- <%= form.submit "Spara", class: 'btn-u pull-right' %> -
-<% end %> diff --git a/app/views/admin/cafe_works/_links.html.erb b/app/views/admin/cafe_works/_links.html.erb deleted file mode 100644 index 222fff9bb..000000000 --- a/app/views/admin/cafe_works/_links.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -
- <%= link_to("Admin - start", admin_hilbert_path, class: "btn btn-u") %> <%= link_to("Hilbert - start", hilbert_path, class: "btn btn-u") %> - <% if @cwork.present? && !@cwork.new_record? %> <%= link_to("Jobb - vanlig vy", cafe_work_path(@cwork), class: "btn btn-u") %> - <% end %> -
\ No newline at end of file diff --git a/app/views/admin/cafe_works/_setup_form.html.erb b/app/views/admin/cafe_works/_setup_form.html.erb deleted file mode 100644 index 570c7cf15..000000000 --- a/app/views/admin/cafe_works/_setup_form.html.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= form_for(@cafe_work, method: :post, url: {action: 'setup_create'}) do |f| %> - <%= render 'shared/form_errors', current: @cafe_work %> -
- <%= f.label 'Läsveckor', class: 'reg-label' %> -
- <%= number_field_tag :lv_first, @lv_first, min: 1, max: 37, class: 'form-control', placeholder: "Från" %> - <%= number_field_tag :lv_last, @lv_last, min: 1, max: 37, class: 'form-control', placeholder: "Till" %> -
- <%= f.label 'Läsperiod', class: 'reg-label' %> -
- <%= f.number_field :lp, min: 1, max: 4, class: 'form-control' %> -
- <%= f.label 'Datum första passet', class: 'reg-label' %> -
- <%= f.text_field :work_day, class: 'form-control datetimepicker' %> -
- -
- <%= f.submit "Spara", class: 'btn-u pull-left' %> - <%= f.submit "Förhandsgranska", class: 'btn-u pull-right' %> -
-<% end %> diff --git a/app/views/admin/cafe_works/destroy.js.erb b/app/views/admin/cafe_works/destroy.js.erb deleted file mode 100644 index bd160754a..000000000 --- a/app/views/admin/cafe_works/destroy.js.erb +++ /dev/null @@ -1,3 +0,0 @@ -$('#<%=%(cafe_work_#{@id})%>').fadeOut(); -$('#<%=%(cafe_work_#{@id})%>').html(''); -$('#status').text("Jobbpasset togs bort").effect("bounce", 1500); diff --git a/app/views/admin/cafe_works/edit.html.erb b/app/views/admin/cafe_works/edit.html.erb deleted file mode 100644 index bbeea0172..000000000 --- a/app/views/admin/cafe_works/edit.html.erb +++ /dev/null @@ -1,12 +0,0 @@ -
-
-
- <%= label_tag 'Redigera cafepass', nil, class: 'reg-header' %> - <%= render 'links' %> - <%= render 'form' %> - <%= link_to 'Visa cafepass', @cwork, class: "btn btn-u" %> - <%= link_to 'Ta bort passet', @cwork, method: :delete, class: "btn btn-u" %> - <%= link_to 'Tillbaka till Hilbert', :hilbert, class: "btn btn-u" %> -
-
-
\ No newline at end of file diff --git a/app/views/admin/cafe_works/index.html.erb b/app/views/admin/cafe_works/index.html.erb deleted file mode 100644 index c352b87c5..000000000 --- a/app/views/admin/cafe_works/index.html.erb +++ /dev/null @@ -1,74 +0,0 @@ -<% provide(:title, 'Hilbert Café') %> -<%= stylesheet_link_tag "fullcalendar-custom", media: "print" %> -
\ No newline at end of file diff --git a/app/views/admin/cafe_works/new.html.erb b/app/views/admin/cafe_works/new.html.erb deleted file mode 100644 index 2d2ffb2a4..000000000 --- a/app/views/admin/cafe_works/new.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
-
-
- <%= label_tag 'Cafejobb',nil, :class => 'reg-header'%> - <%= render 'form'%> - <%= link_to 'Tillbaka till cafebokning', :admin_cafe_works %> -
-
-
\ No newline at end of file diff --git a/app/views/admin/cafe_works/remove_worker.js.erb b/app/views/admin/cafe_works/remove_worker.js.erb deleted file mode 100644 index 5d95e801e..000000000 --- a/app/views/admin/cafe_works/remove_worker.js.erb +++ /dev/null @@ -1,2 +0,0 @@ -$('#jobbare').fadeOut(); -$('#status').text("Jobbare borttagen").effect('highlight'); diff --git a/app/views/admin/cafe_works/setup.html.erb b/app/views/admin/cafe_works/setup.html.erb deleted file mode 100644 index b43002242..000000000 --- a/app/views/admin/cafe_works/setup.html.erb +++ /dev/null @@ -1,40 +0,0 @@ -<% provide(:title, 'Hilbert Café - Setup') %> -
diff --git a/app/views/admin/cafe_works/show.html.erb b/app/views/admin/cafe_works/show.html.erb deleted file mode 100644 index 6769d53bb..000000000 --- a/app/views/admin/cafe_works/show.html.erb +++ /dev/null @@ -1,57 +0,0 @@ -<% provide(:title, 'Administratör Hilbert Café') %> -
-
- <%= render 'links' %> -

Cafejobb - ID <%= @cafe_work.id %> Admin

- <%= render 'form' %> -

Jobbare

- <% if @cafe_work.has_worker? %> - - -
- - - - - - - - - - - - - - - - - - - <% if @cafe_work.access_code.present? %> - - - - - <% end %> - -
- <% if @cafe_work.profile.present? %> - <%= link_to(@cafe_work.worker.p_name, profile_path(@cafe_work.profile)) %> - <% else %> - <%= @cafe_work.worker.p_name %> - <% end %> -
<%= @cafe_work.email %>
<%= @cafe_work.phone %>
Cafetävling<%= (@cafe_work.utskottskamp) ? "Ja" : "Nej" %>
Kod:<%= @cafe_work.access_code %>
-
- <%= link_to("Ta bort jobbare", - remove_worker_admin_cafe_work_path(@cafe_work), class: "btn btn-u", - remote: true, method: :patch) %> -
-
- - <% else %> -

Jobbare saknas

- <%= link_to("Ta bort pass", admin_cafe_work_path(@cafe_work), - method: :delete, class: "btn btn-u") %> - <% end %> -
-
diff --git a/app/views/admin/elections/_form.html.erb b/app/views/admin/elections/_form.html.erb index 8177f5ff6..d7dab24f1 100644 --- a/app/views/admin/elections/_form.html.erb +++ b/app/views/admin/elections/_form.html.erb @@ -1,56 +1,55 @@ <%= form_for([:admin, @election]) do |f| %> <%= render 'shared/form_errors', current: @election %>
-
- <%= f.label 'Titel', class: 'reg-label' %> +
+ <%= f.label 'Titel', :class => 'reg-label' %>
- <%= f.text_field :title, class: 'form-control' %> + <%= f.text_field :title, :class => 'form-control' %>
- <%= f.label 'Öppnar', class: 'reg-label' %> + <%= f.label 'Öppnar', :class => 'reg-label' %>
- <%= f.text_field :start, class: 'form-control datetimepicker1' %> + <%= f.datetime_select :start, :class => 'form-control' %>
- <%= f.label 'Stänger', class: 'reg-label' %> + <%= f.label 'Stänger', :class => 'reg-label' %>
- <%= f.text_field :end, class: 'form-control datetimepicker2' %> + <%= f.datetime_select :end, :class => 'form-control' %>
- <%= f.label 'Url', class: 'reg-label' %>
+ <%= f.label 'Url', :class => 'reg-label' %>
T.ex. ht-14 (endast a-z, 1-9 och -)
- <%= f.text_field :url, class: 'form-control' %> + <%= f.text_field :url, :class => 'form-control' %>
-
- <%= f.label 'Beskrivning av valet', class: 'reg-label' %> +
+ <%= f.label 'Beskrivning av valet', :class => 'reg-label' %>
- <%= f.text_area :description, class: 'form-control', size: "40x2" %> + <%= f.text_area :description, :class => 'form-control', size: "40x2" %>
<% if @election.new_record? == false %> <%= link_to 'Lägg till fler texter', edit_admin_election_path(@election), class: "btn btn-u" %>
<% end %> - <%= f.label 'Länk för intervjutider - styrelseposter', class: 'reg-label' %> + <%= f.label 'Länk för intervjutider - styrelseposter', :class => 'reg-label' %>
- <%= f.text_field :mail_styrelse_link, class: 'form-control', size: "40x2" %> + <%= f.text_field :mail_styrelse_link, :class => 'form-control', size: "40x2" %>
- <%= f.label 'Länk för intervjutider - övriga', class: 'reg-label' %>
+ <%= f.label 'Länk för intervjutider - övriga', :class => 'reg-label' %>
Om ingen fylls i för styrelseposter så används denna.
- <%= f.text_field :mail_link, class: 'form-control', size: "40x2" %> + <%= f.text_field :mail_link, :class => 'form-control', size: "40x2" %>
- <%= f.label 'Synlig?', class: 'reg-label' %> - <%= f.check_box :visible, class: 'form-control' %> + <%= f.label 'Synlig?', :class => 'reg-label' %> + <%= f.check_box :visible, :class => 'form-control' %>
<% if @posts %>
- <%= label_tag 'Poster att söka', nil, class: 'reg-header' %> + <%= label_tag 'Poster att söka', nil, :class => 'reg-header' %>
<% @posts.in_groups_of(10, false) do |row_posts| %>
<% row_posts.each do |post| %>
- <%= f.check_box(:post_ids, {multiple: true}, post.id, nil) %> - <%= f.label :post_ids, post.title, value: false, class: 'reg-label' %> + <%= f.check_box(:post_ids, {multiple: true}, post.id, nil) %><%= f.label :post_ids, post.title, :value => false, :class => 'reg-label' %>
<% end %>
@@ -59,6 +58,6 @@
<% end %>
- <%= f.submit "Spara", class: 'btn-u' %> + <%= f.submit "Spara", :class => 'btn-u' %>
-<% end %> +<% end %> \ No newline at end of file diff --git a/app/views/admin/elections/index.html.erb b/app/views/admin/elections/index.html.erb index 5db33e79d..c57a1cc56 100644 --- a/app/views/admin/elections/index.html.erb +++ b/app/views/admin/elections/index.html.erb @@ -4,5 +4,4 @@
  • <%=link_to(elec.title,admin_election_path(elec))%>
  • <%end%> - <%=link_to('Nytt val',new_admin_election_path)%> -
    +
    \ No newline at end of file diff --git a/app/views/admin/elections/new.html.erb b/app/views/admin/elections/new.html.erb index 380fb1f00..1e8289ac7 100644 --- a/app/views/admin/elections/new.html.erb +++ b/app/views/admin/elections/new.html.erb @@ -1,10 +1,10 @@
    - <%= label_tag 'Nytt val',nil, class: 'reg-header'%> + <%= label_tag 'Nytt val',nil, :class => 'reg-header'%> <%= render 'form'%> <%= link_to 'Visa val',elections_path %>
    <%= link_to 'Tillbaka till startsida', root_url %>
    -
    +
    \ No newline at end of file diff --git a/app/views/admin/elections/show.html.erb b/app/views/admin/elections/show.html.erb index 9e16280f6..8b1e6bc01 100644 --- a/app/views/admin/elections/show.html.erb +++ b/app/views/admin/elections/show.html.erb @@ -1,9 +1,9 @@ <% provide(:title, 'Val') %>
    - <%= label_tag 'Inställningar', nil, class: 'reg-header' %> + <%= label_tag 'Inställningar', nil, :class => 'reg-header' %> <%= render 'form' %>
    - <% if can? :manage,:all %> + <% if (current_user) && current_user.admin? %> <%= link_to 'Radera val', admin_election_path(@election), class: 'btn btn-u',data: {confirm: 'Valet raderas och kan inte återställas, är du säker?'}, method: :delete %> <% end %> diff --git a/app/views/admin/rents/_form.html.erb b/app/views/admin/rents/_form.html.erb index 5cb4e4f26..d5ed7d481 100644 --- a/app/views/admin/rents/_form.html.erb +++ b/app/views/admin/rents/_form.html.erb @@ -9,7 +9,7 @@ <%= f.label 'Disclaimer', class: 'reg-label' %> <%= f.check_box :disclaimer, id: "accepted_disclaimer" %> <%= f.label 'Service', class: 'reg-label' %> - <%= f.check_box :services %> + <%= f.check_box :service %>
    <%= f.label 'Namn & Efternamn', class: 'reg-label' %> diff --git a/app/views/cafe_mailer/sign_up_email.html.erb b/app/views/cafe_mailer/sign_up_email.html.erb deleted file mode 100644 index e6d9f335c..000000000 --- a/app/views/cafe_mailer/sign_up_email.html.erb +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - <%if attachments.inline['hilbert.jpg']%> - <%= image_tag attachments['hilbert.jpg'].url %> - <%end%> -

    Hej <%=@cafe_work.name %>

    -

    Du har skrivit upp dig för att arbeta i Hilbert Café med följande uppgifter (ID: <%=@cafe_work.id%>).

    - - - - - - - - - - - - - - - - - - - - - - - <%if @cafe_work.access_code.present?%> - - - - - <%end%> - -
    Namn:<%=%(#{@cafe_work.name} #{@cafe_work.lastname})%>
    Epost:<%=@cafe_work.email%>
    Telefon:<%=@cafe_work.phone%>
    Datum:<%=@cafe_work.print_date%>
    Länk:<%=link_to(@cafe_work.p_url,@cafe_work.p_url)%>
    Kod:<%= @cafe_work.access_code%>
    -
    -

    För att redigera dina uppgifter eller hoppa av så följer du länken.

    -

    Har du några frågor så svarar du enklast direkt på detta mejl.

    - -

    Mvh,
    - Cafemästarna

    - - \ No newline at end of file diff --git a/app/views/cafe_mailer/sign_up_email.text.erb b/app/views/cafe_mailer/sign_up_email.text.erb deleted file mode 100644 index fa7c91558..000000000 --- a/app/views/cafe_mailer/sign_up_email.text.erb +++ /dev/null @@ -1,21 +0,0 @@ -Hej <%=@cafe_work.name.to_s %> - -=============================================== - -Du har skrivit upp dig för att arbeta i Hilbert Café med följande uppgifter (ID: <%=@cafe_work.id%>). - -Namn: <%=@cafe_work.name.to_s%> <%=@cafe_work.lastname.to_s%> -Epost: <%=@cafe_work.email.to_s%> -Telefon: <%=@cafe_work.phone.to_s%> -Datum: <%=@cafe_work.print_date%> -Länk: <%=@cafe_work.p_url%> -<%if !@cafe_work.access_code.nil?%> -Kod: <%=@cafe_work.access_code%> -<%end%> - -För att redigera dina uppgifter eller hoppa av så följer du länken. -Har du några frågor så svarar du enklast direkt på detta mejl. - - -Mvh, -Cafemästarna \ No newline at end of file diff --git a/app/views/cafe_works/_authorization.html.erb b/app/views/cafe_works/_authorization.html.erb deleted file mode 100644 index cdbdd9409..000000000 --- a/app/views/cafe_works/_authorization.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<%=form_for(@cwork, url: authorize_cafe_work_url(@cwork), remote: true ) do |f|%> - <%= f.label 'Kod', :class => 'reg-label'%> - -
    - <%= f.text_field :access_code, value: nil, class: 'form-control'%> -
    -
    - <%= f.submit "Auktorisera",class: 'btn-u pull-right' %> -
    -<%end%> \ No newline at end of file diff --git a/app/views/cafe_works/_form.html.erb b/app/views/cafe_works/_form.html.erb deleted file mode 100644 index bde5780fa..000000000 --- a/app/views/cafe_works/_form.html.erb +++ /dev/null @@ -1,74 +0,0 @@ -<%= form_for(@cafe_work, url: {action: :update_worker}) do |f| %> - <%= render 'shared/form_errors', current: @cafe_work %> -
    - <%= f.label 'Namn & Efternamn', class: 'reg-label' %> -
    -
    <%= f.text_field :name, class: 'form-control', placeholder: "Förnamn" %>
    -
    <%= f.text_field :lastname, class: 'form-control', placeholder: "Efternamn" %>
    -
    -
    - <%= f.label 'E-post & telefon', class: 'reg-label' %> -
    -
    -
    <%= f.email_field :email, class: 'form-control', placeholder: "E-post" %>
    -
    <%= f.phone_field :phone, class: 'form-control', placeholder: "Telefon" %>
    -
    -
    - <% if @cafe_work.access_code.present? %> - <%= f.label 'Kod', class: 'reg-label' %> -

    Koden måste fyllas i för att ändringar ska sparas

    -
    - <%= f.text_field :access_code, class: 'form-control', placeholder: "Kod", value: nil %> -
    - <% end %> - <% if @councils %> -

    Utskottskampen

    -
    -
    - <%= f.label :utskottskamp, "Delta i cafétävlingen?", value: false, class: 'reg-label' %> -

    Ditt namn kommer synas i resultatet

    - <%= f.check_box :utskottskamp, class: 'form-control', value: @cafe_work.utskottskamp %> -
    - <%= f.label "Välj ett eller flera utskott att representera", class: 'reg-label' %> -
    - <%= f.collection_check_boxes(:council_ids, @councils, :id, :title, class: "form-control") do |b| %> - - <%= b.check_box %> - <%= b.label %>
    -
    - <% end %> -
    -
    -
    - <% end %> - <% if @cafe_work.editable? %> - <% if !@cafe_work.has_worker? %> -
    -

    Genom att trycka på spara accepterar du att dina personuppgifter hanteras elektroniskt. - Dina uppgifter kan endast ses av administratörer, cafeansvariga samt nyckelpigor.

    -
    - <% end %> -
    - <%= f.submit "Spara", class: 'btn-u pull-right' %> -
    - <% else %> -

    Det går inte längre att skriva upp sig på passet eller redigera.

    - <% end %> -<% end %> -<% if @cafe_work.has_worker? %> - <% if @authenticated %> - <%= form_for(@cafe_work, url: remove_worker_cafe_work_path(@cafe_work)) do |f| %> - <%= f.label 'Hoppa av', class: 'reg-label', id: 'leave_status' %> -

    Din kod måste fyllas i för att kunna hoppa av passet

    -
    - <%= f.text_field :access_code, class: 'form-control', placeholder: "Kod", value: nil %> -
    - <%= f.submit("Hoppa av", class: "btn btn-u") %>
    - <% end %> - <% else %> - <%= link_to("Hoppa av", remove_worker_cafe_work_path(@cafe_work), class: "btn btn-u", method: :patch) %> -
    - <% end %> - -<% end %> - diff --git a/app/views/cafe_works/authorize.js.erb b/app/views/cafe_works/authorize.js.erb deleted file mode 100644 index a97783d04..000000000 --- a/app/views/cafe_works/authorize.js.erb +++ /dev/null @@ -1,7 +0,0 @@ -<% if @authenticated%> - $('#authorization').hide(); - $('#after_authorization').append("<%= escape_javascript( render partial: 'form')%>").show(); - $('#status').text("Korrekt kod, du kan nu redigera passet.").effect("bounce",3000); -<%else%> - $('#status').text("Felaktig kod").effect("bounce",3000); -<%end%> \ No newline at end of file diff --git a/app/views/cafe_works/index.html.erb b/app/views/cafe_works/index.html.erb deleted file mode 100644 index c8889e1e8..000000000 --- a/app/views/cafe_works/index.html.erb +++ /dev/null @@ -1,58 +0,0 @@ -<% provide(:title, 'Hilbert Café') %> -<%= stylesheet_link_tag "fullcalendar-custom", media: "print" %> -
    -
    -
    -

    Välkommen till Hilbert Café - Läsvecka <%= @lv %> (BETA)

    - Stöter ni på problem eller om det blir fel, hör gärna av er - till <%= link_to('Cafemästare','http://fsektionen.se/kontakt/8') %> - eller <%= render partial: 'contacts/kontakt', locals: {name: 'Spindelmän'} %>. -
    -
    -
    -
    -
    -

    F.A.Q.

    -
    - <% @faqs.each do |f| %> -
    - -
    -
    - <%= simple_format(f.answer) %> -
    -
    -
    - <% end %> -
      -
    • <%= link_to("Ställ ny frÃ¥ga", new_faq_path(category: "Hilbert")) %>
    • -
    -
    -
    - <% if user_signed_in? %> -
    - <% if can? :manage, CafeWork %> -

    Verktyg

    -
      -
    • <%= link_to("GÃ¥ till administrationssida", :admin_hilbert) %>
    • -
    - <% end %> - <% if can? :nyckelpiga, CafeWork %> -
      -
    • <%= link_to("Nyckelpiga", :nyckelpiga) %>
    • -
    - <% end %> -
    - <% end %> -
    -
    -
    -
    diff --git a/app/views/cafe_works/nyckelpiga.html.erb b/app/views/cafe_works/nyckelpiga.html.erb deleted file mode 100644 index ff44c4222..000000000 --- a/app/views/cafe_works/nyckelpiga.html.erb +++ /dev/null @@ -1,39 +0,0 @@ -<% provide(:title, 'Hilbert Café') %> -
    -
    -

    <%= label_tag 'Cafebokning - nyckelpiga', nil, class: 'reg-header' %>

    -
    -
    - <%= form_tag(nyckelpiga_path, {method: 'get'}) do |f| %> - <%= text_field_tag(:date, @date.iso8601, class: "form-control datetimepicker") %> - <%= submit_tag "Visa", class: "btn btn-u" %> - <% end %> -
    -
    - <% if @works %> - - - - - - - - - - - - <% @works.each do |work| %> - - - - - - - - <% end %> - -
    IDPassFörnamnEfternamnTelefon
    <%= link_to(work.id, work) %><%= work.pass %><%= (work.profile.present?) ? link_to(work.name, work.profile) : work.name %><%= work.lastname %><%= work.phone %>
    - <% end %> -
    - <%= link_to("Startsida för Hilbert", :hilbert, class: "btn btn-u") %> -
    diff --git a/app/views/cafe_works/show.html.erb b/app/views/cafe_works/show.html.erb deleted file mode 100644 index 3a835603d..000000000 --- a/app/views/cafe_works/show.html.erb +++ /dev/null @@ -1,51 +0,0 @@ -<% provide(:title, 'Hilbert Café') %> -
    -

    Cafejobb

    -
    -
    -
    - <%= fa_icon('calendar') %> - <%= @cafe_work.work_day.day %> - <%= @cafe_work.work_day.strftime('%m, %Y') %> -
    -
    -
    -
    - <%= fa_icon('clock-o') %> - <%= @cafe_work.t_start %> - till - <%= @cafe_work.t_end %> -
    -
    -
    -
    - LV <%= @cafe_work.lv %> - LP <%= @cafe_work.lp %> -
    -
    -
    -
    -

    Jobbare

    - <%= render 'shared/form_errors', current: @cafe_work %> -

    <%= @cafe_work.status_text(current_user) %>

    - <% case @cafe_work.status_view(current_user) - when :sign_up, :edit %> -
    - <%= render 'form' %> -
    - <% when :authorize %> -
    - <%= render 'authorization' %> -
    -
    -
    - <% end %> -
    - -
    - <% if can? :manage, CafeWork %> - <%= link_to("Administrera passet", admin_cafe_work_path(@cafe_work), class: "btn btn-u") %> - <% end %> - <%= link_to("Startsida för Hilbert", :hilbert, class: "btn btn-u") %> -
    -
    diff --git a/app/views/events/show.html.erb b/app/views/events/show.html.erb index 06ec92cb8..60a6cfe8c 100644 --- a/app/views/events/show.html.erb +++ b/app/views/events/show.html.erb @@ -1,74 +1,65 @@ -
    -
    - <% if @event.image? %> -
    - <% else %> -
    - <% end %> -

    <%= @event.title %>

    - <%= simple_format(@event.description) %> -
    -
    -
      -
    • <%= fa_icon('calendar') %>Startar:
    • -
    • <%= fa_icon('calendar') %>Slutar:
    • - -
    -
    -
    -
      -
    • <%= @event.starts_at %>
    • -
    • <%= @event.ends_at %>
    • -
    -
    -
    -
    -
    -
      - <% if @author %> -
    • <%= fa_icon('user') %>Upplagt av:
    • - <% end %> -
    • <%= fa_icon('group') %>Utskott:
    • -
    -
    -
    -
      - <% if @author %> -
    • <%= link_to @author.print, @author %>
    • - <% end %> -
    • <%= @event.category %>
    • -
    -
    -
    -
    -
    - <% if can? :manage, Event %> - <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Redigera"), - edit_event_path(@event), - class: "btn-u btn-u-small" %> - <%= link_to (content_tag(:i, nil, class: "fa fa-trash-o") + " Förinta"), - @event, method: :delete, - data: {confirm: "Är du säker?"}, class: "btn-u btn-u-small" %> - <% end %> -
    -
    -
    - - - - <% if @event.image? %> - -
    - \ No newline at end of file diff --git a/app/views/faqs/_form.html.erb b/app/views/faqs/_form.html.erb index 34a449781..5ec7b76bc 100644 --- a/app/views/faqs/_form.html.erb +++ b/app/views/faqs/_form.html.erb @@ -1,23 +1,33 @@ -<%= form_for(@faq) do |f| %> - <%= render 'shared/form_errors', current: @faq %> - <%= f.label 'Fråga', class: 'reg-label' %> +<%= form_for(@faq, :html => { :autocomplete => 'off' }) do |f| %> + <% if @faq.errors.any? %> +
    +

    <%= pluralize(@faq.errors.count, "fel") %> gör att frågan inte kan sparas:

    + +
      + <% @faq.errors.full_messages.each do |msg| %> +
    • <%= msg.sub! "Question", "FrÃ¥ga" %>
    • + <% end %> +
    +
    + <% end %> + <%= f.label 'Fråga', :class => 'reg-label'%>
    - <%= f.text_field :question, class: 'form-control', placeholder: 'Fråga' %> + <%= f.text_field :question, :class => 'form-control',:placeholder => 'Fråga'%>
    - <%= f.label 'Kategori', class: 'reg-label' %> + <%= f.label 'Kategori', :class => 'reg-label'%>
    - <%= f.select(:category, [[], ['FAQ', 'main'], ['Bil', 'Bil'], ['Hilbert', 'Hilbert']], class: 'form-control') %> + <%= f.select(:category,[[],['FAQ','main'],['Bil','Bil'],['Hilbert','Hilbert']], class: 'form-control')%>
    - <% if @editor %> - <%= f.label 'Svar', class: 'reg-label' %> + <%if @editor%> + <%= f.label 'Svar', :class => 'reg-label'%>
    - <%= f.text_area :answer, class: 'form-control', placeholder: 'Svar' %> + <%= f.text_area :answer, :class => 'form-control',:placeholder => 'Svar' %>
    - <% end %> + <%end%>
    - <%= f.submit "Skicka", class: 'btn-u pull-right' %> - <% if !@faq.new_record? %> - <%= link_to(%(#{fa_icon('edit')} Ta bort fråga), faq_path(@faq), method: :delete, class: "btn-u btn-u-small") %> - <% end %> + <%= f.submit "Skicka",:class => 'btn-u pull-right' %> + <%if !@faq.new_record?%> + <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Ta bort fråga"), :faq, method: :delete, class: "btn-u btn-u-small"%> + <%end%>
    -<% end %> +<% end %> \ No newline at end of file diff --git a/app/views/faqs/index.html.erb b/app/views/faqs/index.html.erb index ae439a2f8..08ceb4145 100644 --- a/app/views/faqs/index.html.erb +++ b/app/views/faqs/index.html.erb @@ -1,67 +1,61 @@ -
    -
    -
    - <% if (@editor) && (@faq_unanswered.count > 0) %> -

    Obesvarade frågor

    -
    - <% @faq_unanswered.each do |f| %> -
    - -
    -
    - <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Svara på fråga"), edit_faq_path(f), class: "btn-u btn-u-small" %> - <%= link_to (content_tag(:i, nil, class: "fa fa-trash-o") + " Ta bort fråga"), f, method: :delete, class: "btn-u btn-u-small" %> -
    -
    -
    - <% end %> -
    - <% end %> +
    +
    +
    + <%if (@editor) && (@faq_unanswered.count > 0)%> +

    Obesvarade frågor

    +
    + <%@faq_unanswered.each do |f|%> +
    + +
    +
    + <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Svara på fråga"), edit_faq_path(f), class: "btn-u btn-u-small"%> + <%= link_to (content_tag(:i, nil, class: "fa fa-trash-o") + " Ta bort fråga"), f, method: :delete, class: "btn-u btn-u-small"%> +
    +
    +
    + <%end%> +
    + <%end%> - -

    FAQ

    -
    - <% @first=true %> - <% @faq.each do |f| %> -
    - -
    -
    - <%= f.answer %> - <% if @editor %> - <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Redigera fråga"), edit_faq_path(f), class: "btn-u btn-u-small pull-right" %> - <% end %> -
    -
    -
    - <% end %> -
    -
    - + +

    FAQ

    +
    + <%@first=true%> + <%@faq.each do |f|%> +
    + +
    +
    + <%=f.answer%> + <%if @editor%> + <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Redigera fråga"), edit_faq_path(f), class: "btn-u btn-u-small pull-right"%> + <%end%> +
    +
    +
    + <%end%> +
    +
    -
    - <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Ställ fråga"), new_faq_path, class: "btn-u btn-u-small" %> -
    -
    -
    - +
    + <%= link_to (content_tag(:i, nil, class: "fa fa-edit") + " Ställ fråga"), new_faq_path, class: "btn-u btn-u-small"%>
    +
    +
    diff --git a/app/views/layouts/_bottombar.html.erb b/app/views/layouts/_bottombar.html.erb index 2bef1039e..006ce66ad 100644 --- a/app/views/layouts/_bottombar.html.erb +++ b/app/views/layouts/_bottombar.html.erb @@ -1,6 +1,6 @@
    diff --git a/app/views/layouts/_menu.html.erb b/app/views/layouts/_menu.html.erb index 3db4ad5a8..0d605d452 100644 --- a/app/views/layouts/_menu.html.erb +++ b/app/views/layouts/_menu.html.erb @@ -1,66 +1,76 @@ <% menus_by_location = Menu.index.group_by &:location %> + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 63039c4fc..d925a5820 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,12 +1,9 @@ - - - - + + + - <%= full_title(yield(:title)) %> + <%=full_title(yield(:title))%> @@ -14,119 +11,136 @@ - <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> + <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> <%= javascript_include_tag "application", "data-turbolinks-track" => true %> <%= csrf_meta_tags %> <%= favicon_link_tag 'favicon.ico' %> - <% if current_user # This script is needed for the old gallery hack. /Erik Henriksson %> - <%= javascript_tag do %> - gallery_username = '<%= j current_user.username %>'; - gallery_secret = '<%= j current_user.encrypted_password %>'; - <% end %> + <% if current_user # This script is needed for the old gallery hack. /Erik Henriksson %> + <%= javascript_tag do %> + gallery_username = '<%= j current_user.username %>'; + gallery_secret = '<%= j current_user.encrypted_password %>'; + <% end %> <% end %> + + + - -
    -
    - <%= render 'layouts/topbar' %> + +
    +
    + <%= render "layouts/topbar" %> +
    -
    - + - -
    - - + -<% if yield(:title) == 'Utskott' %> + <% if yield(:title) == 'Utskott' %>
    <%= render "layouts/utskottmenu" %>
    -<% end %> + <% end %> - -<%= yield :pre_content %> + + <%= yield :pre_content %> -
    -
    - -
    - <% if notice %> +
    +
    + +
    + <% if notice %>
    <%= notice %> -
    - <% end %> - <% if alert %> +
    + <% end %> + <% if alert %>
    Fel: <%= alert %> -
    - <% end %> - <%= yield %> +
    + <% end %> + <%= yield %> <%= yield :role_main %> <%= yield :role_sidebar %> +
    +
    +
    + + + + - -
    - - - - - - - - - - +
    + + + + + + + diff --git a/app/views/posts/_form.html.erb b/app/views/posts/_form.html.erb index 24d0f2c87..e7e985c5d 100644 --- a/app/views/posts/_form.html.erb +++ b/app/views/posts/_form.html.erb @@ -1,49 +1,45 @@ -<%= form_for([@council, @post]) do |f| %> - <%= render 'shared/form_errors', current: @post %> -
    - <%= f.label 'Titel', class: 'reg-label' %> -
    - <%= f.text_field :title, class: 'form-control' %> -
    - <%= f.label 'Styrelsepost', class: 'reg-label' %> -
    - <%= f.check_box :styrelse, checked: @post.styrelse %> -
    - <%= f.label 'Får boka bilen för utskottet', class: 'reg-label' %> -
    - <%= f.check_box :car_rent, checked: @post.car_rent %> -
    - <%= f.label 'Väljs av?, väljs när?', class: 'reg-label' %> -
    - <%= f.select :elected_by, options_for_select(["", "Terminsmötet", "Styrelsen", "Studierådet"], @post.elected_by), class: "form-control" %> <%= f.select :elected_at, options_for_select(["", "HT", "VT"], @post.elected_at), class: "form-control" %> -
    - <%= f.label 'Ansvarigt utskott', class: 'reg-label' %> -
    - <%= f.select :council_id, - options_from_collection_for_select(@councils, :id, :title, @post.council_id), - include_blank: true, - class: "form-control listBox" %> -
    -
    -
    - <%= f.label 'Hur många kan ha posten?', class: 'reg-label' %> -

    0 - 0 ger * (det gör även 7 - 0)

    - -

    5 - 5 get 5 (x)

    - -

    4 - 5 ger 4-5

    - -
    - <%= f.select :recLimit, 0..10, selected: @post.recLimit, class: 'form-control' %> - - <%= f.select :limit, 0..10, selected: @post.limit, class: 'form-control' %> -
    -
    -
    - <%= f.label 'Beskrivning:', class: 'reg-label' %> -
    - <%= f.text_area :description, size: '80x18', class: 'form-control' %> -
    -
    +<%= form_for(council_post_path(@council,@post), method: :patch) do |f| %> + <%= render 'shared/form_errors', current: @post%> +
    + <%= f.label 'Titel', :class => 'reg-label'%> +
    + <%= f.text_field :title,:class => 'form-control' %> +
    + <%= f.label 'Styrelsepost', :class => 'reg-label'%> +
    + <%= f.check_box :styrelse, checked: @post.styrelse %> +
    + <%= f.label 'Får boka bilen för utskottet', :class => 'reg-label'%> +
    + <%= f.check_box :car_rent, checked: @post.car_rent %> +
    + <%= f.label 'Väljs av?, väljs när?', class:'reg-label'%> +
    + <%= f.select :elected_by, options_for_select(["","Terminsmötet","Styrelsen","Studierådet"],@post.elected_by),class: "form-control"%> <%= f.select :elected_at, options_for_select(["","HT", "VT"],@post.elected_at),class: "form-control"%> +
    + <%= f.label 'Ansvarigt utskott', :class => 'reg-label'%> +
    + <%= f.select :council_id, + options_from_collection_for_select(@councils,:id,:title,@post.council_id), + include_blank: true, + :class => "form-control listBox"%> +
    +
    +
    + <%= f.label 'Hur många kan ha posten?', :class => 'reg-label'%> +

    0 - 0 ger * (det gör även 7 - 0)

    +

    5 - 5 get 5 (x)

    +

    4 - 5 ger 4-5

    +
    + <%= f.select :recLimit, 0..10,selected: @post.recLimit,class:'form-control' %> - <%= f.select :limit, 0..10,selected: @post.limit,class:'form-control' %> +
    +
    +
    + <%= f.label 'Beskrivning:', :class => 'reg-label'%> +
    + <%= f.text_area :description,size: '80x18',class:'form-control' %> +
    +
    Permissions @@ -53,17 +49,15 @@ <% @permissions.each do |permission| %> - - - - - + + + + + <% end %>
    <%= check_box_tag 'main', 0, false %>
    <%= permission.subject_class %><%= permission.action %><%= check_box_tag 'permissions[]', permission.id, - @post_permissions.include?(permission.id), - {array: true, class: "check_box"} %>
    <%= permission.subject_class %><%= permission.action %><%= check_box_tag 'permissions[]', permission.id, @post_permissions.include?(permission.id), {array: true, class: "check_box"}%>
    -
    - <%= f.submit "Spara", class: 'btn-u pull-right' %> -
    +
    + <%= f.submit "Spara",:class => 'btn-u pull-right' %> +
    <% end %> diff --git a/app/views/rent_mailer/_attributes_html.html.erb b/app/views/rent_mailer/_attributes_html.html.erb index bdb5b50d0..b33aa6bdb 100644 --- a/app/views/rent_mailer/_attributes_html.html.erb +++ b/app/views/rent_mailer/_attributes_html.html.erb @@ -26,7 +26,7 @@ <% if rent.council.present? %> Utskott: - <%= link_to(rent.council.title, rent.council.p_url) %> + <%= link_to(rent.council.title, council_path(rent.council)) %> <% end %> diff --git a/app/views/rent_mailer/active_email.html.erb b/app/views/rent_mailer/active_email.html.erb index 50bf6cb47..00f5ccf57 100644 --- a/app/views/rent_mailer/active_email.html.erb +++ b/app/views/rent_mailer/active_email.html.erb @@ -14,7 +14,50 @@ <% end %>
    -<%= render 'attributes_html', rent: @rent%> +

    Bokningens uppgifter (ID: <%= @rent.id %>).

    + + + + + + + + + + + + + + + + + + + <% if @rent.purpose.present? %> + + + + + <% end %> + <% @council = Council.find_by_id(@rent.council_id) %> + <% if @council %> + + + + + <% end %> + + + + + <% if @rent.access_code.present? %> + + + + + <% end %> + +
    Namn:<%= @rent.p_name %>
    Epost:<%= @rent.email %>
    Telefon:<%= @rent.phone %>
    Datum:<%= @rent.p_time %>
    Syfte:<%= simple_format(@rent.purpose) %>
    Utskott:<%= link_to(@council.title, council_path(@council)) %>
    Länk:<%= link_to('Bokning', @rent.p_url) %>
    Kod:<%= @rent.access_code %>

    Mvh,
    diff --git a/app/views/rent_mailer/rent_email.html.erb b/app/views/rent_mailer/rent_email.html.erb index e78504d22..a20a0fe12 100644 --- a/app/views/rent_mailer/rent_email.html.erb +++ b/app/views/rent_mailer/rent_email.html.erb @@ -6,7 +6,49 @@

    Hej <%= @rent.p_name %>

    -<%= render 'attributes_html', rent: @rent%> +

    Du har bokat F-sektionens bil med nedanstående uppgifter (ID: <%= @rent.id %>) .

    + + + + + + + + + + + + + + + + + + + <% if @rent.purpose.blank? == false %> + + + + + <% end %> + <% if @rent.council.present? %> + + + + + <% end %> + + + + + <% if @rent.access_code.present? %> + + + + + <% end %> + +
    Namn:<%= @rent.p_name %>
    Epost:<%= @rent.email %>
    Telefon:<%= @rent.phone %>
    Datum:<%= @rent.p_time %>
    Syfte:<%= simple_format(@rent.purpose) %>
    Utskott:<%= link_to(@rent.council.title, council_path(@rent.council)) %>
    Länk:<%= link_to(@rent.p_url, @rent.p_url) %>
    Kod:<%= @rent.access_code %>

    <% if (@rent.status != "Bekräftad") %> diff --git a/bin/haml b/bin/haml new file mode 100755 index 000000000..69847459d --- /dev/null +++ b/bin/haml @@ -0,0 +1,16 @@ +#!/usr/bin/env ruby +# +# This file was generated by Bundler. +# +# The application 'haml' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require 'pathname' +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', + Pathname.new(__FILE__).realpath) + +require 'rubygems' +require 'bundler/setup' + +load Gem.bin_path('haml', 'haml') diff --git a/config/application.rb b/config/application.rb index 42d016ba4..7e9497126 100644 --- a/config/application.rb +++ b/config/application.rb @@ -18,16 +18,16 @@ class Application < Rails::Application # config.time_zone = 'Central Time (US & Canada)' # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. - config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] - config.i18n.default_locale = :sv + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] + # config.i18n.default_locale = :de config.autoload_paths += Dir["#{config.root}/lib/**/"] - config.autoload_paths += Dir["#{config.root}/services/**/"] config.time_zone ='Stockholm' config.secret_token='53925521d781eeebea75a93a98a86e8aee9a3fac8b2be4c9ee4fed6f745899921e0b22502ee937fcfaa8cf4b471dd02ba8627ebb8b48f99c1975761c45ccd790' + config.i18n.default_locale = :sv config.assets.precompile += ['application-print.css'] - config.filter_parameters += [:password, :password_confirmation, :civic] + config.filter_parameters += [:password,:password_confirmation,:civic] config.active_record.raise_in_transactional_callbacks = true end end diff --git a/config/environments/production.rb b/config/environments/production.rb index 03c3420eb..842053e61 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -74,7 +74,7 @@ # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify - config.action_mailer.default_url_options = { host: 'fsektionen.se' } + config.action_mailer.default_url_options = { :host => 'fsektionen.se' } config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = false diff --git a/config/environments/test.rb b/config/environments/test.rb index 0abf6bce1..cd57c79d0 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -14,9 +14,7 @@ config.eager_load = false # Configure static asset server for tests with Cache-Control for performance. - - config.serve_static_files = true - + config.serve_static_files = true config.static_cache_control = "public, max-age=3600" # Show full error reports and disable caching. diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 00d163182..ab813f264 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1,13 +1,3 @@ -Rails.application.config.assets.precompile << Proc.new do |path| - if path =~ /\.(css|js|scss|sass)\z/ - full_path = Rails.application.assets.resolve(path).to_path - app_assets_path = Rails.root.join('app', 'assets').to_path - full_path.starts_with? app_assets_path - else - false - end -end - # Be sure to restart your server when you modify this file. # Version of your assets, change this if you want to expire all your assets. diff --git a/config/locales/en.yml b/config/locales/en.yml index d0262455c..b9fc6589b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -19,10 +19,6 @@ # To learn more, please read the Rails Internationalization guide # available at http://guides.rubyonrails.org/i18n.html. en: - time: - formats: - day: "%A %d/%m" - Hello: Hello success_create: was successfully created success_update: was successfully updated @@ -31,3 +27,4 @@ en: profile_add_information: You have to fill out your name and surname. Please fill out the other information as well. error: error prevent_save: prevents the save + diff --git a/config/locales/sv.the_role.yml b/config/locales/sv.the_role.yml deleted file mode 100644 index 2a0ee0fb8..000000000 --- a/config/locales/sv.the_role.yml +++ /dev/null @@ -1,17 +0,0 @@ -sv: - the_role: - role_created: Roll skapades - role_updated: Roll uppdaterades - role_deleted: Roll togs bort - section_created: Sektion skapades - section_not_created: Sektion skapades inte - section_rule_created: "Sektionsregel skapad" - section_rule_not_created: "Sektionsregel ej skapad" - section_rule_on: "Sektionsregel aktiverad" - section_rule_off: "Sektionsregel inaktiverad" - state_not_changed: "Sektionsregel ej ändraded" - section_deleted: Sektion borttagen - section_not_deleted: Sektion ej borttagen - section_rule_deleted: "Sektionsregel borttagen" - section_rule_not_deleted: "Sektionsregel ej borttagen" - access_denied: "Åtkomst nekad" \ No newline at end of file diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 28546afbd..5bc908714 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -77,7 +77,7 @@ sv: section_not_deleted: Sektion ej borttagen section_rule_deleted: "Sektionsregel borttagen" section_rule_not_deleted: "Sektionsregel ej borttagen" - access_denied: "Åtkomst nekad" + access_denied: "Åtkomst nekad" admin: roles: @@ -111,18 +111,4 @@ sv: roles_import_confirm: 'Det kan ändra behörigheter i ditt system, är du säker?' errors: - format: "%{message}" - attributes: - email: - blank: "Epost måste anges" - phone: - blank: "Telefonnummer måste anges" - name: - blank: "Förnamn måste anges" - lastname: - blank: "Efternamn måste anges" - - time: - formats: - day: "%A %d/%m" invalid-url: Inte en giltig webadress diff --git a/config/routes.rb b/config/routes.rb index 2ea047523..9e2aa6bda 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,6 @@ Fsek::Application.routes.draw do + resources :constants post "githook" => "githook#index" @@ -14,6 +15,10 @@ get 'foretag/om', controller: :static_pages, action: :company_about, as: :company_about get 'foretag/vi-erbjuder', controller: :static_pages, action: :company_offer, as: :company_offer + + + + # User-related routes devise_for :users, skip: [:sessions, :registrations], controllers: {registrations: "registrations"} devise_scope :user do @@ -35,32 +40,10 @@ get 'anvandare' => 'users#index', as: :users # Scope to change urls to swedish - scope path_names: {new: 'ny', edit: 'redigera'} do + scope path_names: { new: 'ny', edit: 'redigera' } do resources :notices - - scope :hilbertcafe do - namespace :admin do - resources :cafe_works, path: :jobb, controller: :cafe_works, except: :index do - patch :remove_worker, path: :jobbare, on: :member - end - get '/setup', controller: :cafe_works, action: :setup, as: :setup_cafe - post '/setup', controller: :cafe_works, action: :setup_create, as: :setup_cafe_create - get '', controller: :cafe_works, action: :index, as: :hilbert - post '', controller: :cafe_works, action: :index - end - resources :cafe_works, path: :jobb, only: [:show] do - patch :add_worker, path: :jobba, on: :member - patch :update_worker, path: :uppdatera, on: :member - patch :remove_worker, path: :inte_jobba, on: :member - patch :authorize, path: :auktorisera, on: :member - end - get '', controller: :cafe_works, action: :index, as: :hilbert - get '/nyckelpiga', controller: :cafe_works, action: :nyckelpiga - #get '/tavling', controller: :cafe_works, action: :tavling, as: :cafe_tavling - end - # A scope to put car-associated things under /bil # /d.wessman scope :bil do @@ -80,7 +63,6 @@ post :display, path: :visa, on: :member get :image, path: :bild, on: :member end - resources :menus, path: :meny, except: :show resources :posts, path: :poster, only: :index do @@ -148,7 +130,7 @@ end post '' => 'albums#index', as: :index_albums - resources :short_links, except: [ :show, :update, :edit ] do + resources :short_links, :except => [ :show, :update, :edit ] do collection do get 'go' => 'short_links#go' get 'check' => 'short_links#check' diff --git a/db/migrate/20410822171422_fsek_structure.rb b/db/migrate/20410822171422_fsek_structure.rb index 3d5373dfd..ae6c6e1ef 100644 --- a/db/migrate/20410822171422_fsek_structure.rb +++ b/db/migrate/20410822171422_fsek_structure.rb @@ -304,13 +304,13 @@ def change t.string "email" t.string "phone" t.text "purpose" - t.boolean "disclaimer" + t.boolean "disclaimer" t.string "status", default: "Ej bestämd" - t.boolean "aktiv", default: true - t.integer "council_id" + t.boolean "aktiv", default: true + t.integer "council_id" t.integer "profile_id" - t.boolean "service" t.text "comment" + t.boolean "service" t.timestamps end end @@ -323,7 +323,7 @@ def change t.datetime "created_at" t.datetime "updated_at" end - end + end unless table_exists? :subcategories create_table "subcategories" do |t| t.string "text" diff --git a/db/migrate/20410822171427_create_cafe_works.rb b/db/migrate/20410822171427_create_cafe_works.rb deleted file mode 100644 index 8ba7284ed..000000000 --- a/db/migrate/20410822171427_create_cafe_works.rb +++ /dev/null @@ -1,19 +0,0 @@ -class CreateCafeWorks < ActiveRecord::Migration - def change - create_table :cafe_works do |t| - t.datetime :work_day - t.integer :pass - t.integer :lp - t.integer :lv - t.integer :profile_id - t.string :name - t.string :lastname - t.string :phone - t.string :email - t.boolean :utskottskamp - t.string :access_code - t.integer :d_year - t.timestamps - end - end -end diff --git a/db/migrate/20410822171429_add_cafe_works_councils.rb b/db/migrate/20410822171429_add_cafe_works_councils.rb deleted file mode 100644 index f7187dcd4..000000000 --- a/db/migrate/20410822171429_add_cafe_works_councils.rb +++ /dev/null @@ -1,8 +0,0 @@ -class AddCafeWorksCouncils < ActiveRecord::Migration - def change - create_table "cafe_works_councils", id: false do |t| - t.integer "cafe_work_id" - t.integer "council_id" - end - end -end diff --git a/db/migrate/20410822171441_add_access_code_to_rents.rb b/db/migrate/20410822171441_add_access_code_to_rents.rb index 20b6747f2..e2c0a72ba 100644 --- a/db/migrate/20410822171441_add_access_code_to_rents.rb +++ b/db/migrate/20410822171441_add_access_code_to_rents.rb @@ -3,7 +3,7 @@ def change add_column :rents, :access_code, :string change_column :rents, :service,:boolean, default: false change_column :rents, :disclaimer,:boolean, default: false - change_column :rents, :purpose,:text + change_column :rents, :purpose,:text, default: "" add_index :rents,:d_from add_index :rents,:d_til diff --git a/db/migrate/20410822171448_create_cafe_work_councils.rb b/db/migrate/20410822171448_create_cafe_work_councils.rb deleted file mode 100644 index c974dc36f..000000000 --- a/db/migrate/20410822171448_create_cafe_work_councils.rb +++ /dev/null @@ -1,9 +0,0 @@ -class CreateCafeWorkCouncils < ActiveRecord::Migration - def change - create_table :cafe_work_councils do |t| - t.integer :cafe_work_id - t.integer :council_id - t.timestamps null: false - end - end -end diff --git a/db/schema.rb b/db/schema.rb index 74634ac4f..024cc44ca 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,79 +11,62 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20410822171448) do - - create_table "album_categories", force: :cascade do |t| - t.string "name", limit: 255 - t.text "text", limit: 65535 - t.boolean "visible", limit: 1 - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "album_categories_albums", id: false, force: :cascade do |t| - t.integer "album_id", limit: 4 - t.integer "album_category_id", limit: 4 - end +ActiveRecord::Schema.define(version: 20410822171447) do create_table "albums", force: :cascade do |t| t.string "title", limit: 255 - t.text "description", limit: 65535 + t.text "description" t.string "author", limit: 255 t.string "location", limit: 255 - t.boolean "public", limit: 1 + t.boolean "public" t.datetime "start_date" t.datetime "end_date" t.datetime "created_at" t.datetime "updated_at" t.string "category", limit: 255 - t.integer "photo_category_id", limit: 4 + t.integer "photo_category_id" end - create_table "albums_images", id: false, force: :cascade do |t| - t.integer "album_id", limit: 4 - t.integer "image_id", limit: 4 + create_table "albums_categories", id: false, force: :cascade do |t| + t.integer "album_id" + t.integer "category_id" end - create_table "albums_subcategories", id: false, force: :cascade do |t| - t.integer "album_id", limit: 4 - t.integer "subcategory_id", limit: 4 - end + add_index "albums_categories", ["album_id", "category_id"], name: "index_albums_categories_on_album_id_and_category_id", unique: true + add_index "albums_categories", ["category_id"], name: "index_albums_categories_on_category_id" - create_table "cafe_work_councils", force: :cascade do |t| - t.integer "cafe_work_id", limit: 4 - t.integer "council_id", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + create_table "albums_images", id: false, force: :cascade do |t| + t.integer "album_id" + t.integer "image_id" end create_table "cafe_works", force: :cascade do |t| t.datetime "work_day" - t.integer "pass", limit: 4 - t.integer "lp", limit: 4 - t.integer "lv", limit: 4 - t.integer "profile_id", limit: 4 + t.integer "pass" + t.integer "lp" + t.integer "lv" + t.integer "profile_id" t.string "name", limit: 255 t.string "lastname", limit: 255 t.string "phone", limit: 255 t.string "email", limit: 255 - t.boolean "utskottskamp", limit: 1 + t.boolean "utskottskamp" t.string "access_code", limit: 255 - t.integer "d_year", limit: 4 + t.integer "d_year" t.datetime "created_at" t.datetime "updated_at" end create_table "cafe_works_councils", id: false, force: :cascade do |t| - t.integer "cafe_work_id", limit: 4 - t.integer "council_id", limit: 4 + t.integer "cafe_work_id" + t.integer "council_id" end create_table "candidates", force: :cascade do |t| - t.integer "post_id", limit: 4 - t.integer "profile_id", limit: 4 - t.integer "election_id", limit: 4 - t.text "motivation", limit: 65535 + t.integer "post_id" + t.integer "profile_id" + t.integer "election_id" + t.text "motivation" t.datetime "created_at" t.datetime "updated_at" t.string "stil_id", limit: 255 @@ -93,8 +76,17 @@ t.string "lastname", limit: 255 end - add_index "candidates", ["post_id"], name: "index_candidates_on_post_id", using: :btree - add_index "candidates", ["profile_id"], name: "index_candidates_on_profile_id", using: :btree + add_index "candidates", ["post_id"], name: "index_candidates_on_post_id" + add_index "candidates", ["profile_id"], name: "index_candidates_on_profile_id" + + create_table "categories", force: :cascade do |t| + t.string "title", limit: 255 + t.text "description" + t.string "typ", limit: 255 + t.boolean "sub", default: false + t.datetime "created_at" + t.datetime "updated_at" + end create_table "constants", force: :cascade do |t| t.string "name", limit: 255 @@ -106,9 +98,9 @@ create_table "contacts", force: :cascade do |t| t.string "name", limit: 255 t.string "email", limit: 255 - t.boolean "public", limit: 1 - t.text "text", limit: 65535 - t.integer "council_id", limit: 4 + t.boolean "public" + t.text "text" + t.integer "council_id" t.datetime "created_at" t.datetime "updated_at" end @@ -116,29 +108,29 @@ create_table "councils", force: :cascade do |t| t.string "title", limit: 255 t.string "url", limit: 255 - t.text "description", limit: 65535 - t.integer "president", limit: 4 - t.integer "vicepresident", limit: 4 + t.text "description" + t.integer "president" + t.integer "vicepresident" t.string "logo_file_name", limit: 255 t.string "logo_content_type", limit: 255 - t.integer "logo_file_size", limit: 4 + t.integer "logo_file_size" t.datetime "logo_updated_at" - t.boolean "public", limit: 1, default: true + t.boolean "public", default: true t.datetime "created_at" t.datetime "updated_at" - t.integer "contact_id", limit: 4 + t.integer "contact_id" end create_table "documents", force: :cascade do |t| t.string "pdf_file_name", limit: 255 t.string "pdf_content_type", limit: 255 - t.integer "pdf_file_size", limit: 4 + t.integer "pdf_file_size" t.datetime "pdf_updated_at" t.string "title", limit: 255 - t.boolean "public", limit: 1 - t.boolean "download", limit: 1 + t.boolean "public" + t.boolean "download" t.string "category", limit: 255 - t.integer "profile_id", limit: 4 + t.integer "profile_id" t.datetime "created_at" t.datetime "updated_at" end @@ -146,110 +138,129 @@ create_table "elections", force: :cascade do |t| t.datetime "start" t.datetime "end" - t.boolean "visible", limit: 1 + t.boolean "visible" t.string "url", limit: 255 t.string "title", limit: 255 - t.text "description", limit: 65535 + t.text "description" t.datetime "created_at" t.datetime "updated_at" - t.text "candidate_mail", limit: 65535 - t.text "nominate_mail", limit: 65535 - t.text "text_before", limit: 65535 - t.text "text_during", limit: 65535 - t.text "text_after", limit: 65535 - t.text "extra_text", limit: 65535 - t.text "candidate_mail_star", limit: 65535 + t.text "candidate_mail" + t.text "nominate_mail" + t.text "text_before" + t.text "text_during" + t.text "text_after" + t.text "extra_text" + t.text "candidate_mail_star" t.string "mail_link", limit: 255 t.string "mail_styrelse_link", limit: 255 end create_table "elections_posts", id: false, force: :cascade do |t| - t.integer "election_id", limit: 4 - t.integer "post_id", limit: 4 + t.integer "election_id" + t.integer "post_id" + end + + create_table "email_accounts", force: :cascade do |t| + t.integer "profile_id" + t.string "email", limit: 255 + t.string "title", limit: 255 + t.boolean "active" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "emails", force: :cascade do |t| + t.integer "email_account_id" + t.string "receiver", limit: 255 + t.string "subject", limit: 255 + t.text "message" + t.boolean "copy" + t.datetime "created_at" + t.datetime "updated_at" end create_table "events", force: :cascade do |t| t.string "title", limit: 255 t.string "author", limit: 255 - t.text "description", limit: 65535 + t.text "description" t.string "location", limit: 255 t.datetime "starts_at" t.datetime "ends_at" - t.boolean "all_day", limit: 1 + t.boolean "all_day" t.string "category", limit: 255 t.datetime "created_at" t.datetime "updated_at" t.string "image_file_name", limit: 255 t.string "image_content_type", limit: 255 - t.integer "image_file_size", limit: 4 + t.integer "image_file_size" t.datetime "image_updated_at" end create_table "faqs", force: :cascade do |t| t.string "question", limit: 255 - t.text "answer", limit: 65535 - t.integer "sorting_index", limit: 4 + t.text "answer" + t.integer "sorting_index" t.datetime "created_at" t.datetime "updated_at" t.string "category", limit: 255 end - add_index "faqs", ["category"], name: "index_faqs_on_category", using: :btree + add_index "faqs", ["category"], name: "index_faqs_on_category" create_table "images", force: :cascade do |t| t.string "description", limit: 255 - t.integer "album_id", limit: 4 + t.integer "album_id" t.string "foto_file_name", limit: 255 t.string "foto_content_type", limit: 255 - t.integer "foto_file_size", limit: 4 + t.integer "foto_file_size" t.datetime "foto_updated_at" t.datetime "created_at" t.datetime "updated_at" t.datetime "captured" - t.integer "subcategory_id", limit: 4 + t.integer "subcategory_id" end create_table "lists", force: :cascade do |t| t.string "category", limit: 255 t.string "name", limit: 255 t.string "string1", limit: 255 - t.integer "int1", limit: 4 - t.boolean "bool1", limit: 1 + t.integer "int1" + t.boolean "bool1" t.datetime "created_at" t.datetime "updated_at" end create_table "menus", force: :cascade do |t| t.string "location", limit: 255 - t.integer "index", limit: 4 + t.integer "index" t.string "link", limit: 255 t.string "name", limit: 255 - t.boolean "visible", limit: 1 - t.boolean "turbolinks", limit: 1, default: true - t.boolean "blank_p", limit: 1 + t.boolean "visible" + t.boolean "turbolinks", default: true + t.boolean "blank_p" t.datetime "created_at" t.datetime "updated_at" end create_table "news", force: :cascade do |t| t.string "title", limit: 255 - t.text "content", limit: 65535 - t.boolean "front_page", limit: 1 + t.text "content" + t.boolean "front_page" t.string "image_file_name", limit: 255 t.string "image_content_type", limit: 255 - t.integer "image_file_size", limit: 4 + t.integer "image_file_size" t.datetime "image_updated_at" t.datetime "created_at" t.datetime "updated_at" - t.integer "profile_id", limit: 4 + t.integer "profile_id" end create_table "nominations", force: :cascade do |t| - t.integer "post_id", limit: 4 - t.integer "election_id", limit: 4 + t.integer "post_id" + t.integer "election_id" t.string "name", limit: 255 t.string "email", limit: 255 - t.text "motivation", limit: 65535 + t.text "motivation" t.datetime "created_at" t.datetime "updated_at" t.string "phone", limit: 255 @@ -258,33 +269,33 @@ create_table "notices", force: :cascade do |t| t.string "title", limit: 255 - t.text "description", limit: 65535 - t.boolean "public", limit: 1 + t.text "description" + t.boolean "public" t.date "d_publish" t.date "d_remove" - t.integer "sort", limit: 4 + t.integer "sort" t.string "image_file_name", limit: 255 t.string "image_content_type", limit: 255 - t.integer "image_file_size", limit: 4 + t.integer "image_file_size" t.datetime "image_updated_at" t.datetime "created_at" t.datetime "updated_at" end create_table "page_elements", force: :cascade do |t| - t.integer "displayIndex", limit: 4 - t.boolean "sidebar", limit: 1 - t.boolean "visible", limit: 1 - t.text "text", limit: 65535 + t.integer "displayIndex" + t.boolean "sidebar" + t.boolean "visible" + t.text "text" t.string "headline", limit: 255 - t.boolean "border", limit: 1 + t.boolean "border" t.string "name", limit: 255 - t.boolean "pictureR", limit: 1 + t.boolean "pictureR" t.string "picture_file_name", limit: 255 t.string "picture_content_type", limit: 255 - t.integer "picture_file_size", limit: 4 + t.integer "picture_file_size" t.datetime "picture_updated_at" - t.integer "page_id", limit: 4 + t.integer "page_id" t.datetime "created_at" t.datetime "updated_at" end @@ -292,69 +303,84 @@ create_table "pages", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" - t.integer "council_id", limit: 4 + t.integer "council_id" end create_table "permission_posts", force: :cascade do |t| - t.integer "permission_id", limit: 4 - t.integer "post_id", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.integer "permission_id" + t.integer "post_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "permissions", force: :cascade do |t| - t.string "name", limit: 255 - t.string "subject_class", limit: 255 - t.string "action", limit: 255 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.string "name" + t.string "subject_class" + t.string "action" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "photo_categories", force: :cascade do |t| t.string "name", limit: 255 t.string "text", limit: 255 - t.boolean "visible", limit: 1 + t.boolean "visible" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "phrasing_phrase_versions", force: :cascade do |t| + t.integer "phrasing_phrase_id" + t.text "value" + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "phrasing_phrases", force: :cascade do |t| + t.string "locale", limit: 255 + t.string "key", limit: 255 + t.text "value" t.datetime "created_at" t.datetime "updated_at" end create_table "posts", force: :cascade do |t| t.string "title", limit: 255 - t.integer "limit", limit: 4, default: 0 - t.text "description", limit: 65535 + t.integer "limit", default: 0 + t.text "description" t.datetime "created_at" t.datetime "updated_at" - t.integer "council_id", limit: 4 - t.boolean "extra_text", limit: 1 + t.integer "council_id" + t.boolean "extra_text" t.string "elected_by", limit: 255 t.string "elected_at", limit: 255 - t.text "election_text", limit: 65535 - t.boolean "styrelse", limit: 1 - t.integer "recLimit", limit: 4, default: 0 - t.boolean "car_rent", limit: 1 + t.text "election_text" + t.boolean "styrelse" + t.integer "recLimit", default: 0 + t.boolean "car_rent" end create_table "posts_profiles", id: false, force: :cascade do |t| - t.integer "post_id", limit: 4 - t.integer "profile_id", limit: 4 + t.integer "post_id" + t.integer "profile_id" end create_table "profiles", force: :cascade do |t| t.string "name", limit: 255 - t.string "lastname", limit: 255 t.string "program", limit: 255 - t.integer "start_year", limit: 4 - t.integer "user_id", limit: 4 + t.integer "start_year" + t.integer "user_id" t.string "avatar_file_name", limit: 255 t.string "avatar_content_type", limit: 255 - t.integer "avatar_file_size", limit: 4 + t.integer "avatar_file_size" t.datetime "avatar_updated_at" t.datetime "created_at" t.datetime "updated_at" - t.integer "first_post", limit: 4 + t.integer "first_post" t.string "email", limit: 255 t.string "stil_id", limit: 255 t.string "phone", limit: 255 + t.string "lastname", limit: 255 end create_table "rents", force: :cascade do |t| @@ -364,43 +390,37 @@ t.string "lastname", limit: 255 t.string "email", limit: 255 t.string "phone", limit: 255 - t.text "purpose", limit: 65535 - t.boolean "disclaimer", limit: 1, default: false - t.string "status", limit: 255, default: "Ej bestämd" - t.boolean "aktiv", limit: 1, default: true - t.integer "council_id", limit: 4 - t.integer "profile_id", limit: 4 - t.boolean "service", limit: 1, default: false - t.text "comment", limit: 65535 + t.text "purpose" + t.boolean "disclaimer", default: false + t.boolean "aktiv", default: true + t.integer "council_id" + t.integer "profile_id" t.datetime "created_at" t.datetime "updated_at" + t.text "comment" + t.string "status", limit: 255, default: "Ej bestämd" + t.boolean "service", default: false t.string "access_code", limit: 255 end - add_index "rents", ["d_from"], name: "index_rents_on_d_from", using: :btree - add_index "rents", ["d_til"], name: "index_rents_on_d_til", using: :btree + add_index "rents", ["d_from"], name: "index_rents_on_d_from" + add_index "rents", ["d_til"], name: "index_rents_on_d_til" create_table "roles", force: :cascade do |t| - t.string "name", limit: 255, null: false - t.string "title", limit: 255, null: false - t.text "description", limit: 65535, null: false - t.text "the_role", limit: 65535, null: false + t.string "name", limit: 255, null: false + t.string "title", limit: 255, null: false + t.text "description", null: false + t.text "the_role", null: false t.datetime "created_at" t.datetime "updated_at" end create_table "short_links", force: :cascade do |t| - t.string "link", limit: 255, null: false - t.text "target", limit: 65535, null: false + t.string "link", limit: 255, null: false + t.text "target", null: false end - add_index "short_links", ["link"], name: "index_short_links_on_link", using: :btree - - create_table "subcategories", force: :cascade do |t| - t.string "text", limit: 255 - t.datetime "created_at" - t.datetime "updated_at" - end + add_index "short_links", ["link"], name: "index_short_links_on_link" create_table "users", force: :cascade do |t| t.string "username", limit: 255, null: false @@ -409,35 +429,38 @@ t.string "reset_password_token", limit: 255 t.datetime "reset_password_sent_at" t.datetime "remember_created_at" - t.integer "sign_in_count", limit: 4, default: 0, null: false + t.integer "sign_in_count", default: 0, null: false t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" t.string "current_sign_in_ip", limit: 255 t.string "last_sign_in_ip", limit: 255 - t.integer "role_id", limit: 4, default: 2, null: false + t.integer "role_id", default: 2, null: false t.datetime "created_at" t.datetime "updated_at" end + add_index "users", ["email"], name: "index_users_on_email", unique: true + add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true + create_table "work_posts", force: :cascade do |t| t.string "title", limit: 255 - t.text "description", limit: 65535 + t.text "description" t.string "company", limit: 255 t.datetime "deadline" t.string "for", limit: 255 - t.boolean "visible", limit: 1 + t.boolean "visible" t.datetime "publish" t.string "picture_file_name", limit: 255 t.string "picture_content_type", limit: 255 - t.integer "picture_file_size", limit: 4 + t.integer "picture_file_size" t.datetime "picture_updated_at" - t.integer "responsible", limit: 4 + t.integer "responsible" t.datetime "created_at" t.datetime "updated_at" t.string "category", limit: 255 t.string "link", limit: 255 t.string "kind", limit: 255 - t.integer "row_order", limit: 4 + t.integer "row_order" end end diff --git a/lib/tasks/tests_data.rake b/lib/tasks/tests_data.rake deleted file mode 100644 index d8d65a03e..000000000 --- a/lib/tasks/tests_data.rake +++ /dev/null @@ -1,72 +0,0 @@ -namespace :load_database do - desc 'Loads some stuff into the database for local testing' - task(populate: :environment) do - # Councils - pryl = Council.find_or_create_by!(title: 'Prylmästeriet', - url: 'pryl', description: 'Detta är Prylmästeriet', public: true) - sexm = Council.find_or_create_by!(title: 'Sexmästeriet', - url: 'sex', description: 'Detta är Sexmästeriet', public: true) - cafem = Council.find_or_create_by!(title: 'Cafemästeriet', - url: 'cafe', description: 'Detta är Cafemästeriet', public: true) - - # Posts - # Prylmästeriet - spindel = Post.find_or_create_by!(title: 'Spindelman', limit: 0, recLimit: 10, description: 'En administratör', - council: pryl, elected_by: 'Styrelsen', elected_at: 'VT', car_rent: true) - - prylmast = Post.find_or_create_by!(title: 'Prylmästare', limit: 1, recLimit: 1, - description: 'Prylmästarn', council: pryl, elected_by: 'Terminsmötet', - styrelse: true, elected_at: 'VT', car_rent: true) - # Sexmästeriet - Post.find_or_create_by!(title: 'Server', limit: 0, recLimit: 10, description: 'En serverare', - council: sexm, elected_by: 'Styrelsen', elected_at: 'HT') - - sexmast = Post.find_or_create_by!(title: 'Sexmästare', limit: 1, recLimit: 1, - description: 'Sexmästaren', council: sexm, elected_by: 'Terminsmötet', - styrelse: true, elected_at: 'VT', car_rent: true) - - # Cafemästeriet - Post.find_or_create_by!(title: 'Vice cafemästare', limit: 1, recLimit: 1, description: 'En vice cm', - council: cafem, elected_by: 'Terminsmötet', - styrelse: true, elected_at: 'HT', car_rent: true) - - cafemast = Post.find_or_create_by!(title: 'Cafemästare', limit: 1, recLimit: 1, - description: 'Cafemästaren', council: cafem, elected_by: 'Terminsmötet', - styrelse: true, elected_at: 'HT', car_rent: true) - nyckelpiga = Post.find_or_create_by!(title: 'Nyckelpiga', limit: 0, recLimit: 10, - description: 'Nyckelpigan!', council: cafem, elected_by: '') - - # Set president! - pryl.update(president: prylmast) - sexm.update(president: sexmast) - cafem.update(president: cafemast) - - # Permissions - Rake::Task['permissions:load'].invoke - perm_admin = Permission.find_or_create_by!(subject_class: :all, action: :manage) - perm_nyckelpiga = Permission.find_or_create_by!(subject_class: :cafe_work, action: :nyckelpiga) - # Give spindelman admin - PermissionPost.find_or_create_by!(permission: perm_admin, post: spindel) - PermissionPost.find_or_create_by!(permission: perm_nyckelpiga, post: nyckelpiga) - - u = User.find_or_initialize_by(username: 'user', email: 'david@da.vid') - u.password = 'passpass' - u.as_f_member.save! - if u.present? - p = u.profile - p.update!(name: 'David', lastname: 'Wessman', program: 'Teknisk Fysik', start_year: 2013) - if !p.posts.include?(spindel) - p.posts << spindel - end - if !p.posts.include?(prylmast) - p.posts << prylmast - end - if !p.posts.include?(cafemast) - p.posts << cafemast - end - if !p.posts.include?(sexmast) - p.posts << sexmast - end - end - end -end diff --git a/spec/controllers/admin/cafe_works_controller_spec.rb b/spec/controllers/admin/cafe_works_controller_spec.rb deleted file mode 100644 index 4379ed815..000000000 --- a/spec/controllers/admin/cafe_works_controller_spec.rb +++ /dev/null @@ -1,143 +0,0 @@ -require 'rails_helper' - -RSpec.describe Admin::CafeWorksController, type: :controller do - let(:user) { create(:user) } - let(:not_owner) { create(:user) } - let(:cwork_profile) { create(:cafe_work, :w_profile, profile: user.profile) } - let(:cwork_access) { create(:cafe_work, :access) } - let(:cwork) { create(:cafe_work) } - - before(:each) do - allow(controller).to receive(:current_user).and_return(user) - end - allow_user_to :manage, CafeWork - - describe 'GET #show' do - it 'assigns the requested cafe_work as @cwork' do - get :show, {id: cwork.to_param} - assigns(:cafe_work).should eq(cwork) - end - it 'error cafe_work is not found' do - lambda do - get :show, {id: 99997777} - end.should raise_error(ActionController::RoutingError) - end - end - - describe 'GET #new' do - it :succeeds do - get :new - - response.should be_success - end - it 'sets new cwork' do - get :new - - assigns(:cafe_work).should be_an_instance_of(CafeWork) - assigns(:cafe_work).new_record?.should be_truthy - end - end - - describe 'GET #edit' do - it 'assigns the requested cafe_work as @cwork' do - get :edit, {id: cwork.to_param} - - assigns(:cafe_work).should eq(cwork) - end - it 'succeeds' do - get :edit, {id: cwork.to_param} - - response.should be_success - end - end - - describe 'POST #create' do - it 'new cafe work' do - lambda { post :create, cafe_work: {lv: 1, lp: 1, work_day: Time.zone.now, pass: 1, controller: ''} }.should change(CafeWork, :count).by(1) - - response.should redirect_to([:admin, CafeWork.last]) - end - end - - describe 'PATCH #update' do - context 'with valid params' do - let(:attr) { attributes_for(:cafe_work, :tester) } - it 'updates the requested cafe work' do - patch :update, id: cwork.to_param, cafe_work: attr - cwork.reload - (cwork.pass == attr[:pass] && - cwork.lv == attr[:lv] && - cwork.lp == attr[:lp]).should be_truthy - end - - it 'assigns the requested cwork and redirects ' do - patch :update, id: cwork.to_param, cafe_work: attr - - assigns(:cafe_work).should eq(cwork) - response.should redirect_to([:admin, cwork]) - end - end - - context 'with invalid params' do - let(:attr) { attributes_for(:cafe_work, :invalid) } - it 'assigns the candidate as @candidate' do - patch :update, id: cwork.to_param, cafe_work: attr - - assigns(:cafe_work).should eq(cwork) - end - - it 're-renders the edit-template' do - patch :update, id: cwork.to_param, cafe_work: attr - - response.should render_template(:edit) - end - end - end - - describe 'DELETE #destroy' do - before { cwork } - it 'destroys the requested cwork' do - lambda { delete :destroy, id: cwork.to_param, format: :html }.should change(CafeWork, :count).by(-1) - end - - it 'redirects to the candidates list' do - delete :destroy, id: cwork.to_param - response.should redirect_to(:admin_hilbert) - end - - it 'assigns the requested id' do - xhr :delete, :destroy, id: cwork.to_param - - assigns(:id).should eq(cwork.id) - end - end - - describe 'PATCH #remove_worker' do - it 'remove worker with profile' do - xhr :patch, :remove_worker, {id: cwork_profile.to_param} - cwork_profile.reload - - cwork_profile.has_worker?.should be_falsey - end - end - - describe 'GET #setup' do - it 'assigns @cafe_work as new record' do - get :setup - assigns(:cafe_work).new_record?.should be_truthy - end - end - - describe 'POST #setup_create' do - # Should use a more precise method - it 'preview post' do - post :setup_create, {commit: 'Förhandsgranska', cafe_work: attributes_for(:cafe_work), lv_first: 1, lv_last: 1} - assigns(:cafe_works).count.should eq(CafeSetupWeek.new(cwork.work_day, cwork.lp).preview(1, 1).count) - end - it 'create post' do - lambda { - post :setup_create, {commit: 'Spara', cafe_work: attributes_for(:cafe_work), lv_first: 1, lv_last: 1} - }.should change(CafeWork, :count).by(20) - end - end -end diff --git a/spec/controllers/cafe_works_controller_spec.rb b/spec/controllers/cafe_works_controller_spec.rb deleted file mode 100644 index 8c04859df..000000000 --- a/spec/controllers/cafe_works_controller_spec.rb +++ /dev/null @@ -1,210 +0,0 @@ -require 'rails_helper' - -RSpec.describe CafeWorksController, type: :controller do - let(:user) { create(:user) } - let(:not_owner) { create(:user) } - let(:cwork_profile) { create(:cafe_work, :w_profile, profile: user.profile) } - let(:cwork_access) { create(:cafe_work, :access) } - let(:cwork) { create(:cafe_work) } - - allow_user_to [:show, :index, :update_worker, :remove_worker, :authorize], CafeWork - - describe 'GET #show' do - it 'assigns the requested cafe_work as @cwork' do - get :show, {id: cwork.to_param} - assigns(:cafe_work).should eq(cwork) - end - end - - describe 'POST #authorize' do - it 'authorizes with right code' do - xhr :post, :authorize, {id: cwork_access.to_param, cafe_work: {access_code: cwork_access.access_code}} - - assigns(:cafe_work).should eq(cwork_access) - assigns(:authenticated).should be_truthy - end - - it 'authorizes with wrong code' do - xhr :post, :authorize, {id: cwork_access.to_param, cafe_work: {access_code: 'wrong code'}} - - assigns(:authenticated).should be_falsey - end - end - - describe 'PATCH #update_worker' do - context 'with valid params' do - context 'valid user' do - before { allow(controller).to receive(:current_user).and_return(user) } - it 'add worker' do - patch :update_worker, {id: cwork.to_param, cafe_work: attributes_for(:assignee)} - cwork.reload - - cwork.has_worker?.should be_truthy - end - - it 'update worker' do - patch :update_worker, {id: cwork_profile.to_param, cafe_work: attributes_for(:assignee, :test)} - cwork_profile.reload - - cwork_profile.worker.attributes.should include(attributes_for(:assignee, :test)) - end - - it 'assigns the requested cafe_work as @cafe_work' do - patch :update_worker, {id: cwork.to_param, cafe_work: attributes_for(:assignee)} - - assigns(:cafe_work).should eq(cwork) - end - - it 'redirects to the cafe_work' do - patch :update_worker, {id: cwork.to_param, cafe_work: attributes_for(:assignee)} - - response.should redirect_to(cwork) - end - end - - context 'invalid user' do - before do - allow(controller).to receive(:current_user).and_return(not_owner) - end - - it 'update worker' do - patch :update_worker, {id: cwork_profile.to_param, cafe_work: attributes_for(:assignee, :test)} - cwork_profile.reload - - cwork_profile.worker.attributes.should_not include(attributes_for(:assignee, :test)) - end - - it 'redirects to the cafe_work' do - patch :update_worker, {id: cwork_profile.to_param, cafe_work: attributes_for(:assignee)} - - response.should render_template('show') - end - end - - context 'with no user' do - it 'update worker' do - patch :update_worker, - { - id: cwork_access.to_param, - cafe_work: attributes_for(:assignee, :test, access_code: cwork_access.access_code) - } - cwork_access.reload - - cwork_access.worker.attributes.should include(attributes_for(:assignee, :test)) - end - - it 'redirects to the cafe_work' do - patch :update_worker, - { - id: cwork_access.to_param, - cafe_work: attributes_for(:assignee, access_code: cwork_access.access_code) - } - - response.should redirect_to(cwork_access) - end - end - end - - context 'with invalid params' do - it 'assigns the cafe_work as @cafe_work' do - patch :update_worker, {id: cwork.to_param, cafe_work: attributes_for(:assignee, :invalid)} - assigns(:cafe_work).should eq(cwork) - response.should render_template('show') - end - end - end - - describe 'PATCH #remove_worker' do - context 'with valid user' do - before do - allow(controller).to receive(:current_user).and_return(user) - end - it 'remove worker with profile' do - patch :remove_worker, {id: cwork_profile.to_param} - cwork_profile.reload - - cwork_profile.has_worker?.should be_falsey - end - - it 'remove worker with profile and redirect' do - patch :remove_worker, {id: cwork_profile.to_param} - cwork_profile.reload - - response.should redirect_to(cwork_profile) - end - - it 'assigns the requested cafe_work as @cafe_work' do - patch :remove_worker, {id: cwork_profile.to_param} - - assigns(:cafe_work).should eq(cwork_profile) - end - end - - context 'with invalid user' do - before do - allow(controller).to receive(:current_user).and_return(not_owner) - end - - it 'remove worker' do - patch :remove_worker, {id: cwork_profile.to_param} - cwork_profile.reload - - cwork_profile.worker.present?.should be_truthy - response.should render_template(:show) - end - end - - context 'with no user' do - it 'remove worker' do - patch :remove_worker, - { - id: cwork_access.to_param, - cafe_work: {access_code: cwork_access.access_code} - } - cwork_access.reload - - cwork_access.worker.present?.should be_falsey - response.should redirect_to(cwork_access) - end - end - end - - describe 'GET #index' do - it 'renders #index' do - get :index - response.should render_template(:index) - end - it 'assigns CafeWork.lv as @lv' do - get :index - assigns(:lv).should eq(CafeWork.get_lv) - end - before { - cwork - cwork_profile - } - it 'responds with JSON' do - get :index, {start: cwork.work_day - 2.days, end: cwork.work_day + 2.days, format: :json} - response.body.should eq([cwork.as_json, cwork_profile.as_json].to_json) - end - end - - describe 'GET #nyckelpiga' do - context 'not allowed' do - it 'does not work' do - get :nyckelpiga - response.should have_http_status(:forbidden) - end - end - context 'allowed' do - before do - ability = Ability.new(user) - ability.can :nyckelpiga, CafeWork - allow(controller).to receive(:current_ability).and_return(ability) - end - it 'works' do - get :nyckelpiga - response.should be_success - end - end - end -end diff --git a/spec/factories/assignees.rb b/spec/factories/assignees.rb deleted file mode 100644 index ada865b57..000000000 --- a/spec/factories/assignees.rb +++ /dev/null @@ -1,23 +0,0 @@ -# encoding: UTF-8 -FactoryGirl.define do - factory :assignee do - name - lastname - email - phone - - trait :test do - name 'Test' - lastname 'Testaren' - email 'tests@tes.t' - phone '7357' - end - - trait :invalid do - name '' - lastname '' - email '' - phone '' - end - end -end diff --git a/spec/factories/cafe_work_councils.rb b/spec/factories/cafe_work_councils.rb deleted file mode 100644 index aff038aae..000000000 --- a/spec/factories/cafe_work_councils.rb +++ /dev/null @@ -1,6 +0,0 @@ -FactoryGirl.define do - factory :cafe_work_council do - cafe_work - council - end -end diff --git a/spec/factories/cafe_works.rb b/spec/factories/cafe_works.rb deleted file mode 100644 index cecb14ce0..000000000 --- a/spec/factories/cafe_works.rb +++ /dev/null @@ -1,50 +0,0 @@ -# encoding: UTF-8 -FactoryGirl.define do - factory :cafe_work do - pass { rand(1..4) } - lv { rand(1..7) } - lp { rand(1..4) } - d_year { Time.zone.now.year } - work_day { Time.zone.now + 10.day } - - trait :tester do - pass 1 - lv 7 - lp 4 - end - - trait :invalid do - pass -5 - lv 1337 - lp 6122 - end - - trait :test_work do - name 'Test' - lastname 'Testet' - email 'test@test.se' - phone '0705507889' - end - - trait :worker do - name - lastname - email - phone - end - - trait :w_profile do - worker - profile - access_code nil - end - - trait :access do - worker - profile nil - access_code - end - end - - -end diff --git a/spec/factories/constants.rb b/spec/factories/constant.rb similarity index 56% rename from spec/factories/constants.rb rename to spec/factories/constant.rb index 16afca097..185845613 100644 --- a/spec/factories/constants.rb +++ b/spec/factories/constant.rb @@ -1,6 +1,5 @@ -#encoding: UTF-8 FactoryGirl.define do - factory :constant do + factory :constant do |c| name value end diff --git a/spec/factories/councils.rb b/spec/factories/councils.rb index 688d3d79d..0cf0e58e0 100644 --- a/spec/factories/councils.rb +++ b/spec/factories/councils.rb @@ -3,21 +3,5 @@ factory :council do title url - - trait :with_page do - after(:create) do |council| - create(:page, council: council) - end - end - - trait :with_posts do - transient do - post_count 3 - end - - after(:create) do |council, evaluator| - create_list(:post, evaluator.post_count, council: council) - end - end end -end +end \ No newline at end of file diff --git a/spec/factories/page_elements.rb b/spec/factories/page_elements.rb deleted file mode 100644 index 4cb52b3ca..000000000 --- a/spec/factories/page_elements.rb +++ /dev/null @@ -1,10 +0,0 @@ -# encoding: UTF-8 -FactoryGirl.define do - factory :page_element do - page - displayIndex { rand(1..10) } - sidebar { [true, false].sample } - visible true - text { generate(:description) } - end -end diff --git a/spec/factories/pages.rb b/spec/factories/pages.rb deleted file mode 100644 index d37cea4a3..000000000 --- a/spec/factories/pages.rb +++ /dev/null @@ -1,16 +0,0 @@ -# encoding: UTF-8 -FactoryGirl.define do - factory :page do - council - - factory :page_with_elements do - transient do - element_count 3 - end - - after(:create) do |page, evaluator| - create_list(:page_element, evaluator.element_count, page: page) - end - end - end -end diff --git a/spec/factories/rents.rb b/spec/factories/rents.rb index 712d8271e..9832d2f7c 100644 --- a/spec/factories/rents.rb +++ b/spec/factories/rents.rb @@ -6,8 +6,6 @@ lastname email phone - disclaimer true - purpose 'Handla möbler på IKEA' d_from { Time.zone.now + 10.day } d_til { Time.zone.now + 10.day + 12.hours } @@ -29,8 +27,12 @@ aktiv true end + trait :disclaimer do + disclaimer true + end + trait :confirmed do - status 'Bekräftad' + status "Bekräftad" end trait :over_48 do @@ -42,19 +44,16 @@ end trait :purpose do - purpose 'Handla möbler på IKEA' + purpose "Handla möbler på IKEA" end - trait :services do + trait :service do service true end trait :comment do - comment 'Du har uppebarligen inget körkort' + comment "Du har uppebarligen inget körkort" end - trait :good do - profile - aktiv true - end -end + factory :good_rent, parent: :rent, traits: [:with_profile, :disclaimer, :active, :purpose] +end \ No newline at end of file diff --git a/spec/factories/users.rb b/spec/factories/users.rb index a1d5a8738..f9de193df 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -1,26 +1,11 @@ -# encoding: UTF-8 FactoryGirl.define do factory :user do username - email password '12345678' + email + profile before(:create) { |user| user.as_f_member } - - # Overrides the :create_profile_for_user method - after(:build) { |user| user.class.skip_callback(:create, :after, :create_profile_for_user) } - - # Uses profiles factory to create a valid profile - after(:create) do |user, evaluator| - create(:profile, user: user) - end - - # Can be called to create a user with the :create_profile_for_user method - trait :user_with_create_profile do - after(:create) { |user| user.send(:create_profile_for_user) } - end - - # Needed because users cannot be created without f_validate being okay. - to_create { |instance| instance.save!(validate: false) } + after(:create) { |user| create(:profile, user: user) } end factory :admin, class: 'User' do diff --git a/spec/models/short_link_spec.rb b/spec/model/short_link_spec.rb similarity index 100% rename from spec/models/short_link_spec.rb rename to spec/model/short_link_spec.rb diff --git a/spec/models/ability_spec.rb b/spec/models/ability_spec.rb index 74720c513..5989377dc 100644 --- a/spec/models/ability_spec.rb +++ b/spec/models/ability_spec.rb @@ -2,27 +2,30 @@ require 'cancan/matchers' describe Ability do - subject(:ability) { Ability.new(user) } - context 'no user' do - let(:user) { nil } + context 'not_signed_in' do + subject(:ability) { Ability.new(nil) } + + # Stuff everyone can do it { should be_able_to :read, News.new } - it { should be_able_to :read, Council.new } - it { should be_able_to :read, CafeWork.new } + + # Stuff everyone must not be able to do + it { should_not be_able_to :read, Constant.new } + it { should_not be_able_to :read, Album.new } + it { should_not be_able_to :read, Post.new } + it { should_not be_able_to :read, Event.new } + it { should_not be_able_to :read, Candidate.new } + it { should_not be_able_to :read, Permission.new } + it { should_not be_able_to :read, Profile.new } + it { should_not be_able_to :read, User.new } end context 'default user' do - let(:user) { create(:user) } - let(:ability) { create(:user) } + let(:user) { FactoryGirl.create(:user) } + let(:ability) { FactoryGirl.create(:user) } subject(:ability) { Ability.new(user) } # Stuff everyone can do - it { should be_able_to :read, Event.new } - it { should be_able_to :read, Council.new } - it { should be_able_to :read, CafeWork.new } it { should be_able_to :read, News.new } - it { should be_able_to :read, Post.new } - it { should be_able_to :read, Election.new } - # Stuff everyone must not be able to do it { should_not be_able_to :read, Constant.new } @@ -34,7 +37,9 @@ end context 'admin user' do - let(:user) { create(:admin) } + let(:user) { FactoryGirl.create(:admin) } + let(:ability) { FactoryGirl.create(:user) } + subject(:ability) { Ability.new(user) } # Can do anything it { should be_able_to :manage, :all } diff --git a/spec/models/cafe_work_council_spec.rb b/spec/models/cafe_work_council_spec.rb deleted file mode 100644 index 1064142c2..000000000 --- a/spec/models/cafe_work_council_spec.rb +++ /dev/null @@ -1,8 +0,0 @@ -require 'rails_helper' - -RSpec.describe CafeWorkCouncil, type: :model do - it { should validate_presence_of(:cafe_work) } - it { should validate_presence_of(:council) } - it { should belong_to(:cafe_work) } - it { should belong_to(:council) } -end diff --git a/spec/models/cafe_work_spec.rb b/spec/models/cafe_work_spec.rb deleted file mode 100644 index 6983874f6..000000000 --- a/spec/models/cafe_work_spec.rb +++ /dev/null @@ -1,159 +0,0 @@ -require 'rails_helper' - -RSpec.describe CafeWork, type: :model do - it "has a valid factory" do - (build(:cafe_work)).should be_valid - end - - let(:user) { create(:user)} - let(:not_owner) { create(:user)} - let(:cwork_profile) { create(:cafe_work, :w_profile, profile: user.profile) } - let(:cwork_access) { create(:cafe_work, :access) } - let(:cwork_no_worker) { create(:cafe_work) } - subject(:cwork) { build(:cafe_work) } - - describe 'ActiveModel validations' do - # Basic validations - it { should validate_presence_of(:work_day) } - it { should validate_presence_of(:pass) } - it { should validate_presence_of(:lp) } - it { should validate_presence_of(:lv) } - it { should validate_inclusion_of(:pass).in_range(1..4) } - it { should validate_inclusion_of(:lp).in_range(1..4) } - it { should validate_inclusion_of(:lv).in_range(1..7) } - - context 'if has_worker' do - before { allow(subject).to receive(:has_worker?).and_return(true) } - it { subject.should validate_presence_of(:name) } - it { subject.should validate_presence_of(:lastname) } - it { subject.should validate_presence_of(:phone) } - it { subject.should validate_presence_of(:email) } - end - - end - - describe "ActiveRecord associations" do - # Associations - it { should belong_to(:profile) } - it { should have_many(:cafe_work_councils) } - it { should have_many(:councils) } - end - - describe "public instance methods" do - context "responds to its methods" do - it { should respond_to(:send_email) } - it { should respond_to(:load) } - it { should respond_to(:status_text) } - it { should respond_to(:status_view) } - it { should respond_to(:add_or_update) } - it { should respond_to(:add_worker) } - it { should respond_to(:update_worker) } - it { should respond_to(:remove_worker) } - it { should respond_to(:clear_worker) } - it { should respond_to(:owner?) } - it { should respond_to(:edit?) } - it { should respond_to(:authorize) } - it { should respond_to(:has_worker?) } - it { should respond_to(:print_time) } - it { should respond_to(:print) } - it { should respond_to(:print_date) } - it { should respond_to(:p_url) } - it { should respond_to(:p_path) } - it { should respond_to(:as_json) } - it { should respond_to(:start) } - it { should respond_to(:stop) } - end - - context "executes methods correctly" do - let(:user) { create(:user) } - context "has_worker" do - it 'do not have worker if profile and access_code is nil' do - cwork_profile.clear_worker - (cwork_profile.has_worker?).should be_falsey - end - it 'do have worker if profile is not nil' do - (cwork_profile.has_worker?).should be_truthy - end - it 'do have worker if access_code is not nil' do - (cwork_access.has_worker?).should be_truthy - end - end - - context "add_worker" do - it 'add worker with params and no user' do - cwork_no_worker.add_worker(attributes_for(:assignee), nil) - (cwork_no_worker.has_worker?).should be_truthy - end - it 'add worker with params and no user, has access_code' do - cwork_no_worker.add_worker(attributes_for(:assignee), nil) - (cwork_no_worker.access_code).should_not be_nil - end - it 'add worker with params and with user' do - cwork_no_worker.add_worker(attributes_for(:assignee), user) - (cwork_no_worker.has_worker?).should be_truthy - end - it 'add worker with params and user, have profile' do - cwork_no_worker.add_worker(attributes_for(:assignee), user) - (cwork_no_worker.profile).should eq(user.profile) - end - end - - context "remove_worker" do - it 'with the right user' do - cwork_profile.remove_worker(user, nil) - (cwork_no_worker.worker.profile).should be_nil - end - it 'with the wrong user' do - cwork_profile.remove_worker(not_owner, nil) - (cwork_profile.worker.profile).should_not be_nil - end - it 'with right access_code' do - access = cwork_access.access_code - cwork_access.remove_worker(nil, access) - (cwork_access.has_worker?).should be_falsey - end - it 'with right access_code' do - access = 'wrong code' - cwork_access.remove_worker(nil, access) - (cwork_access.has_worker?).should be_truthy - end - end - - context 'update_worker' do - it 'update worker with user' do - cwork_profile.profile = user.profile - cwork_profile.update_worker(attributes_for(:assignee, lastname: 'Wessman'), user) - (cwork_profile.lastname).should eq('Wessman') - end - end - - context 'status_view' do - it 'should return :sign_up for cwork' do - cwork_no_worker.status_view(nil).should eq(:sign_up) - end - it 'should return :edit for cwork_profile' do - cwork_profile.status_view(user).should eq(:edit) - end - it 'should return :authorize for cwork_profile' do - cwork_access.status_view(user).should eq(:authorize) - end - it 'should return :assigned for cwork_profile' do - cwork_profile.status_view(not_owner).should eq(:assigned) - end - end - end - # This tests makes sure that dates are formatted into ISO8601 for - # Fullcalendars json-feed - # Ref.: https://github.com/fsek/web/issues/99 - # /d.wessman - describe :Json do - it 'check date format is iso8601' do - (cwork_profile.as_json.to_json).should include(cwork_profile.start.iso8601.to_json) - (cwork_profile.as_json.to_json).should include(cwork_profile.stop.iso8601.to_json) - end - it 'as_json request is processed with parameters' do - (cwork_profile.as_json('params').to_json).should include(cwork_profile.start.iso8601.to_json) - end - end - end -end diff --git a/spec/models/constant_spec.rb b/spec/models/constant_spec.rb index 045c5c64c..ade5e47df 100644 --- a/spec/models/constant_spec.rb +++ b/spec/models/constant_spec.rb @@ -1,18 +1,12 @@ require 'rails_helper' RSpec.describe Constant, type: :model do - subject(:constant) { build(:constant) } - describe :Validations do - it { should validate_presence_of(:name) } - it { should validate_presence_of(:value) } - it { should validate_uniqueness_of(:name) } - end - + it { should validate_presence_of(:name) } + it { should validate_presence_of(:name) } it 'is valid with a name and a value' do c = Constant.new(name: 'foo', value: 'bar') expect(c).to be_valid end - it 'can return value by calling the get() function' do Constant.create(name: 'foo', value: 'bar') val = Constant.get 'foo' diff --git a/spec/models/rent_spec.rb b/spec/models/rent_spec.rb index 0ddbd999c..246c32ddd 100644 --- a/spec/models/rent_spec.rb +++ b/spec/models/rent_spec.rb @@ -2,11 +2,8 @@ require 'rails_helper' RSpec.describe Rent, type: :model do - subject(:rent) { build(:rent) } - let(:saved) { create(:rent, :good) } - describe 'has valid factory' do - it { should be_valid } - end + subject(:rent) { FactoryGirl.build(:rent) } + let(:rental) { create(:good_rent)} describe :Associations do it { should belong_to(:profile) } @@ -14,6 +11,7 @@ end describe :Validations do + # Disclaimer it { should allow_value(true).for(:disclaimer) } it { should_not allow_value(false).for(:disclaimer) } @@ -37,199 +35,253 @@ end end + # Some tests for the duration method + # /d.wessman describe :Duration do context :when_no_council do it 'add error if duration is over 48' do - rent = build(:rent, :over_48) + rent = FactoryGirl.build(:rent, :over_48) rent.valid? - rent.errors.get(:d_from).should include(', får inte vara längre än 48 h') + expect(rent.errors.get(:d_from)).to include(", får inte vara längre än 48 h") end it 'do not add error if duration is under 48' do - rent = build(:rent, :under_48) + rent = FactoryGirl.build(:rent, :under_48) rent.valid? - rent.errors.get(:d_from).should be_nil or not_include(', får inte vara längre än 48 h') + expect(rent.errors.get(:d_from)).to be_nil or not_include(", får inte vara längre än 48 h") end it 'valid when duration is under 48' do - rent = build(:rent, :good, :under_48) - rent.should be_valid + rent = FactoryGirl.build(:good_rent, :under_48) + expect(rent).to be_valid end end context :when_council do it 'do not add error if duration is over 48' do - rent = build(:rent, :over_48, :with_council) + rent = FactoryGirl.build(:rent, :over_48, :with_council) rent.valid? - rent.errors.get(:d_from).should be_nil + expect(rent.errors.get(:d_from)).to be_nil or not_include(", får inte vara längre än 48 h") end it 'do not add error if duration is under 48' do - rent = build(:rent, :under_48, :with_council) + rent = FactoryGirl.build(:rent, :under_48, :with_council) rent.valid? - rent.errors.get(:d_from).should be_nil + expect(rent.errors.get(:d_from)).to be_nil or not_include(", får inte vara längre än 48 h") end it 'valid for any duration' do - rent = build(:rent, :good, :over_48, :with_council) - rent.should be_valid + rent = FactoryGirl.build(:good_rent, :over_48, :with_council) + expect(rent).to be_valid end end end + # Test to make sure rent is in future + # /d.wessman describe :Dates_in_future do context :when_future do it 'add error if d_from > d_til' do + rent = FactoryGirl.build(:rent) rent.d_from = rent.d_til + 1.hour rent.valid? - rent.errors.get(:d_til).should include('måste vara efter startdatumet.') + expect(rent.errors.get(:d_til)).to include("måste vara efter startdatumet.") end it 'do not add error if d_from < d_til ' do + rent = FactoryGirl.build(:rent) rent.valid? - rent.errors.get(:d_til).should be_nil + expect(rent.errors.get(:d_til)).to be_nil or not_include("måste vara efter startdatumet.") + end + it 'no other validation failing' do + rent = FactoryGirl.build(:good_rent) + expect(rent).to be_valid end end context :when_past do it 'add error if d_from > d_til' do + rent = FactoryGirl.build(:rent) rent.d_til = Time.zone.now - 10.hours rent.d_from = rent.d_til + 5.hours rent.valid? - rent.errors.get(:d_til).should include("måste vara efter startdatumet.") + expect(rent.errors.get(:d_til)).to include("måste vara efter startdatumet.") end it 'add error if d_from > d_til' do + rent = FactoryGirl.build(:rent) rent.d_til = Time.zone.now - 10.hours rent.d_from = rent.d_til + 5.hours rent.valid? - rent.errors.get(:d_from).should include("måste vara i framtiden.") + expect(rent.errors.get(:d_from)).to include("måste vara i framtiden.") end it 'add error if d_from < d_til' do + rent = FactoryGirl.build(:rent) rent.d_from = Time.zone.now - 10.hours rent.d_til = rent.d_from + 5.hours rent.valid? - rent.errors.get(:d_from).should include("måste vara i framtiden.") + expect(rent.errors.get(:d_from)).to include("måste vara i framtiden.") end end end + + + # Validate if overlap + # /d.wessman describe :Overlap do context :when_no_councils do - let(:overlap) { create(:rent, :good) } - let(:normal) { build(:rent, :good) } it 'invalid when d_til is within saved rent' do - normal.d_from = overlap.d_from - 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid end it 'invalid when d_from and d_til is within saved rent' do - normal.d_from = overlap.d_from + 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from + 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid end - it 'add error if d_from is within saved' do - normal.d_from = overlap.d_from + 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.valid?.should be_falsey - normal.errors.get(:d_from).should include("överlappar med annan bokning") + it 'do add error if d_from is within saved' do + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from + 5.hours + rent.d_til = overlap.d_til - 5.hours + rent.valid? + expect(rent.errors.get(:d_from)).to include("överlappar med annan bokning") end it 'invalid when d_from is within saved rent' do - normal.d_from = overlap.d_til - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til - 5.hours + rent.d_til = overlap.d_til + 5.hours + expect(rent).to_not be_valid end it 'do add error if d_from is within saved' do - normal.d_from = overlap.d_til - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.valid? - normal.errors.get(:d_from).should include("överlappar med annan bokning") + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til - 5.hours + rent.d_til = overlap.d_til + 5.hours + rent.valid? + expect(rent.errors.get(:d_from)).to include("överlappar med annan bokning") end it 'valid when d_from and d_til is outside saved rent' do - normal.d_from = overlap.d_til + 5.hours - normal.d_til = normal.d_from + 5.hours - normal.should be_valid + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til + 5.hours + rent.d_til = rent.d_from + 5.hours + expect(rent).to be_valid end it 'do not add error if d_til and d_from is outside saved' do - normal.d_from = overlap.d_til + 5.hours - normal.d_til = normal.d_from + 5.hours - normal.valid? - normal.errors.get(:d_from).should be_nil + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til + 5.hours + rent.d_til = rent.d_from + 5.hours + rent.valid? + expect(rent.errors.get(:d_from)).to be_nil or not_include("överlappar med annan bokning") end end - context :when_first_council_second_not do - let(:overlap) { create(:rent, :good, :with_council) } - let(:normal) { build(:rent, :good) } - it 'invalid when d_til is within' do - normal.d_from = overlap.d_from - 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid - normal.errors.get(:d_from).should include('överlappar med annan bokning') - end - it 'invalid when d_from and d_til is within saved' do - normal.d_from = overlap.d_from + 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid - end - it 'invalid when d_from is within saved rent' do - normal.d_from = overlap.d_til - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.should_not be_valid - end - it 'valid when d_from and d_til is outside saved rent' do - normal.d_from = overlap.d_til + 5.hours - normal.d_til = normal.d_from + 5.hours - normal.should be_valid - end + it 'invalid when d_til is within good rent' do + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid + end + it 'add error if d_til within saved' do + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til - 5.hours + rent.valid? + expect(rent.errors.get(:d_from)).to include("överlappar med annan bokning") + end + it 'invalid when d_from and d_til is within saved' do + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_from + 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid + end + it 'invalid when d_from is within saved rent' do + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til - 5.hours + rent.d_til = overlap.d_til + 5.hours + expect(rent).to_not be_valid + end + it 'valid when d_from and d_til is outside saved rent' do + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent) + rent.d_from = overlap.d_til + 5.hours + rent.d_til = rent.d_from + 5.hours + expect(rent).to be_valid + end end context :when_second_council_first_not do - let(:overlap) { create(:rent, :good) } - let(:normal) { build(:rent, :good, :with_council) } - it 'valid when d_til is within good rent' do - normal.d_from = overlap.d_from - 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should be_valid - end - it 'valid when d_from and d_til is within good rent' do - normal.d_from = overlap.d_from + 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should be_valid - end - it 'valid when d_from is within good rent' do - normal.d_from = overlap.d_til - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.should be_valid - end - it 'valid when d_from and d_til is outside good rent' do - normal.d_from = overlap.d_til + 5.hours - normal.d_til = normal.d_from + 5.hours - normal.should be_valid - end + it 'valid when d_til is within good rent' do + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to be_valid + end + it 'valid when d_from and d_til is within good rent' do + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_from + 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to be_valid + end + it 'valid when d_from is within good rent' do + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_til - 5.hours + rent.d_til = overlap.d_til + 5.hours + expect(rent).to be_valid + end + it 'valid when d_from and d_til is outside good rent' do + overlap = FactoryGirl.create(:good_rent) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_til + 5.hours + rent.d_til = rent.d_from + 5.hours + expect(rent).to be_valid + end end - context :when_two_councils do - let(:overlap) { create(:rent, :good, :with_council) } - let(:normal) { build(:rent, :good, :with_council) } it 'invalid when d_til is within good rent' do - normal.d_from = overlap.d_from - 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid end it 'do add error if d_til within saved' do - normal.d_from = overlap.d_from - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.valid? - normal.errors.get(:d_from).should include('överlappar med annan utskottsbokning') + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_from - 5.hours + rent.d_til = overlap.d_til + 5.hours + rent.valid? + expect(rent.errors.get(:d_from)).to include("överlappar med annan utskottsbokning") end it 'invalid when d_from and d_til is within good rent' do - normal.d_from = overlap.d_from + 5.hours - normal.d_til = overlap.d_til - 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_from + 5.hours + rent.d_til = overlap.d_til - 5.hours + expect(rent).to_not be_valid end it 'invalid when d_from is within good rent' do - normal.d_from = overlap.d_til - 5.hours - normal.d_til = overlap.d_til + 5.hours - normal.should_not be_valid + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_til - 5.hours + rent.d_til = overlap.d_til + 5.hours + expect(rent).to_not be_valid end it 'valid when d_from and d_til is outside good rent' do - normal.d_from = overlap.d_til + 5.hours - normal.d_til = normal.d_from + 5.hours - normal.should be_valid + overlap = FactoryGirl.create(:good_rent,:with_council) + rent = FactoryGirl.build(:good_rent,:with_council) + rent.d_from = overlap.d_til + 5.hours + rent.d_til = rent.d_from + 5.hours + expect(rent).to be_valid end end end @@ -239,8 +291,8 @@ # /d.wessman describe :Json do it 'check date format is iso8601' do - (saved.as_json.to_json).should include(saved.d_from.iso8601.to_json) - (saved.as_json.to_json).should include(saved.d_til.iso8601.to_json) + (rental.as_json.to_json).should include(rental.d_from.iso8601.to_json) + (rental.as_json.to_json).should include(rental.d_til.iso8601.to_json) end end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index b6f31dff2..2c26b741e 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -28,19 +28,12 @@ RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - #config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_path = "#{::Rails.root}/spec/fixtures" # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false # instead of true. config.use_transactional_fixtures = false - config.include FactoryGirl::Syntax::Methods - - # Uncomment this line when all tests are rewritten with should-syntax - # Ref: https://github.com/fsek/web/issues/68 - # Right now it is failing many tests because they have expect-syntax - # /d.wessman - #config.expect_with(:rspec) { |c| c.syntax = :should } # RSpec Rails can automatically mix in different behaviours to your tests # based on their file location, for example enabling you to call `get` and diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d59613b08..8f3e38006 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -23,14 +23,16 @@ require 'rails/all' require 'rspec/rails' require 'capybara/rspec' -require 'capybara/rails' + +Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # I had to include this, /d.wessman 2015-03-20 require 'database_cleaner' # Devise helpers require 'devise' -Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } +Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } + RSpec.configure do |config| config.include Devise::TestHelpers, type: 'controller' config.extend ControllerMacros, type: 'controller' @@ -38,7 +40,7 @@ # Uncomment when all tests uses should #expectations.syntax = :should expectations.include_chain_clauses_in_custom_matcher_descriptions = true - expectations.syntax = [:should, :expect] + expectations.syntax = [ :should, :expect ] end config.mock_with :rspec do |mocks| diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb index f1aab3f2d..49441790d 100644 --- a/spec/support/database_cleaner.rb +++ b/spec/support/database_cleaner.rb @@ -1,13 +1,10 @@ -# encoding: UTF-8 +#encoding: UTF-8 + require 'database_cleaner' RSpec.configure do |config| config.before(:suite) do - DatabaseCleaner.strategy = :transaction - DatabaseCleaner.clean_with(:truncation) - end - config.before(:suite) do - DatabaseCleaner.clean_with(:deletion) + DatabaseCleaner.clean_with :deletion end config.before(:each) do diff --git a/spec/support/factory_girl.rb b/spec/support/factory_girl.rb index d282e75a9..d7c757f3c 100644 --- a/spec/support/factory_girl.rb +++ b/spec/support/factory_girl.rb @@ -2,13 +2,11 @@ config.include FactoryGirl::Syntax::Methods config.before(:suite) do - - # Do not lint assignee, it is not ActiveRecord - # /d.wessman + # Do not lint rent because it fails + # See https://github.com/fsek/web/issues/72 factories_to_lint = FactoryGirl.factories.reject do |factory| - factory.name =~ /assignee/ + factory.name =~ /^rent/ end - begin DatabaseCleaner.start FactoryGirl.lint factories_to_lint diff --git a/vendor/assets/javascripts/bootstrap-datetimepicker.js b/vendor/assets/javascripts/bootstrap-datetimepicker.js deleted file mode 100644 index 02e0ff14d..000000000 --- a/vendor/assets/javascripts/bootstrap-datetimepicker.js +++ /dev/null @@ -1,1941 +0,0 @@ -/* - //! version : 4.3.5 - ========================================================= - bootstrap-datetimejs - https://github.com/Eonasdan/bootstrap-datetimepicker - ========================================================= - The MIT License (MIT) - - Copyright (c) 2015 Jonathan Peterson - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - */ -/*global define:false */ -/*global exports:false */ -/*global require:false */ -/*global jQuery:false */ -/*global moment:false */ -(function (factory) { - 'use strict'; - if (typeof define === 'function' && define.amd) { - // AMD is used - Register as an anonymous module. - define(['jquery', 'moment'], factory); - } else if (typeof exports === 'object') { - factory(require('jquery'), require('moment')); - } else { - // Neither AMD nor CommonJS used. Use global variables. - if (typeof jQuery === 'undefined') { - throw 'bootstrap-datetimepicker requires jQuery to be loaded first'; - } - if (typeof moment === 'undefined') { - throw 'bootstrap-datetimepicker requires Moment.js to be loaded first'; - } - factory(jQuery, moment); - } -}(function ($, moment) { - 'use strict'; - if (!moment) { - throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first'); - } - - var dateTimePicker = function (element, options) { - var picker = {}, - date = moment(), - viewDate = date.clone(), - unset = true, - input, - component = false, - widget = false, - use24Hours, - minViewModeNumber = 0, - actualFormat, - parseFormats, - currentViewMode, - datePickerModes = [ - { - clsName: 'days', - navFnc: 'M', - navStep: 1 - }, - { - clsName: 'months', - navFnc: 'y', - navStep: 1 - }, - { - clsName: 'years', - navFnc: 'y', - navStep: 10 - } - ], - viewModes = ['days', 'months', 'years'], - verticalModes = ['top', 'bottom', 'auto'], - horizontalModes = ['left', 'right', 'auto'], - toolbarPlacements = ['default', 'top', 'bottom'], - keyMap = { - 'up': 38, - 38: 'up', - 'down': 40, - 40: 'down', - 'left': 37, - 37: 'left', - 'right': 39, - 39: 'right', - 'tab': 9, - 9: 'tab', - 'escape': 27, - 27: 'escape', - 'enter': 13, - 13: 'enter', - 'pageUp': 33, - 33: 'pageUp', - 'pageDown': 34, - 34: 'pageDown', - 'shift': 16, - 16: 'shift', - 'control': 17, - 17: 'control', - 'space': 32, - 32: 'space', - 't': 84, - 84: 't', - 'delete': 46, - 46: 'delete' - }, - keyState = {}, - - /******************************************************************************** - * - * Private functions - * - ********************************************************************************/ - isEnabled = function (granularity) { - if (typeof granularity !== 'string' || granularity.length > 1) { - throw new TypeError('isEnabled expects a single character string parameter'); - } - switch (granularity) { - case 'y': - return actualFormat.indexOf('Y') !== -1; - case 'M': - return actualFormat.indexOf('M') !== -1; - case 'd': - return actualFormat.toLowerCase().indexOf('d') !== -1; - case 'h': - case 'H': - return actualFormat.toLowerCase().indexOf('h') !== -1; - case 'm': - return actualFormat.indexOf('m') !== -1; - case 's': - return actualFormat.indexOf('s') !== -1; - default: - return false; - } - }, - - hasTime = function () { - return (isEnabled('h') || isEnabled('m') || isEnabled('s')); - }, - - hasDate = function () { - return (isEnabled('y') || isEnabled('M') || isEnabled('d')); - }, - - getDatePickerTemplate = function () { - var headTemplate = $('') - .append($('') - .append($('').addClass('prev').attr('data-action', 'previous') - .append($('').addClass(options.icons.previous)) - ) - .append($('').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', (options.calendarWeeks ? '6' : '5'))) - .append($('').addClass('next').attr('data-action', 'next') - .append($('').addClass(options.icons.next)) - ) - ), - contTemplate = $('') - .append($('') - .append($('').attr('colspan', (options.calendarWeeks ? '8' : '7'))) - ); - - return [ - $('
    ').addClass('datepicker-days') - .append($('').addClass('table-condensed') - .append(headTemplate) - .append($('')) - ), - $('
    ').addClass('datepicker-months') - .append($('
    ').addClass('table-condensed') - .append(headTemplate.clone()) - .append(contTemplate.clone()) - ), - $('
    ').addClass('datepicker-years') - .append($('
    ').addClass('table-condensed') - .append(headTemplate.clone()) - .append(contTemplate.clone()) - ) - ]; - }, - - getTimePickerMainTemplate = function () { - var topRow = $(''), - middleRow = $(''), - bottomRow = $(''); - - if (isEnabled('h')) { - topRow.append($('
    ') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'incrementHours') - .append($('').addClass(options.icons.up)))); - middleRow.append($('') - .append($('').addClass('timepicker-hour').attr('data-time-component', 'hours').attr('data-action', 'showHours'))); - bottomRow.append($('') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'decrementHours') - .append($('').addClass(options.icons.down)))); - } - if (isEnabled('m')) { - if (isEnabled('h')) { - topRow.append($('').addClass('separator')); - middleRow.append($('').addClass('separator').html(':')); - bottomRow.append($('').addClass('separator')); - } - topRow.append($('') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'incrementMinutes') - .append($('').addClass(options.icons.up)))); - middleRow.append($('') - .append($('').addClass('timepicker-minute').attr('data-time-component', 'minutes').attr('data-action', 'showMinutes'))); - bottomRow.append($('') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'decrementMinutes') - .append($('').addClass(options.icons.down)))); - } - if (isEnabled('s')) { - if (isEnabled('m')) { - topRow.append($('').addClass('separator')); - middleRow.append($('').addClass('separator').html(':')); - bottomRow.append($('').addClass('separator')); - } - topRow.append($('') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'incrementSeconds') - .append($('').addClass(options.icons.up)))); - middleRow.append($('') - .append($('').addClass('timepicker-second').attr('data-time-component', 'seconds').attr('data-action', 'showSeconds'))); - bottomRow.append($('') - .append($('').attr('href', '#').addClass('btn').attr('data-action', 'decrementSeconds') - .append($('').addClass(options.icons.down)))); - } - - if (!use24Hours) { - topRow.append($('').addClass('separator')); - middleRow.append($('') - .append($('').addClass('separator')); - } - - return $('
    ').addClass('timepicker-picker') - .append($('').addClass('table-condensed') - .append([topRow, middleRow, bottomRow])); - }, - - getTimePickerTemplate = function () { - var hoursView = $('
    ').addClass('timepicker-hours') - .append($('
    ').addClass('table-condensed')), - minutesView = $('
    ').addClass('timepicker-minutes') - .append($('
    ').addClass('table-condensed')), - secondsView = $('
    ').addClass('timepicker-seconds') - .append($('
    ').addClass('table-condensed')), - ret = [getTimePickerMainTemplate()]; - - if (isEnabled('h')) { - ret.push(hoursView); - } - if (isEnabled('m')) { - ret.push(minutesView); - } - if (isEnabled('s')) { - ret.push(secondsView); - } - - return ret; - }, - - getToolbar = function () { - var row = []; - if (options.showTodayButton) { - row.push($('
    ').append($('').attr('data-action', 'today').append($('').addClass(options.icons.today)))); - } - if (!options.sideBySide && hasDate() && hasTime()) { - row.push($('').append($('').attr('data-action', 'togglePicker').append($('').addClass(options.icons.time)))); - } - if (options.showClear) { - row.push($('').append($('').attr('data-action', 'clear').append($('').addClass(options.icons.clear)))); - } - return $('').addClass('table-condensed').append($('').append($('').append(row))); - }, - - getTemplate = function () { - var template = $('
    ').addClass('bootstrap-datetimepicker-widget dropdown-menu'), - dateView = $('
    ').addClass('datepicker').append(getDatePickerTemplate()), - timeView = $('
    ').addClass('timepicker').append(getTimePickerTemplate()), - content = $('
      ').addClass('list-unstyled'), - toolbar = $('
    • ').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar()); - - if (options.inline) { - template.removeClass('dropdown-menu'); - } - - if (use24Hours) { - template.addClass('usetwentyfour'); - } - if (options.sideBySide && hasDate() && hasTime()) { - template.addClass('timepicker-sbs'); - template.append( - $('
      ').addClass('row') - .append(dateView.addClass('col-sm-6')) - .append(timeView.addClass('col-sm-6')) - ); - template.append(toolbar); - return template; - } - - if (options.toolbarPlacement === 'top') { - content.append(toolbar); - } - if (hasDate()) { - content.append($('
    • ').addClass((options.collapse && hasTime() ? 'collapse in' : '')).append(dateView)); - } - if (options.toolbarPlacement === 'default') { - content.append(toolbar); - } - if (hasTime()) { - content.append($('
    • ').addClass((options.collapse && hasDate() ? 'collapse' : '')).append(timeView)); - } - if (options.toolbarPlacement === 'bottom') { - content.append(toolbar); - } - return template.append(content); - }, - - dataToOptions = function () { - var eData, - dataOptions = {}; - - if (element.is('input')) { - eData = element.data(); - } else { - eData = element.find('input').data(); - } - - if (eData.dateOptions && eData.dateOptions instanceof Object) { - dataOptions = $.extend(true, dataOptions, eData.dateOptions); - } - - $.each(options, function (key) { - var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1); - if (eData[attributeName] !== undefined) { - dataOptions[key] = eData[attributeName]; - } - }); - return dataOptions; - }, - - place = function () { - var position = (component || element).position(), - offset = (component || element).offset(), - vertical = options.widgetPositioning.vertical, - horizontal = options.widgetPositioning.horizontal, - parent; - - if (options.widgetParent) { - parent = options.widgetParent.append(widget); - } else if (element.is('input')) { - parent = element.parent().append(widget); - } else if (options.inline) { - parent = element.append(widget); - return; - } else { - parent = element; - element.children().first().after(widget); - } - - // Top and bottom logic - if (vertical === 'auto') { - if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && - widget.height() + element.outerHeight() < offset.top) { - vertical = 'top'; - } else { - vertical = 'bottom'; - } - } - - // Left and right logic - if (horizontal === 'auto') { - if (parent.width() < offset.left + widget.outerWidth() / 2 && - offset.left + widget.outerWidth() > $(window).width()) { - horizontal = 'right'; - } else { - horizontal = 'left'; - } - } - - if (vertical === 'top') { - widget.addClass('top').removeClass('bottom'); - } else { - widget.addClass('bottom').removeClass('top'); - } - - if (horizontal === 'right') { - widget.addClass('pull-right'); - } else { - widget.removeClass('pull-right'); - } - - // find the first parent element that has a relative css positioning - if (parent.css('position') !== 'relative') { - parent = parent.parents().filter(function () { - return $(this).css('position') === 'relative'; - }).first(); - } - - if (parent.length === 0) { - throw new Error('datetimepicker component should be placed within a relative positioned container'); - } - - widget.css({ - top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(), - bottom: vertical === 'top' ? position.top + element.outerHeight() : 'auto', - left: horizontal === 'left' ? parent.css('padding-left') : 'auto', - right: horizontal === 'left' ? 'auto' : parent.width() - element.outerWidth() - }); - }, - - notifyEvent = function (e) { - if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) { - return; - } - element.trigger(e); - }, - - showMode = function (dir) { - if (!widget) { - return; - } - if (dir) { - currentViewMode = Math.max(minViewModeNumber, Math.min(2, currentViewMode + dir)); - } - widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show(); - }, - - fillDow = function () { - var row = $('
    '), - currentDate = viewDate.clone().startOf('w'); - - if (options.calendarWeeks === true) { - row.append($(''); - if (options.calendarWeeks) { - row.append(''); - } - html.push(row); - } - clsName = ''; - if (currentDate.isBefore(viewDate, 'M')) { - clsName += ' old'; - } - if (currentDate.isAfter(viewDate, 'M')) { - clsName += ' new'; - } - if (currentDate.isSame(date, 'd') && !unset) { - clsName += ' active'; - } - if (!isValid(currentDate, 'd')) { - clsName += ' disabled'; - } - if (currentDate.isSame(moment(), 'd')) { - clsName += ' today'; - } - if (currentDate.day() === 0 || currentDate.day() === 6) { - clsName += ' weekend'; - } - row.append(''); - currentDate.add(1, 'd'); - } - - daysView.find('tbody').empty().append(html); - - updateMonths(); - - updateYears(); - }, - - fillHours = function () { - var table = widget.find('.timepicker-hours table'), - currentHour = viewDate.clone().startOf('d'), - html = [], - row = $(''); - - if (viewDate.hour() > 11 && !use24Hours) { - currentHour.hour(12); - } - while (currentHour.isSame(viewDate, 'd') && (use24Hours || (viewDate.hour() < 12 && currentHour.hour() < 12) || viewDate.hour() > 11)) { - if (currentHour.hour() % 4 === 0) { - row = $(''); - html.push(row); - } - row.append(''); - currentHour.add(1, 'h'); - } - table.empty().append(html); - }, - - fillMinutes = function () { - var table = widget.find('.timepicker-minutes table'), - currentMinute = viewDate.clone().startOf('h'), - html = [], - row = $(''), - step = options.stepping === 1 ? 5 : options.stepping; - - while (viewDate.isSame(currentMinute, 'h')) { - if (currentMinute.minute() % (step * 4) === 0) { - row = $(''); - html.push(row); - } - row.append(''); - currentMinute.add(step, 'm'); - } - table.empty().append(html); - }, - - fillSeconds = function () { - var table = widget.find('.timepicker-seconds table'), - currentSecond = viewDate.clone().startOf('m'), - html = [], - row = $(''); - - while (viewDate.isSame(currentSecond, 'm')) { - if (currentSecond.second() % 20 === 0) { - row = $(''); - html.push(row); - } - row.append(''); - currentSecond.add(5, 's'); - } - - table.empty().append(html); - }, - - fillTime = function () { - var timeComponents = widget.find('.timepicker span[data-time-component]'); - if (!use24Hours) { - widget.find('.timepicker [data-action=togglePeriod]').text(date.format('A')); - } - timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh')); - timeComponents.filter('[data-time-component=minutes]').text(date.format('mm')); - timeComponents.filter('[data-time-component=seconds]').text(date.format('ss')); - - fillHours(); - fillMinutes(); - fillSeconds(); - }, - - update = function () { - if (!widget) { - return; - } - fillDate(); - fillTime(); - }, - - setValue = function (targetMoment) { - var oldDate = unset ? null : date; - - // case of calling setValue(null or false) - if (!targetMoment) { - unset = true; - input.val(''); - element.data('date', ''); - notifyEvent({ - type: 'dp.change', - date: null, - oldDate: oldDate - }); - update(); - return; - } - - targetMoment = targetMoment.clone().locale(options.locale); - - if (options.stepping !== 1) { - targetMoment.minutes((Math.round(targetMoment.minutes() / options.stepping) * options.stepping) % 60).seconds(0); - } - - if (isValid(targetMoment)) { - date = targetMoment; - viewDate = date.clone(); - input.val(date.format(actualFormat)); - element.data('date', date.format(actualFormat)); - update(); - unset = false; - notifyEvent({ - type: 'dp.change', - date: date.clone(), - oldDate: oldDate - }); - } else { - input.val(unset ? '' : date.format(actualFormat)); - notifyEvent({ - type: 'dp.error', - date: targetMoment - }); - } - }, - - hide = function () { - var transitioning = false; - if (!widget) { - return picker; - } - // Ignore event if in the middle of a picker transition - widget.find('.collapse').each(function () { - var collapseData = $(this).data('collapse'); - if (collapseData && collapseData.transitioning) { - transitioning = true; - return false; - } - return true; - }); - if (transitioning) { - return picker; - } - if (component && component.hasClass('btn')) { - component.toggleClass('active'); - } - widget.hide(); - - $(window).off('resize', place); - widget.off('click', '[data-action]'); - widget.off('mousedown', false); - - widget.remove(); - widget = false; - - notifyEvent({ - type: 'dp.hide', - date: date.clone() - }); - return picker; - }, - - clear = function () { - setValue(null); - }, - - /******************************************************************************** - * - * Widget UI interaction functions - * - ********************************************************************************/ - actions = { - next: function () { - viewDate.add(datePickerModes[currentViewMode].navStep, datePickerModes[currentViewMode].navFnc); - fillDate(); - }, - - previous: function () { - viewDate.subtract(datePickerModes[currentViewMode].navStep, datePickerModes[currentViewMode].navFnc); - fillDate(); - }, - - pickerSwitch: function () { - showMode(1); - }, - - selectMonth: function (e) { - var month = $(e.target).closest('tbody').find('span').index($(e.target)); - viewDate.month(month); - if (currentViewMode === minViewModeNumber) { - setValue(date.clone().year(viewDate.year()).month(viewDate.month())); - hide(); - } else { - showMode(-1); - fillDate(); - } - }, - - selectYear: function (e) { - var year = parseInt($(e.target).text(), 10) || 0; - viewDate.year(year); - if (currentViewMode === minViewModeNumber) { - setValue(date.clone().year(viewDate.year())); - hide(); - } else { - showMode(-1); - fillDate(); - } - }, - - selectDay: function (e) { - var day = viewDate.clone(); - if ($(e.target).is('.old')) { - day.subtract(1, 'M'); - } - if ($(e.target).is('.new')) { - day.add(1, 'M'); - } - setValue(day.date(parseInt($(e.target).text(), 10))); - if (!hasTime() && !options.keepOpen) { - hide(); - } - }, - - incrementHours: function () { - setValue(date.clone().add(1, 'h')); - }, - - incrementMinutes: function () { - setValue(date.clone().add(options.stepping, 'm')); - }, - - incrementSeconds: function () { - setValue(date.clone().add(1, 's')); - }, - - decrementHours: function () { - setValue(date.clone().subtract(1, 'h')); - }, - - decrementMinutes: function () { - setValue(date.clone().subtract(options.stepping, 'm')); - }, - - decrementSeconds: function () { - setValue(date.clone().subtract(1, 's')); - }, - - togglePeriod: function () { - setValue(date.clone().add((date.hours() >= 12) ? -12 : 12, 'h')); - }, - - togglePicker: function (e) { - var $this = $(e.target), - $parent = $this.closest('ul'), - expanded = $parent.find('.in'), - closed = $parent.find('.collapse:not(.in)'), - collapseData; - - if (expanded && expanded.length) { - collapseData = expanded.data('collapse'); - if (collapseData && collapseData.transitioning) { - return; - } - if (expanded.collapse) { // if collapse plugin is available through bootstrap.js then use it - expanded.collapse('hide'); - closed.collapse('show'); - } else { // otherwise just toggle in class on the two views - expanded.removeClass('in'); - closed.addClass('in'); - } - if ($this.is('span')) { - $this.toggleClass(options.icons.time + ' ' + options.icons.date); - } else { - $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date); - } - - // NOTE: uncomment if toggled state will be restored in show() - //if (component) { - // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date); - //} - } - }, - - showPicker: function () { - widget.find('.timepicker > div:not(.timepicker-picker)').hide(); - widget.find('.timepicker .timepicker-picker').show(); - }, - - showHours: function () { - widget.find('.timepicker .timepicker-picker').hide(); - widget.find('.timepicker .timepicker-hours').show(); - }, - - showMinutes: function () { - widget.find('.timepicker .timepicker-picker').hide(); - widget.find('.timepicker .timepicker-minutes').show(); - }, - - showSeconds: function () { - widget.find('.timepicker .timepicker-picker').hide(); - widget.find('.timepicker .timepicker-seconds').show(); - }, - - selectHour: function (e) { - var hour = parseInt($(e.target).text(), 10); - - if (!use24Hours) { - if (date.hours() >= 12) { - if (hour !== 12) { - hour += 12; - } - } else { - if (hour === 12) { - hour = 0; - } - } - } - setValue(date.clone().hours(hour)); - actions.showPicker.call(picker); - }, - - selectMinute: function (e) { - setValue(date.clone().minutes(parseInt($(e.target).text(), 10))); - actions.showPicker.call(picker); - }, - - selectSecond: function (e) { - setValue(date.clone().seconds(parseInt($(e.target).text(), 10))); - actions.showPicker.call(picker); - }, - - clear: clear, - - today: function () { - setValue(moment()); - } - }, - - doAction = function (e) { - if ($(e.currentTarget).is('.disabled')) { - return false; - } - actions[$(e.currentTarget).data('action')].apply(picker, arguments); - return false; - }, - - show = function () { - var currentMoment, - useCurrentGranularity = { - 'year': function (m) { - return m.month(0).date(1).hours(0).seconds(0).minutes(0); - }, - 'month': function (m) { - return m.date(1).hours(0).seconds(0).minutes(0); - }, - 'day': function (m) { - return m.hours(0).seconds(0).minutes(0); - }, - 'hour': function (m) { - return m.seconds(0).minutes(0); - }, - 'minute': function (m) { - return m.seconds(0); - } - }; - - if ((options.disallowReadOnly && (input.prop('disabled') || input.prop('readonly'))) || widget) { - return picker; - } - if (options.useCurrent && unset && (input.is('input') && input.val().trim().length === 0)) { - currentMoment = moment(); - if (typeof options.useCurrent === 'string') { - currentMoment = useCurrentGranularity[options.useCurrent](currentMoment); - } - setValue(currentMoment); - } - - widget = getTemplate(); - - fillDow(); - fillMonths(); - - widget.find('.timepicker-hours').hide(); - widget.find('.timepicker-minutes').hide(); - widget.find('.timepicker-seconds').hide(); - - update(); - showMode(); - - $(window).on('resize', place); - widget.on('click', '[data-action]', doAction); // this handles clicks on the widget - widget.on('mousedown', false); - - if (component && component.hasClass('btn')) { - component.toggleClass('active'); - } - widget.show(); - place(); - - if (!input.is(':focus')) { - input.focus(); - } - - notifyEvent({ - type: 'dp.show' - }); - return picker; - }, - - toggle = function () { - return (widget ? hide() : show()); - }, - - parseInputDate = function (inputDate) { - if (moment.isMoment(inputDate) || inputDate instanceof Date) { - inputDate = moment(inputDate); - } else { - inputDate = moment(inputDate, parseFormats, options.useStrict); - } - inputDate.locale(options.locale); - return inputDate; - }, - - keydown = function (e) { - //if (e.keyCode === 27 && widget) { // allow escape to hide picker - // hide(); - // return false; - //} - //if (e.keyCode === 40 && !widget) { // allow down to show picker - // show(); - // e.preventDefault(); - //} - //return true; - - var handler = null, - index, - index2, - pressedKeys = [], - pressedModifiers = {}, - currentKey = e.which, - keyBindKeys, - allModifiersPressed, - pressed = 'p'; - - keyState[currentKey] = pressed; - - for (index in keyState) { - if (keyState.hasOwnProperty(index) && keyState[index] === pressed) { - pressedKeys.push(index); - if (parseInt(index, 10) !== currentKey) { - pressedModifiers[index] = true; - } - } - } - - for (index in options.keyBinds) { - if (options.keyBinds.hasOwnProperty(index) && typeof (options.keyBinds[index]) === 'function') { - keyBindKeys = index.split(' '); - if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) { - allModifiersPressed = true; - for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) { - if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) { - allModifiersPressed = false; - break; - } - } - if (allModifiersPressed) { - handler = options.keyBinds[index]; - break; - } - } - } - } - - if (handler) { - handler.call(picker, widget); - e.stopPropagation(); - e.preventDefault(); - } - }, - - keyup = function (e) { - keyState[e.which] = 'r'; - e.stopPropagation(); - e.preventDefault(); - }, - - change = function (e) { - var val = $(e.target).val().trim(), - parsedDate = val ? parseInputDate(val) : null; - setValue(parsedDate); - e.stopImmediatePropagation(); - return false; - }, - - attachDatePickerElementEvents = function () { - input.on({ - 'change': change, - 'blur': hide, - 'keydown': keydown, - 'keyup': keyup - }); - - if (element.is('input')) { - input.on({ - 'focus': show - }); - } else if (component) { - component.on('click', toggle); - component.on('mousedown', false); - } - }, - - detachDatePickerElementEvents = function () { - input.off({ - 'change': change, - 'blur': hide, - 'keydown': keydown, - 'keyup': keyup - }); - - if (element.is('input')) { - input.off({ - 'focus': show - }); - } else if (component) { - component.off('click', toggle); - component.off('mousedown', false); - } - }, - - indexGivenDates = function (givenDatesArray) { - // Store given enabledDates and disabledDates as keys. - // This way we can check their existence in O(1) time instead of looping through whole array. - // (for example: options.enabledDates['2014-02-27'] === true) - var givenDatesIndexed = {}; - $.each(givenDatesArray, function () { - var dDate = parseInputDate(this); - if (dDate.isValid()) { - givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true; - } - }); - return (Object.keys(givenDatesIndexed).length) ? givenDatesIndexed : false; - }, - - initFormatting = function () { - var format = options.format || 'L LT'; - - actualFormat = format.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) { - var newinput = moment().localeData().longDateFormat(formatInput) || formatInput; - return newinput.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) { //temp fix for #740 - return moment().localeData().longDateFormat(formatInput2) || formatInput2; - }); - }); - - - parseFormats = options.extraFormats ? options.extraFormats.slice() : []; - if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) { - parseFormats.push(actualFormat); - } - - use24Hours = (actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.indexOf('h') < 1); - - if (isEnabled('y')) { - minViewModeNumber = 2; - } - if (isEnabled('M')) { - minViewModeNumber = 1; - } - if (isEnabled('d')) { - minViewModeNumber = 0; - } - - currentViewMode = Math.max(minViewModeNumber, currentViewMode); - - if (!unset) { - setValue(date); - } - }; - - /******************************************************************************** - * - * Public API functions - * ===================== - * - * Important: Do not expose direct references to private objects or the options - * object to the outer world. Always return a clone when returning values or make - * a clone when setting a private variable. - * - ********************************************************************************/ - picker.destroy = function () { - hide(); - detachDatePickerElementEvents(); - element.removeData('DateTimePicker'); - element.removeData('date'); - }; - - picker.toggle = toggle; - - picker.show = show; - - picker.hide = hide; - - picker.disable = function () { - hide(); - if (component && component.hasClass('btn')) { - component.addClass('disabled'); - } - input.prop('disabled', true); - return picker; - }; - - picker.enable = function () { - if (component && component.hasClass('btn')) { - component.removeClass('disabled'); - } - input.prop('disabled', false); - return picker; - }; - - picker.disallowReadOnly = function (disallowReadOnly) { - if (arguments.length === 0) { - return options.disallowReadOnly; - } - if (typeof disallowReadOnly !== 'boolean') { - throw new TypeError('disallowReadOnly() expects a boolean parameter'); - } - options.disallowReadOnly = disallowReadOnly; - return picker; - }; - - picker.options = function (newOptions) { - if (arguments.length === 0) { - return $.extend(true, {}, options); - } - - if (!(newOptions instanceof Object)) { - throw new TypeError('options() options parameter should be an object'); - } - $.extend(true, options, newOptions); - $.each(options, function (key, value) { - if (picker[key] !== undefined) { - picker[key](value); - } else { - throw new TypeError('option ' + key + ' is not recognized!'); - } - }); - return picker; - }; - - picker.date = function (newDate) { - if (arguments.length === 0) { - if (unset) { - return null; - } - return date.clone(); - } - - if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) { - throw new TypeError('date() parameter must be one of [null, string, moment or Date]'); - } - - setValue(newDate === null ? null : parseInputDate(newDate)); - return picker; - }; - - picker.format = function (newFormat) { - if (arguments.length === 0) { - return options.format; - } - - if ((typeof newFormat !== 'string') && ((typeof newFormat !== 'boolean') || (newFormat !== false))) { - throw new TypeError('format() expects a sting or boolean:false parameter ' + newFormat); - } - - options.format = newFormat; - if (actualFormat) { - initFormatting(); // reinit formatting - } - return picker; - }; - - picker.dayViewHeaderFormat = function (newFormat) { - if (arguments.length === 0) { - return options.dayViewHeaderFormat; - } - - if (typeof newFormat !== 'string') { - throw new TypeError('dayViewHeaderFormat() expects a string parameter'); - } - - options.dayViewHeaderFormat = newFormat; - return picker; - }; - - picker.extraFormats = function (formats) { - if (arguments.length === 0) { - return options.extraFormats; - } - - if (formats !== false && !(formats instanceof Array)) { - throw new TypeError('extraFormats() expects an array or false parameter'); - } - - options.extraFormats = formats; - if (parseFormats) { - initFormatting(); // reinit formatting - } - return picker; - }; - - picker.disabledDates = function (dates) { - if (arguments.length === 0) { - return (options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates); - } - - if (!dates) { - options.disabledDates = false; - update(); - return picker; - } - if (!(dates instanceof Array)) { - throw new TypeError('disabledDates() expects an array parameter'); - } - options.disabledDates = indexGivenDates(dates); - options.enabledDates = false; - update(); - return picker; - }; - - picker.enabledDates = function (dates) { - if (arguments.length === 0) { - return (options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates); - } - - if (!dates) { - options.enabledDates = false; - update(); - return picker; - } - if (!(dates instanceof Array)) { - throw new TypeError('enabledDates() expects an array parameter'); - } - options.enabledDates = indexGivenDates(dates); - options.disabledDates = false; - update(); - return picker; - }; - - picker.daysOfWeekDisabled = function (daysOfWeekDisabled) { - if (arguments.length === 0) { - return options.daysOfWeekDisabled.splice(0); - } - - if (!(daysOfWeekDisabled instanceof Array)) { - throw new TypeError('daysOfWeekDisabled() expects an array parameter'); - } - options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) { - currentValue = parseInt(currentValue, 10); - if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) { - return previousValue; - } - if (previousValue.indexOf(currentValue) === -1) { - previousValue.push(currentValue); - } - return previousValue; - }, []).sort(); - update(); - return picker; - }; - - picker.maxDate = function (maxDate) { - if (arguments.length === 0) { - return options.maxDate ? options.maxDate.clone() : options.maxDate; - } - - if ((typeof maxDate === 'boolean') && maxDate === false) { - options.maxDate = false; - update(); - return picker; - } - - var parsedDate = parseInputDate(maxDate); - - if (!parsedDate.isValid()) { - throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate); - } - if (options.minDate && parsedDate.isBefore(options.minDate)) { - throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat)); - } - options.maxDate = parsedDate; - if (options.maxDate.isBefore(maxDate)) { - setValue(options.maxDate); - } - if (viewDate.isAfter(parsedDate)) { - viewDate = parsedDate; - } - update(); - return picker; - }; - - picker.minDate = function (minDate) { - if (arguments.length === 0) { - return options.minDate ? options.minDate.clone() : options.minDate; - } - - if ((typeof minDate === 'boolean') && minDate === false) { - options.minDate = false; - update(); - return picker; - } - - var parsedDate = parseInputDate(minDate); - - if (!parsedDate.isValid()) { - throw new TypeError('minDate() Could not parse date parameter: ' + minDate); - } - if (options.maxDate && parsedDate.isAfter(options.maxDate)) { - throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat)); - } - options.minDate = parsedDate; - if (options.minDate.isAfter(minDate)) { - setValue(options.minDate); - } - if (viewDate.isBefore(parsedDate)) { - viewDate = parsedDate; - } - update(); - return picker; - }; - - picker.defaultDate = function (defaultDate) { - if (arguments.length === 0) { - return options.defaultDate ? options.defaultDate.clone() : options.defaultDate; - } - if (!defaultDate) { - options.defaultDate = false; - return picker; - } - var parsedDate = parseInputDate(defaultDate); - if (!parsedDate.isValid()) { - throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate); - } - if (!isValid(parsedDate)) { - throw new TypeError('defaultDate() date passed is invalid according to component setup validations'); - } - - options.defaultDate = parsedDate; - - if (options.defaultDate && input.val().trim() === '') { - setValue(options.defaultDate); - } - return picker; - }; - - picker.locale = function (locale) { - if (arguments.length === 0) { - return options.locale; - } - - if (!moment.localeData(locale)) { - throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!'); - } - - options.locale = locale; - date.locale(options.locale); - viewDate.locale(options.locale); - - if (actualFormat) { - initFormatting(); // reinit formatting - } - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.stepping = function (stepping) { - if (arguments.length === 0) { - return options.stepping; - } - - stepping = parseInt(stepping, 10); - if (isNaN(stepping) || stepping < 1) { - stepping = 1; - } - options.stepping = stepping; - return picker; - }; - - picker.useCurrent = function (useCurrent) { - var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute']; - if (arguments.length === 0) { - return options.useCurrent; - } - - if ((typeof useCurrent !== 'boolean') && (typeof useCurrent !== 'string')) { - throw new TypeError('useCurrent() expects a boolean or string parameter'); - } - if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) { - throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', ')); - } - options.useCurrent = useCurrent; - return picker; - }; - - picker.collapse = function (collapse) { - if (arguments.length === 0) { - return options.collapse; - } - - if (typeof collapse !== 'boolean') { - throw new TypeError('collapse() expects a boolean parameter'); - } - if (options.collapse === collapse) { - return picker; - } - options.collapse = collapse; - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.icons = function (icons) { - if (arguments.length === 0) { - return $.extend({}, options.icons); - } - - if (!(icons instanceof Object)) { - throw new TypeError('icons() expects parameter to be an Object'); - } - $.extend(options.icons, icons); - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.useStrict = function (useStrict) { - if (arguments.length === 0) { - return options.useStrict; - } - - if (typeof useStrict !== 'boolean') { - throw new TypeError('useStrict() expects a boolean parameter'); - } - options.useStrict = useStrict; - return picker; - }; - - picker.sideBySide = function (sideBySide) { - if (arguments.length === 0) { - return options.sideBySide; - } - - if (typeof sideBySide !== 'boolean') { - throw new TypeError('sideBySide() expects a boolean parameter'); - } - options.sideBySide = sideBySide; - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.viewMode = function (viewMode) { - if (arguments.length === 0) { - return options.viewMode; - } - - if (typeof viewMode !== 'string') { - throw new TypeError('viewMode() expects a string parameter'); - } - - if (viewModes.indexOf(viewMode) === -1) { - throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value'); - } - - options.viewMode = viewMode; - currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber); - - showMode(); - return picker; - }; - - picker.toolbarPlacement = function (toolbarPlacement) { - if (arguments.length === 0) { - return options.toolbarPlacement; - } - - if (typeof toolbarPlacement !== 'string') { - throw new TypeError('toolbarPlacement() expects a string parameter'); - } - if (toolbarPlacements.indexOf(toolbarPlacement) === -1) { - throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value'); - } - options.toolbarPlacement = toolbarPlacement; - - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.widgetPositioning = function (widgetPositioning) { - if (arguments.length === 0) { - return $.extend({}, options.widgetPositioning); - } - - if (({}).toString.call(widgetPositioning) !== '[object Object]') { - throw new TypeError('widgetPositioning() expects an object variable'); - } - if (widgetPositioning.horizontal) { - if (typeof widgetPositioning.horizontal !== 'string') { - throw new TypeError('widgetPositioning() horizontal variable must be a string'); - } - widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase(); - if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) { - throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')'); - } - options.widgetPositioning.horizontal = widgetPositioning.horizontal; - } - if (widgetPositioning.vertical) { - if (typeof widgetPositioning.vertical !== 'string') { - throw new TypeError('widgetPositioning() vertical variable must be a string'); - } - widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase(); - if (verticalModes.indexOf(widgetPositioning.vertical) === -1) { - throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')'); - } - options.widgetPositioning.vertical = widgetPositioning.vertical; - } - update(); - return picker; - }; - - picker.calendarWeeks = function (calendarWeeks) { - if (arguments.length === 0) { - return options.calendarWeeks; - } - - if (typeof calendarWeeks !== 'boolean') { - throw new TypeError('calendarWeeks() expects parameter to be a boolean value'); - } - - options.calendarWeeks = calendarWeeks; - update(); - return picker; - }; - - picker.showTodayButton = function (showTodayButton) { - if (arguments.length === 0) { - return options.showTodayButton; - } - - if (typeof showTodayButton !== 'boolean') { - throw new TypeError('showTodayButton() expects a boolean parameter'); - } - - options.showTodayButton = showTodayButton; - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.showClear = function (showClear) { - if (arguments.length === 0) { - return options.showClear; - } - - if (typeof showClear !== 'boolean') { - throw new TypeError('showClear() expects a boolean parameter'); - } - - options.showClear = showClear; - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.widgetParent = function (widgetParent) { - if (arguments.length === 0) { - return options.widgetParent; - } - - if (typeof widgetParent === 'string') { - widgetParent = $(widgetParent); - } - - if (widgetParent !== null && (typeof widgetParent !== 'string' && !(widgetParent instanceof $))) { - throw new TypeError('widgetParent() expects a string or a jQuery object parameter'); - } - - options.widgetParent = widgetParent; - if (widget) { - hide(); - show(); - } - return picker; - }; - - picker.keepOpen = function (keepOpen) { - if (arguments.length === 0) { - return options.keepOpen; - } - - if (typeof keepOpen !== 'boolean') { - throw new TypeError('keepOpen() expects a boolean parameter'); - } - - options.keepOpen = keepOpen; - return picker; - }; - - picker.inline = function (inline) { - if (arguments.length === 0) { - return options.inline; - } - - if (typeof inline !== 'boolean') { - throw new TypeError('inline() expects a boolean parameter'); - } - - options.inline = inline; - return picker; - }; - - picker.clear = function () { - clear(); - return picker; - }; - - picker.keyBinds = function (keyBinds) { - options.keyBinds = keyBinds; - return picker; - }; - - // initializing element and component attributes - if (element.is('input')) { - input = element; - } else { - input = element.find('.datepickerinput'); - if (input.size() === 0) { - input = element.find('input'); - } else if (!input.is('input')) { - throw new Error('CSS class "datepickerinput" cannot be applied to non input element'); - } - } - - if (element.hasClass('input-group')) { - // in case there is more then one 'input-group-addon' Issue #48 - if (element.find('.datepickerbutton').size() === 0) { - component = element.find('[class^="input-group-"]'); - } else { - component = element.find('.datepickerbutton'); - } - } - - if (!options.inline && !input.is('input')) { - throw new Error('Could not initialize DateTimePicker without an input element'); - } - - $.extend(true, options, dataToOptions()); - - picker.options(options); - - initFormatting(); - - attachDatePickerElementEvents(); - - if (input.prop('disabled')) { - picker.disable(); - } - - if (input.is('input') && input.val().trim().length !== 0) { - setValue(parseInputDate(input.val().trim())); - } else if (options.defaultDate) { - setValue(options.defaultDate); - } - if (options.inline) { - show(); - } - return picker; - }; - - /******************************************************************************** - * - * jQuery plugin constructor and defaults object - * - ********************************************************************************/ - - $.fn.datetimepicker = function (options) { - return this.each(function () { - var $this = $(this); - if (!$this.data('DateTimePicker')) { - // create a private copy of the defaults object - options = $.extend(true, {}, $.fn.datetimepicker.defaults, options); - $this.data('DateTimePicker', dateTimePicker($this, options)); - } - }); - }; - - $.fn.datetimepicker.defaults = { - format: false, - dayViewHeaderFormat: 'MMMM YYYY', - extraFormats: false, - stepping: 1, - minDate: false, - maxDate: false, - useCurrent: true, - collapse: true, - locale: moment.locale(), - defaultDate: false, - disabledDates: false, - enabledDates: false, - icons: { - time: 'glyphicon glyphicon-time', - date: 'glyphicon glyphicon-calendar', - up: 'glyphicon glyphicon-chevron-up', - down: 'glyphicon glyphicon-chevron-down', - previous: 'glyphicon glyphicon-chevron-left', - next: 'glyphicon glyphicon-chevron-right', - today: 'glyphicon glyphicon-screenshot', - clear: 'glyphicon glyphicon-trash' - }, - useStrict: false, - sideBySide: false, - daysOfWeekDisabled: [], - calendarWeeks: false, - viewMode: 'days', - toolbarPlacement: 'default', - showTodayButton: false, - showClear: false, - widgetPositioning: { - horizontal: 'auto', - vertical: 'auto' - }, - widgetParent: null, - disallowReadOnly: true, - keepOpen: false, - inline: false, - keyBinds: { - up: function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().subtract(7, 'd')); - } else { - this.date(this.date().clone().add(1, 'm')); - } - }, - down: function (widget) { - if (!widget) { - this.show(); - } - else if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().add(7, 'd')); - } else { - this.date(this.date().clone().subtract(1, 'm')); - } - }, - 'control up': function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().subtract(1, 'y')); - } else { - this.date(this.date().clone().add(1, 'h')); - } - }, - 'control down': function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().add(1, 'y')); - } else { - this.date(this.date().clone().subtract(1, 'h')); - } - }, - left: function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().subtract(1, 'd')); - } - }, - right: function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().add(1, 'd')); - } - }, - pageUp: function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().subtract(1, 'M')); - } - }, - pageDown: function (widget) { - if (widget.find('.datepicker').is(':visible')) { - this.date(this.date().clone().add(1, 'M')); - } - }, - enter: function () { - this.hide(); - }, - escape: function () { - this.hide(); - }, - tab: function (widget) { - widget.find('.picker-switch a[data-action="togglePicker"]').click(); - }, - 'control space': function (widget) { - if (widget.find('.timepicker').is(':visible')) { - widget.find('.btn[data-action="togglePeriod"]').click(); - } - }, - t: function () { - this.date(moment()); - }, - 'delete': function () { - this.clear(); - } - - } - }; -})); diff --git a/vendor/assets/javascripts/pickers.js b/vendor/assets/javascripts/pickers.js deleted file mode 100644 index b1b57d1d6..000000000 --- a/vendor/assets/javascripts/pickers.js +++ /dev/null @@ -1,47 +0,0 @@ -var default_picker_options = { - icons: { - date: 'fa fa-calendar', - time: 'fa fa-clock-o', - up: 'fa fa-chevron-up', - down: 'fa fa-chevron-down', - previous: 'fa fa-chevron-left', - next: 'fa fa-chevron-right', - today: 'fa fa-crosshairs', - clear: 'fa fa-trash-o' - } - -} - -$(document).on('ready page:change', function() { - $('.datetimepicker').datetimepicker(default_picker_options); - - $('.timepicker').datetimepicker(default_picker_options); - - $('.datepicker').datetimepicker(default_picker_options); - - $('.datetimerange').each(function(){ - var $this = $(this) - var range1 = $($this.find('.input-group')[0]) - var range2 = $($this.find('.input-group')[1]) - - if(range1.data("DateTimePicker").date() != null) - range2.data("DateTimePicker").minDate(range1.data("DateTimePicker").date()); - - if(range2.data("DateTimePicker").date() != null) - range1.data("DateTimePicker").maxDate(range2.data("DateTimePicker").date()); - - range1.on("dp.change",function (e) { - if(e.date) - range2.data("DateTimePicker").minDate(e.date); - else - range2.data("DateTimePicker").minDate(false); - }); - - range2.on("dp.change",function (e) { - if(e.date) - range1.data("DateTimePicker").maxDate(e.date); - else - range1.data("DateTimePicker").maxDate(false); - }); - }) -}); diff --git a/vendor/assets/stylesheets/bootstrap-datetimepicker.css b/vendor/assets/stylesheets/bootstrap-datetimepicker.css deleted file mode 100644 index f810a7dd4..000000000 --- a/vendor/assets/stylesheets/bootstrap-datetimepicker.css +++ /dev/null @@ -1,366 +0,0 @@ -/*! - * Datetimepicker for Bootstrap 3 -//! version : 4.3.5 - * https://github.com/Eonasdan/bootstrap-datetimepicker/ - */ -.bootstrap-datetimepicker-widget { - list-style: none; -} -.bootstrap-datetimepicker-widget.dropdown-menu { - margin: 2px 0; - padding: 4px; - width: 19em; -} -@media (min-width: 768px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -@media (min-width: 992px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -@media (min-width: 1200px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -.bootstrap-datetimepicker-widget.dropdown-menu:before, -.bootstrap-datetimepicker-widget.dropdown-menu:after { - content: ''; - display: inline-block; - position: absolute; -} -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before { - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #cccccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - top: -7px; - left: 7px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after { - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid white; - top: -6px; - left: 8px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.top:before { - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-top: 7px solid #cccccc; - border-top-color: rgba(0, 0, 0, 0.2); - bottom: -7px; - left: 6px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.top:after { - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-top: 6px solid white; - bottom: -6px; - left: 7px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before { - left: auto; - right: 6px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after { - left: auto; - right: 7px; -} -.bootstrap-datetimepicker-widget .list-unstyled { - margin: 0; -} -.bootstrap-datetimepicker-widget a[data-action] { - padding: 6px 0; -} -.bootstrap-datetimepicker-widget a[data-action]:active { - box-shadow: none; -} -.bootstrap-datetimepicker-widget .timepicker-hour, -.bootstrap-datetimepicker-widget .timepicker-minute, -.bootstrap-datetimepicker-widget .timepicker-second { - width: 54px; - font-weight: bold; - font-size: 1.2em; - margin: 0; -} -.bootstrap-datetimepicker-widget button[data-action] { - padding: 6px; -} -.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Increment Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Increment Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Decrement Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Decrement Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Show Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Show Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Toggle AM/PM"; -} -.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Clear the picker"; -} -.bootstrap-datetimepicker-widget .btn[data-action="today"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Set the date to today"; -} -.bootstrap-datetimepicker-widget .picker-switch { - text-align: center; -} -.bootstrap-datetimepicker-widget .picker-switch::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Toggle Date and Time Screens"; -} -.bootstrap-datetimepicker-widget .picker-switch td { - padding: 0; - margin: 0; - height: auto; - width: auto; - line-height: inherit; -} -.bootstrap-datetimepicker-widget .picker-switch td span { - line-height: 2.5; - height: 2.5em; - width: 100%; -} -.bootstrap-datetimepicker-widget table { - width: 100%; - margin: 0; -} -.bootstrap-datetimepicker-widget table td, -.bootstrap-datetimepicker-widget table th { - text-align: center; - border-radius: 4px; -} -.bootstrap-datetimepicker-widget table th { - height: 20px; - line-height: 20px; - width: 20px; -} -.bootstrap-datetimepicker-widget table th.picker-switch { - width: 145px; -} -.bootstrap-datetimepicker-widget table th.disabled, -.bootstrap-datetimepicker-widget table th.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget table th.prev::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Previous Month"; -} -.bootstrap-datetimepicker-widget table th.next::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Next Month"; -} -.bootstrap-datetimepicker-widget table thead tr:first-child th { - cursor: pointer; -} -.bootstrap-datetimepicker-widget table thead tr:first-child th:hover { - background: #eeeeee; -} -.bootstrap-datetimepicker-widget table td { - height: 54px; - line-height: 54px; - width: 54px; -} -.bootstrap-datetimepicker-widget table td.cw { - font-size: .8em; - height: 20px; - line-height: 20px; - color: #777777; -} -.bootstrap-datetimepicker-widget table td.day { - height: 20px; - line-height: 20px; - width: 20px; -} -.bootstrap-datetimepicker-widget table td.day:hover, -.bootstrap-datetimepicker-widget table td.hour:hover, -.bootstrap-datetimepicker-widget table td.minute:hover, -.bootstrap-datetimepicker-widget table td.second:hover { - background: #eeeeee; - cursor: pointer; -} -.bootstrap-datetimepicker-widget table td.old, -.bootstrap-datetimepicker-widget table td.new { - color: #777777; -} -.bootstrap-datetimepicker-widget table td.today { - position: relative; -} -.bootstrap-datetimepicker-widget table td.today:before { - content: ''; - display: inline-block; - border: 0 0 7px 7px solid transparent; - border-bottom-color: #337ab7; - border-top-color: rgba(0, 0, 0, 0.2); - position: absolute; - bottom: 4px; - right: 4px; -} -.bootstrap-datetimepicker-widget table td.active, -.bootstrap-datetimepicker-widget table td.active:hover { - background-color: #337ab7; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.bootstrap-datetimepicker-widget table td.active.today:before { - border-bottom-color: #fff; -} -.bootstrap-datetimepicker-widget table td.disabled, -.bootstrap-datetimepicker-widget table td.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget table td span { - display: inline-block; - width: 54px; - height: 54px; - line-height: 54px; - margin: 2px 1.5px; - cursor: pointer; - border-radius: 4px; -} -.bootstrap-datetimepicker-widget table td span:hover { - background: #eeeeee; -} -.bootstrap-datetimepicker-widget table td span.active { - background-color: #337ab7; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.bootstrap-datetimepicker-widget table td span.old { - color: #777777; -} -.bootstrap-datetimepicker-widget table td span.disabled, -.bootstrap-datetimepicker-widget table td span.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget.usetwentyfour td.hour { - height: 27px; - line-height: 27px; -} -.input-group.date .input-group-addon { - cursor: pointer; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} diff --git a/vendor/assets/stylesheets/bootstrap-datetimepicker.min.css b/vendor/assets/stylesheets/bootstrap-datetimepicker.min.css deleted file mode 100644 index f810a7dd4..000000000 --- a/vendor/assets/stylesheets/bootstrap-datetimepicker.min.css +++ /dev/null @@ -1,366 +0,0 @@ -/*! - * Datetimepicker for Bootstrap 3 -//! version : 4.3.5 - * https://github.com/Eonasdan/bootstrap-datetimepicker/ - */ -.bootstrap-datetimepicker-widget { - list-style: none; -} -.bootstrap-datetimepicker-widget.dropdown-menu { - margin: 2px 0; - padding: 4px; - width: 19em; -} -@media (min-width: 768px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -@media (min-width: 992px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -@media (min-width: 1200px) { - .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs { - width: 38em; - } -} -.bootstrap-datetimepicker-widget.dropdown-menu:before, -.bootstrap-datetimepicker-widget.dropdown-menu:after { - content: ''; - display: inline-block; - position: absolute; -} -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before { - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #cccccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - top: -7px; - left: 7px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after { - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid white; - top: -6px; - left: 8px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.top:before { - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-top: 7px solid #cccccc; - border-top-color: rgba(0, 0, 0, 0.2); - bottom: -7px; - left: 6px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.top:after { - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-top: 6px solid white; - bottom: -6px; - left: 7px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before { - left: auto; - right: 6px; -} -.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after { - left: auto; - right: 7px; -} -.bootstrap-datetimepicker-widget .list-unstyled { - margin: 0; -} -.bootstrap-datetimepicker-widget a[data-action] { - padding: 6px 0; -} -.bootstrap-datetimepicker-widget a[data-action]:active { - box-shadow: none; -} -.bootstrap-datetimepicker-widget .timepicker-hour, -.bootstrap-datetimepicker-widget .timepicker-minute, -.bootstrap-datetimepicker-widget .timepicker-second { - width: 54px; - font-weight: bold; - font-size: 1.2em; - margin: 0; -} -.bootstrap-datetimepicker-widget button[data-action] { - padding: 6px; -} -.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Increment Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Increment Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Decrement Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Decrement Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Show Hours"; -} -.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Show Minutes"; -} -.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Toggle AM/PM"; -} -.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Clear the picker"; -} -.bootstrap-datetimepicker-widget .btn[data-action="today"]::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Set the date to today"; -} -.bootstrap-datetimepicker-widget .picker-switch { - text-align: center; -} -.bootstrap-datetimepicker-widget .picker-switch::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Toggle Date and Time Screens"; -} -.bootstrap-datetimepicker-widget .picker-switch td { - padding: 0; - margin: 0; - height: auto; - width: auto; - line-height: inherit; -} -.bootstrap-datetimepicker-widget .picker-switch td span { - line-height: 2.5; - height: 2.5em; - width: 100%; -} -.bootstrap-datetimepicker-widget table { - width: 100%; - margin: 0; -} -.bootstrap-datetimepicker-widget table td, -.bootstrap-datetimepicker-widget table th { - text-align: center; - border-radius: 4px; -} -.bootstrap-datetimepicker-widget table th { - height: 20px; - line-height: 20px; - width: 20px; -} -.bootstrap-datetimepicker-widget table th.picker-switch { - width: 145px; -} -.bootstrap-datetimepicker-widget table th.disabled, -.bootstrap-datetimepicker-widget table th.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget table th.prev::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Previous Month"; -} -.bootstrap-datetimepicker-widget table th.next::after { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; - content: "Next Month"; -} -.bootstrap-datetimepicker-widget table thead tr:first-child th { - cursor: pointer; -} -.bootstrap-datetimepicker-widget table thead tr:first-child th:hover { - background: #eeeeee; -} -.bootstrap-datetimepicker-widget table td { - height: 54px; - line-height: 54px; - width: 54px; -} -.bootstrap-datetimepicker-widget table td.cw { - font-size: .8em; - height: 20px; - line-height: 20px; - color: #777777; -} -.bootstrap-datetimepicker-widget table td.day { - height: 20px; - line-height: 20px; - width: 20px; -} -.bootstrap-datetimepicker-widget table td.day:hover, -.bootstrap-datetimepicker-widget table td.hour:hover, -.bootstrap-datetimepicker-widget table td.minute:hover, -.bootstrap-datetimepicker-widget table td.second:hover { - background: #eeeeee; - cursor: pointer; -} -.bootstrap-datetimepicker-widget table td.old, -.bootstrap-datetimepicker-widget table td.new { - color: #777777; -} -.bootstrap-datetimepicker-widget table td.today { - position: relative; -} -.bootstrap-datetimepicker-widget table td.today:before { - content: ''; - display: inline-block; - border: 0 0 7px 7px solid transparent; - border-bottom-color: #337ab7; - border-top-color: rgba(0, 0, 0, 0.2); - position: absolute; - bottom: 4px; - right: 4px; -} -.bootstrap-datetimepicker-widget table td.active, -.bootstrap-datetimepicker-widget table td.active:hover { - background-color: #337ab7; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.bootstrap-datetimepicker-widget table td.active.today:before { - border-bottom-color: #fff; -} -.bootstrap-datetimepicker-widget table td.disabled, -.bootstrap-datetimepicker-widget table td.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget table td span { - display: inline-block; - width: 54px; - height: 54px; - line-height: 54px; - margin: 2px 1.5px; - cursor: pointer; - border-radius: 4px; -} -.bootstrap-datetimepicker-widget table td span:hover { - background: #eeeeee; -} -.bootstrap-datetimepicker-widget table td span.active { - background-color: #337ab7; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.bootstrap-datetimepicker-widget table td span.old { - color: #777777; -} -.bootstrap-datetimepicker-widget table td span.disabled, -.bootstrap-datetimepicker-widget table td span.disabled:hover { - background: none; - color: #777777; - cursor: not-allowed; -} -.bootstrap-datetimepicker-widget.usetwentyfour td.hour { - height: 27px; - line-height: 27px; -} -.input-group.date .input-group-addon { - cursor: pointer; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} diff --git a/vendor/assets/stylesheets/bootstrap.css b/vendor/assets/stylesheets/bootstrap.css index a54d4ea2e..785084df9 100644 --- a/vendor/assets/stylesheets/bootstrap.css +++ b/vendor/assets/stylesheets/bootstrap.css @@ -6,15 +6,13 @@ /*! normalize.css v3.0.0 | MIT License | git.io/normalize */ html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; } - body { - margin: 0; + margin: 0; } - article, aside, details, @@ -27,403 +25,331 @@ main, nav, section, summary { - display: block; + display: block; } - audio, canvas, progress, video { - display: inline-block; - vertical-align: baseline; + display: inline-block; + vertical-align: baseline; } - audio:not([controls]) { - display: none; - height: 0; + display: none; + height: 0; } - [hidden], template { - display: none; + display: none; } - a { - background: transparent; + background: transparent; } - a:active, a:hover { - outline: 0; + outline: 0; } - abbr[title] { - border-bottom: 1px dotted; + border-bottom: 1px dotted; } - b, strong { - font-weight: bold; + font-weight: bold; } - dfn { - font-style: italic; + font-style: italic; } - h1 { - margin: .67em 0; - font-size: 2em; + margin: .67em 0; + font-size: 2em; } - mark { - color: #000; - background: #ff0; + color: #000; + background: #ff0; } - small { - font-size: 80%; + font-size: 80%; } - sub, sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; } - sup { - top: -.5em; + top: -.5em; } - sub { - bottom: -.25em; + bottom: -.25em; } - img { - border: 0; + border: 0; } - svg:not(:root) { - overflow: hidden; + overflow: hidden; } - figure { - margin: 1em 40px; + margin: 1em 40px; } - hr { - height: 0; - -moz-box-sizing: content-box; - box-sizing: content-box; + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; } - pre { - overflow: auto; + overflow: auto; } - code, kbd, pre, samp { - font-family: monospace, monospace; - font-size: 1em; + font-family: monospace, monospace; + font-size: 1em; } - button, input, optgroup, select, textarea { - margin: 0; - font: inherit; - color: inherit; + margin: 0; + font: inherit; + color: inherit; } - button { - overflow: visible; + overflow: visible; } - button, select { - text-transform: none; + text-transform: none; } - button, html input[type="button"], input[type="reset"], input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; + -webkit-appearance: button; + cursor: pointer; } - button[disabled], html input[disabled] { - cursor: default; + cursor: default; } - button::-moz-focus-inner, input::-moz-focus-inner { - padding: 0; - border: 0; + padding: 0; + border: 0; } - input { - line-height: normal; + line-height: normal; } - input[type="checkbox"], input[type="radio"] { - box-sizing: border-box; - padding: 0; + box-sizing: border-box; + padding: 0; } - input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { - height: auto; + height: auto; } - input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; } - input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; + -webkit-appearance: none; } - fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; } - legend { - padding: 0; - border: 0; + padding: 0; + border: 0; } - textarea { - overflow: auto; + overflow: auto; } - optgroup { - font-weight: bold; + font-weight: bold; } - table { - border-spacing: 0; - border-collapse: collapse; + border-spacing: 0; + border-collapse: collapse; } - td, th { - padding: 0; + padding: 0; } - @media print { - * { - color: #000 !important; - text-shadow: none !important; - background: transparent !important; - box-shadow: none !important; - } - - a, - a:visited { - text-decoration: underline; - } - - a[href]:after { - content: " (" attr(href) ")"; - } - - abbr[title]:after { - content: " (" attr(title) ")"; - } - - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - - pre, - blockquote { - border: 1px solid #999; - - page-break-inside: avoid; - } - - thead { - display: table-header-group; - } - - tr, - img { - page-break-inside: avoid; - } - - img { - max-width: 100% !important; - } - - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - - h2, - h3 { - page-break-after: avoid; - } - - select { - background: #fff !important; - } - - .navbar { - display: none; - } - - .table td, - .table th { - background-color: #fff !important; - } - - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - - .label { - border: 1px solid #000; - } - - .table { - border-collapse: collapse !important; - } + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + select { + background: #fff !important; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } } - * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } - *:before, *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } - html { - font-size: 62.5%; + font-size: 62.5%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; } - input, button, select, textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; + font-family: inherit; + font-size: inherit; + line-height: inherit; } - a { - color: #428bca; - text-decoration: none; + color: #428bca; + text-decoration: none; } - a:hover, a:focus { - color: #2a6496; - text-decoration: underline; + color: #2a6496; + text-decoration: underline; } - a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } - figure { - margin: 0; + margin: 0; } - img { - vertical-align: middle; + vertical-align: middle; } - .img-responsive, .thumbnail > img, .thumbnail a > img, .carousel-inner > .item > img, .carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; + display: block; + max-width: 100%; + height: auto; } - .img-rounded { - border-radius: 6px; + border-radius: 6px; } - .img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; } - .img-circle { - border-radius: 50%; + border-radius: 50%; } - hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; } - .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } - h1, h2, h3, @@ -436,12 +362,11 @@ h6, .h4, .h5, .h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } - h1 small, h2 small, h3 small, @@ -466,21 +391,19 @@ h6 .small, .h4 .small, .h5 .small, .h6 .small { - font-weight: normal; - line-height: 1; - color: #999; + font-weight: normal; + line-height: 1; + color: #999; } - h1, .h1, h2, .h2, h3, .h3 { - margin-top: 20px; - margin-bottom: 10px; + margin-top: 20px; + margin-bottom: 10px; } - h1 small, .h1 small, h2 small, @@ -493,19 +416,17 @@ h2 .small, .h2 .small, h3 .small, .h3 .small { - font-size: 65%; + font-size: 65%; } - h4, .h4, h5, .h5, h6, .h6 { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } - h4 small, .h4 small, h5 small, @@ -518,1346 +439,1049 @@ h5 .small, .h5 .small, h6 .small, .h6 .small { - font-size: 75%; + font-size: 75%; } - h1, .h1 { - font-size: 36px; + font-size: 36px; } - h2, .h2 { - font-size: 30px; + font-size: 30px; } - h3, .h3 { - font-size: 24px; + font-size: 24px; } - h4, .h4 { - font-size: 18px; + font-size: 18px; } - h5, .h5 { - font-size: 14px; + font-size: 14px; } - h6, .h6 { - font-size: 12px; + font-size: 12px; } - p { - margin: 0 0 10px; + margin: 0 0 10px; } - .lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 200; - line-height: 1.4; + margin-bottom: 20px; + font-size: 16px; + font-weight: 200; + line-height: 1.4; } - @media (min-width: 768px) { - .lead { - font-size: 21px; - } + .lead { + font-size: 21px; + } } - small, .small { - font-size: 85%; + font-size: 85%; } - cite { - font-style: normal; + font-style: normal; } - .text-left { - text-align: left; + text-align: left; } - .text-right { - text-align: right; + text-align: right; } - .text-center { - text-align: center; + text-align: center; } - .text-justify { - text-align: justify; + text-align: justify; } - .text-muted { - color: #999; + color: #999; } - .text-primary { - color: #428bca; + color: #428bca; } - a.text-primary:hover { - color: #3071a9; + color: #3071a9; } - .text-success { - color: #3c763d; + color: #3c763d; } - a.text-success:hover { - color: #2b542c; + color: #2b542c; } - .text-info { - color: #31708f; + color: #31708f; } - a.text-info:hover { - color: #245269; + color: #245269; } - .text-warning { - color: #8a6d3b; + color: #8a6d3b; } - a.text-warning:hover { - color: #66512c; + color: #66512c; } - .text-danger { - color: #a94442; + color: #a94442; } - a.text-danger:hover { - color: #843534; + color: #843534; } - .bg-primary { - color: #fff; - background-color: #428bca; + color: #fff; + background-color: #428bca; } - a.bg-primary:hover { - background-color: #3071a9; + background-color: #3071a9; } - .bg-success { - background-color: #dff0d8; + background-color: #dff0d8; } - a.bg-success:hover { - background-color: #c1e2b3; + background-color: #c1e2b3; } - .bg-info { - background-color: #d9edf7; + background-color: #d9edf7; } - a.bg-info:hover { - background-color: #afd9ee; + background-color: #afd9ee; } - .bg-warning { - background-color: #fcf8e3; + background-color: #fcf8e3; } - a.bg-warning:hover { - background-color: #f7ecb5; + background-color: #f7ecb5; } - .bg-danger { - background-color: #f2dede; + background-color: #f2dede; } - a.bg-danger:hover { - background-color: #e4b9b9; + background-color: #e4b9b9; } - .page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; } - ul, ol { - margin-top: 0; - margin-bottom: 10px; + margin-top: 0; + margin-bottom: 10px; } - ul ul, ol ul, ul ol, ol ol { - margin-bottom: 0; + margin-bottom: 0; } - .list-unstyled { - padding-left: 0; - list-style: none; + padding-left: 0; + list-style: none; } - .list-inline { - padding-left: 0; - margin-left: -5px; - list-style: none; + padding-left: 0; + margin-left: -5px; + list-style: none; } - .list-inline > li { - display: inline-block; - padding-right: 5px; - padding-left: 5px; + display: inline-block; + padding-right: 5px; + padding-left: 5px; } - dl { - margin-top: 0; - margin-bottom: 20px; + margin-top: 0; + margin-bottom: 20px; } - dt, dd { - line-height: 1.42857143; + line-height: 1.42857143; } - dt { - font-weight: bold; + font-weight: bold; } - dd { - margin-left: 0; + margin-left: 0; } - @media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - } - - .dl-horizontal dd { - margin-left: 180px; - } + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } } - abbr[title], abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999; + cursor: help; + border-bottom: 1px dotted #999; } - .initialism { - font-size: 90%; - text-transform: uppercase; + font-size: 90%; + text-transform: uppercase; } - blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; } - blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { - margin-bottom: 0; + margin-bottom: 0; } - blockquote footer, blockquote small, blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #999; + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #999; } - blockquote footer:before, blockquote small:before, blockquote .small:before { - content: '\2014 \00A0'; + content: '\2014 \00A0'; } - .blockquote-reverse, blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - text-align: right; - border-right: 5px solid #eee; - border-left: 0; + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; } - .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { - content: ''; + content: ''; } - .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { - content: '\00A0 \2014'; + content: '\00A0 \2014'; } - blockquote:before, blockquote:after { - content: ""; + content: ""; } - address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857143; + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; } - code, kbd, pre, samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } - code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - white-space: nowrap; - background-color: #f9f2f4; - border-radius: 4px; + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; } - kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); } - pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857143; - color: #333; - word-break: break-all; - word-wrap: break-word; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; } - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; } - .pre-scrollable { - max-height: 340px; - overflow-y: scroll; + max-height: 340px; + overflow-y: scroll; } - .container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } - @media (min-width: 768px) { - .container { - width: 750px; - } + .container { + width: 750px; + } } - @media (min-width: 992px) { - .container { - width: 970px; - } + .container { + width: 970px; + } } - @media (min-width: 1200px) { - .container { - width: 1170px; - } + .container { + width: 1170px; + } } - .container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } - .row { - margin-right: -15px; - margin-left: -15px; + margin-right: -15px; + margin-left: -15px; } - .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-right: 15px; - padding-left: 15px; + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } - .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; + float: left; } - .col-xs-12 { - width: 100%; + width: 100%; } - .col-xs-11 { - width: 91.66666667%; + width: 91.66666667%; } - .col-xs-10 { - width: 83.33333333%; + width: 83.33333333%; } - .col-xs-9 { - width: 75%; + width: 75%; } - .col-xs-8 { - width: 66.66666667%; + width: 66.66666667%; } - .col-xs-7 { - width: 58.33333333%; + width: 58.33333333%; } - .col-xs-6 { - width: 50%; + width: 50%; } - .col-xs-5 { - width: 41.66666667%; + width: 41.66666667%; } - .col-xs-4 { - width: 33.33333333%; + width: 33.33333333%; } - .col-xs-3 { - width: 25%; + width: 25%; } - .col-xs-2 { - width: 16.66666667%; + width: 16.66666667%; } - .col-xs-1 { - width: 8.33333333%; + width: 8.33333333%; } - .col-xs-pull-12 { - right: 100%; + right: 100%; } - .col-xs-pull-11 { - right: 91.66666667%; + right: 91.66666667%; } - .col-xs-pull-10 { - right: 83.33333333%; + right: 83.33333333%; } - .col-xs-pull-9 { - right: 75%; + right: 75%; } - .col-xs-pull-8 { - right: 66.66666667%; + right: 66.66666667%; } - .col-xs-pull-7 { - right: 58.33333333%; + right: 58.33333333%; } - .col-xs-pull-6 { - right: 50%; + right: 50%; } - .col-xs-pull-5 { - right: 41.66666667%; + right: 41.66666667%; } - .col-xs-pull-4 { - right: 33.33333333%; + right: 33.33333333%; } - .col-xs-pull-3 { - right: 25%; + right: 25%; } - .col-xs-pull-2 { - right: 16.66666667%; + right: 16.66666667%; } - .col-xs-pull-1 { - right: 8.33333333%; + right: 8.33333333%; } - .col-xs-pull-0 { - right: 0; + right: 0; } - .col-xs-push-12 { - left: 100%; + left: 100%; } - .col-xs-push-11 { - left: 91.66666667%; + left: 91.66666667%; } - .col-xs-push-10 { - left: 83.33333333%; + left: 83.33333333%; } - .col-xs-push-9 { - left: 75%; + left: 75%; } - .col-xs-push-8 { - left: 66.66666667%; + left: 66.66666667%; } - .col-xs-push-7 { - left: 58.33333333%; + left: 58.33333333%; } - .col-xs-push-6 { - left: 50%; + left: 50%; } - .col-xs-push-5 { - left: 41.66666667%; + left: 41.66666667%; } - .col-xs-push-4 { - left: 33.33333333%; + left: 33.33333333%; } - .col-xs-push-3 { - left: 25%; + left: 25%; } - .col-xs-push-2 { - left: 16.66666667%; + left: 16.66666667%; } - .col-xs-push-1 { - left: 8.33333333%; + left: 8.33333333%; } - .col-xs-push-0 { - left: 0; + left: 0; } - .col-xs-offset-12 { - margin-left: 100%; + margin-left: 100%; } - .col-xs-offset-11 { - margin-left: 91.66666667%; + margin-left: 91.66666667%; } - .col-xs-offset-10 { - margin-left: 83.33333333%; + margin-left: 83.33333333%; } - .col-xs-offset-9 { - margin-left: 75%; + margin-left: 75%; } - .col-xs-offset-8 { - margin-left: 66.66666667%; + margin-left: 66.66666667%; } - .col-xs-offset-7 { - margin-left: 58.33333333%; + margin-left: 58.33333333%; } - .col-xs-offset-6 { - margin-left: 50%; + margin-left: 50%; } - .col-xs-offset-5 { - margin-left: 41.66666667%; + margin-left: 41.66666667%; } - .col-xs-offset-4 { - margin-left: 33.33333333%; + margin-left: 33.33333333%; } - .col-xs-offset-3 { - margin-left: 25%; + margin-left: 25%; } - .col-xs-offset-2 { - margin-left: 16.66666667%; + margin-left: 16.66666667%; } - .col-xs-offset-1 { - margin-left: 8.33333333%; + margin-left: 8.33333333%; } - .col-xs-offset-0 { - margin-left: 0; + margin-left: 0; } - @media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - - .col-sm-12 { - width: 100%; - } - - .col-sm-11 { - width: 91.66666667%; - } - - .col-sm-10 { - width: 83.33333333%; - } - - .col-sm-9 { - width: 75%; - } - - .col-sm-8 { - width: 66.66666667%; - } - - .col-sm-7 { - width: 58.33333333%; - } - - .col-sm-6 { - width: 50%; - } - - .col-sm-5 { - width: 41.66666667%; - } - - .col-sm-4 { - width: 33.33333333%; - } - - .col-sm-3 { - width: 25%; - } - - .col-sm-2 { - width: 16.66666667%; - } - - .col-sm-1 { - width: 8.33333333%; - } - - .col-sm-pull-12 { - right: 100%; - } - - .col-sm-pull-11 { - right: 91.66666667%; - } - - .col-sm-pull-10 { - right: 83.33333333%; - } - - .col-sm-pull-9 { - right: 75%; - } - - .col-sm-pull-8 { - right: 66.66666667%; - } - - .col-sm-pull-7 { - right: 58.33333333%; - } - - .col-sm-pull-6 { - right: 50%; - } - - .col-sm-pull-5 { - right: 41.66666667%; - } - - .col-sm-pull-4 { - right: 33.33333333%; - } - - .col-sm-pull-3 { - right: 25%; - } - - .col-sm-pull-2 { - right: 16.66666667%; - } - - .col-sm-pull-1 { - right: 8.33333333%; - } - - .col-sm-pull-0 { - right: 0; - } - - .col-sm-push-12 { - left: 100%; - } - - .col-sm-push-11 { - left: 91.66666667%; - } - - .col-sm-push-10 { - left: 83.33333333%; - } - - .col-sm-push-9 { - left: 75%; - } - - .col-sm-push-8 { - left: 66.66666667%; - } - - .col-sm-push-7 { - left: 58.33333333%; - } - - .col-sm-push-6 { - left: 50%; - } - - .col-sm-push-5 { - left: 41.66666667%; - } - - .col-sm-push-4 { - left: 33.33333333%; - } - - .col-sm-push-3 { - left: 25%; - } - - .col-sm-push-2 { - left: 16.66666667%; - } - - .col-sm-push-1 { - left: 8.33333333%; - } - - .col-sm-push-0 { - left: 0; - } - - .col-sm-offset-12 { - margin-left: 100%; - } - - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - - .col-sm-offset-9 { - margin-left: 75%; - } - - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - - .col-sm-offset-6 { - margin-left: 50%; - } - - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - - .col-sm-offset-3 { - margin-left: 25%; - } - - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - - .col-sm-offset-0 { - margin-left: 0; - } + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: 0; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: 0; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } } - @media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; - } - - .col-md-12 { - width: 100%; - } - - .col-md-11 { - width: 91.66666667%; - } - - .col-md-10 { - width: 83.33333333%; - } - - .col-md-9 { - width: 75%; - } - - .col-md-8 { - width: 66.66666667%; - } - - .col-md-7 { - width: 58.33333333%; - } - - .col-md-6 { - width: 50%; - } - - .col-md-5 { - width: 41.66666667%; - } - - .col-md-4 { - width: 33.33333333%; - } - - .col-md-3 { - width: 25%; - } - - .col-md-2 { - width: 16.66666667%; - } - - .col-md-1 { - width: 8.33333333%; - } - - .col-md-pull-12 { - right: 100%; - } - - .col-md-pull-11 { - right: 91.66666667%; - } - - .col-md-pull-10 { - right: 83.33333333%; - } - - .col-md-pull-9 { - right: 75%; - } - - .col-md-pull-8 { - right: 66.66666667%; - } - - .col-md-pull-7 { - right: 58.33333333%; - } - - .col-md-pull-6 { - right: 50%; - } - - .col-md-pull-5 { - right: 41.66666667%; - } - - .col-md-pull-4 { - right: 33.33333333%; - } - - .col-md-pull-3 { - right: 25%; - } - - .col-md-pull-2 { - right: 16.66666667%; - } - - .col-md-pull-1 { - right: 8.33333333%; - } - - .col-md-pull-0 { - right: 0; - } - - .col-md-push-12 { - left: 100%; - } - - .col-md-push-11 { - left: 91.66666667%; - } - - .col-md-push-10 { - left: 83.33333333%; - } - - .col-md-push-9 { - left: 75%; - } - - .col-md-push-8 { - left: 66.66666667%; - } - - .col-md-push-7 { - left: 58.33333333%; - } - - .col-md-push-6 { - left: 50%; - } - - .col-md-push-5 { - left: 41.66666667%; - } - - .col-md-push-4 { - left: 33.33333333%; - } - - .col-md-push-3 { - left: 25%; - } - - .col-md-push-2 { - left: 16.66666667%; - } - - .col-md-push-1 { - left: 8.33333333%; - } - - .col-md-push-0 { - left: 0; - } - - .col-md-offset-12 { - margin-left: 100%; - } - - .col-md-offset-11 { - margin-left: 91.66666667%; - } - - .col-md-offset-10 { - margin-left: 83.33333333%; - } - - .col-md-offset-9 { - margin-left: 75%; - } - - .col-md-offset-8 { - margin-left: 66.66666667%; - } - - .col-md-offset-7 { - margin-left: 58.33333333%; - } - - .col-md-offset-6 { - margin-left: 50%; - } - - .col-md-offset-5 { - margin-left: 41.66666667%; - } - - .col-md-offset-4 { - margin-left: 33.33333333%; - } - - .col-md-offset-3 { - margin-left: 25%; - } - - .col-md-offset-2 { - margin-left: 16.66666667%; - } - - .col-md-offset-1 { - margin-left: 8.33333333%; - } - - .col-md-offset-0 { - margin-left: 0; - } + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: 0; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: 0; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } } - @media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - - .col-lg-12 { - width: 100%; - } - - .col-lg-11 { - width: 91.66666667%; - } - - .col-lg-10 { - width: 83.33333333%; - } - - .col-lg-9 { - width: 75%; - } - - .col-lg-8 { - width: 66.66666667%; - } - - .col-lg-7 { - width: 58.33333333%; - } - - .col-lg-6 { - width: 50%; - } - - .col-lg-5 { - width: 41.66666667%; - } - - .col-lg-4 { - width: 33.33333333%; - } - - .col-lg-3 { - width: 25%; - } - - .col-lg-2 { - width: 16.66666667%; - } - - .col-lg-1 { - width: 8.33333333%; - } - - .col-lg-pull-12 { - right: 100%; - } - - .col-lg-pull-11 { - right: 91.66666667%; - } - - .col-lg-pull-10 { - right: 83.33333333%; - } - - .col-lg-pull-9 { - right: 75%; - } - - .col-lg-pull-8 { - right: 66.66666667%; - } - - .col-lg-pull-7 { - right: 58.33333333%; - } - - .col-lg-pull-6 { - right: 50%; - } - - .col-lg-pull-5 { - right: 41.66666667%; - } - - .col-lg-pull-4 { - right: 33.33333333%; - } - - .col-lg-pull-3 { - right: 25%; - } - - .col-lg-pull-2 { - right: 16.66666667%; - } - - .col-lg-pull-1 { - right: 8.33333333%; - } - - .col-lg-pull-0 { - right: 0; - } - - .col-lg-push-12 { - left: 100%; - } - - .col-lg-push-11 { - left: 91.66666667%; - } - - .col-lg-push-10 { - left: 83.33333333%; - } - - .col-lg-push-9 { - left: 75%; - } - - .col-lg-push-8 { - left: 66.66666667%; - } - - .col-lg-push-7 { - left: 58.33333333%; - } - - .col-lg-push-6 { - left: 50%; - } - - .col-lg-push-5 { - left: 41.66666667%; - } - - .col-lg-push-4 { - left: 33.33333333%; - } - - .col-lg-push-3 { - left: 25%; - } - - .col-lg-push-2 { - left: 16.66666667%; - } - - .col-lg-push-1 { - left: 8.33333333%; - } - - .col-lg-push-0 { - left: 0; - } - - .col-lg-offset-12 { - margin-left: 100%; - } - - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - - .col-lg-offset-9 { - margin-left: 75%; - } - - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - - .col-lg-offset-6 { - margin-left: 50%; - } - - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - - .col-lg-offset-3 { - margin-left: 25%; - } - - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - - .col-lg-offset-0 { - margin-left: 0; - } + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: 0; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: 0; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } } - table { - max-width: 100%; - background-color: transparent; + max-width: 100%; + background-color: transparent; } - th { - text-align: left; + text-align: left; } - .table { - width: 100%; - margin-bottom: 20px; + width: 100%; + margin-bottom: 20px; } - .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #ddd; + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; } - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; + vertical-align: bottom; + border-bottom: 2px solid #ddd; } - .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { - border-top: 0; + border-top: 0; } - .table > tbody + tbody { - border-top: 2px solid #ddd; + border-top: 2px solid #ddd; } - .table .table { - background-color: #fff; + background-color: #fff; } - .table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td { - padding: 5px; + padding: 5px; } - .table-bordered { - border: 1px solid #ddd; + border: 1px solid #ddd; } - .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { - border: 1px solid #ddd; + border: 1px solid #ddd; } - .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { - border-bottom-width: 2px; + border-bottom-width: 2px; } - .table-striped > tbody > tr:nth-child(odd) > td, .table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f9f9f9; + background-color: #f9f9f9; } - .table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { - background-color: #f5f5f5; + background-color: #f5f5f5; } - table col[class*="col-"] { - position: static; - display: table-column; - float: none; + position: static; + display: table-column; + float: none; } - table td[class*="col-"], table th[class*="col-"] { - position: static; - display: table-cell; - float: none; + position: static; + display: table-cell; + float: none; } - .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, @@ -1870,16 +1494,14 @@ table th[class*="col-"] { .table > thead > tr.active > th, .table > tbody > tr.active > th, .table > tfoot > tr.active > th { - background-color: #f5f5f5; + background-color: #f5f5f5; } - .table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; + background-color: #e8e8e8; } - .table > thead > tr > td.success, .table > tbody > tr > td.success, .table > tfoot > tr > td.success, @@ -1892,16 +1514,14 @@ table th[class*="col-"] { .table > thead > tr.success > th, .table > tbody > tr.success > th, .table > tfoot > tr.success > th { - background-color: #dff0d8; + background-color: #dff0d8; } - .table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; + background-color: #d0e9c6; } - .table > thead > tr > td.info, .table > tbody > tr > td.info, .table > tfoot > tr > td.info, @@ -1914,16 +1534,14 @@ table th[class*="col-"] { .table > thead > tr.info > th, .table > tbody > tr.info > th, .table > tfoot > tr.info > th { - background-color: #d9edf7; + background-color: #d9edf7; } - .table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; + background-color: #c4e3f3; } - .table > thead > tr > td.warning, .table > tbody > tr > td.warning, .table > tfoot > tr > td.warning, @@ -1936,16 +1554,14 @@ table th[class*="col-"] { .table > thead > tr.warning > th, .table > tbody > tr.warning > th, .table > tfoot > tr.warning > th { - background-color: #fcf8e3; + background-color: #fcf8e3; } - .table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; + background-color: #faf2cc; } - .table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, @@ -1958,246 +1574,211 @@ table th[class*="col-"] { .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { - background-color: #f2dede; + background-color: #f2dede; } - .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; + background-color: #ebcccc; } - @media (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-x: scroll; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; - } - - .table-responsive > .table { - margin-bottom: 0; - } - - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - - .table-responsive > .table-bordered { - border: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } } - fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; + min-width: 0; + padding: 0; + margin: 0; + border: 0; } - legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333; - border: 0; - border-bottom: 1px solid #e5e5e5; + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; } - label { - display: inline-block; - margin-bottom: 5px; - font-weight: bold; + display: inline-block; + margin-bottom: 5px; + font-weight: bold; } - input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } - input[type="radio"], input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - /* IE8-9 */ - line-height: normal; + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + line-height: normal; } - input[type="file"] { - display: block; + display: block; } - input[type="range"] { - display: block; - width: 100%; + display: block; + width: 100%; } - select[multiple], select[size] { - height: auto; + height: auto; } - input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } - output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; } - .form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } - .form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); } - .form-control::-moz-placeholder { - color: #999; - opacity: 1; + color: #999; + opacity: 1; } - .form-control:-ms-input-placeholder { - color: #999; + color: #999; } - .form-control::-webkit-input-placeholder { - color: #999; + color: #999; } - .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eee; - opacity: 1; + cursor: not-allowed; + background-color: #eee; + opacity: 1; } - textarea.form-control { - height: auto; + height: auto; } - input[type="search"] { - -webkit-appearance: none; + -webkit-appearance: none; } - input[type="date"] { - line-height: 34px; + line-height: 34px; } - .form-group { - margin-bottom: 15px; + margin-bottom: 15px; } - .radio, .checkbox { - display: block; - min-height: 20px; - padding-left: 20px; - margin-top: 10px; - margin-bottom: 10px; + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; } - .radio label, .checkbox label { - display: inline; - font-weight: normal; - cursor: pointer; + display: inline; + font-weight: normal; + cursor: pointer; } - .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { - float: left; - margin-left: -20px; + float: left; + margin-left: -20px; } - .radio + .radio, .checkbox + .checkbox { - margin-top: -5px; + margin-top: -5px; } - .radio-inline, .checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; } - .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; + margin-top: 0; + margin-left: 10px; } - input[type="radio"][disabled], input[type="checkbox"][disabled], .radio[disabled], @@ -2210,320 +1791,272 @@ fieldset[disabled] .radio, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox, fieldset[disabled] .checkbox-inline { - cursor: not-allowed; + cursor: not-allowed; } - .input-sm { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } - select.input-sm { - height: 30px; - line-height: 30px; + height: 30px; + line-height: 30px; } - textarea.input-sm, select[multiple].input-sm { - height: auto; + height: auto; } - .input-lg { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; } - select.input-lg { - height: 46px; - line-height: 46px; + height: 46px; + line-height: 46px; } - textarea.input-lg, select[multiple].input-lg { - height: auto; + height: auto; } - .has-feedback { - position: relative; + position: relative; } - .has-feedback .form-control { - padding-right: 42.5px; + padding-right: 42.5px; } - .has-feedback .form-control-feedback { - position: absolute; - top: 25px; - right: 0; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; + position: absolute; + top: 25px; + right: 0; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; } - .has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline { - color: #3c763d; + color: #3c763d; } - .has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } - .has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; } - .has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; } - .has-success .form-control-feedback { - color: #3c763d; + color: #3c763d; } - .has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline { - color: #8a6d3b; + color: #8a6d3b; } - .has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } - .has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; } - .has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; } - .has-warning .form-control-feedback { - color: #8a6d3b; + color: #8a6d3b; } - .has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline { - color: #a94442; + color: #a94442; } - .has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } - .has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; } - .has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; + color: #a94442; + background-color: #f2dede; + border-color: #a94442; } - .has-error .form-control-feedback { - color: #a94442; + color: #a94442; } - .form-control-static { - margin-bottom: 0; + margin-bottom: 0; } - .help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; } - @media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .form-inline .input-group > .form-control { - width: 100%; - } - - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - - .form-inline .has-feedback .form-control-feedback { - top: 0; - } + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } } - .form-horizontal .control-label, .form-horizontal .radio, .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; } - .form-horizontal .radio, .form-horizontal .checkbox { - min-height: 27px; + min-height: 27px; } - .form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; + margin-right: -15px; + margin-left: -15px; } - .form-horizontal .form-control-static { - padding-top: 7px; + padding-top: 7px; } - @media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - } + .form-horizontal .control-label { + text-align: right; + } } - .form-horizontal .has-feedback .form-control-feedback { - top: 0; - right: 15px; + top: 0; + right: 15px; } - .btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; } - .btn:focus, .btn:active:focus, .btn.active:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } - .btn:hover, .btn:focus { - color: #333; - text-decoration: none; + color: #333; + text-decoration: none; } - .btn:active, .btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } - .btn.disabled, .btn[disabled], fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; } - .btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; + color: #333; + background-color: #fff; + border-color: #ccc; } - .btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { - color: #333; - background-color: #ebebeb; - border-color: #adadad; + color: #333; + background-color: #ebebeb; + border-color: #adadad; } - .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { - background-image: none; + background-image: none; } - .btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, @@ -2539,37 +2072,32 @@ fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; + background-color: #fff; + border-color: #ccc; } - .btn-default .badge { - color: #fff; - background-color: #333; + color: #fff; + background-color: #333; } - .btn-primary { - color: #fff; - background-color: #428bca; - border-color: #357ebd; + color: #fff; + background-color: #428bca; + border-color: #357ebd; } - .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { - color: #fff; - background-color: #3276b1; - border-color: #285e8e; + color: #fff; + background-color: #3276b1; + border-color: #285e8e; } - .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { - background-image: none; + background-image: none; } - .btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, @@ -2585,37 +2113,32 @@ fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { - background-color: #428bca; - border-color: #357ebd; + background-color: #428bca; + border-color: #357ebd; } - .btn-primary .badge { - color: #428bca; - background-color: #fff; + color: #428bca; + background-color: #fff; } - .btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; } - .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { - color: #fff; - background-color: #47a447; - border-color: #398439; + color: #fff; + background-color: #47a447; + border-color: #398439; } - .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { - background-image: none; + background-image: none; } - .btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, @@ -2631,37 +2154,32 @@ fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; + background-color: #5cb85c; + border-color: #4cae4c; } - .btn-success .badge { - color: #5cb85c; - background-color: #fff; + color: #5cb85c; + background-color: #fff; } - .btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; } - .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { - color: #fff; - background-color: #39b3d7; - border-color: #269abc; + color: #fff; + background-color: #39b3d7; + border-color: #269abc; } - .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { - background-image: none; + background-image: none; } - .btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, @@ -2677,37 +2195,32 @@ fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; + background-color: #5bc0de; + border-color: #46b8da; } - .btn-info .badge { - color: #5bc0de; - background-color: #fff; + color: #5bc0de; + background-color: #fff; } - .btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; } - .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ed9c28; - border-color: #d58512; + color: #fff; + background-color: #ed9c28; + border-color: #d58512; } - .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { - background-image: none; + background-image: none; } - .btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, @@ -2723,37 +2236,32 @@ fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; + background-color: #f0ad4e; + border-color: #eea236; } - .btn-warning .badge { - color: #f0ad4e; - background-color: #fff; + color: #f0ad4e; + background-color: #fff; } - .btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; } - .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { - color: #fff; - background-color: #d2322d; - border-color: #ac2925; + color: #fff; + background-color: #d2322d; + border-color: #ac2925; } - .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { - background-image: none; + background-image: none; } - .btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, @@ -2769,1112 +2277,868 @@ fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; + background-color: #d9534f; + border-color: #d43f3a; } - .btn-danger .badge { - color: #d9534f; - background-color: #fff; + color: #d9534f; + background-color: #fff; } - .btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; } - .btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; } - .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { - border-color: transparent; + border-color: transparent; } - .btn-link:hover, .btn-link:focus { - color: #2a6496; - text-decoration: underline; - background-color: transparent; + color: #2a6496; + text-decoration: underline; + background-color: transparent; } - .btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { - color: #999; - text-decoration: none; + color: #999; + text-decoration: none; } - .btn-lg, .btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; } - .btn-sm, .btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } - .btn-xs, .btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } - .btn-block { - display: block; - width: 100%; - padding-right: 0; - padding-left: 0; + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; } - .btn-block + .btn-block { - margin-top: 5px; + margin-top: 5px; } - input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { - width: 100%; + width: 100%; } - .fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - transition: opacity .15s linear; + opacity: 0; + -webkit-transition: opacity .15s linear; + transition: opacity .15s linear; } - .fade.in { - opacity: 1; + opacity: 1; } - .collapse { - display: none; + display: none; } - .collapse.in { - display: block; + display: block; } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height .35s ease; - transition: height .35s ease; + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height .35s ease; + transition: height .35s ease; } - @font-face { - font-family: 'Glyphicons Halflings'; + font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } - .glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } - .glyphicon-asterisk:before { - content: "\2a"; + content: "\2a"; } - .glyphicon-plus:before { - content: "\2b"; + content: "\2b"; } - .glyphicon-euro:before { - content: "\20ac"; + content: "\20ac"; } - .glyphicon-minus:before { - content: "\2212"; + content: "\2212"; } - .glyphicon-cloud:before { - content: "\2601"; + content: "\2601"; } - .glyphicon-envelope:before { - content: "\2709"; + content: "\2709"; } - .glyphicon-pencil:before { - content: "\270f"; + content: "\270f"; } - .glyphicon-glass:before { - content: "\e001"; + content: "\e001"; } - .glyphicon-music:before { - content: "\e002"; + content: "\e002"; } - .glyphicon-search:before { - content: "\e003"; + content: "\e003"; } - .glyphicon-heart:before { - content: "\e005"; + content: "\e005"; } - .glyphicon-star:before { - content: "\e006"; + content: "\e006"; } - .glyphicon-star-empty:before { - content: "\e007"; + content: "\e007"; } - .glyphicon-user:before { - content: "\e008"; + content: "\e008"; } - .glyphicon-film:before { - content: "\e009"; + content: "\e009"; } - .glyphicon-th-large:before { - content: "\e010"; + content: "\e010"; } - .glyphicon-th:before { - content: "\e011"; + content: "\e011"; } - .glyphicon-th-list:before { - content: "\e012"; + content: "\e012"; } - .glyphicon-ok:before { - content: "\e013"; + content: "\e013"; } - .glyphicon-remove:before { - content: "\e014"; + content: "\e014"; } - .glyphicon-zoom-in:before { - content: "\e015"; + content: "\e015"; } - .glyphicon-zoom-out:before { - content: "\e016"; + content: "\e016"; } - .glyphicon-off:before { - content: "\e017"; + content: "\e017"; } - .glyphicon-signal:before { - content: "\e018"; + content: "\e018"; } - .glyphicon-cog:before { - content: "\e019"; + content: "\e019"; } - .glyphicon-trash:before { - content: "\e020"; + content: "\e020"; } - .glyphicon-home:before { - content: "\e021"; + content: "\e021"; } - .glyphicon-file:before { - content: "\e022"; + content: "\e022"; } - .glyphicon-time:before { - content: "\e023"; + content: "\e023"; } - .glyphicon-road:before { - content: "\e024"; + content: "\e024"; } - .glyphicon-download-alt:before { - content: "\e025"; + content: "\e025"; } - .glyphicon-download:before { - content: "\e026"; + content: "\e026"; } - .glyphicon-upload:before { - content: "\e027"; + content: "\e027"; } - .glyphicon-inbox:before { - content: "\e028"; + content: "\e028"; } - .glyphicon-play-circle:before { - content: "\e029"; + content: "\e029"; } - .glyphicon-repeat:before { - content: "\e030"; + content: "\e030"; } - .glyphicon-refresh:before { - content: "\e031"; + content: "\e031"; } - .glyphicon-list-alt:before { - content: "\e032"; + content: "\e032"; } - .glyphicon-lock:before { - content: "\e033"; + content: "\e033"; } - .glyphicon-flag:before { - content: "\e034"; + content: "\e034"; } - .glyphicon-headphones:before { - content: "\e035"; + content: "\e035"; } - .glyphicon-volume-off:before { - content: "\e036"; + content: "\e036"; } - .glyphicon-volume-down:before { - content: "\e037"; + content: "\e037"; } - .glyphicon-volume-up:before { - content: "\e038"; + content: "\e038"; } - .glyphicon-qrcode:before { - content: "\e039"; + content: "\e039"; } - .glyphicon-barcode:before { - content: "\e040"; + content: "\e040"; } - .glyphicon-tag:before { - content: "\e041"; + content: "\e041"; } - .glyphicon-tags:before { - content: "\e042"; + content: "\e042"; } - .glyphicon-book:before { - content: "\e043"; + content: "\e043"; } - .glyphicon-bookmark:before { - content: "\e044"; + content: "\e044"; } - .glyphicon-print:before { - content: "\e045"; + content: "\e045"; } - .glyphicon-camera:before { - content: "\e046"; + content: "\e046"; } - .glyphicon-font:before { - content: "\e047"; + content: "\e047"; } - .glyphicon-bold:before { - content: "\e048"; + content: "\e048"; } - .glyphicon-italic:before { - content: "\e049"; + content: "\e049"; } - .glyphicon-text-height:before { - content: "\e050"; + content: "\e050"; } - .glyphicon-text-width:before { - content: "\e051"; + content: "\e051"; } - .glyphicon-align-left:before { - content: "\e052"; + content: "\e052"; } - .glyphicon-align-center:before { - content: "\e053"; + content: "\e053"; } - .glyphicon-align-right:before { - content: "\e054"; + content: "\e054"; } - .glyphicon-align-justify:before { - content: "\e055"; + content: "\e055"; } - .glyphicon-list:before { - content: "\e056"; + content: "\e056"; } - .glyphicon-indent-left:before { - content: "\e057"; + content: "\e057"; } - .glyphicon-indent-right:before { - content: "\e058"; + content: "\e058"; } - .glyphicon-facetime-video:before { - content: "\e059"; + content: "\e059"; } - .glyphicon-picture:before { - content: "\e060"; + content: "\e060"; } - .glyphicon-map-marker:before { - content: "\e062"; + content: "\e062"; } - .glyphicon-adjust:before { - content: "\e063"; + content: "\e063"; } - .glyphicon-tint:before { - content: "\e064"; + content: "\e064"; } - .glyphicon-edit:before { - content: "\e065"; + content: "\e065"; } - .glyphicon-share:before { - content: "\e066"; + content: "\e066"; } - .glyphicon-check:before { - content: "\e067"; + content: "\e067"; } - .glyphicon-move:before { - content: "\e068"; + content: "\e068"; } - .glyphicon-step-backward:before { - content: "\e069"; + content: "\e069"; } - .glyphicon-fast-backward:before { - content: "\e070"; + content: "\e070"; } - .glyphicon-backward:before { - content: "\e071"; + content: "\e071"; } - .glyphicon-play:before { - content: "\e072"; + content: "\e072"; } - .glyphicon-pause:before { - content: "\e073"; + content: "\e073"; } - .glyphicon-stop:before { - content: "\e074"; + content: "\e074"; } - .glyphicon-forward:before { - content: "\e075"; + content: "\e075"; } - .glyphicon-fast-forward:before { - content: "\e076"; + content: "\e076"; } - .glyphicon-step-forward:before { - content: "\e077"; + content: "\e077"; } - .glyphicon-eject:before { - content: "\e078"; + content: "\e078"; } - .glyphicon-chevron-left:before { - content: "\e079"; + content: "\e079"; } - .glyphicon-chevron-right:before { - content: "\e080"; + content: "\e080"; } - .glyphicon-plus-sign:before { - content: "\e081"; + content: "\e081"; } - .glyphicon-minus-sign:before { - content: "\e082"; + content: "\e082"; } - .glyphicon-remove-sign:before { - content: "\e083"; + content: "\e083"; } - .glyphicon-ok-sign:before { - content: "\e084"; + content: "\e084"; } - .glyphicon-question-sign:before { - content: "\e085"; + content: "\e085"; } - .glyphicon-info-sign:before { - content: "\e086"; + content: "\e086"; } - .glyphicon-screenshot:before { - content: "\e087"; + content: "\e087"; } - .glyphicon-remove-circle:before { - content: "\e088"; + content: "\e088"; } - .glyphicon-ok-circle:before { - content: "\e089"; + content: "\e089"; } - .glyphicon-ban-circle:before { - content: "\e090"; + content: "\e090"; } - .glyphicon-arrow-left:before { - content: "\e091"; + content: "\e091"; } - .glyphicon-arrow-right:before { - content: "\e092"; + content: "\e092"; } - .glyphicon-arrow-up:before { - content: "\e093"; + content: "\e093"; } - .glyphicon-arrow-down:before { - content: "\e094"; + content: "\e094"; } - .glyphicon-share-alt:before { - content: "\e095"; + content: "\e095"; } - .glyphicon-resize-full:before { - content: "\e096"; + content: "\e096"; } - .glyphicon-resize-small:before { - content: "\e097"; + content: "\e097"; } - .glyphicon-exclamation-sign:before { - content: "\e101"; + content: "\e101"; } - .glyphicon-gift:before { - content: "\e102"; + content: "\e102"; } - .glyphicon-leaf:before { - content: "\e103"; + content: "\e103"; } - .glyphicon-fire:before { - content: "\e104"; + content: "\e104"; } - .glyphicon-eye-open:before { - content: "\e105"; + content: "\e105"; } - .glyphicon-eye-close:before { - content: "\e106"; + content: "\e106"; } - .glyphicon-warning-sign:before { - content: "\e107"; + content: "\e107"; } - .glyphicon-plane:before { - content: "\e108"; + content: "\e108"; } - .glyphicon-calendar:before { - content: "\e109"; + content: "\e109"; } - .glyphicon-random:before { - content: "\e110"; + content: "\e110"; } - .glyphicon-comment:before { - content: "\e111"; + content: "\e111"; } - .glyphicon-magnet:before { - content: "\e112"; + content: "\e112"; } - .glyphicon-chevron-up:before { - content: "\e113"; + content: "\e113"; } - .glyphicon-chevron-down:before { - content: "\e114"; + content: "\e114"; } - .glyphicon-retweet:before { - content: "\e115"; + content: "\e115"; } - .glyphicon-shopping-cart:before { - content: "\e116"; + content: "\e116"; } - .glyphicon-folder-close:before { - content: "\e117"; + content: "\e117"; } - .glyphicon-folder-open:before { - content: "\e118"; + content: "\e118"; } - .glyphicon-resize-vertical:before { - content: "\e119"; + content: "\e119"; } - .glyphicon-resize-horizontal:before { - content: "\e120"; + content: "\e120"; } - .glyphicon-hdd:before { - content: "\e121"; + content: "\e121"; } - .glyphicon-bullhorn:before { - content: "\e122"; + content: "\e122"; } - .glyphicon-bell:before { - content: "\e123"; + content: "\e123"; } - .glyphicon-certificate:before { - content: "\e124"; + content: "\e124"; } - .glyphicon-thumbs-up:before { - content: "\e125"; + content: "\e125"; } - .glyphicon-thumbs-down:before { - content: "\e126"; + content: "\e126"; } - .glyphicon-hand-right:before { - content: "\e127"; + content: "\e127"; } - .glyphicon-hand-left:before { - content: "\e128"; + content: "\e128"; } - .glyphicon-hand-up:before { - content: "\e129"; + content: "\e129"; } - .glyphicon-hand-down:before { - content: "\e130"; + content: "\e130"; } - .glyphicon-circle-arrow-right:before { - content: "\e131"; + content: "\e131"; } - .glyphicon-circle-arrow-left:before { - content: "\e132"; + content: "\e132"; } - .glyphicon-circle-arrow-up:before { - content: "\e133"; + content: "\e133"; } - .glyphicon-circle-arrow-down:before { - content: "\e134"; + content: "\e134"; } - .glyphicon-globe:before { - content: "\e135"; + content: "\e135"; } - .glyphicon-wrench:before { - content: "\e136"; + content: "\e136"; } - .glyphicon-tasks:before { - content: "\e137"; + content: "\e137"; } - .glyphicon-filter:before { - content: "\e138"; + content: "\e138"; } - .glyphicon-briefcase:before { - content: "\e139"; + content: "\e139"; } - .glyphicon-fullscreen:before { - content: "\e140"; + content: "\e140"; } - .glyphicon-dashboard:before { - content: "\e141"; + content: "\e141"; } - .glyphicon-paperclip:before { - content: "\e142"; + content: "\e142"; } - .glyphicon-heart-empty:before { - content: "\e143"; + content: "\e143"; } - .glyphicon-link:before { - content: "\e144"; + content: "\e144"; } - .glyphicon-phone:before { - content: "\e145"; + content: "\e145"; } - .glyphicon-pushpin:before { - content: "\e146"; + content: "\e146"; } - .glyphicon-usd:before { - content: "\e148"; + content: "\e148"; } - .glyphicon-gbp:before { - content: "\e149"; + content: "\e149"; } - .glyphicon-sort:before { - content: "\e150"; + content: "\e150"; } - .glyphicon-sort-by-alphabet:before { - content: "\e151"; + content: "\e151"; } - .glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; + content: "\e152"; } - .glyphicon-sort-by-order:before { - content: "\e153"; + content: "\e153"; } - .glyphicon-sort-by-order-alt:before { - content: "\e154"; + content: "\e154"; } - .glyphicon-sort-by-attributes:before { - content: "\e155"; + content: "\e155"; } - .glyphicon-sort-by-attributes-alt:before { - content: "\e156"; + content: "\e156"; } - .glyphicon-unchecked:before { - content: "\e157"; + content: "\e157"; } - .glyphicon-expand:before { - content: "\e158"; + content: "\e158"; } - .glyphicon-collapse-down:before { - content: "\e159"; + content: "\e159"; } - .glyphicon-collapse-up:before { - content: "\e160"; + content: "\e160"; } - .glyphicon-log-in:before { - content: "\e161"; + content: "\e161"; } - .glyphicon-flash:before { - content: "\e162"; + content: "\e162"; } - .glyphicon-log-out:before { - content: "\e163"; + content: "\e163"; } - .glyphicon-new-window:before { - content: "\e164"; + content: "\e164"; } - .glyphicon-record:before { - content: "\e165"; + content: "\e165"; } - .glyphicon-save:before { - content: "\e166"; + content: "\e166"; } - .glyphicon-open:before { - content: "\e167"; + content: "\e167"; } - .glyphicon-saved:before { - content: "\e168"; + content: "\e168"; } - .glyphicon-import:before { - content: "\e169"; + content: "\e169"; } - .glyphicon-export:before { - content: "\e170"; + content: "\e170"; } - .glyphicon-send:before { - content: "\e171"; + content: "\e171"; } - .glyphicon-floppy-disk:before { - content: "\e172"; + content: "\e172"; } - .glyphicon-floppy-saved:before { - content: "\e173"; + content: "\e173"; } - .glyphicon-floppy-remove:before { - content: "\e174"; + content: "\e174"; } - .glyphicon-floppy-save:before { - content: "\e175"; + content: "\e175"; } - .glyphicon-floppy-open:before { - content: "\e176"; + content: "\e176"; } - .glyphicon-credit-card:before { - content: "\e177"; + content: "\e177"; } - .glyphicon-transfer:before { - content: "\e178"; + content: "\e178"; } - .glyphicon-cutlery:before { - content: "\e179"; + content: "\e179"; } - .glyphicon-header:before { - content: "\e180"; + content: "\e180"; } - .glyphicon-compressed:before { - content: "\e181"; + content: "\e181"; } - .glyphicon-earphone:before { - content: "\e182"; + content: "\e182"; } - .glyphicon-phone-alt:before { - content: "\e183"; + content: "\e183"; } - .glyphicon-tower:before { - content: "\e184"; + content: "\e184"; } - .glyphicon-stats:before { - content: "\e185"; + content: "\e185"; } - .glyphicon-sd-video:before { - content: "\e186"; + content: "\e186"; } - .glyphicon-hd-video:before { - content: "\e187"; + content: "\e187"; } - .glyphicon-subtitles:before { - content: "\e188"; + content: "\e188"; } - .glyphicon-sound-stereo:before { - content: "\e189"; + content: "\e189"; } - .glyphicon-sound-dolby:before { - content: "\e190"; + content: "\e190"; } - .glyphicon-sound-5-1:before { - content: "\e191"; + content: "\e191"; } - .glyphicon-sound-6-1:before { - content: "\e192"; + content: "\e192"; } - .glyphicon-sound-7-1:before { - content: "\e193"; + content: "\e193"; } - .glyphicon-copyright-mark:before { - content: "\e194"; + content: "\e194"; } - .glyphicon-registration-mark:before { - content: "\e195"; + content: "\e195"; } - .glyphicon-cloud-download:before { - content: "\e197"; + content: "\e197"; } - .glyphicon-cloud-upload:before { - content: "\e198"; + content: "\e198"; } - .glyphicon-tree-conifer:before { - content: "\e199"; + content: "\e199"; } - .glyphicon-tree-deciduous:before { - content: "\e200"; + content: "\e200"; } - .caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; } - .dropdown { - position: relative; + position: relative; } - .dropdown-toggle:focus { - outline: 0; + outline: 0; } - .dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - font-size: 14px; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } - .dropdown-menu.pull-right { - right: 0; - left: auto; + right: 0; + left: auto; } - .dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; } - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; } - .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; + color: #262626; + text-decoration: none; + background-color: #f5f5f5; } - .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #428bca; - outline: 0; + color: #fff; + text-decoration: none; + background-color: #428bca; + outline: 0; } - .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #999; + color: #999; } - .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - text-decoration: none; - cursor: not-allowed; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } - .open > .dropdown-menu { - display: block; + display: block; } - .open > a { - outline: 0; + outline: 0; } - .dropdown-menu-right { - right: 0; - left: auto; + right: 0; + left: auto; } - .dropdown-menu-left { - right: auto; - left: 0; + right: auto; + left: 0; } - .dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #999; + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #999; } - .dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; } - .pull-right > .dropdown-menu { - right: 0; - left: auto; + right: 0; + left: auto; } - .dropup .caret, .navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px solid; + content: ""; + border-top: 0; + border-bottom: 4px solid; } - .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; + top: auto; + bottom: 100%; + margin-bottom: 1px; } - @media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; - } - - .navbar-right .dropdown-menu-left { - right: auto; - left: 0; - } + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } } - .btn-group, .btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; + position: relative; + display: inline-block; + vertical-align: middle; } - .btn-group > .btn, .btn-group-vertical > .btn { - position: relative; - float: left; + position: relative; + float: left; } - .btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, @@ -3883,307 +3147,256 @@ input[type="button"].btn-block { .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { - z-index: 2; + z-index: 2; } - .btn-group > .btn:focus, .btn-group-vertical > .btn:focus { - outline: none; + outline: none; } - .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { - margin-left: -1px; + margin-left: -1px; } - .btn-toolbar { - margin-left: -5px; + margin-left: -5px; } - .btn-toolbar .btn-group, .btn-toolbar .input-group { - float: left; + float: left; } - .btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { - margin-left: 5px; + margin-left: 5px; } - .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; + border-radius: 0; } - .btn-group > .btn:first-child { - margin-left: 0; + margin-left: 0; } - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } - .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } - .btn-group > .btn-group { - float: left; + float: left; } - .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; + border-radius: 0; } - .btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } - .btn-group > .btn-group:last-child > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } - .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { - outline: 0; + outline: 0; } - .btn-group > .btn + .dropdown-toggle { - padding-right: 8px; - padding-left: 8px; + padding-right: 8px; + padding-left: 8px; } - .btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; + padding-right: 12px; + padding-left: 12px; } - .btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } - .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } - .btn .caret { - margin-left: 0; + margin-left: 0; } - .btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; + border-width: 5px 5px 0; + border-bottom-width: 0; } - .dropup .btn-lg .caret { - border-width: 0 5px 5px; + border-width: 0 5px 5px; } - .btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; + display: block; + float: none; + width: 100%; + max-width: 100%; } - .btn-group-vertical > .btn-group > .btn { - float: none; + float: none; } - .btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; + margin-top: -1px; + margin-left: 0; } - .btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; + border-radius: 0; } - .btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } - .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; } - .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; + border-radius: 0; } - .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } - .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } - .btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; } - .btn-group-justified > .btn, .btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; + display: table-cell; + float: none; + width: 1%; } - .btn-group-justified > .btn-group .btn { - width: 100%; + width: 100%; } - [data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] { - display: none; + display: none; } - .input-group { - position: relative; - display: table; - border-collapse: separate; + position: relative; + display: table; + border-collapse: separate; } - .input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; + float: none; + padding-right: 0; + padding-left: 0; } - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; } - .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; } - select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; + height: 46px; + line-height: 46px; } - textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn, select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; + height: auto; } - .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } - select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; + height: 30px; + line-height: 30px; } - textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn, select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; + height: auto; } - .input-group-addon, .input-group-btn, .input-group .form-control { - display: table-cell; + display: table-cell; } - .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; + border-radius: 0; } - .input-group-addon, .input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; + width: 1%; + white-space: nowrap; + vertical-align: middle; } - .input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; } - .input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; } - .input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; } - .input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { - margin-top: 0; + margin-top: 0; } - .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, @@ -4191,14 +3404,12 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; } - .input-group-addon:first-child { - border-right: 0; + border-right: 0; } - .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, @@ -4206,1704 +3417,1407 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; } - .input-group-addon:last-child { - border-left: 0; + border-left: 0; } - .input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; + position: relative; + font-size: 0; + white-space: nowrap; } - .input-group-btn > .btn { - position: relative; + position: relative; } - .input-group-btn > .btn + .btn { - margin-left: -1px; + margin-left: -1px; } - .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { - z-index: 2; + z-index: 2; } - .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { - margin-right: -1px; + margin-right: -1px; } - .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { - margin-left: -1px; + margin-left: -1px; } - .nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; + padding-left: 0; + margin-bottom: 0; + list-style: none; } - .nav > li { - position: relative; - display: block; + position: relative; + display: block; } - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; + position: relative; + display: block; + padding: 10px 15px; } - .nav > li > a:hover, .nav > li > a:focus { - text-decoration: none; - background-color: #eee; + text-decoration: none; + background-color: #eee; } - .nav > li.disabled > a { - color: #999; + color: #999; } - .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #999; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; + color: #999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; } - .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - background-color: #eee; - border-color: #428bca; + background-color: #eee; + border-color: #428bca; } - .nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; } - .nav > li > a > img { - max-width: none; + max-width: none; } - .nav-tabs { - border-bottom: 1px solid #ddd; + border-bottom: 1px solid #ddd; } - .nav-tabs > li { - float: left; - margin-bottom: -1px; + float: left; + margin-bottom: -1px; } - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } - .nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; + border-color: #eee #eee #ddd; } - .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; } - .nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; + width: 100%; + border-bottom: 0; } - .nav-tabs.nav-justified > li { - float: none; + float: none; } - .nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; + margin-bottom: 5px; + text-align: center; } - .nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; + top: auto; + left: auto; } - @media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } } - .nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; + margin-right: 0; + border-radius: 4px; } - .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; + border: 1px solid #ddd; } - @media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; - } + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } } - .nav-pills > li { - float: left; + float: left; } - .nav-pills > li > a { - border-radius: 4px; + border-radius: 4px; } - .nav-pills > li + li { - margin-left: 2px; + margin-left: 2px; } - .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: #fff; - background-color: #428bca; + color: #fff; + background-color: #428bca; } - .nav-stacked > li { - float: none; + float: none; } - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; + margin-top: 2px; + margin-left: 0; } - .nav-justified { - width: 100%; + width: 100%; } - .nav-justified > li { - float: none; + float: none; } - .nav-justified > li > a { - margin-bottom: 5px; - text-align: center; + margin-bottom: 5px; + text-align: center; } - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; + top: auto; + left: auto; } - @media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - - .nav-justified > li > a { - margin-bottom: 0; - } + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } } - .nav-tabs-justified { - border-bottom: 0; + border-bottom: 0; } - .nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; + margin-right: 0; + border-radius: 4px; } - .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; + border: 1px solid #ddd; } - @media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; - } - - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; - } + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } } - .tab-content > .tab-pane { - display: none; + display: none; } - .tab-content > .active { - display: block; + display: block; } - .nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; } - .navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; } - @media (min-width: 768px) { - .navbar { - border-radius: 4px; - } + .navbar { + border-radius: 4px; + } } - @media (min-width: 768px) { - .navbar-header { - float: left; - } + .navbar-header { + float: left; + } } - .navbar-collapse { - max-height: 340px; - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); } - .navbar-collapse.in { - overflow-y: auto; + overflow-y: auto; } - @media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - - .navbar-collapse.in { - overflow-y: visible; - } - - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; - } + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } } - .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; + margin-right: -15px; + margin-left: -15px; } - @media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } } - .navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; + z-index: 1000; + border-width: 0 0 1px; } - @media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } + .navbar-static-top { + border-radius: 0; + } } - .navbar-fixed-top, .navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; + position: fixed; + right: 0; + left: 0; + z-index: 1030; } - @media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } } - .navbar-fixed-top { - top: 0; - border-width: 0 0 1px; + top: 0; + border-width: 0 0 1px; } - .navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; } - .navbar-brand { - float: left; - height: 50px; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; } - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; + text-decoration: none; } - @media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } } - .navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; } - .navbar-toggle:focus { - outline: none; + outline: none; } - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; + display: block; + width: 22px; + height: 2px; + border-radius: 1px; } - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; + margin-top: 4px; } - @media (min-width: 768px) { - .navbar-toggle { - display: none; - } + .navbar-toggle { + display: none; + } } - .navbar-nav { - margin: 7.5px -15px; + margin: 7.5px -15px; } - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; } - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } } - @media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - - .navbar-nav > li { - float: left; - } - - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; - } - - .navbar-nav.navbar-right:last-child { - margin-right: -15px; - } + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } + .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } } - @media (min-width: 768px) { - .navbar-left { - float: left !important; - } - - .navbar-right { - float: right !important; - } + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } } - .navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); } - @media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - - .navbar-form .input-group > .form-control { - width: 100%; - } - - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } - - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } } - @media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } + .navbar-form .form-group { + margin-bottom: 5px; + } } - @media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navbar-form.navbar-right:last-child { - margin-right: -15px; - } + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-form.navbar-right:last-child { + margin-right: -15px; + } } - .navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } - .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } - .navbar-btn { - margin-top: 8px; - margin-bottom: 8px; + margin-top: 8px; + margin-bottom: 8px; } - .navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } - .navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; + margin-top: 14px; + margin-bottom: 14px; } - .navbar-text { - margin-top: 15px; - margin-bottom: 15px; + margin-top: 15px; + margin-bottom: 15px; } - @media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } - - .navbar-text.navbar-right:last-child { - margin-right: 0; - } + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } + .navbar-text.navbar-right:last-child { + margin-right: 0; + } } - .navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; + background-color: #f8f8f8; + border-color: #e7e7e7; } - .navbar-default .navbar-brand { - color: #777; + color: #777; } - .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; + color: #5e5e5e; + background-color: transparent; } - .navbar-default .navbar-text { - color: #777; + color: #777; } - .navbar-default .navbar-nav > li > a { - color: #777; + color: #777; } - .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; + color: #333; + background-color: transparent; } - .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; + color: #555; + background-color: #e7e7e7; } - .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; + color: #ccc; + background-color: transparent; } - .navbar-default .navbar-toggle { - border-color: #ddd; + border-color: #ddd; } - .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { - background-color: #ddd; + background-color: #ddd; } - .navbar-default .navbar-toggle .icon-bar { - background-color: #888; + background-color: #888; } - .navbar-default .navbar-collapse, .navbar-default .navbar-form { - border-color: #e7e7e7; + border-color: #e7e7e7; } - .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; + color: #555; + background-color: #e7e7e7; } - @media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; - } - - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; - } + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } } - .navbar-default .navbar-link { - color: #777; + color: #777; } - .navbar-default .navbar-link:hover { - color: #333; + color: #333; } - .navbar-inverse { - background-color: #222; - border-color: #080808; + background-color: #222; + border-color: #080808; } - .navbar-inverse .navbar-brand { - color: #999; + color: #999; } - .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; + color: #fff; + background-color: transparent; } - .navbar-inverse .navbar-text { - color: #999; + color: #999; } - .navbar-inverse .navbar-nav > li > a { - color: #999; + color: #999; } - .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; + color: #fff; + background-color: transparent; } - .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; + color: #fff; + background-color: #080808; } - .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; + color: #444; + background-color: transparent; } - .navbar-inverse .navbar-toggle { - border-color: #333; + border-color: #333; } - .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { - background-color: #333; + background-color: #333; } - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; + background-color: #fff; } - .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { - border-color: #101010; + border-color: #101010; } - .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; } - @media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #999; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #080808; - } - - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; - } + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } } - .navbar-inverse .navbar-link { - color: #999; + color: #999; } - .navbar-inverse .navbar-link:hover { - color: #fff; + color: #fff; } - .breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; } - .breadcrumb > li { - display: inline-block; + display: inline-block; } - .breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; + padding: 0 5px; + color: #ccc; + content: "/\00a0"; } - .breadcrumb > .active { - color: #999; + color: #999; } - .pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; } - .pagination > li { - display: inline; + display: inline; } - .pagination > li > a, .pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #428bca; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #428bca; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; } - .pagination > li:first-child > a, .pagination > li:first-child > span { - margin-left: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; } - .pagination > li:last-child > a, .pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } - .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { - color: #2a6496; - background-color: #eee; - border-color: #ddd; + color: #2a6496; + background-color: #eee; + border-color: #ddd; } - .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #428bca; - border-color: #428bca; + z-index: 2; + color: #fff; + cursor: default; + background-color: #428bca; + border-color: #428bca; } - .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { - color: #999; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; + color: #999; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } - .pagination-lg > li > a, .pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; + padding: 10px 16px; + font-size: 18px; } - .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; } - .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; } - .pagination-sm > li > a, .pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; + padding: 5px 10px; + font-size: 12px; } - .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } - .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } - .pager { - padding-left: 0; - margin: 20px 0; - text-align: center; - list-style: none; + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; } - .pager li { - display: inline; + display: inline; } - .pager li > a, .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; } - .pager li > a:hover, .pager li > a:focus { - text-decoration: none; - background-color: #eee; + text-decoration: none; + background-color: #eee; } - .pager .next > a, .pager .next > span { - float: right; + float: right; } - .pager .previous > a, .pager .previous > span { - float: left; + float: left; } - .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { - color: #999; - cursor: not-allowed; - background-color: #fff; + color: #999; + cursor: not-allowed; + background-color: #fff; } - .label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; } - .label[href]:hover, .label[href]:focus { - color: #fff; - text-decoration: none; - cursor: pointer; + color: #fff; + text-decoration: none; + cursor: pointer; } - .label:empty { - display: none; + display: none; } - .btn .label { - position: relative; - top: -1px; + position: relative; + top: -1px; } - .label-default { - background-color: #999; + background-color: #999; } - .label-default[href]:hover, .label-default[href]:focus { - background-color: #808080; + background-color: #808080; } - .label-primary { - background-color: #428bca; + background-color: #428bca; } - .label-primary[href]:hover, .label-primary[href]:focus { - background-color: #3071a9; + background-color: #3071a9; } - .label-success { - background-color: #5cb85c; + background-color: #5cb85c; } - .label-success[href]:hover, .label-success[href]:focus { - background-color: #449d44; + background-color: #449d44; } - .label-info { - background-color: #5bc0de; + background-color: #5bc0de; } - .label-info[href]:hover, .label-info[href]:focus { - background-color: #31b0d5; + background-color: #31b0d5; } - .label-warning { - background-color: #f0ad4e; + background-color: #f0ad4e; } - .label-warning[href]:hover, .label-warning[href]:focus { - background-color: #ec971f; + background-color: #ec971f; } - .label-danger { - background-color: #d9534f; + background-color: #d9534f; } - .label-danger[href]:hover, .label-danger[href]:focus { - background-color: #c9302c; + background-color: #c9302c; } - .badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #999; - border-radius: 10px; + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999; + border-radius: 10px; } - .badge:empty { - display: none; + display: none; } - .btn .badge { - position: relative; - top: -1px; + position: relative; + top: -1px; } - .btn-xs .badge { - top: 0; - padding: 1px 5px; + top: 0; + padding: 1px 5px; } - a.badge:hover, a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; + color: #fff; + text-decoration: none; + cursor: pointer; } - a.list-group-item.active > .badge, .nav-pills > .active > a > .badge { - color: #428bca; - background-color: #fff; + color: #428bca; + background-color: #fff; } - .nav-pills > li > a > .badge { - margin-left: 3px; + margin-left: 3px; } - .jumbotron { - padding: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; + padding: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; } - .jumbotron h1, .jumbotron .h1 { - color: inherit; + color: inherit; } - .jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; } - .container .jumbotron { - border-radius: 6px; + border-radius: 6px; } - .jumbotron .container { - max-width: 100%; + max-width: 100%; } - @media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; - } - - .container .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } } - .thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; } - .thumbnail > img, .thumbnail a > img { - margin-right: auto; - margin-left: auto; + margin-right: auto; + margin-left: auto; } - a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { - border-color: #428bca; + border-color: #428bca; } - .thumbnail .caption { - padding: 9px; - color: #333; + padding: 9px; + color: #333; } - .alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; } - .alert h4 { - margin-top: 0; - color: inherit; + margin-top: 0; + color: inherit; } - .alert .alert-link { - font-weight: bold; + font-weight: bold; } - .alert > p, .alert > ul { - margin-bottom: 0; + margin-bottom: 0; } - .alert > p + p { - margin-top: 5px; + margin-top: 5px; } - .alert-dismissable { - padding-right: 35px; + padding-right: 35px; } - .alert-dismissable .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; + position: relative; + top: -2px; + right: -21px; + color: inherit; } - .alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } - .alert-success hr { - border-top-color: #c9e2b3; + border-top-color: #c9e2b3; } - .alert-success .alert-link { - color: #2b542c; + color: #2b542c; } - .alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } - .alert-info hr { - border-top-color: #a6e1ec; + border-top-color: #a6e1ec; } - .alert-info .alert-link { - color: #245269; + color: #245269; } - .alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } - .alert-warning hr { - border-top-color: #f7e1b5; + border-top-color: #f7e1b5; } - .alert-warning .alert-link { - color: #66512c; + color: #66512c; } - .alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } - .alert-danger hr { - border-top-color: #e4b9c0; + border-top-color: #e4b9c0; } - .alert-danger .alert-link { - color: #843534; + color: #843534; } - @-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } } - @keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } } - .progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); } - .progress-bar { - float: left; - width: 0; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #428bca; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - transition: width .6s ease; + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + transition: width .6s ease; } - .progress-striped .progress-bar { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-size: 40px 40px; + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-size: 40px 40px; } - .progress.active .progress-bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; } - .progress-bar-success { - background-color: #5cb85c; + background-color: #5cb85c; } - .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - .progress-bar-info { - background-color: #5bc0de; + background-color: #5bc0de; } - .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - .progress-bar-warning { - background-color: #f0ad4e; + background-color: #f0ad4e; } - .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - .progress-bar-danger { - background-color: #d9534f; + background-color: #d9534f; } - .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } - .media, .media-body { - overflow: hidden; - zoom: 1; + overflow: hidden; + zoom: 1; } - .media, .media .media { - margin-top: 15px; + margin-top: 15px; } - .media:first-child { - margin-top: 0; + margin-top: 0; } - .media-object { - display: block; + display: block; } - .media-heading { - margin: 0 0 5px; + margin: 0 0 5px; } - .media > .pull-left { - margin-right: 10px; + margin-right: 10px; } - .media > .pull-right { - margin-left: 10px; + margin-left: 10px; } - .media-list { - padding-left: 0; - list-style: none; + padding-left: 0; + list-style: none; } - .list-group { - padding-left: 0; - margin-bottom: 20px; + padding-left: 0; + margin-bottom: 20px; } - .list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; } - .list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; } - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } - .list-group-item > .badge { - float: right; + float: right; } - .list-group-item > .badge + .badge { - margin-right: 5px; + margin-right: 5px; } - a.list-group-item { - color: #555; + color: #555; } - a.list-group-item .list-group-item-heading { - color: #333; + color: #333; } - a.list-group-item:hover, a.list-group-item:focus { - text-decoration: none; - background-color: #f5f5f5; + text-decoration: none; + background-color: #f5f5f5; } - a.list-group-item.active, a.list-group-item.active:hover, a.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #428bca; - border-color: #428bca; + z-index: 2; + color: #fff; + background-color: #428bca; + border-color: #428bca; } - a.list-group-item.active .list-group-item-heading, a.list-group-item.active:hover .list-group-item-heading, a.list-group-item.active:focus .list-group-item-heading { - color: inherit; + color: inherit; } - a.list-group-item.active .list-group-item-text, a.list-group-item.active:hover .list-group-item-text, a.list-group-item.active:focus .list-group-item-text { - color: #e1edf7; + color: #e1edf7; } - .list-group-item-success { - color: #3c763d; - background-color: #dff0d8; + color: #3c763d; + background-color: #dff0d8; } - a.list-group-item-success { - color: #3c763d; + color: #3c763d; } - a.list-group-item-success .list-group-item-heading { - color: inherit; + color: inherit; } - a.list-group-item-success:hover, a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; + color: #3c763d; + background-color: #d0e9c6; } - a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } - .list-group-item-info { - color: #31708f; - background-color: #d9edf7; + color: #31708f; + background-color: #d9edf7; } - a.list-group-item-info { - color: #31708f; + color: #31708f; } - a.list-group-item-info .list-group-item-heading { - color: inherit; + color: inherit; } - a.list-group-item-info:hover, a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; + color: #31708f; + background-color: #c4e3f3; } - a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; + color: #fff; + background-color: #31708f; + border-color: #31708f; } - .list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; + color: #8a6d3b; + background-color: #fcf8e3; } - a.list-group-item-warning { - color: #8a6d3b; + color: #8a6d3b; } - a.list-group-item-warning .list-group-item-heading { - color: inherit; + color: inherit; } - a.list-group-item-warning:hover, a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; + color: #8a6d3b; + background-color: #faf2cc; } - a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } - .list-group-item-danger { - color: #a94442; - background-color: #f2dede; + color: #a94442; + background-color: #f2dede; } - a.list-group-item-danger { - color: #a94442; + color: #a94442; } - a.list-group-item-danger .list-group-item-heading { - color: inherit; + color: inherit; } - a.list-group-item-danger:hover, a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; + color: #a94442; + background-color: #ebcccc; } - a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; + color: #fff; + background-color: #a94442; + border-color: #a94442; } - .list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; + margin-top: 0; + margin-bottom: 5px; } - .list-group-item-text { - margin-bottom: 0; - line-height: 1.3; + margin-bottom: 0; + line-height: 1.3; } - .panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); } - .panel-body { - padding: 15px; + padding: 15px; } - .panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; + color: inherit; } - .panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; } - .panel-title > a { - color: inherit; + color: inherit; } - .panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } - .panel > .list-group { - margin-bottom: 0; + margin-bottom: 0; } - .panel > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; + border-width: 1px 0; + border-radius: 0; } - .panel > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } - .panel > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } - .panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; + border-top-width: 0; } - .panel > .table, .panel > .table-responsive > .table { - margin-bottom: 0; + margin-bottom: 0; } - .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, @@ -5912,9 +4826,8 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; + border-top-left-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, @@ -5923,15 +4836,13 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; + border-top-right-radius: 3px; } - .panel > .table:last-child, .panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, @@ -5940,9 +4851,8 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, @@ -5951,24 +4861,20 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; } - .panel > .panel-body + .table, .panel > .panel-body + .table-responsive { - border-top: 1px solid #ddd; + border-top: 1px solid #ddd; } - .panel > .table > tbody:first-child > tr:first-child th, .panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; + border-top: 0; } - .panel > .table-bordered, .panel > .table-responsive > .table-bordered { - border: 0; + border: 0; } - .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, .panel > .table-bordered > tbody > tr > th:first-child, @@ -5981,9 +4887,8 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; + border-left: 0; } - .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, .panel > .table-bordered > tbody > tr > th:last-child, @@ -5996,9 +4901,8 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; + border-right: 0; } - .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > td, @@ -6007,9 +4911,8 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; + border-bottom: 0; } - .panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > td, @@ -6018,799 +4921,674 @@ a.list-group-item-danger.active:focus { .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; + border-bottom: 0; } - .panel > .table-responsive { - margin-bottom: 0; - border: 0; + margin-bottom: 0; + border: 0; } - .panel-group { - margin-bottom: 20px; + margin-bottom: 20px; } - .panel-group .panel { - margin-bottom: 0; - overflow: hidden; - border-radius: 4px; + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; } - .panel-group .panel + .panel { - margin-top: 5px; + margin-top: 5px; } - .panel-group .panel-heading { - border-bottom: 0; + border-bottom: 0; } - .panel-group .panel-heading + .panel-collapse .panel-body { - border-top: 1px solid #ddd; + border-top: 1px solid #ddd; } - .panel-group .panel-footer { - border-top: 0; + border-top: 0; } - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; + border-bottom: 1px solid #ddd; } - .panel-default { - border-color: #ddd; + border-color: #ddd; } - .panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; + color: #333; + background-color: #f5f5f5; + border-color: #ddd; } - .panel-default > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ddd; + border-top-color: #ddd; } - .panel-default > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ddd; + border-bottom-color: #ddd; } - .panel-primary { - border-color: #428bca; + border-color: #428bca; } - .panel-primary > .panel-heading { - color: #fff; - background-color: #428bca; - border-color: #428bca; + color: #fff; + background-color: #428bca; + border-color: #428bca; } - .panel-primary > .panel-heading + .panel-collapse .panel-body { - border-top-color: #428bca; + border-top-color: #428bca; } - .panel-primary > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #428bca; + border-bottom-color: #428bca; } - .panel-success { - border-color: #d6e9c6; + border-color: #d6e9c6; } - .panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } - .panel-success > .panel-heading + .panel-collapse .panel-body { - border-top-color: #d6e9c6; + border-top-color: #d6e9c6; } - .panel-success > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #d6e9c6; + border-bottom-color: #d6e9c6; } - .panel-info { - border-color: #bce8f1; + border-color: #bce8f1; } - .panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } - .panel-info > .panel-heading + .panel-collapse .panel-body { - border-top-color: #bce8f1; + border-top-color: #bce8f1; } - .panel-info > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #bce8f1; + border-bottom-color: #bce8f1; } - .panel-warning { - border-color: #faebcc; + border-color: #faebcc; } - .panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } - .panel-warning > .panel-heading + .panel-collapse .panel-body { - border-top-color: #faebcc; + border-top-color: #faebcc; } - .panel-warning > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #faebcc; + border-bottom-color: #faebcc; } - .panel-danger { - border-color: #ebccd1; + border-color: #ebccd1; } - .panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } - .panel-danger > .panel-heading + .panel-collapse .panel-body { - border-top-color: #ebccd1; + border-top-color: #ebccd1; } - .panel-danger > .panel-footer + .panel-collapse .panel-body { - border-bottom-color: #ebccd1; + border-bottom-color: #ebccd1; } - .well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); } - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); } - .well-lg { - padding: 24px; - border-radius: 6px; + padding: 24px; + border-radius: 6px; } - .well-sm { - padding: 9px; - border-radius: 3px; + padding: 9px; + border-radius: 3px; } - .close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; } - .close:hover, .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; } - button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; } - .modal-open { - overflow: hidden; + overflow: hidden; } - .modal { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - display: none; - overflow: auto; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - outline: 0; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: auto; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + outline: 0; } - .modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -moz-transition: -moz-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - transform: translate(0, -25%); + -webkit-transition: -webkit-transform .3s ease-out; + -moz-transition: -moz-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); } - .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); } - .modal-dialog { - position: relative; - width: auto; - margin: 10px; + position: relative; + width: auto; + margin: 10px; } - .modal-content { - position: relative; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - outline: none; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } - .modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; } - .modal-backdrop.fade { - filter: alpha(opacity=0); - opacity: 0; + filter: alpha(opacity=0); + opacity: 0; } - .modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; + filter: alpha(opacity=50); + opacity: .5; } - .modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; + min-height: 16.42857143px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; } - .modal-header .close { - margin-top: -2px; + margin-top: -2px; } - .modal-title { - margin: 0; - line-height: 1.42857143; + margin: 0; + line-height: 1.42857143; } - .modal-body { - position: relative; - padding: 20px; + position: relative; + padding: 20px; } - .modal-footer { - padding: 19px 20px 20px; - margin-top: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; } - .modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; + margin-bottom: 0; + margin-left: 5px; } - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; + margin-left: -1px; } - .modal-footer .btn-block + .btn-block { - margin-left: 0; + margin-left: 0; } - @media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - } - - .modal-sm { - width: 300px; - } + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 300px; + } } - @media (min-width: 992px) { - .modal-lg { - width: 900px; - } + .modal-lg { + width: 900px; + } } - .tooltip { - position: absolute; - z-index: 1030; - display: block; - font-size: 12px; - line-height: 1.4; - visibility: visible; - filter: alpha(opacity=0); - opacity: 0; + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + visibility: visible; + filter: alpha(opacity=0); + opacity: 0; } - .tooltip.in { - filter: alpha(opacity=90); - opacity: .9; + filter: alpha(opacity=90); + opacity: .9; } - .tooltip.top { - padding: 5px 0; - margin-top: -3px; + padding: 5px 0; + margin-top: -3px; } - .tooltip.right { - padding: 0 5px; - margin-left: 3px; + padding: 0 5px; + margin-left: 3px; } - .tooltip.bottom { - padding: 5px 0; - margin-top: 3px; + padding: 5px 0; + margin-top: 3px; } - .tooltip.left { - padding: 0 5px; - margin-left: -3px; + padding: 0 5px; + margin-left: -3px; } - .tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; } - .tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } - .tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } - .tooltip.top-left .tooltip-arrow { - bottom: 0; - left: 5px; - border-width: 5px 5px 0; - border-top-color: #000; + bottom: 0; + left: 5px; + border-width: 5px 5px 0; + border-top-color: #000; } - .tooltip.top-right .tooltip-arrow { - right: 5px; - bottom: 0; - border-width: 5px 5px 0; - border-top-color: #000; + right: 5px; + bottom: 0; + border-width: 5px 5px 0; + border-top-color: #000; } - .tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; } - .tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; } - .tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } - .tooltip.bottom-left .tooltip-arrow { - top: 0; - left: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; + top: 0; + left: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } - .tooltip.bottom-right .tooltip-arrow { - top: 0; - right: 5px; - border-width: 0 5px 5px; - border-bottom-color: #000; + top: 0; + right: 5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } - .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - max-width: 276px; - padding: 1px; - text-align: left; - white-space: normal; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); } - .popover.top { - margin-top: -10px; + margin-top: -10px; } - .popover.right { - margin-left: 10px; + margin-left: 10px; } - .popover.bottom { - margin-top: 10px; + margin-top: 10px; } - .popover.left { - margin-left: -10px; + margin-left: -10px; } - .popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - font-weight: normal; - line-height: 18px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; } - .popover-content { - padding: 9px 14px; + padding: 9px 14px; } - .popover > .arrow, .popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } - .popover > .arrow { - border-width: 11px; + border-width: 11px; } - .popover > .arrow:after { - content: ""; - border-width: 10px; + content: ""; + border-width: 10px; } - .popover.top > .arrow { - bottom: -11px; - left: 50%; - margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); - border-bottom-width: 0; + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; } - .popover.top > .arrow:after { - bottom: 1px; - margin-left: -10px; - content: " "; - border-top-color: #fff; - border-bottom-width: 0; + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; } - .popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); - border-left-width: 0; + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; } - .popover.right > .arrow:after { - bottom: -10px; - left: 1px; - content: " "; - border-right-color: #fff; - border-left-width: 0; + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; } - .popover.bottom > .arrow { - top: -11px; - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); } - .popover.bottom > .arrow:after { - top: 1px; - margin-left: -10px; - content: " "; - border-top-width: 0; - border-bottom-color: #fff; + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; } - .popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); } - .popover.left > .arrow:after { - right: 1px; - bottom: -10px; - content: " "; - border-right-width: 0; - border-left-color: #fff; + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; } - .carousel { - position: relative; + position: relative; } - .carousel-inner { - position: relative; - width: 100%; - overflow: hidden; + position: relative; + width: 100%; + overflow: hidden; } - .carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; } - .carousel-inner > .item > img, .carousel-inner > .item > a > img { - line-height: 1; + line-height: 1; } - .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { - display: block; + display: block; } - .carousel-inner > .active { - left: 0; + left: 0; } - .carousel-inner > .next, .carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; + position: absolute; + top: 0; + width: 100%; } - .carousel-inner > .next { - left: 100%; + left: 100%; } - .carousel-inner > .prev { - left: -100%; + left: -100%; } - .carousel-inner > .next.left, .carousel-inner > .prev.right { - left: 0; + left: 0; } - .carousel-inner > .active.left { - left: -100%; + left: -100%; } - .carousel-inner > .active.right { - left: 100%; + left: 100%; } - .carousel-control { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 15%; - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + filter: alpha(opacity=50); + opacity: .5; } - .carousel-control.left { - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); - background-repeat: repeat-x; + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%)); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; } - .carousel-control.right { - right: 0; - left: auto; - background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%)); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); - background-repeat: repeat-x; + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%)); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; } - .carousel-control:hover, .carousel-control:focus { - color: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: none; - opacity: .9; + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: none; + opacity: .9; } - .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; } - .carousel-control .icon-prev, .carousel-control .glyphicon-chevron-left { - left: 50%; + left: 50%; } - .carousel-control .icon-next, .carousel-control .glyphicon-chevron-right { - right: 50%; + right: 50%; } - .carousel-control .icon-prev, .carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - margin-left: -10px; - font-family: serif; + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; } - .carousel-control .icon-prev:before { - content: '\2039'; + content: '\2039'; } - .carousel-control .icon-next:before { - content: '\203a'; + content: '\203a'; } - .carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - padding-left: 0; - margin-left: -30%; - text-align: center; - list-style: none; + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; } - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); - border: 1px solid #fff; - border-radius: 10px; + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; } - .carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; } - .carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); } - .carousel-caption .btn { - text-shadow: none; + text-shadow: none; } - @media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - margin-left: -15px; - font-size: 30px; - } - - .carousel-caption { - right: 20%; - left: 20%; - padding-bottom: 30px; - } - - .carousel-indicators { - bottom: 20px; - } + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } } - .clearfix:before, .clearfix:after, .container:before, @@ -6839,10 +5617,9 @@ button.close { .panel-body:after, .modal-footer:before, .modal-footer:after { - display: table; - content: " "; + display: table; + content: " "; } - .clearfix:after, .container:after, .container-fluid:after, @@ -6857,188 +5634,151 @@ button.close { .pager:after, .panel-body:after, .modal-footer:after { - clear: both; + clear: both; } - .center-block { - display: block; - margin-right: auto; - margin-left: auto; + display: block; + margin-right: auto; + margin-left: auto; } - .pull-right { - float: right !important; + float: right !important; } - .pull-left { - float: left !important; + float: left !important; } - .hide { - display: none !important; + display: none !important; } - .show { - display: block !important; + display: block !important; } - .invisible { - visibility: hidden; + visibility: hidden; } - .text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } - .hidden { - display: none !important; - visibility: hidden !important; + display: none !important; + visibility: hidden !important; } - .affix { - position: fixed; + position: fixed; } - @-ms-viewport { - width: device-width; + width: device-width; } - .visible-xs, .visible-sm, .visible-md, .visible-lg { - display: none !important; + display: none !important; } - @media (max-width: 767px) { - .visible-xs { - display: block !important; - } - - table.visible-xs { - display: table; - } - - tr.visible-xs { - display: table-row !important; - } - - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } } - @media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - - table.visible-sm { - display: table; - } - - tr.visible-sm { - display: table-row !important; - } - - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } } - @media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - - table.visible-md { - display: table; - } - - tr.visible-md { - display: table-row !important; - } - - th.visible-md, - td.visible-md { - display: table-cell !important; - } + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } } - @media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - - table.visible-lg { - display: table; - } - - tr.visible-lg { - display: table-row !important; - } - - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } } - @media (max-width: 767px) { - .hidden-xs { - display: none !important; - } + .hidden-xs { + display: none !important; + } } - @media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } + .hidden-sm { + display: none !important; + } } - @media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } + .hidden-md { + display: none !important; + } } - @media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } + .hidden-lg { + display: none !important; + } } - .visible-print { - display: none !important; + display: none !important; } - @media print { - .visible-print { - display: block !important; - } - - table.visible-print { - display: table; - } - - tr.visible-print { - display: table-row !important; - } - - th.visible-print, - td.visible-print { - display: table-cell !important; - } + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } } - @media print { - .hidden-print { - display: none !important; - } + .hidden-print { + display: none !important; + } } \ No newline at end of file
    ').addClass('cw').text('#')); - } - - while (currentDate.isBefore(viewDate.clone().endOf('w'))) { - row.append($('').addClass('dow').text(currentDate.format('dd'))); - currentDate.add(1, 'd'); - } - widget.find('.datepicker-days thead').append(row); - }, - - isInDisabledDates = function (testDate) { - return options.disabledDates[testDate.format('YYYY-MM-DD')] === true; - }, - - isInEnabledDates = function (testDate) { - return options.enabledDates[testDate.format('YYYY-MM-DD')] === true; - }, - - isValid = function (targetMoment, granularity) { - if (!targetMoment.isValid()) { - return false; - } - if (options.disabledDates && isInDisabledDates(targetMoment)) { - return false; - } - if (options.enabledDates) { - if (isInEnabledDates(targetMoment)) { - return true; - } else { - return false; - } - } - if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) { - return false; - } - if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) { - return false; - } - if (granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) { - return false; - } - return true; - }, - - fillMonths = function () { - var spans = [], - monthsShort = viewDate.clone().startOf('y').hour(12); // hour is changed to avoid DST issues in some browsers - while (monthsShort.isSame(viewDate, 'y')) { - spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM'))); - monthsShort.add(1, 'M'); - } - widget.find('.datepicker-months td').empty().append(spans); - }, - - updateMonths = function () { - var monthsView = widget.find('.datepicker-months'), - monthsViewHeader = monthsView.find('th'), - months = monthsView.find('tbody').find('span'); - - monthsView.find('.disabled').removeClass('disabled'); - - if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) { - monthsViewHeader.eq(0).addClass('disabled'); - } - - monthsViewHeader.eq(1).text(viewDate.year()); - - if (!isValid(viewDate.clone().add(1, 'y'), 'y')) { - monthsViewHeader.eq(2).addClass('disabled'); - } - - months.removeClass('active'); - if (date.isSame(viewDate, 'y')) { - months.eq(date.month()).addClass('active'); - } - - months.each(function (index) { - if (!isValid(viewDate.clone().month(index), 'M')) { - $(this).addClass('disabled'); - } - }); - }, - - updateYears = function () { - var yearsView = widget.find('.datepicker-years'), - yearsViewHeader = yearsView.find('th'), - startYear = viewDate.clone().subtract(5, 'y'), - endYear = viewDate.clone().add(6, 'y'), - html = ''; - - yearsView.find('.disabled').removeClass('disabled'); - - if (options.minDate && options.minDate.isAfter(startYear, 'y')) { - yearsViewHeader.eq(0).addClass('disabled'); - } - - yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year()); - - if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) { - yearsViewHeader.eq(2).addClass('disabled'); - } - - while (!startYear.isAfter(endYear, 'y')) { - html += '' + startYear.year() + ''; - startYear.add(1, 'y'); - } - - yearsView.find('td').html(html); - }, - - fillDate = function () { - var daysView = widget.find('.datepicker-days'), - daysViewHeader = daysView.find('th'), - currentDate, - html = [], - row, - clsName; - - if (!hasDate()) { - return; - } - - daysView.find('.disabled').removeClass('disabled'); - daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat)); - - if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) { - daysViewHeader.eq(0).addClass('disabled'); - } - if (!isValid(viewDate.clone().add(1, 'M'), 'M')) { - daysViewHeader.eq(2).addClass('disabled'); - } - - currentDate = viewDate.clone().startOf('M').startOf('week'); - - while (!viewDate.clone().endOf('M').endOf('w').isBefore(currentDate, 'd')) { - if (currentDate.weekday() === 0) { - row = $('
    ' + currentDate.week() + '' + currentDate.date() + '
    ' + currentHour.format(use24Hours ? 'HH' : 'hh') + '
    ' + currentMinute.format('mm') + '
    ' + currentSecond.format('ss') + '