rails_marketplace 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +37 -0
- data/app/assets/javascripts/rails_marketplace/application.js +46 -0
- data/app/assets/javascripts/rails_marketplace/catalog.coffee +3 -0
- data/app/assets/javascripts/rails_marketplace/flash.js +6 -0
- data/app/assets/javascripts/rails_marketplace/footermanifest.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/autocomplete/countries.js +267 -0
- data/app/assets/javascripts/rails_marketplace/js/autocomplete/jquery.autocomplete.js +986 -0
- data/app/assets/javascripts/rails_marketplace/js/bootstrap.min.js +7 -0
- data/app/assets/javascripts/rails_marketplace/js/calendar/fullcalendar.min.js +9 -0
- data/app/assets/javascripts/rails_marketplace/js/chartjs/chart.min.js +14 -0
- data/app/assets/javascripts/rails_marketplace/js/colorpicker/bootstrap-colorpicker.min.js +1087 -0
- data/app/assets/javascripts/rails_marketplace/js/colorpicker/docs.js +17 -0
- data/app/assets/javascripts/rails_marketplace/js/cropping/cropper.min.js +10 -0
- data/app/assets/javascripts/rails_marketplace/js/cropping/main.js +321 -0
- data/app/assets/javascripts/rails_marketplace/js/cropping/main2.js +160 -0
- data/app/assets/javascripts/rails_marketplace/js/custom.js +380 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/buttons.bootstrap.min.css +1 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/buttons.bootstrap.min.js +6 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/buttons.html5.min.js +22 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/buttons.print.min.js +4 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.bootstrap.js +8 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.buttons.min.js +36 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.fixedHeader.min.js +17 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.keyTable.min.js +18 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.responsive.min.js +25 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/dataTables.scroller.min.js +26 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/fixedHeader.bootstrap.min.css +1 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/jquery.dataTables.min.css +333 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/jquery.dataTables.min.js +166 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/json/scroller-demo.json +2502 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/jszip.min.js +14 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/pdfmake.min.js +22 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/responsive.bootstrap.min.css +1 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/responsive.bootstrap.min.js +7 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/scroller.bootstrap.min.css +1 -0
- data/app/assets/javascripts/rails_marketplace/js/datatables/vfs_fonts.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/datepicker/daterangepicker.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/dropzone/dropzone.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/easypie/jquery.easypiechart.min.js +9 -0
- data/app/assets/javascripts/rails_marketplace/js/echart/echarts-all.js +35 -0
- data/app/assets/javascripts/rails_marketplace/js/echart/green.js +212 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/bootstrap-wysiwyg.js +200 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-apollo.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-basic.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-clj.js +18 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-css.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-dart.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-erlang.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-go.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-hs.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-lisp.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-llvm.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-lua.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-matlab.js +6 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-ml.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-mumps.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-n.js +4 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-pascal.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-proto.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-r.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-rd.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-scala.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-sql.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-tcl.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-tex.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-vb.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-vhdl.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-wiki.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-xq.js +3 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/lang-yaml.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/prettify.js +30 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/google-code-prettify/run_prettify.js +34 -0
- data/app/assets/javascripts/rails_marketplace/js/editor/external/jquery.hotkeys.js +100 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/curvedLines.js +483 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/date.js +104 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.orderBars.js +201 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.pie.js +820 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.resize.js +57 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.spline.js +212 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.stack.js +188 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.time.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/flot/jquery.flot.tooltip.min.js +12 -0
- data/app/assets/javascripts/rails_marketplace/js/gauge/gauge.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/gauge/gauge_demo.js +21 -0
- data/app/assets/javascripts/rails_marketplace/js/icheck/icheck.min.js +11 -0
- data/app/assets/javascripts/rails_marketplace/js/input_mask/jquery.inputmask.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/ion_range/ion.rangeSlider.min.js +66 -0
- data/app/assets/javascripts/rails_marketplace/js/jquery.min.js +5 -0
- data/app/assets/javascripts/rails_marketplace/js/knob/jquery.knob.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/maps/gdp-data.js +185 -0
- data/app/assets/javascripts/rails_marketplace/js/maps/jquery-jvectormap-2.0.3.min.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/maps/jquery-jvectormap-us-aea-en.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/maps/jquery-jvectormap-world-mill-en.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/maps/us-unemployment.json +1 -0
- data/app/assets/javascripts/rails_marketplace/js/moment/moment.min.js +7 -0
- data/app/assets/javascripts/rails_marketplace/js/moris/example.js +127 -0
- data/app/assets/javascripts/rails_marketplace/js/moris/morris.min.js +7 -0
- data/app/assets/javascripts/rails_marketplace/js/moris/raphael-min.js +11 -0
- data/app/assets/javascripts/rails_marketplace/js/notify/pnotify.buttons.js +132 -0
- data/app/assets/javascripts/rails_marketplace/js/notify/pnotify.core.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/notify/pnotify.nonblock.js +151 -0
- data/app/assets/javascripts/rails_marketplace/js/nprogress.js +476 -0
- data/app/assets/javascripts/rails_marketplace/js/pace/pace.min.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/parsley/parsley.min.js +9 -0
- data/app/assets/javascripts/rails_marketplace/js/progressbar/bootstrap-progressbar.min.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/select/select2.full.js +2 -0
- data/app/assets/javascripts/rails_marketplace/js/sidebar/classie.js +80 -0
- data/app/assets/javascripts/rails_marketplace/js/sidebar/component.css +569 -0
- data/app/assets/javascripts/rails_marketplace/js/sidebar/modernizr.custom.js +4 -0
- data/app/assets/javascripts/rails_marketplace/js/sidebar/sidebarEffects.js +63 -0
- data/app/assets/javascripts/rails_marketplace/js/skycons/skycons.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/sparkline/jquery.sparkline.min.js +5 -0
- data/app/assets/javascripts/rails_marketplace/js/switchery/switchery.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/tags/jquery.tagsinput.min.js +1 -0
- data/app/assets/javascripts/rails_marketplace/js/textarea/autosize.min.js +6 -0
- data/app/assets/javascripts/rails_marketplace/js/validator/validator.js +411 -0
- data/app/assets/javascripts/rails_marketplace/js/wizard/jquery.smartWizard.js +489 -0
- data/app/assets/javascripts/rails_marketplace/less/custom.css +6355 -0
- data/app/assets/javascripts/rails_marketplace/marketplace.js +17 -0
- data/app/assets/javascripts/rails_marketplace/welcome.coffee +3 -0
- data/app/assets/stylesheets/rails_marketplace/application.scss +31 -0
- data/app/assets/stylesheets/rails_marketplace/catalog.scss +132 -0
- data/app/assets/stylesheets/rails_marketplace/css/animate.min.css +11 -0
- data/app/assets/stylesheets/rails_marketplace/css/bootstrap.min.css +6 -0
- data/app/assets/stylesheets/rails_marketplace/css/calendar/fullcalendar.css +1116 -0
- data/app/assets/stylesheets/rails_marketplace/css/calendar/fullcalendar.min.css +5 -0
- data/app/assets/stylesheets/rails_marketplace/css/calendar/fullcalendar.print.css +208 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/bootstrap-colorpicker.min.css +9 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/img/bootstrap-colorpicker/alpha-horizontal.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/img/bootstrap-colorpicker/alpha.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/img/bootstrap-colorpicker/hue-horizontal.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/img/bootstrap-colorpicker/hue.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/colorpicker/img/bootstrap-colorpicker/saturation.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/custom.css +5347 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/css/demo_page.css +103 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/css/demo_table.css +258 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/css/demo_table_jui.css +501 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/css/jquery.dataTables.css +221 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/css/jquery.dataTables_themeroller.css +244 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/Sorting icons.psd +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/back_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/back_enabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/back_enabled_hover.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/favicon.ico +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/forward_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/forward_enabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/forward_enabled_hover.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/sort_asc.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/sort_asc_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/sort_both.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/sort_desc.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/images/sort_desc_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/datatables/tools/css/dataTables.tableTools.css +336 -0
- data/app/assets/stylesheets/rails_marketplace/css/editor/external/google-code-prettify/prettify.css +1 -0
- data/app/assets/stylesheets/rails_marketplace/css/editor/index.css +42 -0
- data/app/assets/stylesheets/rails_marketplace/css/floatexamples.css +22 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/_all.css +530 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/aero.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/aero.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/aero@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/blue.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/blue.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/blue@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/flat.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/flat.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/flat@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/green.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/green.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/green@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/grey.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/grey.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/grey@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/orange.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/orange.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/orange@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/pink.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/pink.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/pink@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/purple.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/purple.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/purple@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/red.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/red.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/red@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/yellow.css +53 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/yellow.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/icheck/flat/yellow@2x.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/css/ion.rangeSlider.css +146 -0
- data/app/assets/stylesheets/rails_marketplace/css/ion.rangeSlider.skinFlat.css +106 -0
- data/app/assets/stylesheets/rails_marketplace/css/maps/jquery-jvectormap-2.0.3.css +135 -0
- data/app/assets/stylesheets/rails_marketplace/css/normalize.css +421 -0
- data/app/assets/stylesheets/rails_marketplace/css/nprogress.css +74 -0
- data/app/assets/stylesheets/rails_marketplace/css/progressbar/bootstrap-progressbar-3.3.0.css +161 -0
- data/app/assets/stylesheets/rails_marketplace/css/select/select2.min.css +404 -0
- data/app/assets/stylesheets/rails_marketplace/css/switchery/switchery.min.css +1 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/css/font-awesome.css +2086 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/css/font-awesome.min.css +4 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/FontAwesome.otf +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/fontawesome-webfont.svg +655 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/fonts/fontawesome-webfont.woff2 +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/glyphicons-halflings-regular.svg +288 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/animated.less +34 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/bordered-pulled.less +25 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/core.less +12 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/fixed-width.less +6 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/font-awesome.less +17 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/icons.less +697 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/larger.less +13 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/list.less +19 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/mixins.less +26 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/path.less +15 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/rotated-flipped.less +20 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/spinning.less +29 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/stacked.less +20 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/less/variables.less +708 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_animated.scss +34 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_bordered-pulled.scss +25 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_core.scss +12 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_fixed-width.scss +6 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_icons.scss +697 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_larger.scss +13 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_list.scss +19 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_mixins.scss +26 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_path.scss +15 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_rotated-flipped.scss +20 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_spinning.scss +29 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_stacked.scss +20 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/_variables.scss +708 -0
- data/app/assets/stylesheets/rails_marketplace/fonts/scss/font-awesome.scss +17 -0
- data/app/assets/stylesheets/rails_marketplace/images/1.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/4.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/american-express.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/back_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/back_enabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/back_enabled_hover.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/alpha-horizontal.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/alpha.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/hue-horizontal.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/hue.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/saturation.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/data.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/favicon.ico +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/forward_disabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/forward_enabled.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/forward_enabled_hover.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/icons.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/img.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/loading.gif +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/mastercard.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/paypal2.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/picture-2.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/picture.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/picture2.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/prod1.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/prod2.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/prod3.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/prod4.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/prod5.jpg +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/sprite-skin-flat.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/sprite-skin-modern.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/sprite-skin-nice.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/sprite-skin-simple.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/user.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/images/visa.png +0 -0
- data/app/assets/stylesheets/rails_marketplace/marketplace.scss +20 -0
- data/app/assets/stylesheets/rails_marketplace/pace.css +76 -0
- data/app/assets/stylesheets/rails_marketplace/welcome.scss +3 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/controllers/rails_marketplace/admin_controller.rb +151 -0
- data/app/controllers/rails_marketplace/application_controller.rb +4 -0
- data/app/controllers/rails_marketplace/catalog_controller.rb +172 -0
- data/app/controllers/rails_marketplace/seller_controller.rb +181 -0
- data/app/helpers/rails_marketplace/admin_helper.rb +16 -0
- data/app/helpers/rails_marketplace/application_helper.rb +4 -0
- data/app/helpers/rails_marketplace/catalog_helper.rb +4 -0
- data/app/helpers/rails_marketplace/plainpage_helper.rb +4 -0
- data/app/helpers/rails_marketplace/seller_helper.rb +16 -0
- data/app/models/rails_marketplace/admin.rb +10 -0
- data/app/models/rails_marketplace/admin_setting.rb +13 -0
- data/app/models/rails_marketplace/cart.rb +49 -0
- data/app/models/rails_marketplace/cart_product.rb +7 -0
- data/app/models/rails_marketplace/category.rb +22 -0
- data/app/models/rails_marketplace/category_product.rb +6 -0
- data/app/models/rails_marketplace/customer.rb +6 -0
- data/app/models/rails_marketplace/order.rb +22 -0
- data/app/models/rails_marketplace/order_product.rb +7 -0
- data/app/models/rails_marketplace/product.rb +34 -0
- data/app/models/rails_marketplace/seller.rb +13 -0
- data/app/models/rails_marketplace/seller_setting.rb +5 -0
- data/app/views/layouts/rails_marketplace/application.html.erb +37 -0
- data/app/views/layouts/rails_marketplace/seller_central.html.erb +58 -0
- data/app/views/layouts/rails_marketplace/super_admin.html.erb +58 -0
- data/app/views/rails_marketplace/admin/add_category.html.erb +63 -0
- data/app/views/rails_marketplace/admin/categories.html.erb +50 -0
- data/app/views/rails_marketplace/admin/category_products.html.erb +54 -0
- data/app/views/rails_marketplace/admin/dashboard.html.erb +50 -0
- data/app/views/rails_marketplace/admin/edit_category.html.erb +63 -0
- data/app/views/rails_marketplace/admin/login_form.html.erb +20 -0
- data/app/views/rails_marketplace/admin/products.html.erb +54 -0
- data/app/views/rails_marketplace/admin/seller_products.html.erb +54 -0
- data/app/views/rails_marketplace/admin/sellers.html.erb +48 -0
- data/app/views/rails_marketplace/admin/settings_form.html.erb +39 -0
- data/app/views/rails_marketplace/admin/signup_form.html.erb +25 -0
- data/app/views/rails_marketplace/catalog/cart.html.erb +80 -0
- data/app/views/rails_marketplace/catalog/category_products.html.erb +52 -0
- data/app/views/rails_marketplace/catalog/checkout.html.erb +207 -0
- data/app/views/rails_marketplace/catalog/checkout_success.html.erb +15 -0
- data/app/views/rails_marketplace/catalog/index.html.erb +1 -0
- data/app/views/rails_marketplace/catalog/product_detail.html.erb +88 -0
- data/app/views/rails_marketplace/partials/_admin_sidenav.html.erb +80 -0
- data/app/views/rails_marketplace/partials/_admin_topnav.html.erb +111 -0
- data/app/views/rails_marketplace/partials/_footer.html.erb +19 -0
- data/app/views/rails_marketplace/partials/_menu.html.erb +42 -0
- data/app/views/rails_marketplace/partials/_sidenav.html.erb +77 -0
- data/app/views/rails_marketplace/partials/_topnav.html.erb +105 -0
- data/app/views/rails_marketplace/seller/add_bulk_products.html.erb +0 -0
- data/app/views/rails_marketplace/seller/add_product.html.erb +67 -0
- data/app/views/rails_marketplace/seller/dashboard.html.erb +50 -0
- data/app/views/rails_marketplace/seller/edit_product.html.erb +69 -0
- data/app/views/rails_marketplace/seller/login_form.html.erb +36 -0
- data/app/views/rails_marketplace/seller/order_details.html.erb +69 -0
- data/app/views/rails_marketplace/seller/orders.html.erb +68 -0
- data/app/views/rails_marketplace/seller/products.html.erb +55 -0
- data/app/views/rails_marketplace/seller/settings_general.html.erb +64 -0
- data/app/views/rails_marketplace/seller/settings_payment.html.erb +34 -0
- data/app/views/rails_marketplace/seller/settings_shipping.html.erb +34 -0
- data/app/views/rails_marketplace/seller/settings_tax.html.erb +34 -0
- data/app/views/rails_marketplace/seller/signup_form.html.erb +28 -0
- data/app/views/rails_marketplace/seller/step_two.html.erb +17 -0
- data/app/views/rails_marketplace/shared/_admin_error_messages.html.erb +12 -0
- data/app/views/rails_marketplace/shared/_product_error_messages.html.erb +12 -0
- data/app/views/rails_marketplace/shared/_seller_error_messages.html.erb +12 -0
- data/config/routes.rb +58 -0
- data/db/migrate/20161013194852_create_sellers.rb +13 -0
- data/db/migrate/20161013195006_create_customers.rb +13 -0
- data/db/migrate/20161013195758_create_orders.rb +8 -0
- data/db/migrate/20161014013032_create_category_products.rb +10 -0
- data/db/migrate/20161014013058_create_order_products.rb +13 -0
- data/db/migrate/20161017185755_create_admins.rb +12 -0
- data/db/migrate/20161017232347_create_products.rb +14 -0
- data/db/migrate/20161019012043_add_reference_product_seller.rb +5 -0
- data/db/migrate/20161019013502_change_data_type_images_files.rb +6 -0
- data/db/migrate/20161019022020_add_reference_order_customers.rb +5 -0
- data/db/migrate/20161109191644_create_categories.rb +15 -0
- data/db/migrate/20161110021043_create_friendly_id_slugs.rb +15 -0
- data/db/migrate/20161110021131_add_slug_to_category.rb +6 -0
- data/db/migrate/20161110024118_add_slug_to_product.rb +6 -0
- data/db/migrate/20161111001446_create_carts.rb +8 -0
- data/db/migrate/20161111004451_create_cart_products.rb +12 -0
- data/db/migrate/20161115013956_add_currency_format_to_price.rb +6 -0
- data/db/migrate/20161115015227_monetize_product.rb +5 -0
- data/db/migrate/20161115032905_add_stripe_key_to_admin.rb +6 -0
- data/db/migrate/20161124015608_add_order_fields.rb +16 -0
- data/db/migrate/20161207193917_add_seller_to_orders.rb +6 -0
- data/db/migrate/20161208012601_add_price_to_cart_products.rb +6 -0
- data/db/migrate/20161208013402_add_money_to_cart_products.rb +6 -0
- data/db/migrate/20170217183953_create_seller_settings.rb +29 -0
- data/db/migrate/20170218003202_create_admin_settings.rb +24 -0
- data/db/migrate/20170224230449_create_stripe_managed_accounts.rb +9 -0
- data/db/migrate/20170224233736_add_stripe_to_admin_settings.rb +9 -0
- data/db/migrate/20170224235259_add_id_to_settings.rb +6 -0
- data/db/migrate/20170225002939_delete_stripe_accounts.rb +8 -0
- data/db/migrate/20170225003252_add_stripe_account_id_to_seller_settings.rb +5 -0
- data/lib/rails_marketplace.rb +4 -0
- data/lib/rails_marketplace/engine.rb +9 -0
- data/lib/rails_marketplace/version.rb +3 -0
- data/lib/tasks/rails_marketplace_tasks.rake +4 -0
- data/spec/controllers/rails_marketplace/catalog_controller_spec.rb +75 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +32 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/schema.rb +194 -0
- data/spec/dummy/log/development.log +889 -0
- data/spec/dummy/log/test.log +1229 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/helpers/rails_marketplace/catalog_helper_spec.rb +17 -0
- data/spec/routing/rails_marketplace/catalog_routing_spec.rb +44 -0
- data/spec/spec_helper.rb +44 -0
- data/spec/views/rails_marketplace/catalog/edit.html.erb_spec.rb +15 -0
- data/spec/views/rails_marketplace/catalog/index.html.erb_spec.rb +15 -0
- data/spec/views/rails_marketplace/catalog/new.html.erb_spec.rb +15 -0
- data/spec/views/rails_marketplace/catalog/show.html.erb_spec.rb +12 -0
- metadata +595 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
/*!
|
2
|
+
* Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
|
3
|
+
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
4
|
+
*/
|
5
|
+
|
6
|
+
@import "variables";
|
7
|
+
@import "mixins";
|
8
|
+
@import "path";
|
9
|
+
@import "core";
|
10
|
+
@import "larger";
|
11
|
+
@import "fixed-width";
|
12
|
+
@import "list";
|
13
|
+
@import "bordered-pulled";
|
14
|
+
@import "animated";
|
15
|
+
@import "rotated-flipped";
|
16
|
+
@import "stacked";
|
17
|
+
@import "icons";
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/app/assets/stylesheets/rails_marketplace/images/bootstrap-colorpicker/alpha-horizontal.png
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
+
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
+
* file per style scope.
|
12
|
+
** * require fonts/css/font-awesome.min
|
13
|
+
|
14
|
+
*
|
15
|
+
*/
|
16
|
+
|
17
|
+
@import "bootstrap-sprockets";
|
18
|
+
@import "bootstrap";
|
19
|
+
@import "css/custom";
|
20
|
+
@import "catalog";
|
@@ -0,0 +1,76 @@
|
|
1
|
+
.pace {
|
2
|
+
-webkit-pointer-events: none;
|
3
|
+
pointer-events: none;
|
4
|
+
-webkit-user-select: none;
|
5
|
+
-moz-user-select: none;
|
6
|
+
user-select: none;
|
7
|
+
}
|
8
|
+
|
9
|
+
.pace-inactive {
|
10
|
+
display: none;
|
11
|
+
}
|
12
|
+
|
13
|
+
.pace .pace-progress {
|
14
|
+
background: #29d;
|
15
|
+
position: fixed;
|
16
|
+
z-index: 2000;
|
17
|
+
top: 0;
|
18
|
+
right: 100%;
|
19
|
+
width: 100%;
|
20
|
+
height: 2px;
|
21
|
+
}
|
22
|
+
|
23
|
+
.pace .pace-progress-inner {
|
24
|
+
display: block;
|
25
|
+
position: absolute;
|
26
|
+
right: 0px;
|
27
|
+
width: 100px;
|
28
|
+
height: 100%;
|
29
|
+
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
|
30
|
+
opacity: 1.0;
|
31
|
+
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
32
|
+
-moz-transform: rotate(3deg) translate(0px, -4px);
|
33
|
+
-ms-transform: rotate(3deg) translate(0px, -4px);
|
34
|
+
-o-transform: rotate(3deg) translate(0px, -4px);
|
35
|
+
transform: rotate(3deg) translate(0px, -4px);
|
36
|
+
}
|
37
|
+
|
38
|
+
.pace .pace-activity {
|
39
|
+
display: block;
|
40
|
+
position: fixed;
|
41
|
+
z-index: 2000;
|
42
|
+
top: 15px;
|
43
|
+
right: 15px;
|
44
|
+
width: 14px;
|
45
|
+
height: 14px;
|
46
|
+
border: solid 2px transparent;
|
47
|
+
border-top-color: #29d;
|
48
|
+
border-left-color: #29d;
|
49
|
+
border-radius: 10px;
|
50
|
+
-webkit-animation: pace-spinner 400ms linear infinite;
|
51
|
+
-moz-animation: pace-spinner 400ms linear infinite;
|
52
|
+
-ms-animation: pace-spinner 400ms linear infinite;
|
53
|
+
-o-animation: pace-spinner 400ms linear infinite;
|
54
|
+
animation: pace-spinner 400ms linear infinite;
|
55
|
+
}
|
56
|
+
|
57
|
+
@-webkit-keyframes pace-spinner {
|
58
|
+
0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
|
59
|
+
100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
|
60
|
+
}
|
61
|
+
@-moz-keyframes pace-spinner {
|
62
|
+
0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }
|
63
|
+
100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }
|
64
|
+
}
|
65
|
+
@-o-keyframes pace-spinner {
|
66
|
+
0% { -o-transform: rotate(0deg); transform: rotate(0deg); }
|
67
|
+
100% { -o-transform: rotate(360deg); transform: rotate(360deg); }
|
68
|
+
}
|
69
|
+
@-ms-keyframes pace-spinner {
|
70
|
+
0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }
|
71
|
+
100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }
|
72
|
+
}
|
73
|
+
@keyframes pace-spinner {
|
74
|
+
0% { transform: rotate(0deg); transform: rotate(0deg); }
|
75
|
+
100% { transform: rotate(360deg); transform: rotate(360deg); }
|
76
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
body { background-color: #fff; color: #333; }
|
2
|
+
|
3
|
+
body, p, ol, ul, td {
|
4
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
+
font-size: 13px;
|
6
|
+
line-height: 18px;
|
7
|
+
}
|
8
|
+
|
9
|
+
pre {
|
10
|
+
background-color: #eee;
|
11
|
+
padding: 10px;
|
12
|
+
font-size: 11px;
|
13
|
+
}
|
14
|
+
|
15
|
+
a { color: #000; }
|
16
|
+
a:visited { color: #666; }
|
17
|
+
a:hover { color: #fff; background-color:#000; }
|
18
|
+
|
19
|
+
div.field, div.actions {
|
20
|
+
margin-bottom: 10px;
|
21
|
+
}
|
22
|
+
|
23
|
+
#notice {
|
24
|
+
color: green;
|
25
|
+
}
|
26
|
+
|
27
|
+
.field_with_errors {
|
28
|
+
padding: 2px;
|
29
|
+
background-color: red;
|
30
|
+
display: table;
|
31
|
+
}
|
32
|
+
|
33
|
+
#error_explanation {
|
34
|
+
width: 450px;
|
35
|
+
border: 2px solid red;
|
36
|
+
padding: 7px;
|
37
|
+
padding-bottom: 0;
|
38
|
+
margin-bottom: 20px;
|
39
|
+
background-color: #f0f0f0;
|
40
|
+
}
|
41
|
+
|
42
|
+
#error_explanation h2 {
|
43
|
+
text-align: left;
|
44
|
+
font-weight: bold;
|
45
|
+
padding: 5px 5px 5px 15px;
|
46
|
+
font-size: 12px;
|
47
|
+
margin: -7px;
|
48
|
+
margin-bottom: 0px;
|
49
|
+
background-color: #c00;
|
50
|
+
color: #fff;
|
51
|
+
}
|
52
|
+
|
53
|
+
#error_explanation ul li {
|
54
|
+
font-size: 12px;
|
55
|
+
list-style: square;
|
56
|
+
}
|
@@ -0,0 +1,151 @@
|
|
1
|
+
require_dependency "rails_marketplace/application_controller"
|
2
|
+
|
3
|
+
module RailsMarketplace
|
4
|
+
class AdminController < ApplicationController
|
5
|
+
layout 'rails_marketplace/super_admin'
|
6
|
+
include AdminHelper
|
7
|
+
|
8
|
+
before_action :require_login, :except => [:login_form, :login, :signup_form, :signup]
|
9
|
+
before_action :set_current_admin
|
10
|
+
before_action :set_current_category, :only => [:edit_category, :update_category, :delete_category]
|
11
|
+
|
12
|
+
def login_form
|
13
|
+
if admin_logged_in?
|
14
|
+
redirect_to admin_dashboard_path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def login
|
19
|
+
admin = Admin.find_by(email: params[:admin][:email].downcase)
|
20
|
+
if admin && admin.authenticate(params[:admin][:password])
|
21
|
+
admin_log_in admin
|
22
|
+
redirect_to admin_dashboard_path
|
23
|
+
else
|
24
|
+
flash.now[:error] = 'Invalid email/password combination'
|
25
|
+
render 'login_form'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def dashboard
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
def signup_form
|
34
|
+
@admin = Admin.new
|
35
|
+
end
|
36
|
+
|
37
|
+
def signup
|
38
|
+
@admin = Admin.new(admin_params)
|
39
|
+
if @admin.save
|
40
|
+
admin_log_in @admin
|
41
|
+
redirect_to admin_dashboard_path
|
42
|
+
else
|
43
|
+
render 'signup_form'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def logout
|
48
|
+
admin_log_out
|
49
|
+
redirect_to admin_login_path
|
50
|
+
end
|
51
|
+
|
52
|
+
def sellers
|
53
|
+
@sellers = Seller.all
|
54
|
+
end
|
55
|
+
|
56
|
+
def seller_products
|
57
|
+
seller_id = params[:id]
|
58
|
+
seller = Seller.find(seller_id)
|
59
|
+
@products = Product.where(seller: seller)
|
60
|
+
end
|
61
|
+
|
62
|
+
def categories
|
63
|
+
# @categories = Category.all
|
64
|
+
end
|
65
|
+
|
66
|
+
def add_category
|
67
|
+
@categories = Category.walk_tree
|
68
|
+
end
|
69
|
+
|
70
|
+
def create_category
|
71
|
+
@category = Category.new(category_params)
|
72
|
+
if @category.save
|
73
|
+
flash[:notice] = 'New category was successfully added!'
|
74
|
+
redirect_to admin_categories_path
|
75
|
+
else
|
76
|
+
render 'add_category'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def edit_category
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
def update_category
|
85
|
+
if @category.update_attributes(category_params)
|
86
|
+
flash[:notice] = 'Category was successfully updated!'
|
87
|
+
redirect_to admin_categories_path
|
88
|
+
else
|
89
|
+
render 'update_category'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def delete_category
|
94
|
+
@category.destroy
|
95
|
+
redirect_to admin_categories_path
|
96
|
+
end
|
97
|
+
|
98
|
+
def products
|
99
|
+
@products = Product.all
|
100
|
+
end
|
101
|
+
|
102
|
+
def category_products
|
103
|
+
category_id = params[:id]
|
104
|
+
category = Category.friendly.find(category_id)
|
105
|
+
@products = category.products
|
106
|
+
end
|
107
|
+
|
108
|
+
def settings_form
|
109
|
+
if @current_admin.admin_setting.nil?
|
110
|
+
AdminSetting.create admin: @current_admin
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def settings
|
115
|
+
@current_admin.admin_setting.update_attributes(admin_setting_params)
|
116
|
+
redirect_to admin_dashboard_path
|
117
|
+
end
|
118
|
+
|
119
|
+
private
|
120
|
+
|
121
|
+
def admin_params
|
122
|
+
params.require(:admin).permit(:name, :email, :password,
|
123
|
+
:password_confirmation)
|
124
|
+
end
|
125
|
+
|
126
|
+
def admin_setting_params
|
127
|
+
params.require(:admin_setting).permit(:stripe_publishable_key, :stripe_secret_key)
|
128
|
+
end
|
129
|
+
|
130
|
+
def category_params
|
131
|
+
params.require(:category).permit(:name, :description, :image, :parent_id)
|
132
|
+
end
|
133
|
+
|
134
|
+
def set_current_admin
|
135
|
+
return unless session[:admin_id]
|
136
|
+
@current_admin ||= Admin.find(session[:admin_id])
|
137
|
+
end
|
138
|
+
|
139
|
+
def set_current_category
|
140
|
+
return unless params[:id]
|
141
|
+
@category ||= Category.find(params[:id])
|
142
|
+
end
|
143
|
+
|
144
|
+
def require_login
|
145
|
+
unless admin_logged_in?
|
146
|
+
flash[:error] = "You must be logged in to access this section"
|
147
|
+
redirect_to admin_login_path # halts request cycle
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,172 @@
|
|
1
|
+
require_dependency "rails_marketplace/application_controller"
|
2
|
+
|
3
|
+
module RailsMarketplace
|
4
|
+
class CatalogController < ApplicationController
|
5
|
+
|
6
|
+
before_action :set_current_category, :only => [:category_products, :product_detail]
|
7
|
+
before_action :set_current_cart, :only => [:add_to_cart, :purchase, :cart, :cart_update, :cart_delete, :checkout, :charge]
|
8
|
+
after_action :reset_success_orders, :only => [:checkout_success]
|
9
|
+
|
10
|
+
def index
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
def category_products
|
15
|
+
@products = @category.products
|
16
|
+
end
|
17
|
+
|
18
|
+
def product_detail
|
19
|
+
@product = Product.friendly.find(params[:title])
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_to_cart
|
23
|
+
@cart.add_product params[:product_id], params[:quantity]
|
24
|
+
redirect_to cart_path
|
25
|
+
end
|
26
|
+
|
27
|
+
def purchase
|
28
|
+
@cart.add_product params[:product_id], params[:quantity]
|
29
|
+
redirect_to checkout_path
|
30
|
+
end
|
31
|
+
|
32
|
+
def cart
|
33
|
+
@cart_quantity = @cart.cart_quantity
|
34
|
+
@cart_subtotal = @cart.cart_subtotal
|
35
|
+
end
|
36
|
+
|
37
|
+
def cart_update
|
38
|
+
@cart.update_product params[:product_id], params[:quantity]
|
39
|
+
end
|
40
|
+
|
41
|
+
def cart_delete
|
42
|
+
@cart.delete_product params[:product_id]
|
43
|
+
redirect_to cart_path
|
44
|
+
end
|
45
|
+
|
46
|
+
def checkout
|
47
|
+
@total = @cart.cart_subtotal
|
48
|
+
@amount = @cart.cart_subtotal.cents
|
49
|
+
@product_groups = @cart.get_product_groups
|
50
|
+
end
|
51
|
+
|
52
|
+
def charge
|
53
|
+
Stripe.api_key = AdminSetting.stripe_secret_key
|
54
|
+
# Amount in cents
|
55
|
+
@subtotal = @cart.cart_subtotal.cents
|
56
|
+
#@shipping_total =
|
57
|
+
#@tax_total =
|
58
|
+
|
59
|
+
charge_total = @subtotal
|
60
|
+
|
61
|
+
# Get the credit card details submitted by the form
|
62
|
+
token = params[:stripeToken]
|
63
|
+
group_order_id = get_new_group_order_id
|
64
|
+
# Create a charge: this will charge the user's card
|
65
|
+
begin
|
66
|
+
charge = Stripe::Charge.create(
|
67
|
+
:amount => charge_total, # Amount in cents
|
68
|
+
:currency => "usd",
|
69
|
+
:source => token,
|
70
|
+
:transfer_group => group_order_id
|
71
|
+
)
|
72
|
+
rescue Stripe::CardError => e
|
73
|
+
# The card has been declined
|
74
|
+
flash[:error] = e.message
|
75
|
+
redirect_to checkout_path
|
76
|
+
end
|
77
|
+
|
78
|
+
order_params = {
|
79
|
+
email: params[:email],
|
80
|
+
fullname: params[:fullname],
|
81
|
+
address1: params[:address1],
|
82
|
+
address2: params[:address2],
|
83
|
+
city: params[:city],
|
84
|
+
state: params[:state],
|
85
|
+
zip: params[:zip],
|
86
|
+
country: params[:country],
|
87
|
+
phone: params[:phone],
|
88
|
+
is_gift: params[:is_gift],
|
89
|
+
gift_message: params[:gift_message]
|
90
|
+
}
|
91
|
+
# group products by seller
|
92
|
+
product_groups = @cart.get_product_groups
|
93
|
+
i = 0
|
94
|
+
product_groups.each do |seller_id, cart_products|
|
95
|
+
i += 1
|
96
|
+
order_params[:id] = "#{group_order_id}-#{i}"
|
97
|
+
order_params[:seller_id] = seller_id
|
98
|
+
order_params[:shipping_method] = params[:shipping_method][seller_id.to_s]
|
99
|
+
|
100
|
+
# transfer to seller account
|
101
|
+
seller_subtotal = get_seller_subtotal(cart_products).cents
|
102
|
+
# seller_shipping_fee = get_seller_shipping seller_id, params[:shipping_method][seller_id.to_s]
|
103
|
+
seller_total = seller_subtotal
|
104
|
+
|
105
|
+
# assumming 5% marketplace fee, 2% stripe fee
|
106
|
+
seller_transfer_total = (seller_total * 0.93).to_i
|
107
|
+
|
108
|
+
# Create a Transfer to a connected account (later):
|
109
|
+
transfer = Stripe::Transfer.create({
|
110
|
+
:amount => seller_transfer_total,
|
111
|
+
:currency => "usd",
|
112
|
+
:destination => "#{SellerSetting.find_by_seller_id(seller_id).stripe_account_id}",
|
113
|
+
:transfer_group => "#{group_order_id}",
|
114
|
+
})
|
115
|
+
|
116
|
+
# save seller's order
|
117
|
+
order = Order.new(order_params)
|
118
|
+
order.save
|
119
|
+
order.save_products cart_products
|
120
|
+
(session[:order_ids] ||= []) << order.id
|
121
|
+
|
122
|
+
end
|
123
|
+
# todo: send email
|
124
|
+
redirect_to checkout_success_path
|
125
|
+
end
|
126
|
+
|
127
|
+
def checkout_success
|
128
|
+
# todo: only show after checkout success
|
129
|
+
if session[:order_ids]
|
130
|
+
@order_ids = session[:order_ids]
|
131
|
+
else
|
132
|
+
redirect_to cart_path
|
133
|
+
end
|
134
|
+
session.delete(:cart_id)
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
private
|
139
|
+
def set_current_category
|
140
|
+
if params[:name]
|
141
|
+
session[:current_category_name] = params[:name]
|
142
|
+
end
|
143
|
+
return unless session[:current_category_name]
|
144
|
+
@category ||= Category.friendly.find(session[:current_category_name])
|
145
|
+
end
|
146
|
+
|
147
|
+
def set_current_cart
|
148
|
+
@cart ||= Cart.find(session[:cart_id])
|
149
|
+
|
150
|
+
rescue ActiveRecord::RecordNotFound
|
151
|
+
@cart = Cart.create
|
152
|
+
session[:cart_id] = @cart.id
|
153
|
+
end
|
154
|
+
|
155
|
+
def reset_success_orders
|
156
|
+
session.delete(:order_ids)
|
157
|
+
end
|
158
|
+
|
159
|
+
# todo: generate unique order id
|
160
|
+
def get_new_group_order_id
|
161
|
+
"20170319"
|
162
|
+
end
|
163
|
+
|
164
|
+
def get_seller_subtotal(cart_products)
|
165
|
+
subtotal = 0
|
166
|
+
cart_products.each do |cart_product|
|
167
|
+
subtotal += cart_product.quantity * cart_product.price
|
168
|
+
end
|
169
|
+
subtotal
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|