├── .babelrc
├── .codeclimate.yml
├── .dockerignore
├── .editorconfig
├── .eslintrc
├── .gitignore
├── .gitmodules
├── .jsbeautifyrc
├── .meteor
├── .finished-upgraders
├── .gitignore
├── .id
├── cordova-plugins
├── dev_bundle
├── packages
├── platforms
├── release
└── versions
├── .pullapprove.yml
├── Dockerfile
├── Dockerfile_DEV
├── Dockerfile_PROD
├── Dockerfile_with_MONGO
├── LICENSE.md
├── README.md
├── TESTPLAN.md
├── bin
├── check-settings
├── clone-packages.sh
├── collection-dump
├── deploy
├── docker
│ ├── .gitignore
│ ├── build-bundle.sh
│ ├── build-meteor.sh
│ ├── build-packages.sh
│ ├── entrypoint-PROD-build-with-src.sh
│ ├── entrypoint.sh
│ ├── install-graphicsmagick.sh
│ └── install-mongodb.sh
├── dump
├── env.sh
├── install
├── load-dump
├── reload
├── reset
└── run
├── circle.yml
├── client
├── analytics
│ └── custom.analytics.json
├── templates
│ ├── index.html
│ ├── layout.html
│ └── layout.js
└── themes
│ └── .gitignore
├── common
├── config.js
└── router.js
├── docker
├── docker-compose.test.yml
├── packages.example
├── reaction.dev.src.docker
├── reaction.minimal.docker
├── reaction.mongo.docker
├── reaction.prod.docker
├── reaction.prod.docker~reactioncommerce_development
└── scripts
│ ├── build-meteor.sh
│ ├── build-packages.sh
│ ├── entrypoint.sh
│ ├── install-deps.sh
│ ├── install-meteor.sh
│ ├── install-mongodb.sh
│ ├── install-node.sh
│ ├── install-phantom.sh
│ ├── post-build-cleanup.sh
│ └── post-install-cleanup.sh
├── mobile-config.js
├── package.json
├── packages
├── .gitignore
├── my-custom-theme-template
│ ├── README.md
│ ├── main.less
│ ├── package.js
│ └── styles
│ │ ├── base.less
│ │ └── variables.less
├── reaction-accounts
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ ├── helpers.js
│ │ │ ├── subscriptions.js
│ │ │ ├── util.js
│ │ │ └── validation.js
│ │ └── templates
│ │ │ ├── accounts.html
│ │ │ ├── addressBook
│ │ │ ├── add
│ │ │ │ ├── add.html
│ │ │ │ └── add.js
│ │ │ ├── addressBook.html
│ │ │ ├── addressBook.js
│ │ │ ├── edit
│ │ │ │ ├── edit.html
│ │ │ │ └── edit.js
│ │ │ ├── form
│ │ │ │ ├── form.html
│ │ │ │ └── form.js
│ │ │ └── grid
│ │ │ │ ├── grid.html
│ │ │ │ └── grid.js
│ │ │ ├── dashboard
│ │ │ ├── dashboard.html
│ │ │ └── dashboard.js
│ │ │ ├── dropdown
│ │ │ ├── dropdown.html
│ │ │ └── dropdown.js
│ │ │ ├── forgot
│ │ │ ├── forgot.html
│ │ │ └── forgot.js
│ │ │ ├── guestSignUp
│ │ │ ├── guestSignUp.html
│ │ │ └── guestSignUp.js
│ │ │ ├── inline
│ │ │ ├── inline.html
│ │ │ └── inline.js
│ │ │ ├── login
│ │ │ ├── loginButtons.html
│ │ │ ├── loginForm.html
│ │ │ ├── loginForm.js
│ │ │ └── loginForm.less
│ │ │ ├── members
│ │ │ ├── member.html
│ │ │ ├── member.js
│ │ │ ├── memberForm.html
│ │ │ └── memberForm.js
│ │ │ ├── profile
│ │ │ ├── profile.html
│ │ │ └── profile.js
│ │ │ ├── signIn
│ │ │ ├── signIn.html
│ │ │ └── signIn.js
│ │ │ ├── signUp
│ │ │ ├── signUp.html
│ │ │ └── signUp.js
│ │ │ └── updatePassword
│ │ │ ├── updatePassword.html
│ │ │ └── updatePassword.js
│ ├── package.js
│ ├── server
│ │ ├── accounts.js
│ │ ├── methods
│ │ │ ├── accounts.js
│ │ │ └── serviceConfiguration.js
│ │ ├── policy.js
│ │ ├── publications
│ │ │ └── serviceConfiguration.js
│ │ └── register.js
│ └── tests
│ │ └── jasmine
│ │ ├── client
│ │ └── integration
│ │ │ └── login.js
│ │ └── server
│ │ └── integration
│ │ ├── accounts.js
│ │ └── publications.js
├── reaction-analytics-libs
│ ├── .gitignore
│ ├── .versions
│ ├── README.md
│ ├── analytics-lib.js
│ ├── analytics
│ │ ├── googleAnalytics.js
│ │ ├── mixpanel.js
│ │ └── segmentio.js
│ └── package.js
├── reaction-analytics
│ ├── .gitignore
│ ├── .npm
│ │ └── plugin
│ │ │ └── analytics-configurator
│ │ │ ├── .gitignore
│ │ │ ├── README
│ │ │ └── npm-shrinkwrap.json
│ ├── README.md
│ ├── client
│ │ ├── startup.js
│ │ └── templates
│ │ │ └── reactionAnalytics
│ │ │ ├── reactionAnalytics.html
│ │ │ └── reactionAnalytics.js
│ ├── common
│ │ ├── collections.js
│ │ └── hooks.js
│ ├── package.js
│ └── server
│ │ ├── buildtools
│ │ ├── analyticsConfigurator.js
│ │ ├── analyticsSources.js
│ │ └── defaultConfiguration.js
│ │ ├── publications.js
│ │ ├── register.js
│ │ └── security
│ │ ├── AnalyticsEvents.js
│ │ └── browserPolicy.js
├── reaction-catalog
│ ├── README.md
│ ├── common
│ │ └── helpers.js
│ ├── package.js
│ ├── server
│ │ ├── methods.js
│ │ └── register.js
│ └── tests
│ │ └── jasmine
│ │ └── server
│ │ └── integration
│ │ └── products.js
├── reaction-checkout
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ └── cart.js
│ │ └── templates
│ │ │ └── cart
│ │ │ ├── cartDrawer
│ │ │ ├── cartDrawer.html
│ │ │ ├── cartDrawer.js
│ │ │ ├── cartItems
│ │ │ │ ├── cartItems.html
│ │ │ │ └── cartItems.js
│ │ │ └── cartSubTotals
│ │ │ │ ├── cartSubTotals.html
│ │ │ │ └── cartSubTotals.js
│ │ │ ├── cartIcon
│ │ │ ├── cartIcon.html
│ │ │ └── cartIcon.js
│ │ │ ├── cartPanel
│ │ │ ├── cartPanel.html
│ │ │ └── cartPanel.js
│ │ │ └── checkout
│ │ │ ├── addressBook
│ │ │ ├── addressBook.html
│ │ │ └── addressBook.js
│ │ │ ├── checkout.html
│ │ │ ├── checkout.js
│ │ │ ├── completed
│ │ │ ├── completed.html
│ │ │ └── completed.js
│ │ │ ├── header
│ │ │ └── header.html
│ │ │ ├── login
│ │ │ ├── login.html
│ │ │ └── login.js
│ │ │ ├── payment
│ │ │ ├── methods
│ │ │ │ ├── cards.html
│ │ │ │ └── cards.js
│ │ │ └── payment.html
│ │ │ ├── progressBar
│ │ │ ├── progressBar.html
│ │ │ └── progressBar.js
│ │ │ ├── review
│ │ │ ├── review.html
│ │ │ └── review.js
│ │ │ └── shipping
│ │ │ ├── shipping.html
│ │ │ └── shipping.js
│ ├── common
│ │ └── methods
│ │ │ ├── cart.js
│ │ │ └── workflow.js
│ ├── package.js
│ └── server
│ │ ├── logger.js
│ │ └── register.js
├── reaction-collections
│ ├── README.md
│ ├── client
│ │ └── subscriptions.js
│ ├── common
│ │ ├── collections
│ │ │ ├── collectionFS.js
│ │ │ ├── collections.js
│ │ │ └── hooks
│ │ │ │ └── hooks.js
│ │ └── globals.js
│ ├── package.js
│ ├── server
│ │ ├── buildSelectors.js
│ │ ├── logger.js
│ │ ├── main.js
│ │ ├── publications
│ │ │ ├── accounts.js
│ │ │ ├── cart.js
│ │ │ ├── discounts.js
│ │ │ ├── media.js
│ │ │ ├── members.js
│ │ │ ├── orders.js
│ │ │ ├── packages.js
│ │ │ ├── product.js
│ │ │ ├── products.js
│ │ │ ├── sessions.js
│ │ │ ├── shipping.js
│ │ │ ├── shops.js
│ │ │ ├── tags.js
│ │ │ ├── taxes.js
│ │ │ ├── themes.js
│ │ │ └── translations.js
│ │ └── security.js
│ └── tests
│ │ └── jasmine
│ │ └── server
│ │ └── integration
│ │ └── publications.js
├── reaction-core-theme
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .versions
│ ├── README.md
│ ├── build-package.sh
│ ├── default
│ │ ├── alerts.less
│ │ ├── base.less
│ │ ├── bootstrap.rtl.less
│ │ ├── dropdowns.less
│ │ ├── forms.less
│ │ ├── grid.less
│ │ ├── mixins.less
│ │ ├── mixins
│ │ │ ├── flexbox.less
│ │ │ ├── lesshat.less
│ │ │ ├── ribbon.less
│ │ │ └── rtl.less
│ │ ├── navs.less
│ │ ├── panels.less
│ │ ├── popovers.less
│ │ └── variables.less
│ ├── fonts
│ │ ├── fontello.eot
│ │ ├── fontello.svg
│ │ ├── fontello.ttf
│ │ ├── fontello.woff
│ │ └── fontello.woff2
│ ├── lib
│ │ └── bootstrap
│ │ │ ├── .editorconfig
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .hound.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CNAME
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Gruntfile.js
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── _config.yml
│ │ │ ├── bower.json
│ │ │ ├── composer.json
│ │ │ ├── dist
│ │ │ ├── css
│ │ │ │ ├── bootstrap-theme.css
│ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ ├── bootstrap-theme.min.css.map
│ │ │ │ ├── bootstrap.css
│ │ │ │ ├── bootstrap.css.map
│ │ │ │ ├── bootstrap.min.css
│ │ │ │ └── bootstrap.min.css.map
│ │ │ ├── fonts
│ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ └── js
│ │ │ │ ├── bootstrap.js
│ │ │ │ ├── bootstrap.min.js
│ │ │ │ └── npm.js
│ │ │ ├── docs
│ │ │ ├── LICENSE
│ │ │ ├── _data
│ │ │ │ ├── browser-bugs.yml
│ │ │ │ ├── core-team.yml
│ │ │ │ ├── glyphicons.yml
│ │ │ │ ├── sass-team.yml
│ │ │ │ ├── showcase.yml
│ │ │ │ └── translations.yml
│ │ │ ├── _includes
│ │ │ │ ├── ads.html
│ │ │ │ ├── components
│ │ │ │ │ ├── alerts.html
│ │ │ │ │ ├── badges.html
│ │ │ │ │ ├── breadcrumbs.html
│ │ │ │ │ ├── button-dropdowns.html
│ │ │ │ │ ├── button-groups.html
│ │ │ │ │ ├── dropdowns.html
│ │ │ │ │ ├── glyphicons.html
│ │ │ │ │ ├── input-groups.html
│ │ │ │ │ ├── jumbotron.html
│ │ │ │ │ ├── labels.html
│ │ │ │ │ ├── list-group.html
│ │ │ │ │ ├── media.html
│ │ │ │ │ ├── navbar.html
│ │ │ │ │ ├── navs.html
│ │ │ │ │ ├── page-header.html
│ │ │ │ │ ├── pagination.html
│ │ │ │ │ ├── panels.html
│ │ │ │ │ ├── progress-bars.html
│ │ │ │ │ ├── responsive-embed.html
│ │ │ │ │ ├── thumbnails.html
│ │ │ │ │ └── wells.html
│ │ │ │ ├── css
│ │ │ │ │ ├── buttons.html
│ │ │ │ │ ├── code.html
│ │ │ │ │ ├── forms.html
│ │ │ │ │ ├── grid.html
│ │ │ │ │ ├── helpers.html
│ │ │ │ │ ├── images.html
│ │ │ │ │ ├── less.html
│ │ │ │ │ ├── overview.html
│ │ │ │ │ ├── responsive-utilities.html
│ │ │ │ │ ├── sass.html
│ │ │ │ │ ├── tables.html
│ │ │ │ │ └── type.html
│ │ │ │ ├── customizer-variables.html
│ │ │ │ ├── footer.html
│ │ │ │ ├── getting-started
│ │ │ │ │ ├── accessibility.html
│ │ │ │ │ ├── browser-device-support.html
│ │ │ │ │ ├── community.html
│ │ │ │ │ ├── disabling-responsiveness.html
│ │ │ │ │ ├── download.html
│ │ │ │ │ ├── examples.html
│ │ │ │ │ ├── grunt.html
│ │ │ │ │ ├── license.html
│ │ │ │ │ ├── template.html
│ │ │ │ │ ├── third-party-support.html
│ │ │ │ │ ├── tools.html
│ │ │ │ │ ├── translations.html
│ │ │ │ │ └── whats-included.html
│ │ │ │ ├── header.html
│ │ │ │ ├── js
│ │ │ │ │ ├── affix.html
│ │ │ │ │ ├── alerts.html
│ │ │ │ │ ├── buttons.html
│ │ │ │ │ ├── carousel.html
│ │ │ │ │ ├── collapse.html
│ │ │ │ │ ├── dropdowns.html
│ │ │ │ │ ├── modal.html
│ │ │ │ │ ├── overview.html
│ │ │ │ │ ├── popovers.html
│ │ │ │ │ ├── scrollspy.html
│ │ │ │ │ ├── tabs.html
│ │ │ │ │ ├── tooltips.html
│ │ │ │ │ └── transitions.html
│ │ │ │ └── nav
│ │ │ │ │ ├── about.html
│ │ │ │ │ ├── components.html
│ │ │ │ │ ├── css.html
│ │ │ │ │ ├── customize.html
│ │ │ │ │ ├── getting-started.html
│ │ │ │ │ ├── javascript.html
│ │ │ │ │ ├── main.html
│ │ │ │ │ └── migration.html
│ │ │ ├── _jade
│ │ │ │ ├── customizer-nav.jade
│ │ │ │ └── customizer-variables.jade
│ │ │ ├── _layouts
│ │ │ │ ├── default.html
│ │ │ │ └── home.html
│ │ │ ├── _plugins
│ │ │ │ ├── bridge.rb
│ │ │ │ └── bugify.rb
│ │ │ ├── about.html
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── assets
│ │ │ │ ├── brand
│ │ │ │ │ ├── bootstrap-outline.svg
│ │ │ │ │ ├── bootstrap-punchout.svg
│ │ │ │ │ └── bootstrap-solid.svg
│ │ │ │ ├── css
│ │ │ │ │ ├── docs.min.css
│ │ │ │ │ ├── docs.min.css.map
│ │ │ │ │ ├── ie10-viewport-bug-workaround.css
│ │ │ │ │ └── src
│ │ │ │ │ │ ├── docs.css
│ │ │ │ │ │ └── pygments-manni.css
│ │ │ │ ├── flash
│ │ │ │ │ └── ZeroClipboard.swf
│ │ │ │ ├── img
│ │ │ │ │ ├── components.png
│ │ │ │ │ ├── devices.png
│ │ │ │ │ ├── expo-lyft.jpg
│ │ │ │ │ ├── expo-newsweek.jpg
│ │ │ │ │ ├── expo-riot.jpg
│ │ │ │ │ ├── expo-vogue.jpg
│ │ │ │ │ └── sass-less.png
│ │ │ │ └── js
│ │ │ │ │ ├── customize.min.js
│ │ │ │ │ ├── docs.min.js
│ │ │ │ │ ├── ie-emulation-modes-warning.js
│ │ │ │ │ ├── ie10-viewport-bug-workaround.js
│ │ │ │ │ ├── ie8-responsive-file-warning.js
│ │ │ │ │ ├── raw-files.min.js
│ │ │ │ │ ├── src
│ │ │ │ │ ├── application.js
│ │ │ │ │ └── customizer.js
│ │ │ │ │ └── vendor
│ │ │ │ │ ├── Blob.js
│ │ │ │ │ ├── FileSaver.js
│ │ │ │ │ ├── ZeroClipboard.min.js
│ │ │ │ │ ├── anchor.js
│ │ │ │ │ ├── autoprefixer.js
│ │ │ │ │ ├── holder.min.js
│ │ │ │ │ ├── jquery.min.js
│ │ │ │ │ ├── jszip.min.js
│ │ │ │ │ ├── less.min.js
│ │ │ │ │ └── uglify.min.js
│ │ │ ├── browser-bugs.html
│ │ │ ├── components.html
│ │ │ ├── css.html
│ │ │ ├── customize.html
│ │ │ ├── dist
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-theme.css
│ │ │ │ │ ├── bootstrap-theme.css.map
│ │ │ │ │ ├── bootstrap-theme.min.css
│ │ │ │ │ ├── bootstrap-theme.min.css.map
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ ├── bootstrap.css.map
│ │ │ │ │ ├── bootstrap.min.css
│ │ │ │ │ └── bootstrap.min.css.map
│ │ │ │ ├── fonts
│ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ │ └── js
│ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ ├── bootstrap.min.js
│ │ │ │ │ └── npm.js
│ │ │ ├── examples
│ │ │ │ ├── blog
│ │ │ │ │ ├── blog.css
│ │ │ │ │ └── index.html
│ │ │ │ ├── carousel
│ │ │ │ │ ├── carousel.css
│ │ │ │ │ └── index.html
│ │ │ │ ├── cover
│ │ │ │ │ ├── cover.css
│ │ │ │ │ └── index.html
│ │ │ │ ├── dashboard
│ │ │ │ │ ├── dashboard.css
│ │ │ │ │ └── index.html
│ │ │ │ ├── grid
│ │ │ │ │ ├── grid.css
│ │ │ │ │ └── index.html
│ │ │ │ ├── jumbotron-narrow
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── jumbotron-narrow.css
│ │ │ │ ├── jumbotron
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── jumbotron.css
│ │ │ │ ├── justified-nav
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── justified-nav.css
│ │ │ │ ├── navbar-fixed-top
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── navbar-fixed-top.css
│ │ │ │ ├── navbar-static-top
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── navbar-static-top.css
│ │ │ │ ├── navbar
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── navbar.css
│ │ │ │ ├── non-responsive
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── non-responsive.css
│ │ │ │ ├── offcanvas
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── offcanvas.css
│ │ │ │ │ └── offcanvas.js
│ │ │ │ ├── screenshots
│ │ │ │ │ ├── blog.jpg
│ │ │ │ │ ├── carousel.jpg
│ │ │ │ │ ├── cover.jpg
│ │ │ │ │ ├── dashboard.jpg
│ │ │ │ │ ├── equal-height-columns.jpg
│ │ │ │ │ ├── grid.jpg
│ │ │ │ │ ├── jumbotron-narrow.jpg
│ │ │ │ │ ├── jumbotron.jpg
│ │ │ │ │ ├── justified-nav.jpg
│ │ │ │ │ ├── navbar-fixed.jpg
│ │ │ │ │ ├── navbar-static.jpg
│ │ │ │ │ ├── navbar.jpg
│ │ │ │ │ ├── non-responsive.jpg
│ │ │ │ │ ├── offcanvas.jpg
│ │ │ │ │ ├── sign-in.jpg
│ │ │ │ │ ├── starter-template.jpg
│ │ │ │ │ ├── sticky-footer-navbar.jpg
│ │ │ │ │ ├── sticky-footer.jpg
│ │ │ │ │ └── theme.jpg
│ │ │ │ ├── signin
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── signin.css
│ │ │ │ ├── starter-template
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── starter-template.css
│ │ │ │ ├── sticky-footer-navbar
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── sticky-footer-navbar.css
│ │ │ │ ├── sticky-footer
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── sticky-footer.css
│ │ │ │ ├── theme
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── theme.css
│ │ │ │ └── tooltip-viewport
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── tooltip-viewport.css
│ │ │ │ │ └── tooltip-viewport.js
│ │ │ ├── favicon.ico
│ │ │ ├── getting-started.html
│ │ │ ├── index.html
│ │ │ ├── javascript.html
│ │ │ ├── migration.html
│ │ │ ├── robots.txt
│ │ │ └── sitemap.xml
│ │ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ ├── grunt
│ │ │ ├── .jshintrc
│ │ │ ├── bs-commonjs-generator.js
│ │ │ ├── bs-glyphicons-data-generator.js
│ │ │ ├── bs-lessdoc-parser.js
│ │ │ ├── bs-raw-files-generator.js
│ │ │ ├── configBridge.json
│ │ │ └── sauce_browsers.yml
│ │ │ ├── js
│ │ │ ├── .jscsrc
│ │ │ ├── .jshintrc
│ │ │ ├── affix.js
│ │ │ ├── alert.js
│ │ │ ├── button.js
│ │ │ ├── carousel.js
│ │ │ ├── collapse.js
│ │ │ ├── dropdown.js
│ │ │ ├── modal.js
│ │ │ ├── popover.js
│ │ │ ├── scrollspy.js
│ │ │ ├── tab.js
│ │ │ ├── tests
│ │ │ │ ├── README.md
│ │ │ │ ├── index.html
│ │ │ │ ├── unit
│ │ │ │ │ ├── .jshintrc
│ │ │ │ │ ├── affix.js
│ │ │ │ │ ├── alert.js
│ │ │ │ │ ├── button.js
│ │ │ │ │ ├── carousel.js
│ │ │ │ │ ├── collapse.js
│ │ │ │ │ ├── dropdown.js
│ │ │ │ │ ├── modal.js
│ │ │ │ │ ├── phantom.js
│ │ │ │ │ ├── popover.js
│ │ │ │ │ ├── scrollspy.js
│ │ │ │ │ ├── tab.js
│ │ │ │ │ └── tooltip.js
│ │ │ │ ├── vendor
│ │ │ │ │ ├── jquery.min.js
│ │ │ │ │ ├── qunit.css
│ │ │ │ │ └── qunit.js
│ │ │ │ └── visual
│ │ │ │ │ ├── affix-with-sticky-footer.html
│ │ │ │ │ ├── affix.html
│ │ │ │ │ ├── alert.html
│ │ │ │ │ ├── button.html
│ │ │ │ │ ├── carousel.html
│ │ │ │ │ ├── collapse.html
│ │ │ │ │ ├── dropdown.html
│ │ │ │ │ ├── modal.html
│ │ │ │ │ ├── popover.html
│ │ │ │ │ ├── scrollspy.html
│ │ │ │ │ ├── tab.html
│ │ │ │ │ └── tooltip.html
│ │ │ ├── tooltip.js
│ │ │ └── transition.js
│ │ │ ├── less
│ │ │ ├── .csscomb.json
│ │ │ ├── .csslintrc
│ │ │ ├── alerts.less
│ │ │ ├── badges.less
│ │ │ ├── bootstrap.less
│ │ │ ├── breadcrumbs.less
│ │ │ ├── button-groups.less
│ │ │ ├── buttons.less
│ │ │ ├── carousel.less
│ │ │ ├── close.less
│ │ │ ├── code.less
│ │ │ ├── component-animations.less
│ │ │ ├── dropdowns.less
│ │ │ ├── forms.less
│ │ │ ├── glyphicons.less
│ │ │ ├── grid.less
│ │ │ ├── input-groups.less
│ │ │ ├── jumbotron.less
│ │ │ ├── labels.less
│ │ │ ├── list-group.less
│ │ │ ├── media.less
│ │ │ ├── mixins.less
│ │ │ ├── mixins
│ │ │ │ ├── alerts.less
│ │ │ │ ├── background-variant.less
│ │ │ │ ├── border-radius.less
│ │ │ │ ├── buttons.less
│ │ │ │ ├── center-block.less
│ │ │ │ ├── clearfix.less
│ │ │ │ ├── forms.less
│ │ │ │ ├── gradients.less
│ │ │ │ ├── grid-framework.less
│ │ │ │ ├── grid.less
│ │ │ │ ├── hide-text.less
│ │ │ │ ├── image.less
│ │ │ │ ├── labels.less
│ │ │ │ ├── list-group.less
│ │ │ │ ├── nav-divider.less
│ │ │ │ ├── nav-vertical-align.less
│ │ │ │ ├── opacity.less
│ │ │ │ ├── pagination.less
│ │ │ │ ├── panels.less
│ │ │ │ ├── progress-bar.less
│ │ │ │ ├── reset-filter.less
│ │ │ │ ├── reset-text.less
│ │ │ │ ├── resize.less
│ │ │ │ ├── responsive-visibility.less
│ │ │ │ ├── size.less
│ │ │ │ ├── tab-focus.less
│ │ │ │ ├── table-row.less
│ │ │ │ ├── text-emphasis.less
│ │ │ │ ├── text-overflow.less
│ │ │ │ └── vendor-prefixes.less
│ │ │ ├── modals.less
│ │ │ ├── navbar.less
│ │ │ ├── navs.less
│ │ │ ├── normalize.less
│ │ │ ├── pager.less
│ │ │ ├── pagination.less
│ │ │ ├── panels.less
│ │ │ ├── popovers.less
│ │ │ ├── print.less
│ │ │ ├── progress-bars.less
│ │ │ ├── responsive-embed.less
│ │ │ ├── responsive-utilities.less
│ │ │ ├── scaffolding.less
│ │ │ ├── tables.less
│ │ │ ├── theme.less
│ │ │ ├── thumbnails.less
│ │ │ ├── tooltip.less
│ │ │ ├── type.less
│ │ │ ├── utilities.less
│ │ │ ├── variables.less
│ │ │ └── wells.less
│ │ │ ├── nuget
│ │ │ ├── MyGet.ps1
│ │ │ ├── bootstrap.less.nuspec
│ │ │ └── bootstrap.nuspec
│ │ │ ├── package.js
│ │ │ ├── package.json
│ │ │ └── test-infra
│ │ │ ├── README.md
│ │ │ ├── S3Cachefile.json
│ │ │ ├── npm-shrinkwrap.json
│ │ │ ├── requirements.txt
│ │ │ ├── s3_cache.py
│ │ │ └── uncached-npm-install.sh
│ ├── package.js
│ ├── theme-data.js
│ └── theme
│ │ ├── accounts
│ │ ├── accounts.less
│ │ └── inline
│ │ │ └── inline.less
│ │ ├── cart
│ │ ├── cartDrawer
│ │ │ ├── cartDrawer.less
│ │ │ ├── cartItems
│ │ │ │ └── cartItems.less
│ │ │ └── cartSubTotals
│ │ │ │ └── cartSubTotals.less
│ │ ├── cartIcon
│ │ │ └── cartIcon.less
│ │ └── checkout
│ │ │ ├── addressBook
│ │ │ └── addressBook.less
│ │ │ ├── checkout.less
│ │ │ └── progressBar
│ │ │ └── progressBar.less
│ │ ├── dashboard
│ │ ├── console
│ │ │ └── console.less
│ │ ├── dashboard.less
│ │ ├── icon.css
│ │ ├── orders
│ │ │ └── orders.less
│ │ ├── packages
│ │ │ └── grid
│ │ │ │ └── package
│ │ │ │ └── package.less
│ │ ├── shop
│ │ │ ├── accounts.less
│ │ │ └── settings.less
│ │ └── widget
│ │ │ └── widget.less
│ │ ├── layout
│ │ ├── footer
│ │ │ └── footer.less
│ │ ├── header
│ │ │ ├── header.less
│ │ │ └── tags
│ │ │ │ └── tags.less
│ │ └── layout.less
│ │ └── products
│ │ ├── productDetail
│ │ ├── attributes
│ │ │ └── attributes.less
│ │ ├── images
│ │ │ └── productImageGallery.less
│ │ ├── productDetail.less
│ │ ├── tags
│ │ │ └── tags.less
│ │ └── variants
│ │ │ ├── variant.less
│ │ │ ├── variantForm
│ │ │ ├── childVariant
│ │ │ │ └── childVariant.less
│ │ │ └── variantForm.less
│ │ │ └── variantList
│ │ │ └── variantList.less
│ │ ├── productGrid
│ │ └── productGrid.less
│ │ ├── productList
│ │ └── productList.less
│ │ └── products.less
├── reaction-core
│ ├── .gitignore
│ ├── .npm
│ │ └── package
│ │ │ ├── .gitignore
│ │ │ ├── README
│ │ │ └── npm-shrinkwrap.json
│ ├── LICENSE.md
│ ├── README.md
│ ├── client
│ │ ├── components
│ │ │ └── numericInput
│ │ │ │ ├── numericInput.html
│ │ │ │ └── numericInput.js
│ │ ├── helpers
│ │ │ ├── apps.js
│ │ │ ├── globals.js
│ │ │ ├── layout.js
│ │ │ ├── permissions.js
│ │ │ ├── products.js
│ │ │ └── utilities.js
│ │ └── main.js
│ ├── common
│ │ ├── common.js
│ │ ├── global.js
│ │ └── hooks
│ │ │ └── orders.js
│ ├── lib
│ │ ├── .bowerrc
│ │ ├── .gitignore
│ │ ├── bower.json
│ │ ├── css
│ │ │ └── jquery-ui.css
│ │ └── geocoder.js
│ ├── package.js
│ ├── server
│ │ ├── browserPolicy.js
│ │ ├── hooks.js
│ │ ├── import.js
│ │ ├── init.js
│ │ ├── jobs.js
│ │ ├── logger.js
│ │ ├── main.js
│ │ ├── methods
│ │ │ ├── .gitignore
│ │ │ ├── cart.js
│ │ │ ├── hooks
│ │ │ │ ├── cart.js
│ │ │ │ └── hooks.js
│ │ │ ├── orders.js
│ │ │ ├── payments.js
│ │ │ ├── shipping.js
│ │ │ ├── shop.js
│ │ │ └── workflows
│ │ │ │ └── orders.js
│ │ ├── register.js
│ │ └── registry
│ │ │ ├── assignRoles.js
│ │ │ ├── defaultAdmin.js
│ │ │ ├── loadPackages.js
│ │ │ ├── loadSettings.js
│ │ │ ├── registry.js
│ │ │ ├── setDomain.js
│ │ │ └── shopName.js
│ └── tests
│ │ └── jasmine
│ │ └── server
│ │ └── integration
│ │ ├── cart.js
│ │ ├── methods.js
│ │ └── shops.js
├── reaction-dashboard
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ └── dashboard
│ │ │ ├── dashboard.html
│ │ │ ├── dashboard.js
│ │ │ ├── import
│ │ │ ├── import.html
│ │ │ └── import.js
│ │ │ ├── packages
│ │ │ ├── README.md
│ │ │ ├── grid
│ │ │ │ ├── grid.html
│ │ │ │ ├── grid.js
│ │ │ │ └── package
│ │ │ │ │ ├── package.html
│ │ │ │ │ └── package.js
│ │ │ └── packages.html
│ │ │ ├── settings
│ │ │ ├── settings.html
│ │ │ └── settings.js
│ │ │ └── shop
│ │ │ └── settings
│ │ │ ├── settings.html
│ │ │ └── settings.js
│ ├── package.js
│ └── server
│ │ └── register.js
├── reaction-default-theme
│ ├── README.md
│ ├── img
│ │ └── .gitignore
│ ├── main.less
│ └── package.js
├── reaction-email-templates
│ ├── README.md
│ ├── package.js
│ ├── server
│ │ └── register.js
│ ├── templates.js
│ └── templates
│ │ ├── accounts
│ │ ├── inviteShopMember.html
│ │ └── sendWelcomeEmail.html
│ │ ├── checkout
│ │ └── checkoutLogin.html
│ │ ├── coreDefault.html
│ │ └── orders
│ │ ├── coreOrderCompleted.html
│ │ ├── coreOrderCreated.html
│ │ ├── coreOrderShippingInvoice.html
│ │ ├── coreOrderShippingSummary.html
│ │ ├── coreOrderShippingTracking.html
│ │ └── new.html
├── reaction-i18n
│ ├── .npm
│ │ └── package
│ │ │ ├── .gitignore
│ │ │ ├── README
│ │ │ └── npm-shrinkwrap.json
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ ├── helpers.js
│ │ │ └── i18n.js
│ │ ├── i18next.browserify.js
│ │ └── templates
│ │ │ ├── header
│ │ │ ├── i18n.html
│ │ │ └── i18n.js
│ │ │ ├── i18nSettings.html
│ │ │ └── i18nSettings.js
│ ├── package.js
│ ├── private
│ │ ├── data
│ │ │ └── i18n
│ │ │ │ ├── _README.md
│ │ │ │ ├── ar.json
│ │ │ │ ├── bg.json
│ │ │ │ ├── cn.json
│ │ │ │ ├── cs.json
│ │ │ │ ├── de.json
│ │ │ │ ├── el.json
│ │ │ │ ├── en.json
│ │ │ │ ├── es.json
│ │ │ │ ├── fr.json
│ │ │ │ ├── he.json
│ │ │ │ ├── hr.json
│ │ │ │ ├── hu.json
│ │ │ │ ├── it.json
│ │ │ │ ├── my.json
│ │ │ │ ├── nb.json
│ │ │ │ ├── nl.json
│ │ │ │ ├── pl.json
│ │ │ │ ├── pt.json
│ │ │ │ ├── ru.json
│ │ │ │ ├── sl.json
│ │ │ │ ├── sv.json
│ │ │ │ ├── tr.json
│ │ │ │ └── vi.json
│ │ └── readme.md
│ ├── server
│ │ ├── i18next.js
│ │ ├── import.js
│ │ ├── methods.js
│ │ └── register.js
│ └── tests
│ │ └── jasmine
│ │ └── server
│ │ └── integration
│ │ └── methods.js
├── reaction-inventory
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── dashboard
│ │ │ ├── inventory.html
│ │ │ └── inventory.js
│ │ │ └── settings
│ │ │ ├── settings.html
│ │ │ └── settings.js
│ ├── common
│ │ ├── collections.js
│ │ ├── globals.js
│ │ ├── hooks.js
│ │ ├── methods.js
│ │ └── schema.js
│ ├── package.js
│ ├── server
│ │ ├── logger.js
│ │ ├── methods.js
│ │ ├── publications.js
│ │ └── register.js
│ └── tests
│ │ └── jasmine
│ │ └── server
│ │ └── integration
│ │ └── inventorySpecs.js
├── reaction-layout
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ └── metadata.js
│ │ └── templates
│ │ │ ├── layout
│ │ │ ├── admin
│ │ │ │ ├── admin.html
│ │ │ │ └── admin.js
│ │ │ ├── alerts
│ │ │ │ ├── alerts.html
│ │ │ │ ├── alerts.js
│ │ │ │ ├── inlineAlerts.js
│ │ │ │ └── reactionAlerts.js
│ │ │ ├── createContentMenu
│ │ │ │ ├── createContentMenu.html
│ │ │ │ └── createContentMenu.js
│ │ │ ├── footer
│ │ │ │ └── footer.html
│ │ │ ├── header
│ │ │ │ ├── brand
│ │ │ │ │ └── brand.html
│ │ │ │ ├── header.html
│ │ │ │ ├── header.js
│ │ │ │ ├── menu
│ │ │ │ │ └── button.html
│ │ │ │ └── tags
│ │ │ │ │ └── tags.html
│ │ │ ├── layout.html
│ │ │ ├── layout.js
│ │ │ ├── loading
│ │ │ │ └── loading.html
│ │ │ ├── notFound
│ │ │ │ ├── notFound.html
│ │ │ │ └── notFound.js
│ │ │ └── notice
│ │ │ │ └── unauthorized.html
│ │ │ └── theme
│ │ │ ├── theme.html
│ │ │ └── theme.js
│ ├── package.js
│ ├── private
│ │ └── themes
│ │ │ └── notFound.css
│ └── server
│ │ └── register.js
├── reaction-logging
│ ├── .npm
│ │ └── package
│ │ │ ├── .gitignore
│ │ │ ├── README
│ │ │ └── npm-shrinkwrap.json
│ ├── README.md
│ ├── client
│ │ └── bunyan.browserify.js
│ ├── package.js
│ ├── server
│ │ └── main.js
│ └── tests
│ │ └── bunyan-test.js
├── reaction-orders
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ └── dashboard
│ │ │ └── orders
│ │ │ ├── details
│ │ │ ├── detail.html
│ │ │ └── detail.js
│ │ │ ├── list
│ │ │ ├── items
│ │ │ │ ├── items.html
│ │ │ │ └── items.js
│ │ │ ├── ordersList.html
│ │ │ ├── ordersList.js
│ │ │ ├── pdf
│ │ │ │ ├── pdf.html
│ │ │ │ └── pdf.js
│ │ │ └── summary
│ │ │ │ ├── summary.html
│ │ │ │ └── summary.js
│ │ │ ├── orderPage
│ │ │ ├── details
│ │ │ │ ├── details.html
│ │ │ │ └── details.js
│ │ │ ├── orderPage.html
│ │ │ └── orderPage.js
│ │ │ ├── orders.html
│ │ │ ├── orders.js
│ │ │ ├── social
│ │ │ └── orderSocial.html
│ │ │ └── workflow
│ │ │ ├── orderCompleted
│ │ │ └── orderCompleted.html
│ │ │ ├── orderSummary
│ │ │ └── orderSummary.html
│ │ │ ├── shippingInvoice
│ │ │ ├── shippingInvoice.html
│ │ │ └── shippingInvoice.js
│ │ │ ├── shippingSummary
│ │ │ ├── shippingSummary.html
│ │ │ └── shippingSummary.js
│ │ │ ├── shippingTracking
│ │ │ ├── shippingTracking.html
│ │ │ └── shippingTracking.js
│ │ │ ├── workflow.html
│ │ │ └── workflow.js
│ ├── package.js
│ └── server
│ │ └── register.js
├── reaction-p2p-marketplace-buyer
│ ├── README.md
│ ├── package.js
│ ├── reaction-p2p-marketplace-buyer-tests.js
│ └── reaction-p2p-marketplace-buyer.js
├── reaction-p2p-marketplace-locations
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── dashboard
│ │ │ ├── locations.html
│ │ │ └── locations.js
│ │ │ └── products
│ │ │ ├── locationField
│ │ │ ├── locationField.html
│ │ │ └── locationField.js
│ │ │ ├── locationFieldDisplay
│ │ │ ├── locationFieldDisplay.html
│ │ │ └── locationFieldDisplay.js
│ │ │ ├── productDetail
│ │ │ └── productDetail.js
│ │ │ ├── productMap
│ │ │ ├── productMap.html
│ │ │ ├── productMap.js
│ │ │ ├── productMap.less
│ │ │ ├── productMapSingle.html
│ │ │ └── productMapSingle.js
│ │ │ ├── productMapDetails
│ │ │ ├── productMapDetails.html
│ │ │ ├── productMapDetails.js
│ │ │ └── productMapDetails.less
│ │ │ └── products.js
│ ├── common
│ │ ├── collections
│ │ │ └── collections.js
│ │ └── schemas
│ │ │ ├── mapmarkers.js
│ │ │ └── schemas.js
│ ├── package.js
│ ├── public
│ │ └── images
│ │ │ └── icon.png
│ ├── reaction-p2p-marketplace-locations-tests.js
│ ├── reaction-p2p-marketplace-locations.js
│ └── server
│ │ ├── methods
│ │ └── accounts.js
│ │ ├── register.js
│ │ └── security
│ │ ├── browserPolicy.js
│ │ └── security.js
├── reaction-p2p-marketplace-profile
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ └── validation.js
│ │ └── templates
│ │ │ ├── accountProfile
│ │ │ ├── images
│ │ │ │ ├── profileImageGallery.html
│ │ │ │ └── profileImageGallery.js
│ │ │ ├── marketplaceAccountProfile.html
│ │ │ ├── marketplaceAccountProfile.js
│ │ │ └── marketplaceAccountProfile.less
│ │ │ └── publicProfile
│ │ │ ├── marketplaceProfile.html
│ │ │ ├── marketplaceProfile.js
│ │ │ ├── marketplaceProfileWidget.html
│ │ │ ├── marketplaceProfileWidget.js
│ │ │ └── marketplaceProfileWidget.less
│ ├── package.js
│ ├── reaction-p2p-marketplace-profile-tests.js
│ ├── reaction-p2p-marketplace-profile.js
│ └── server
│ │ ├── methods
│ │ └── accounts.js
│ │ ├── publications
│ │ └── account.js
│ │ └── register.js
├── reaction-p2p-marketplace-ratings
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ └── products
│ │ │ └── productDetail
│ │ │ ├── productDetailMarketplaceRating.html
│ │ │ └── productDetailMarketplaceRating.js
│ ├── common
│ │ ├── collections
│ │ │ └── collections.js
│ │ └── schemas
│ │ │ └── ratings.js
│ ├── package.js
│ ├── reaction-p2p-marketplace-ratings-tests.js
│ ├── reaction-p2p-marketplace-ratings.js
│ └── server
│ │ ├── publications
│ │ └── ratings.js
│ │ └── security
│ │ └── ratings.js
├── reaction-p2p-marketplace-sell-date
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ └── products
│ │ │ ├── dateField
│ │ │ ├── dateField.html
│ │ │ ├── dateField.js
│ │ │ └── dateField.less
│ │ │ └── productDetail
│ │ │ └── productDetailWithDate.js
│ ├── common
│ │ ├── collections
│ │ │ └── collections.js
│ │ └── schemas
│ │ │ └── products.js
│ ├── package.js
│ ├── reaction-p2p-marketplace-sell-date-tests.js
│ └── reaction-p2p-marketplace-sell-date.js
├── reaction-p2p-marketplace-seller
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ ├── globals.js
│ │ │ └── validation.js
│ │ └── templates
│ │ │ ├── addressBook
│ │ │ ├── addressBook.html
│ │ │ └── addressBook.js
│ │ │ ├── dashboard
│ │ │ ├── orders
│ │ │ │ ├── details
│ │ │ │ │ ├── detail.html
│ │ │ │ │ └── detail.js
│ │ │ │ ├── sellerOrders.html
│ │ │ │ ├── sellerOrders.js
│ │ │ │ └── sellerOrders.less
│ │ │ └── products
│ │ │ │ └── list
│ │ │ │ ├── productsList.html
│ │ │ │ ├── productsList.js
│ │ │ │ └── productsList.less
│ │ │ ├── products
│ │ │ └── productDetail
│ │ │ │ ├── productDetail.html
│ │ │ │ ├── productDetail.js
│ │ │ │ ├── productDetail.less
│ │ │ │ └── variants
│ │ │ │ └── variantForm
│ │ │ │ ├── variantForm.html
│ │ │ │ └── variantForm.js
│ │ │ ├── signIn
│ │ │ ├── signIn.html
│ │ │ └── signIn.js
│ │ │ ├── signUp
│ │ │ ├── sellerFlag.html
│ │ │ ├── signUp.html
│ │ │ └── signUp.js
│ │ │ └── userDecision
│ │ │ ├── userDecision.html
│ │ │ ├── userDecision.js
│ │ │ └── userDecision.less
│ ├── common
│ │ ├── collections
│ │ │ └── collections.js
│ │ ├── common.js
│ │ └── schemas
│ │ │ ├── accounts.js
│ │ │ ├── cart.js
│ │ │ ├── i18n
│ │ │ └── de.i18n.json
│ │ │ ├── orders.js
│ │ │ └── products.js
│ ├── package.js
│ ├── public
│ │ └── images
│ │ │ └── decision_deco.jpg
│ ├── reaction-p2p-marketplace-seller-tests.js
│ ├── reaction-p2p-marketplace-seller.js
│ └── server
│ │ ├── methods
│ │ ├── accounts.js
│ │ ├── cart.js
│ │ └── products.js
│ │ ├── publications
│ │ ├── orders.js
│ │ ├── product.js
│ │ └── productsForOrdersHistory.js
│ │ └── register.js
├── reaction-p2p-marketplace-simplified-products
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── cart
│ │ │ ├── cartDrawer
│ │ │ │ ├── cartDrawer.html
│ │ │ │ ├── cartDrawer.js
│ │ │ │ ├── cartDrawer.less
│ │ │ │ ├── cartItems
│ │ │ │ │ ├── cartItems.html
│ │ │ │ │ └── cartItems.js
│ │ │ │ └── cartSubTotals
│ │ │ │ │ ├── cartSubTotals.html
│ │ │ │ │ └── cartSubTotals.js
│ │ │ └── checkout
│ │ │ │ └── checkout.less
│ │ │ └── products
│ │ │ └── productDetail
│ │ │ ├── productDetailHideVariants.js
│ │ │ ├── simplifiedProduct.html
│ │ │ ├── simplifiedProduct.js
│ │ │ ├── simplifiedProductBuyer.css
│ │ │ ├── simplifiedProductSeller.css
│ │ │ └── tags
│ │ │ ├── tags.html
│ │ │ ├── tags.js
│ │ │ └── tags.less
│ ├── package.js
│ ├── reaction-p2p-marketplace-simplified-products-tests.js
│ ├── reaction-p2p-marketplace-simplified-products.js
│ └── server
│ │ └── methods
│ │ └── products.js
├── reaction-p2p-marketplace
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── cart
│ │ │ └── checkout
│ │ │ │ ├── checkout.html
│ │ │ │ ├── checkout.js
│ │ │ │ ├── completed
│ │ │ │ ├── completed.html
│ │ │ │ └── completed.js
│ │ │ │ └── header
│ │ │ │ ├── header.html
│ │ │ │ └── header.js
│ │ │ ├── dashboard
│ │ │ └── orders
│ │ │ │ └── list
│ │ │ │ ├── itemSeller
│ │ │ │ ├── itemSeller.html
│ │ │ │ └── itemSeller.js
│ │ │ │ ├── items
│ │ │ │ ├── items.html
│ │ │ │ └── items.js
│ │ │ │ ├── ordersList.html
│ │ │ │ └── ordersList.js
│ │ │ ├── dropdown
│ │ │ ├── dropdown.html
│ │ │ ├── dropdown.js
│ │ │ └── dropdown.less
│ │ │ ├── products
│ │ │ ├── productList
│ │ │ │ └── productList.less
│ │ │ ├── products.less
│ │ │ ├── productsMarketplace.html
│ │ │ ├── productsMarketplace.js
│ │ │ └── productsViewSwitcher.html
│ │ │ └── style.less
│ ├── package.js
│ ├── reaction-p2p-marketplace-tests.js
│ ├── reaction-p2p-marketplace.js
│ └── server
│ │ └── methods
│ │ ├── accounts.js
│ │ ├── cart.js
│ │ └── checkout.js
├── reaction-product-variant
│ ├── README.md
│ ├── client
│ │ ├── helpers
│ │ │ ├── global.js
│ │ │ └── products.js
│ │ └── templates
│ │ │ └── products
│ │ │ ├── productDetail
│ │ │ ├── attributes
│ │ │ │ ├── attributes.html
│ │ │ │ └── attributes.js
│ │ │ ├── edit
│ │ │ │ ├── edit.html
│ │ │ │ └── edit.js
│ │ │ ├── images
│ │ │ │ ├── productImageGallery.html
│ │ │ │ └── productImageGallery.js
│ │ │ ├── productDetail.html
│ │ │ ├── productDetail.js
│ │ │ ├── social
│ │ │ │ ├── social.html
│ │ │ │ └── social.js
│ │ │ ├── tags
│ │ │ │ ├── tags.html
│ │ │ │ └── tags.js
│ │ │ └── variants
│ │ │ │ ├── variant.html
│ │ │ │ ├── variant.js
│ │ │ │ ├── variantForm
│ │ │ │ ├── childVariant
│ │ │ │ │ ├── childVariant.html
│ │ │ │ │ └── childVariant.js
│ │ │ │ ├── variantForm.html
│ │ │ │ └── variantForm.js
│ │ │ │ └── variantList
│ │ │ │ ├── variantList.html
│ │ │ │ └── variantList.js
│ │ │ ├── productGrid
│ │ │ ├── content
│ │ │ │ ├── content.html
│ │ │ │ └── content.js
│ │ │ ├── controls
│ │ │ │ ├── controls.html
│ │ │ │ └── controls.js
│ │ │ ├── item
│ │ │ │ ├── item.html
│ │ │ │ └── item.js
│ │ │ ├── notice
│ │ │ │ ├── notice.html
│ │ │ │ └── notice.js
│ │ │ ├── productGrid.html
│ │ │ └── productGrid.js
│ │ │ ├── productList
│ │ │ ├── productList.html
│ │ │ └── productList.js
│ │ │ ├── productSettings
│ │ │ ├── productSettings.html
│ │ │ └── productSettings.js
│ │ │ ├── products.html
│ │ │ └── products.js
│ ├── package.js
│ └── server
│ │ └── register.js
├── reaction-router
│ ├── README.md
│ ├── client
│ │ └── helpers.js
│ ├── common
│ │ ├── init.js
│ │ └── layout.js
│ ├── package.js
│ └── server
│ │ └── register.js
├── reaction-sample-data-custom
│ ├── README.md
│ ├── package.js
│ ├── private
│ │ └── data
│ │ │ ├── Products.json
│ │ │ ├── Shops.json
│ │ │ └── Tags.json
│ └── server
│ │ └── load.js
├── reaction-sample-data
│ ├── README.md
│ ├── package.js
│ ├── private
│ │ └── data
│ │ │ ├── Products.json
│ │ │ ├── Shops.json
│ │ │ └── Tags.json
│ └── server
│ │ └── load.js
├── reaction-schemas
│ ├── README.md
│ ├── common
│ │ ├── common.js
│ │ ├── propTypes
│ │ │ └── tags.js
│ │ └── schemas
│ │ │ ├── accounts.js
│ │ │ ├── address.js
│ │ │ ├── cart.js
│ │ │ ├── discounts.js
│ │ │ ├── layouts.js
│ │ │ ├── orders.js
│ │ │ ├── payments.js
│ │ │ ├── products.js
│ │ │ ├── registry.js
│ │ │ ├── shipping.js
│ │ │ ├── shops.js
│ │ │ ├── tags.js
│ │ │ ├── taxes.js
│ │ │ ├── templates.js
│ │ │ ├── themes.js
│ │ │ ├── translations.js
│ │ │ └── workflow.js
│ └── package.js
├── reaction-shipping
│ ├── .gitignore
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── cart
│ │ │ └── checkout
│ │ │ │ └── shipping
│ │ │ │ ├── shipping.html
│ │ │ │ └── shipping.js
│ │ │ ├── shipping.html
│ │ │ ├── shipping.js
│ │ │ └── shipping.less
│ ├── common
│ │ └── collections.js
│ ├── package.js
│ ├── private
│ │ └── data
│ │ │ └── Shipping.json
│ └── server
│ │ ├── fixtures.js
│ │ ├── methods.js
│ │ └── register.js
├── reaction-social
│ ├── .gitignore
│ ├── LICENSE
│ ├── LICENSE.md
│ ├── README.md
│ ├── client
│ │ └── templates
│ │ │ ├── apps
│ │ │ ├── facebook.html
│ │ │ ├── facebook.js
│ │ │ ├── googleplus.html
│ │ │ ├── googleplus.js
│ │ │ ├── pinterest.html
│ │ │ ├── pinterest.js
│ │ │ ├── twitter.html
│ │ │ └── twitter.js
│ │ │ ├── dashboard
│ │ │ ├── social.html
│ │ │ └── social.js
│ │ │ ├── social.html
│ │ │ └── social.js
│ ├── common
│ │ └── schemas.js
│ ├── package.js
│ └── server
│ │ ├── policy.js
│ │ └── register.js
├── reaction-ui-navbar
│ ├── README.md
│ ├── client
│ │ └── components
│ │ │ ├── brand
│ │ │ ├── brand.html
│ │ │ ├── brand.js
│ │ │ └── brand.less
│ │ │ ├── i18n
│ │ │ ├── i18n.html
│ │ │ └── i18n.js
│ │ │ └── navbar
│ │ │ ├── navbar.html
│ │ │ ├── navbar.js
│ │ │ └── navbar.less
│ ├── package.js
│ ├── private
│ │ └── themes
│ │ │ └── navbar.css
│ └── server
│ │ └── register.js
├── reaction-ui-tagnav
│ ├── README.md
│ ├── client
│ │ ├── components
│ │ │ ├── components.js
│ │ │ ├── tagGroup
│ │ │ │ ├── tagGroup.html
│ │ │ │ ├── tagGroup.js
│ │ │ │ └── tagGroup.less
│ │ │ ├── tagNav
│ │ │ │ ├── tagNav.html
│ │ │ │ ├── tagNav.js
│ │ │ │ └── tagNav.less
│ │ │ └── tagTree
│ │ │ │ ├── tagTree.html
│ │ │ │ ├── tagTree.js
│ │ │ │ └── tagTree.less
│ │ ├── helpers
│ │ │ ├── helpers.js
│ │ │ └── tags.js
│ │ └── styles
│ │ │ └── base.less
│ └── package.js
└── reaction-ui
│ ├── .gitignore
│ ├── .npm
│ └── package
│ │ ├── .gitignore
│ │ ├── README
│ │ └── npm-shrinkwrap.json
│ ├── LICENSE
│ ├── README.md
│ ├── client
│ ├── components
│ │ ├── button
│ │ │ ├── button.html
│ │ │ ├── button.js
│ │ │ ├── button.jsx
│ │ │ └── button.less
│ │ ├── buttonGroup
│ │ │ ├── buttonGroup.jsx
│ │ │ └── buttonGroup.less
│ │ ├── cards
│ │ │ ├── cardGroup.html
│ │ │ ├── cardGroup.less
│ │ │ ├── cards.html
│ │ │ ├── cards.js
│ │ │ └── cards.less
│ │ ├── components.jsx
│ │ ├── gallery
│ │ │ └── gallery.jsx
│ │ ├── icon
│ │ │ └── icon.jsx
│ │ ├── items
│ │ │ └── items.less
│ │ ├── media
│ │ │ ├── media.jsx
│ │ │ └── media.less
│ │ ├── metadata
│ │ │ ├── metadata.jsx
│ │ │ └── metadata.less
│ │ ├── numericInput
│ │ │ ├── numericInput.html
│ │ │ └── numericInput.js
│ │ ├── popover
│ │ │ └── popover.less
│ │ ├── select
│ │ │ ├── select.html
│ │ │ ├── select.js
│ │ │ └── select.less
│ │ ├── separator
│ │ │ ├── separator.jsx
│ │ │ └── separator.less
│ │ ├── socialShare
│ │ │ └── socialShare.jsx
│ │ ├── sortable
│ │ │ └── sortable.jsx
│ │ ├── tags
│ │ │ ├── tag.jsx
│ │ │ ├── tagItem.html
│ │ │ ├── tagItem.js
│ │ │ ├── tagList.html
│ │ │ ├── tagList.js
│ │ │ ├── tags.jsx
│ │ │ └── tags.less
│ │ ├── textfield
│ │ │ ├── textfield.html
│ │ │ ├── textfield.jsx
│ │ │ └── textfield.less
│ │ ├── tooltip
│ │ │ └── tooltip.less
│ │ └── upload
│ │ │ ├── upload.html
│ │ │ └── upload.js
│ ├── helpers
│ │ └── helpers.js
│ ├── styles
│ │ ├── mixins.less
│ │ └── variables.less
│ └── templates
│ │ ├── dashboard
│ │ ├── dashboard.html
│ │ └── dashboard.js
│ │ ├── themeDetails
│ │ ├── themeDetails.html
│ │ └── themeDetails.js
│ │ └── themeEditor
│ │ ├── themeEditor.html
│ │ ├── themeEditor.js
│ │ └── themeEditor.less
│ ├── common
│ ├── cssProperties.js
│ └── global.js
│ ├── lib
│ └── client.browserify.js
│ ├── package.js
│ ├── private
│ └── themes
│ │ ├── button.css
│ │ └── theme.css
│ └── server
│ ├── processTheme.js
│ └── register.js
├── private
├── db-updates
│ └── 151 User wird unentschieden.js
└── settings
│ ├── .gitignore
│ └── reaction.json.example
├── public
├── about.html
├── agbB.html
├── agbS.html
├── assets
│ ├── bootstrap
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ └── js
│ │ │ └── bootstrap.min.js
│ ├── formoid
│ │ └── formoid.min.js
│ ├── images
│ │ ├── Berechnungsbeispiel.png
│ │ ├── bekanntheit-kreide.png
│ │ ├── bestellung-kreide.png
│ │ ├── bezahlung-kreide.png
│ │ ├── food-kreide.png
│ │ ├── holz.jpg
│ │ ├── kochen-kreide.png
│ │ ├── profil-kreide.png
│ │ ├── snaxter_hintergrund.png
│ │ ├── snaxter_icon.jpg
│ │ ├── socialmedia.jpg
│ │ ├── tom_josh.jpg
│ │ ├── wandtafel.jpg
│ │ └── zuckerrohr.png
│ ├── jarallax
│ │ └── jarallax.js
│ ├── jquery-placeholder
│ │ └── jquery.placeholder.min.js
│ ├── mobirise
│ │ ├── css
│ │ │ ├── mbr-additional.css
│ │ │ └── style.css
│ │ └── js
│ │ │ └── script.js
│ ├── scydev
│ │ └── js
│ │ │ └── search-form.js
│ ├── smooth-scroll
│ │ └── SmoothScroll.js
│ ├── socicon
│ │ ├── css
│ │ │ └── socicon.min.css
│ │ └── fonts
│ │ │ ├── socicon.eot
│ │ │ ├── socicon.svg
│ │ │ ├── socicon.ttf
│ │ │ └── socicon.woff
│ └── web
│ │ └── assets
│ │ └── jquery
│ │ └── jquery.min.js
├── faq.html
├── favicon.ico
├── howto.html
├── hungrypeople.snaxter.ch.html
├── hygiene.html
├── loaderio-7a47b8ab93fa78cda1de3d2a17ce4019.txt
├── resources
│ ├── avatar.gif
│ ├── placeholder.gif
│ ├── reaction-logo-inverse.svg
│ └── reaction-logo.svg
└── tarife.html
├── reaction
├── server
├── fixtures.js
└── policy.js
├── settings
├── .gitignore
└── dev.settings.json
└── tests
├── .gitignore
└── jasmine
└── client
└── integration
├── cartSpecs.js
├── checkoutSpecs.js
├── lib
└── helpers.js
├── loginSpecs.js
├── packageSpecs.js
├── productGridSpecs.js
├── productSpecs.js
├── routerSpecs.js
├── shopSpecs.js
├── subscriptions.js
└── tagSpecs.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "whitelist": [
3 | "es7.decorators",
4 | "es7.classProperties",
5 | "es7.exportExtensions",
6 | "es7.comprehensions"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/.codeclimate.yml:
--------------------------------------------------------------------------------
1 | exclude_paths:
2 | - ".meteor/*"
3 | - "packages/reaction-core-theme/lib/*"
4 | - "packages/reaction-core/lib/*"
5 | - "packages/reaction-ui/private/*"
6 | - "packages/reaction-ui-navbar/private/*"
7 | engines:
8 | duplication:
9 | enabled: true
10 | config:
11 | languages:
12 | javascript:
13 | mass_threshold: 150
14 |
15 | eslint:
16 | enabled: true
17 | csslint:
18 | enabled: false
19 | fixme:
20 | enabled: true
21 | config:
22 | strings:
23 | - FIXME
24 | - BUG
25 | ratings:
26 | paths:
27 | - "**.js"
28 | - "**.jsx"
29 | - "**.css"
30 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | .meteor/local
2 | .build
3 | .build.*
4 | .npm
5 | .git
6 | .build.log
7 | Dockerfile
8 | docker/reaction.*
9 | docs
10 | packages/*/.npm
11 | packages/*/lib/bower
12 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
14 | [*.js]
15 | max_line_length = 160
16 | indent_brace_style = 1TBS
17 | spaces_around_operators = true
18 | quote_type = double
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | lib-cov
3 | *.seed
4 | *.log
5 | *.csv
6 | *.dat
7 | *.out
8 | *.pid
9 | *.gz
10 | *.sublime-project
11 | *.sublime-workspace
12 | .idea
13 | .c9
14 | .DS_Store
15 |
16 | pids
17 | logs
18 | results
19 | npm-debug.log
20 | .fileStorage/
21 | packages/reaction-core/lib/bower
22 |
23 | jsdoc.json
24 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "packages/meteor-collection2"]
2 | path = packages/meteor-collection2
3 | url = https://github.com/ScyDev/meteor-collection2
4 | [submodule "packages/meteor-collection2-core"]
5 | path = packages/meteor-collection2-core
6 | url = https://github.com/ScyDev/meteor-collection2-core
7 | [submodule "packages/reaction-braintree"]
8 | path = packages/reaction-braintree
9 | url = https://github.com/ScyDev/reaction-braintree
10 | [submodule "packages/reaction-search"]
11 | path = packages/reaction-search
12 | url = https://github.com/ScyDev/reaction-search
13 | [submodule "packages/meteor-bootstrap3-datetimepicker"]
14 | path = packages/meteor-bootstrap3-datetimepicker
15 | url = https://github.com/ScyDev/meteor-bootstrap3-datetimepicker
16 |
--------------------------------------------------------------------------------
/.jsbeautifyrc:
--------------------------------------------------------------------------------
1 | {
2 | "break_chained_methods": false,
3 | "e4x": false,
4 | "eval_code": false,
5 | "indent_char": " ",
6 | "indent_level": 0,
7 | "indent_size": 2,
8 | "indent_with_tabs": false,
9 | "jslint_happy": true,
10 | "keep_array_indentation": false,
11 | "keep_function_indentation": false,
12 | "max_preserve_newlines": 2,
13 | "preserve_newlines": true,
14 | "space_before_conditional": true,
15 | "space_in_paren": false,
16 | "unescape_strings": false,
17 | "wrap_line_length": 120,
18 | "space_after_anon_function": true,
19 | "end_with_newline": true
20 | }
21 |
--------------------------------------------------------------------------------
/.meteor/.finished-upgraders:
--------------------------------------------------------------------------------
1 | # This file contains information which helps Meteor properly upgrade your
2 | # app when you run 'meteor update'. You should check it into version control
3 | # with your project.
4 |
5 | notices-for-0.9.0
6 | notices-for-0.9.1
7 | 0.9.4-platform-file
8 | notices-for-facebook-graph-api-2
9 | 1.2.0-standard-minifiers-package
10 | 1.2.0-meteor-platform-split
11 | 1.2.0-cordova-changes
12 | 1.2.0-breaking-changes
13 |
--------------------------------------------------------------------------------
/.meteor/.gitignore:
--------------------------------------------------------------------------------
1 | local
2 |
--------------------------------------------------------------------------------
/.meteor/.id:
--------------------------------------------------------------------------------
1 | # This file contains a token that is unique to your project.
2 | # Check it into your repository along with the rest of this directory.
3 | # It can be used for purposes such as:
4 | # - ensuring you don't accidentally deploy one app on top of another
5 | # - providing package authors with aggregated statistics
6 |
7 | 16fc7k11cajtkx5sgjml
8 |
--------------------------------------------------------------------------------
/.meteor/cordova-plugins:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/.meteor/cordova-plugins
--------------------------------------------------------------------------------
/.meteor/dev_bundle:
--------------------------------------------------------------------------------
1 | /root/.meteor/packages/meteor-tool/.1.3.4_4.xwd1ml++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle
--------------------------------------------------------------------------------
/.meteor/platforms:
--------------------------------------------------------------------------------
1 | server
2 | browser
3 |
--------------------------------------------------------------------------------
/.meteor/release:
--------------------------------------------------------------------------------
1 | METEOR@1.2.1
2 |
--------------------------------------------------------------------------------
/.pullapprove.yml:
--------------------------------------------------------------------------------
1 | approve_by_comment: true
2 | approve_regex: '^(Approved|:\+1:)' # this only matches at the start of a line, just my suggestion -- read the docs for why
3 | reject_regex: '^(Rejected|:-1:)'
4 | reset_on_push: false
5 | reviewers:
6 | required: 2
7 | members:
8 | - aaronjudd
9 | - jshimko
10 | - mikemurray
11 | - zenweasel
12 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | docker/reaction.prod.docker
--------------------------------------------------------------------------------
/Dockerfile_DEV:
--------------------------------------------------------------------------------
1 | docker/reaction.dev.src.docker
--------------------------------------------------------------------------------
/Dockerfile_PROD:
--------------------------------------------------------------------------------
1 | docker/reaction.prod.docker
--------------------------------------------------------------------------------
/Dockerfile_with_MONGO:
--------------------------------------------------------------------------------
1 | docker/reaction.mongo.docker
--------------------------------------------------------------------------------
/bin/check-settings:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | CONFIG=$1
4 | if [ ! -f $CONFIG ]; then
5 | SAMPLE_CONFIG=${CONFIG/.json/.sample.json}
6 | echo "Error: config file \"$CONFIG\" not found. You have two options:"
7 | echo "- cp $SAMPLE_CONFIG $CONFIG # don't forget to edit!"
8 | echo "- request the file from developers"
9 | exit 1
10 | fi
11 |
--------------------------------------------------------------------------------
/bin/collection-dump:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | OIFS=$IFS;
3 | IFS=",";
4 |
5 | # meteor local mongo (must be running)
6 | dbname='meteor'
7 | host='127.0.0.1:3002'
8 |
9 | # first get all collections in the database
10 | collections=`mongo "$host/$dbname" --eval "rs.slaveOk();db.getCollectionNames();"`;
11 | collectionArray=($collections);
12 |
13 | # for each collection
14 | for ((i=0; i<${#collectionArray[@]}; ++i));
15 | do
16 | echo 'exporting collection' ${collectionArray[$i]}
17 | mongoexport --host $host --db $dbname -c ${collectionArray[$i]} --jsonArray --out private/data/${collectionArray[$i]}.json;
18 | sleep 1
19 | done
20 |
21 | IFS=$OIFS;
--------------------------------------------------------------------------------
/bin/deploy:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | usage() { echo "Usage: $0 [hostname] [settings.json] [-P]" 1>&2; exit 1; }
4 | DIRNAME=$(cd `dirname $0` && pwd)
5 |
6 | CONFIG=$DIRNAME/../settings/$2
7 | . $DIRNAME/check-settings $CONFIG
8 | sed s/__VERSION__/$(git rev-parse HEAD)/ $CONFIG > /tmp/$2
9 |
10 | meteor deploy $3 --settings /tmp/$2 $1
--------------------------------------------------------------------------------
/bin/docker/.gitignore:
--------------------------------------------------------------------------------
1 | .build.log
2 | packages
3 |
--------------------------------------------------------------------------------
/bin/docker/build-meteor.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # builds a production meteor bundle directory
5 | #
6 | set -e
7 |
8 | # Customize packages
9 | /bin/bash bin/docker/build-packages.sh
10 |
11 | #
12 | # build the source
13 | #
14 | meteor build --directory /var/www
15 | cd /var/www/bundle/programs/server/ && npm install
16 |
--------------------------------------------------------------------------------
/bin/docker/build-packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # add bin/docker/packages to use custom build packages
5 | #
6 |
7 | if [ -f bin/docker/packages ]; then
8 | echo "info: using custom build package file."
9 | cp bin/docker/packages .meteor/packages
10 | exit 0
11 | fi
12 |
--------------------------------------------------------------------------------
/bin/docker/install-graphicsmagick.sh:
--------------------------------------------------------------------------------
1 |
2 | #/bin/bash
3 |
4 | touch /var/timestamp
5 |
6 | # install graphicsmagick
7 | apt-get update
8 | apt-get -qq -y install --no-install-recommends graphicsmagick
9 |
10 | # remove anything isntalled by apt in /usr/share/doc after starting this script
11 | find /usr/share/doc \( -type f -o -empty \) -cnewer "/var/timestamp" -delete
12 |
13 | # remove unnecessary apt files
14 | apt-get clean
15 | rm -rf /var/lib/apt/lists/*
16 |
--------------------------------------------------------------------------------
/bin/docker/install-mongodb.sh:
--------------------------------------------------------------------------------
1 |
2 | #/bin/bash
3 |
4 | # add the mongodb repo to get the latest release
5 | apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
6 | echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | tee /etc/apt/sources.list.d/mongodb-org-3.0.list
7 |
8 | # install the mongodb server binaries
9 | apt-get update
10 | apt-get -qq -y install --no-install-recommends adduser mongodb-org-server
11 |
12 | # remove unnecessary apt files
13 | apt-get clean
14 | rm -rf /var/lib/apt/lists/*
15 |
--------------------------------------------------------------------------------
/bin/env.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Set environment variables if needed
4 | # MONGO_URL=mongodb://localhost:27017/myapp
5 | # PORT=3000
6 |
7 | if [ -n "$1" ]; then
8 | METEOR_SETTINGS="$(cat $1)"
9 | fi
10 |
11 |
--------------------------------------------------------------------------------
/bin/load-dump:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DIRNAME=$(cd `dirname $0` && pwd)
4 |
5 | MONGO_OUT_DIR="/tmp/dump"
6 |
7 | $DIRNAME/dump
8 | if [[ $? == 0 ]] ; then
9 | rm $MONGO_OUT_DIR/reaction_meteor_com/meteor_accounts_loginServiceConfiguration*
10 | mongorestore --drop -h 127.0.0.1:3002 --db meteor $MONGO_OUT_DIR/reaction_meteor_com
11 | fi
12 |
--------------------------------------------------------------------------------
/bin/reload:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DIRNAME=$(cd `dirname $0` && pwd)
4 |
5 | if [ -z "$1" ]; then
6 | COMMAND="db.getCollectionNames().forEach(function(collectionName) {if (collectionName != 'system.indexes') {db[collectionName].remove()}})";
7 | else
8 | COMMAND="db.$1.remove()";
9 | fi
10 | echo "Executing:" $COMMAND
11 | echo $COMMAND | meteor mongo
12 |
--------------------------------------------------------------------------------
/bin/reset:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DIRNAME=$(cd `dirname $0` && pwd)
4 |
5 | read -r -p "Resetting Database: also delete build files? [y/N]" response
6 | if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
7 | then
8 | meteor reset "$@"
9 | rm .meteor/versions 2> /dev/null
10 | rm -r client/themes/custom*.less 2> /dev/null
11 | rm -r client/themes/bootstrap/custom*.less 2> /dev/null
12 | rm -rf $PACKAGE_DIRS/core/lib/bower 2> /dev/null
13 | else
14 | meteor reset "$@"
15 | fi
16 |
--------------------------------------------------------------------------------
/bin/run:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -u
4 | set -e
5 |
6 |
7 | if [[ "$@" == *"debug"* ]]; then
8 | CMD=debug
9 | else
10 | CMD=run
11 | fi
12 |
13 | # remove debug arg if it exists
14 | ARGS="${@//debug}"
15 |
16 | CONFIG=$(pwd)/settings/settings.json
17 | DEVCONFIG=$(pwd)/settings/dev.settings.json
18 |
19 | if [ -f $CONFIG ]; then
20 | echo "Starting Reaction using '$CONFIG'."
21 | meteor $CMD --raw-logs --settings $CONFIG $ARGS
22 | else
23 | if [ -f $DEVCONFIG ]; then
24 | echo "Starting Reaction using '$DEVCONFIG'."
25 | meteor $CMD --raw-logs --settings $DEVCONFIG $ARGS
26 | else
27 | echo "Starting Reaction."
28 | meteor $CMD --raw-logs $ARGS
29 | fi
30 | fi
31 |
--------------------------------------------------------------------------------
/client/analytics/custom.analytics.json:
--------------------------------------------------------------------------------
1 | {
2 | "libs": {
3 | "segmentio": false,
4 | "googleAnalytics": true,
5 | "mixpanel": true
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | This site requires JavaScript. Please enable it in your browser settings.
4 |
5 |
--------------------------------------------------------------------------------
/client/templates/layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> cartDrawer}}
5 | {{> Template.dynamic template=dashboard}}
6 |
7 |
8 | {{> inlineAlerts}}
9 | {{> Template.dynamic template=template}}
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/client/templates/layout.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This is an example of a customized template.
3 | * This layout replaces the "coreLayout" template defined in the reactioncommerce:core package.
4 | * https://github.com/reactioncommerce/reaction-core/blob/master/client/templates/layout/layout.html
5 | * To use custom template in layout.html uncomment
6 | *
7 | * Template.layout.replaces "coreLayout"
8 | */
9 |
10 |
11 | // Template.layout.replaces("coreLayout");
12 |
--------------------------------------------------------------------------------
/client/themes/.gitignore:
--------------------------------------------------------------------------------
1 | *less
2 | *import.less
3 | foundation
4 | material
5 |
6 | !core
7 |
--------------------------------------------------------------------------------
/common/config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Misc. App. Configuration
3 | *
4 | * A place to put misc. package configurations
5 | */
6 | // client configuration
7 | if (Meteor.isClient) {
8 | ITEMS_INCREMENT = 24;
9 | // sets default number of product displayed on a grid
10 | Session.setDefault("productScrollLimit", ITEMS_INCREMENT);
11 | }
12 |
--------------------------------------------------------------------------------
/common/router.js:
--------------------------------------------------------------------------------
1 | Meteor.startup(function () {
2 | if (Meteor.isClient) {
3 | Tracker.autorun(function () {
4 | // initialize client routing
5 | if (ReactionCore.Subscriptions.Packages.ready() && ReactionCore.Subscriptions.Shops.ready()) {
6 | ReactionRouter.initPackageRoutes(Meteor.userId());
7 | }
8 | }); // end tracker
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/docker/docker-compose.test.yml:
--------------------------------------------------------------------------------
1 | # used for CircleCI curl tests
2 |
3 | reaction:
4 | image: reactioncommerce/prequel
5 | links:
6 | - mongo
7 | ports:
8 | - "80:80"
9 | environment:
10 | ROOT_URL: "http://localhost"
11 | MONGO_URL: "mongodb://mongo:27017/reaction"
12 |
13 | mongo:
14 | image: mongo:2.6.11
15 | command: mongod --smallfiles
16 |
--------------------------------------------------------------------------------
/docker/reaction.minimal.docker:
--------------------------------------------------------------------------------
1 | FROM debian:wheezy
2 | MAINTAINER Tom De Caluwé
3 |
4 | COPY bin/docker /usr/bin
5 | RUN chmod +x \
6 | /usr/bin/install-graphicsmagick.sh \
7 | /usr/bin/install-mongodb.sh \
8 | /usr/bin/build-meteor.sh \
9 | /usr/bin/build-bundle.sh \
10 | /usr/bin/entrypoint.sh
11 |
12 | RUN /usr/bin/install-graphicsmagick.sh
13 |
14 | ENV PORT 80
15 | ENV ROOT_URL http://localhost
16 | ENV MONGO_URL mongodb://127.0.0.1:27017/meteor
17 | ENV NODE forever
18 |
19 | RUN mkdir -p "/var/src" "/var/www"
20 | WORKDIR /var/www/bundle
21 |
22 | COPY . /var/src/
23 |
24 | EXPOSE 80
25 |
26 | RUN /usr/bin/build-bundle.sh
27 |
28 | ENTRYPOINT ["/usr/bin/entrypoint.sh"]
29 | CMD []
30 |
--------------------------------------------------------------------------------
/docker/scripts/build-packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # add bin/docker/packages to use custom build packages
5 | #
6 |
7 | if [ -f bin/docker/packages ]; then
8 | echo "[-] Using custom Meteor packages file..."
9 | cp docker/packages .meteor/packages
10 | exit 0
11 | fi
12 |
--------------------------------------------------------------------------------
/docker/scripts/install-deps.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 |
6 | printf "\n[-] Installing base OS dependencies...\n\n"
7 |
8 | apt-get update -qq -y
9 |
10 | apt-get install -qq -y --no-install-recommends curl ca-certificates bzip2 git build-essential python graphicsmagick
11 |
--------------------------------------------------------------------------------
/docker/scripts/install-node.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | : ${NODE_VERSION:=0.10.41}
6 | : ${NODE_ARCH:=x64}
7 |
8 | printf "\n[-] Installing Node ${NODE_VERSION}...\n\n"
9 |
10 | NODE_DIST=node-v${NODE_VERSION}-linux-${NODE_ARCH}
11 |
12 | cd /tmp
13 | curl -O -L http://nodejs.org/dist/v${NODE_VERSION}/${NODE_DIST}.tar.gz
14 | tar xvzf ${NODE_DIST}.tar.gz
15 | rm ${NODE_DIST}.tar.gz
16 | rm -rf /opt/nodejs
17 | mv ${NODE_DIST} /opt/nodejs
18 |
19 | ln -sf /opt/nodejs/bin/node /usr/bin/node
20 | ln -sf /opt/nodejs/bin/npm /usr/bin/npm
21 |
--------------------------------------------------------------------------------
/docker/scripts/install-phantom.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | if [ "${INSTALL_PHANTOMJS}" = "true" ]; then
6 |
7 | : ${PHANTOMJS_VERSION:=2.1.1}
8 |
9 | printf "\n[-] Installing Phantom.js $PHANTOMJS_VERSION...\n\n"
10 |
11 | npm install --silent -g phantomjs-prebuilt@$PHANTOMJS_VERSION
12 |
13 | npm cache clear
14 |
15 | fi
16 |
--------------------------------------------------------------------------------
/docker/scripts/post-install-cleanup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | printf "\n[-] Performing post install cleanup...\n\n"
5 |
6 | # Clean out docs
7 | rm -rf /usr/share/doc /usr/share/doc-base /usr/share/man /usr/share/locale /usr/share/zoneinfo
8 |
9 | # Clean out package management dirs
10 | rm -rf /var/lib/cache /var/lib/log
11 |
12 | # clean additional files created outside the source tree
13 | rm -rf /root/.cache /root/.config /root/.local
14 | rm -rf /tmp/*
15 |
16 | # remove os dependencies
17 | apt-get -qq -y purge ca-certificates curl bzip2
18 | apt-get -qq -y autoremove
19 | rm -rf /var/lib/apt/lists/*
20 |
--------------------------------------------------------------------------------
/packages/my-custom-theme-template/README.md:
--------------------------------------------------------------------------------
1 | # My Custom Theme Template
2 |
3 | An example of a basic theme package for Reaction Commerce
4 |
--------------------------------------------------------------------------------
/packages/my-custom-theme-template/styles/base.less:
--------------------------------------------------------------------------------
1 | /*
2 | Example style with usage of mixins.
3 |
4 | If you change the language to a RTL language,
5 | you'll get a marign of 50px on the right, instead of the left.
6 | And a magic pink background.
7 | */
8 |
9 | body {
10 | .margin-left(50px);
11 | background-color: #ff00ff;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/my-custom-theme-template/styles/variables.less:
--------------------------------------------------------------------------------
1 | /**
2 | * Add your variable overrides here
3 | */
4 |
5 | // Example: Override less variable override
6 | @navbar-default-bg: #61462F;
7 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/.gitignore:
--------------------------------------------------------------------------------
1 | .build*
2 | .DS_Store
3 | *.log
4 | versions.json
5 | .versions
6 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Accounts
2 | This is a core package of Reaction Commerce and provides
3 | - dropdown accounts ui
4 | - inline accounts ui
5 | - user profile
6 | - user management
7 | - address book CRUD
8 |
9 | ## Usage
10 |
11 | ```bash
12 | meteor add reactioncommerce:reaction-accounts
13 | ```
14 |
15 | ## Testing
16 |
17 | ```bash
18 | VELOCITY_TEST_PACKAGES=1 meteor test-packages --port 3006 reactioncommerce:reaction-accounts
19 | ```
20 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/helpers/subscriptions.js:
--------------------------------------------------------------------------------
1 | ReactionCore.Subscriptions.Account = ReactionSubscriptions.subscribe("Accounts", Meteor.userId());
2 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/templates/accounts.html:
--------------------------------------------------------------------------------
1 |
2 | {{> Template.dynamic template=tpl}}
3 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/templates/addressBook/addressBook.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Address Book
5 |
6 | {{> addressBook address=address}}
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{> Template.dynamic template=currentView data=data}}
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/templates/guestSignUp/guestSignUp.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-accounts/client/templates/guestSignUp/guestSignUp.js
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/templates/inline/inline.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Inline login form for instance where guest login is needed.
3 | */
4 | Template.loginInline.events({
5 |
6 | /**
7 | * Continue as guest.
8 | * @param {Event} event - jQuery Event
9 | * @return {void}
10 | */
11 | "click .continue-guest": (event) => {
12 | event.preventDefault();
13 | Meteor.call("workflow/pushCartWorkflow", "coreCartWorkflow", "checkoutLogin");
14 | }
15 | });
16 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/client/templates/login/loginButtons.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#if condition enabled "eq" true}}
4 |
9 |
10 |
11 | {{#if condition buttonType "eq" "signUp"}}
12 | Sign up with
13 | {{else}}
14 | Sign in with
15 | {{/if}}
16 |
17 | {{capitalizedName}}
18 |
19 | {{/if}}
20 |
21 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/server/methods/serviceConfiguration.js:
--------------------------------------------------------------------------------
1 | Meteor.methods({
2 | "accounts/updateServiceConfiguration": function (service, fields) {
3 | check(service, String);
4 | check(fields, Array);
5 | const dataToSave = {};
6 |
7 | _.each(fields, function (field) {
8 | dataToSave[field.property] = field.value;
9 | });
10 |
11 | if (ReactionCore.hasPermission(["dashboard/accounts"])) {
12 | return ServiceConfiguration.configurations.upsert({
13 | service: service
14 | }, {
15 | $set: dataToSave
16 | });
17 | }
18 | return false;
19 | }
20 | });
21 |
--------------------------------------------------------------------------------
/packages/reaction-accounts/server/policy.js:
--------------------------------------------------------------------------------
1 | /*
2 | * set browser policies
3 | */
4 | BrowserPolicy.content.allowOriginForAll("*.facebook.com");
5 | BrowserPolicy.content.allowOriginForAll("*.fbcdn.net");
6 | BrowserPolicy.content.allowOriginForAll("connect.facebook.net");
7 |
8 | BrowserPolicy.content.allowOriginForAll("*.googleusercontent.com");
9 |
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-analytics-libs/.gitignore
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/.versions:
--------------------------------------------------------------------------------
1 | meteor@1.1.6
2 | reactioncommerce:reaction-analytics-libs@1.0.1
3 | underscore@1.0.3
4 |
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/README.md:
--------------------------------------------------------------------------------
1 | ## reaction-analytics-libs
2 | This package does nothing more than providing server side access to analytics libraries.
3 | Technique for getting around meteor build plugin static asset limitation borrowed from [Nemo64/meteor-bootstrap-data](https://github.com/Nemo64/meteor-bootstrap-data)
4 |
5 | This package is a dependency for reaction-analytics.
6 |
7 | The reason this package exists is to provide a workaround for the limitation, that meteor does not allow static assets to be accessed in a build plugin. It is however allowed to 'use' other packages in a plugin and this other package can than provide static assets (which is what this package does).
8 |
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/analytics-lib.js:
--------------------------------------------------------------------------------
1 | GetAnalyticsLib = function (file) {
2 | return Assets.getText(file);
3 | }
4 |
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/analytics/googleAnalytics.js:
--------------------------------------------------------------------------------
1 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
2 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
3 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
4 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
5 |
--------------------------------------------------------------------------------
/packages/reaction-analytics-libs/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | summary: "Reaction Commerce - Analytics Libraries",
3 | name: "reactioncommerce:reaction-analytics-libs",
4 | version: "1.1.0",
5 | documentation: "README.md"
6 | });
7 |
8 | Package.onUse(function (api) {
9 | api.versionsFrom("METEOR@1.2");
10 |
11 | api.addFiles("analytics-lib.js", "server");
12 | api.export(["GetAnalyticsLib"]);
13 | api.addAssets([
14 | "analytics/googleAnalytics.js",
15 | "analytics/mixpanel.js",
16 | "analytics/segmentio.js"
17 | ], "server");
18 | });
19 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/.gitignore:
--------------------------------------------------------------------------------
1 | .versions
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/.npm/plugin/analytics-configurator/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/.npm/plugin/analytics-configurator/README:
--------------------------------------------------------------------------------
1 | This directory and the files immediately inside it are automatically generated
2 | when you change this package's NPM dependencies. Commit the files in this
3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4 | so that others run the same versions of sub-dependencies.
5 |
6 | You should NOT check in the node_modules directory that Meteor automatically
7 | creates; if you are using git, the .gitignore file tells git to ignore it.
8 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/.npm/plugin/analytics-configurator/npm-shrinkwrap.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "path": {
4 | "version": "0.11.14"
5 | },
6 | "underscore": {
7 | "version": "1.8.3"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/common/hooks.js:
--------------------------------------------------------------------------------
1 | ReactionCore.Collections.Orders.before.insert((userId, order) => {
2 | let analyticsEvent = {
3 | eventType: 'buy',
4 | value: order._id,
5 | label: 'bought products'
6 | }
7 | ReactionCore.Collections.AnalyticsEvents.insert(analyticsEvent)
8 | })
9 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/server/buildtools/analyticsSources.js:
--------------------------------------------------------------------------------
1 | analyticsSources = {
2 | "googleAnalytics": "analytics/googleAnalytics.js",
3 | "mixpanel": "analytics/mixpanel.js",
4 | "segmentio": "analytics/segmentio.js"
5 | };
6 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/server/buildtools/defaultConfiguration.js:
--------------------------------------------------------------------------------
1 | defaultConfiguration = [
2 | '{"libs": {',
3 | ' "segmentio": true,',
4 | ' "googleAnalytics": false,',
5 | ' "mixpanel": false,',
6 | '}}'
7 | ].join('\n');
8 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/server/publications.js:
--------------------------------------------------------------------------------
1 | Meteor.publish("AnalyticsEvents", function () {
2 | const shopId = ReactionCore.getShopId();
3 | if (!shopId) {
4 | return this.ready();
5 | }
6 | return ReactionCore.Collections.AnalyticsEvents.find({
7 | shopId: shopId
8 | });
9 | });
10 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/server/security/AnalyticsEvents.js:
--------------------------------------------------------------------------------
1 | ReactionCore.Collections.AnalyticsEvents.allow({
2 | insert: function(userId, analyticsEvent) {
3 | if (Match.test(analyticsEvent, ReactionCore.Schemas.AnalyticsEvents)) {
4 | return true
5 | }
6 | return false
7 | },
8 | update: function(userId, analyticsEvent, fields, modifier) {
9 | if (modifier.$set && modifier.$set.shopId) {
10 | return false;
11 | }
12 | return true;
13 | },
14 | remove: function(userId, analyticsEvent) {
15 | if (analyticsEvent.shopId !== ReactionCore.getShopId()) {
16 | return false;
17 | }
18 | return true;
19 | }
20 | });
21 |
--------------------------------------------------------------------------------
/packages/reaction-analytics/server/security/browserPolicy.js:
--------------------------------------------------------------------------------
1 | Meteor.startup(function() {
2 | BrowserPolicy.content.allowOriginForAll("www.google-analytics.com");
3 | BrowserPolicy.content.allowOriginForAll("*.doubleclick.net");
4 | BrowserPolicy.content.allowOriginForAll("cdn.mxpnl.com");
5 | BrowserPolicy.content.allowOriginForAll("cdn.segment.com");
6 | BrowserPolicy.content.allowOriginForAll("*.facebook.com");
7 | BrowserPolicy.content.allowOriginForAll("connect.facebook.net");
8 | BrowserPolicy.content.allowOriginForAll("fonts.googleapis.com");
9 | BrowserPolicy.content.allowOriginForAll("fonts.gstatic.com");
10 | return BrowserPolicy.content.allowOriginForAll("www.paypal.com");
11 | });
12 |
--------------------------------------------------------------------------------
/packages/reaction-catalog/README.md:
--------------------------------------------------------------------------------
1 | # reaction-catalog
2 | This package contains server side and common products methods and helpers.
3 | WIP - reaction product, content catalog
4 |
--------------------------------------------------------------------------------
/packages/reaction-catalog/server/register.js:
--------------------------------------------------------------------------------
1 | ReactionCore.registerPackage({
2 | label: "Catalog",
3 | name: "reaction-catalog",
4 | icon: "fa fa-archive",
5 | autoEnable: true,
6 | settings: {
7 | name: "Catalog"
8 | },
9 | registry: [
10 | {
11 | provides: "dashboard",
12 | label: "Catalog",
13 | description: "Product catalog",
14 | icon: "fa fa-archive",
15 | priority: 2,
16 | container: "core"
17 | }/* ,
18 | {
19 | label: "Catalog Settings",
20 | // route: "dashboard/catalog",
21 | provides: "settings"
22 | // group: "reaction-catalog",
23 | // template: "catalogSettings"
24 | } */
25 | ]
26 | });
27 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/README.md:
--------------------------------------------------------------------------------
1 | # reaction-cart
2 | Reaction Commerce Cart and Checkout
3 |
4 | `meteor add reactioncommerce:reaction-cart`
5 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/cartDrawer/cartSubTotals/cartSubTotals.js:
--------------------------------------------------------------------------------
1 | /**
2 | * cartSubTotals helpers
3 | *
4 | * @returns cart
5 | */
6 | Template.cartSubTotals.helpers({
7 | cart: function() {
8 | return ReactionCore.Collections.Cart.findOne();
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/cartIcon/cartIcon.html:
--------------------------------------------------------------------------------
1 |
2 | {{#with cart}}
3 |
4 |
5 |
6 |
7 | {{#if showCartIconWarning}}
8 |
!
9 | {{/if}}
10 |
{{orElse cartCount 0}}
11 |
12 | {{/with}}
13 |
14 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/cartIcon/cartIcon.js:
--------------------------------------------------------------------------------
1 | /**
2 | * cartIcon helpers
3 | *
4 | */
5 | Template.cartIcon.helpers({
6 | cart: function () {
7 | return ReactionCore.Collections.Cart.findOne();
8 | }
9 | });
10 |
11 | Template.cartIcon.events({
12 | "click .cart-icon": function () {
13 | return $("#cart-drawer-container").fadeOut(300, function () {
14 | return toggleSession("displayCart");
15 | });
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/cartPanel/cartPanel.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Checkout now
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/cartPanel/cartPanel.js:
--------------------------------------------------------------------------------
1 | /**
2 | * cartPanel events
3 | *
4 | * goes to checkout on btn-checkout click
5 | *
6 | */
7 | Template.cartPanel.events({
8 | "click #btn-checkout": function () {
9 | // allow only logged in users to do that
10 | if (!Blaze._globalHelpers.isLoggedIn(true)) {
11 | return;
12 | }
13 |
14 | $("#cart-drawer-container").fadeOut();
15 | Session.set("displayCart", false);
16 | return ReactionRouter.go("cart/checkout");
17 | }
18 | });
19 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/addressBook/addressBook.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> checkoutStepBadge}}
5 |
6 | Choose shipping & billing address
7 |
8 |
9 | {{> addressBook}}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/addressBook/addressBook.js:
--------------------------------------------------------------------------------
1 | /*Template.checkoutAddressBook.onRendered(function () {
2 | Meteor.call("workflow/pushCartWorkflow", "coreCartWorkflow", "checkoutAddressBook");
3 | });*/
4 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/header/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{> coreNavigationBrand}}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/payment/payment.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{> checkoutStepBadge}}
6 |
7 |
8 | Add payment to complete order
9 |
10 |
11 |
12 | {{> corePaymentMethods}}
13 |
{{> inlineAlerts placement="paymentMethod"}}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/progressBar/progressBar.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{#each reactionTemplate workflow="coreCartWorkflow"}}
6 | {{#if label}}
7 |
8 | {{position}}
9 | {{label}}
10 |
11 | {{/if}}
12 | {{/each}}
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/progressBar/progressBar.js:
--------------------------------------------------------------------------------
1 | /**
2 | * checkoutProgressBar helpers
3 | * progressbar status: "visited first","previous visited","active","next"
4 | */
5 |
6 | Template.checkoutProgressBar.helpers({
7 | progressbarStatusClass: function () {
8 | const cartWorkflow = ReactionCore.Collections.Cart.findOne().workflow;
9 | const thisStep = cartWorkflow.status === this.template; // active
10 | const previouslyVisited = _.contains(cartWorkflow.workflow, this.template);
11 |
12 | if (previouslyVisited === true && thisStep === false) {
13 | return "visited";
14 | } else if (thisStep === true) {
15 | return "visited active";
16 | }
17 | return "";
18 | }
19 | });
20 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/review/review.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> checkoutStepBadge}}
5 |
Review
6 |
7 |
8 | {{>cartSubTotals}}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/client/templates/cart/checkout/review/review.js:
--------------------------------------------------------------------------------
1 | /**
2 | * review status
3 | * trigger checkoutPayment step on template checkoutReview render
4 | */
5 |
6 | Template.checkoutReview.onRendered(function () {
7 | Meteor.call("workflow/pushCartWorkflow", "coreCartWorkflow", "checkoutReview");
8 | });
9 |
--------------------------------------------------------------------------------
/packages/reaction-checkout/server/logger.js:
--------------------------------------------------------------------------------
1 | ReactionCart = {};
2 | // set logging level
3 | // ReactionCart.Log = logger.bunyan.createLogger({name: "cart", stream: formatOut});
4 | ReactionCart.Log = Logger;
5 |
--------------------------------------------------------------------------------
/packages/reaction-collections/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Collections
2 | This is a core package of Reaction Commerce that creates collections and attaches schemas.
3 |
4 | This package makes [aldeed:collections2](https://github.com/aldeed/meteor-collection2) available to Reaction.
5 |
6 | `reactioncommerce:core` is dependent on, and includes this package.
7 |
8 | ## Installation
9 |
10 | ```bash
11 | meteor add reactioncommerce:reaction-collections
12 | ```
13 |
--------------------------------------------------------------------------------
/packages/reaction-collections/common/globals.js:
--------------------------------------------------------------------------------
1 | if (!ReactionCore.Schemas) ReactionCore.Schemas = {};
2 | if (!ReactionCore.Collections) ReactionCore.Collections = {};
3 | if (!ReactionCore.Helpers) ReactionCore.Helpers = {};
4 | if (!ReactionCore.MetaData) ReactionCore.MetaData = {};
5 | if (!ReactionCore.Locale) ReactionCore.Locale = {};
6 | if (!ReactionCore.Log) ReactionCore.Log = {}; // Move logger create here
7 |
8 |
9 | //
10 | // Subscription Manager
11 | // See: https://github.com/kadirahq/subs-manager
12 | //
13 | // ReactionCore.Subscriptions = new SubsManager();
14 | ReactionSubscriptions = new SubsManager();
15 |
16 | if (Meteor.isClient) {
17 | if (!ReactionCore.Subscriptions) ReactionCore.Subscriptions = {};
18 | }
19 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/logger.js:
--------------------------------------------------------------------------------
1 | ReactionSubscriptions = {};
2 | // set logging level
3 | // ReactionSubscriptions.Log = logger.bunyan.createLogger({name: "collections", stream: formatOut});
4 | ReactionSubscriptions.Log = Logger;
5 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/discounts.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * discounts
4 | */
5 |
6 | Meteor.publish("Discounts", function () {
7 | const shopId = ReactionCore.getShopId();
8 | if (!shopId) {
9 | return this.ready();
10 | }
11 | return ReactionCore.Collections.Discounts.find({
12 | shopId: shopId
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/shipping.js:
--------------------------------------------------------------------------------
1 | /**
2 | * shipping
3 | */
4 |
5 | Meteor.publish("Shipping", function () {
6 | const shopId = ReactionCore.getShopId();
7 | if (!shopId) {
8 | return this.ready();
9 | }
10 | return ReactionCore.Collections.Shipping.find({
11 | shopId: shopId
12 | });
13 | });
14 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/shops.js:
--------------------------------------------------------------------------------
1 | /**
2 | * shops
3 | * @returns {Object} shop - current shop cursor
4 | */
5 |
6 | Meteor.publish("Shops", function () {
7 | return ReactionCore.getCurrentShopCursor();
8 | });
9 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/tags.js:
--------------------------------------------------------------------------------
1 | /**
2 | * tags
3 | */
4 | Meteor.publish("Tags", function () {
5 | const shopId = ReactionCore.getShopId();
6 | if (!shopId) {
7 | return this.ready();
8 | }
9 | return ReactionCore.Collections.Tags.find({
10 | shopId: shopId
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/taxes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * taxes
3 | */
4 |
5 | Meteor.publish("Taxes", function () {
6 | const shopId = ReactionCore.getShopId();
7 | if (!shopId) {
8 | return this.ready();
9 | }
10 | return ReactionCore.Collections.Taxes.find({
11 | shopId: shopId
12 | });
13 | });
14 |
--------------------------------------------------------------------------------
/packages/reaction-collections/server/publications/themes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Themes
3 | * @returns {Object} thtmes - themes cursor
4 | */
5 |
6 | Meteor.publish("Themes", function () {
7 | return ReactionCore.Collections.Themes.find({});
8 | });
9 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
14 | [*.js]
15 | max_line_length = 160
16 | indent_brace_style = 1TBS
17 | spaces_around_operators = true
18 | quote_type = double
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/.gitignore:
--------------------------------------------------------------------------------
1 | .build*
2 | versions.json
3 | .versions
4 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/.versions:
--------------------------------------------------------------------------------
1 | meteor@1.1.9
2 | reactioncommerce:core-theme@1.8.0
3 | underscore@1.0.4
4 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/build-package.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | PACKAGE_JS="package.js"
4 |
5 | LESS_FILES=`find . -name "*.less" | sed "s|^\./||"`
6 |
7 | # remove everything after the token
8 | sed -i '' '/AUTOGENERATED/,$d' $PACKAGE_JS
9 | echo " // AUTOGENERATED" >> $PACKAGE_JS
10 |
11 | # add all js and less files
12 | echo " api.addFiles([" >> $PACKAGE_JS
13 | for FILE in $LESS_FILES
14 | do
15 | echo " \"$FILE\"," >> $PACKAGE_JS
16 | done
17 | echo " ], \"client\", {isImport: true});" >> $PACKAGE_JS
18 |
19 | # end the use statement
20 | echo "});" >> $PACKAGE_JS
21 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/default/alerts.less:
--------------------------------------------------------------------------------
1 |
2 | .layout-alerts-global {
3 | position: absolute;
4 | top: 0;
5 | left: 0;
6 | z-index: 9001;
7 | }
8 |
9 |
10 | .empty-view-message {
11 | display: flex;
12 | flex-direction: column;
13 | justify-content: center;
14 | align-items: center;
15 | height: 400px;
16 | font-size: 3rem;
17 | color: #ABABAB;
18 |
19 | i {
20 | font-size: 6rem;
21 | margin-bottom: 2rem;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/default/dropdowns.less:
--------------------------------------------------------------------------------
1 | .navbar-shop {
2 | .dropdown {
3 | height: 100%;
4 | }
5 |
6 | .dropdown-toggle {
7 | .display(flex);
8 | .align-items(center);
9 | height: 100%;
10 | padding: 0 @navbar-padding-horizontal * 2;
11 | }
12 |
13 | .dropdown-menu {
14 | margin-top: 0;
15 | }
16 | }
17 |
18 | .dropdown-menu {
19 | border-radius: 0;
20 | border: 1px solid @black10;
21 | box-shadow: none;
22 | min-width: 200px;
23 | }
24 |
25 | .dropdown-menu > a {
26 | display: block;
27 | padding: 3px 20px;
28 | }
29 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/default/mixins.less:
--------------------------------------------------------------------------------
1 | // All mixins
2 | @import "{reactioncommerce:core-theme}/default/mixins/lesshat.less";
3 | @import "{reactioncommerce:core-theme}/default/mixins/rtl.less";
4 | @import "{reactioncommerce:core-theme}/default/mixins/flexbox.less";
5 | @import "{reactioncommerce:core-theme}/default/mixins/ribbon.less";
6 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/default/navs.less:
--------------------------------------------------------------------------------
1 |
2 |
3 | .nav-default {
4 | > li > a {
5 | // padding: 0 3rem;
6 | color: @text-color;
7 | // font-size: 1.6rem;
8 | border-left: 3px solid transparent;
9 | border-radius: 0;
10 | }
11 |
12 |
13 | > li > a:hover,
14 | > li > a:focus {
15 | background-color: transparent;
16 | border-left: 3px solid @brand-vivid-color;
17 | }
18 |
19 | > li.active > a,
20 | > li.active > a:hover,
21 | > li.active > a:focus {
22 | background-color: transparent;
23 | border-left: 3px solid @brand-vivid-color;
24 | border-radius: 0;
25 | color: @text-color;
26 | }
27 | }
28 |
29 | .list-group-item.active {
30 | color: contrast(@brand-primary, @text-color, @white);
31 | }
32 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/default/popovers.less:
--------------------------------------------------------------------------------
1 | // --------------------------------------------------
2 | //
3 | // Popovers
4 |
5 |
6 | .popover-footer {
7 | .display(flex);
8 | .justify-content(flex-end);
9 |
10 | padding: 8px 14px;
11 |
12 | border-top: @border-thin;
13 | }
14 |
15 | // Special Popovers
16 | .popover-advanced {
17 | min-width: 250px;
18 | min-height: 250px;
19 | }
--------------------------------------------------------------------------------
/packages/reaction-core-theme/fonts/fontello.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/fonts/fontello.eot
--------------------------------------------------------------------------------
/packages/reaction-core-theme/fonts/fontello.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/fonts/fontello.ttf
--------------------------------------------------------------------------------
/packages/reaction-core-theme/fonts/fontello.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/fonts/fontello.woff
--------------------------------------------------------------------------------
/packages/reaction-core-theme/fonts/fontello.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/fonts/fontello.woff2
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | indent_size = 2
9 | indent_style = space
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | trim_trailing_whitespace = false
15 |
16 | [*.py]
17 | indent_size = 4
18 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/.gitattributes:
--------------------------------------------------------------------------------
1 | # Enforce Unix newlines
2 | *.css text eol=lf
3 | *.html text eol=lf
4 | *.js text eol=lf
5 | *.json text eol=lf
6 | *.less text eol=lf
7 | *.md text eol=lf
8 | *.svg text eol=lf
9 | *.yml text eol=lf
10 | # Don't diff or textually merge source maps
11 | *.map binary
12 |
13 | bootstrap-theme.css linguist-vendored=false
14 | bootstrap.css linguist-vendored=false
15 | bootstrap.js linguist-vendored=false
16 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore docs files
2 | _gh_pages
3 | _site
4 | .ruby-version
5 |
6 | # Numerous always-ignore extensions
7 | *.diff
8 | *.err
9 | *.log
10 | *.orig
11 | *.rej
12 | *.swo
13 | *.swp
14 | *.vi
15 | *.zip
16 | *~
17 |
18 | # OS or Editor folders
19 | ._*
20 | .cache
21 | .DS_Store
22 | .idea
23 | .project
24 | .settings
25 | .tmproj
26 | *.esproj
27 | *.sublime-project
28 | *.sublime-workspace
29 | nbproject
30 | Thumbs.db
31 |
32 | # Komodo
33 | .komodotools
34 | *.komodoproject
35 |
36 | # Jekyll metadata
37 | docs/.jekyll-metadata
38 |
39 | # Folders to ignore
40 | bower_components
41 | node_modules
42 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/.hound.yml:
--------------------------------------------------------------------------------
1 | javascript:
2 | config_file: js/.jshintrc
3 | enabled: true
4 | scss:
5 | enabled: false
6 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs.
2 |
3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap.
4 |
5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
6 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/CNAME:
--------------------------------------------------------------------------------
1 | getbootstrap.com
2 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_data/core-team.yml:
--------------------------------------------------------------------------------
1 | - name: Mark Otto
2 | user: mdo
3 | gravatar: bc4ab438f7a4ce1c406aadc688427f2c
4 |
5 | - name: Jacob Thornton
6 | user: fat
7 | gravatar: a98244cbdacaf1c0b55499466002f7a8
8 |
9 | - name: Chris Rebert
10 | user: cvrebert
11 | gravatar: edec428c425453955f770095a7d26c50
12 |
13 | - name: Julian Thilo
14 | user: juthilo
15 | gravatar: 0f7dd3ce58a416be5685ea6194f82b11
16 |
17 | - name: XhmikosR
18 | user: xhmikosr
19 | gravatar: e37759b1ea0125d4e97b1e00b5eed26f
20 |
21 | - name: Heinrich Fenkart
22 | user: hnrch02
23 | gravatar: 0d53f5d3d3d28bd470f394d98f7ef48f
24 |
25 | - name: Patrick H. Lauke
26 | user: patrickhlauke
27 | gravatar: 357f279672db832fc41a5a2f36559fcb
28 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_data/sass-team.yml:
--------------------------------------------------------------------------------
1 | - name: Thomas McDonald
2 | user: thomas-mcdonald
3 | gravatar: 24cd55ab1a62ffb113ab8c02f64c9301
4 |
5 | - name: Gleb Mazovetskiy
6 | user: glebm
7 | gravatar: 729f685b8e8d7e9feed18c177c82e59b
8 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_data/showcase.yml:
--------------------------------------------------------------------------------
1 | - name: Lyft
2 | url: https://www.lyft.com
3 | expo_url: http://expo.getbootstrap.com/2014/10/29/lyft/
4 | img: lyft
5 |
6 | - name: Vogue
7 | url: http://www.vogue.com
8 | expo_url: http://expo.getbootstrap.com/2014/09/30/vogue/
9 | img: vogue
10 |
11 | - name: Riot Design
12 | url: http://riotdesign.eu/en/
13 | expo_url: http://expo.getbootstrap.com/2014/03/13/riot-design/
14 | img: riot
15 |
16 | - name: Newsweek
17 | url: http://www.newsweek.com/
18 | expo_url: http://expo.getbootstrap.com/2014/02/12/newsweek/
19 | img: newsweek
20 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_includes/ads.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_includes/nav/about.html:
--------------------------------------------------------------------------------
1 |
2 | History
3 |
4 |
5 | Team
6 |
7 |
8 | Brand guidelines
9 |
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_includes/nav/migration.html:
--------------------------------------------------------------------------------
1 |
2 | Major class changes
3 |
4 |
5 | What's new
6 |
7 |
8 | What's removed
9 |
10 |
11 | Additional notes
12 |
13 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_jade/customizer-nav.jade:
--------------------------------------------------------------------------------
1 | // NOTE: DO NOT EDIT THE FOLLOWING SECTION DIRECTLY! It is autogenerated via the `build-customizer-html` Grunt task using the customizer-nav.jade template.
2 | li
3 | a(href='#import-drop-target') Import
4 | li
5 | a(href='#less') Less components
6 | li
7 | a(href='#plugins') jQuery plugins
8 | li
9 | a(href='#less-variables') Less variables
10 | ul.nav
11 | each section in sections
12 | if section.customizable
13 | li
14 | a(href='#'+section.id)= section.heading
15 | li
16 | a(href='#download') Download
17 | // NOTE: DO NOT EDIT THE PRECEDING SECTION DIRECTLY! It is autogenerated via the `build-customizer-html` Grunt task using the customizer-nav.jade template.
18 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_layouts/home.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {% include header.html %}
6 |
7 |
8 | Skip to main content
9 |
10 |
11 | {% include nav/main.html %}
12 |
13 |
14 | {{ content }}
15 |
16 | {% include footer.html %}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/_plugins/bridge.rb:
--------------------------------------------------------------------------------
1 | require 'yaml'
2 |
3 | module Bridge
4 | class Generator < Jekyll::Generator
5 | def generate(site)
6 | site.data["configBridge"] = YAML.load_file("./grunt/configBridge.json")
7 | end
8 | end
9 | end
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/apple-touch-icon.png
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/css/ie10-viewport-bug-workaround.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * IE10 viewport hack for Surface/desktop Windows 8 bug
3 | * Copyright 2014-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | /*
8 | * See the Getting Started docs for more information:
9 | * http://getbootstrap.com/getting-started/#support-ie10-width
10 | */
11 | @-webkit-viewport { width: device-width; }
12 | @-moz-viewport { width: device-width; }
13 | @-ms-viewport { width: device-width; }
14 | @-o-viewport { width: device-width; }
15 | @viewport { width: device-width; }
16 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/flash/ZeroClipboard.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/flash/ZeroClipboard.swf
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/components.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/components.png
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/devices.png
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-lyft.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-lyft.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-newsweek.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-newsweek.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-riot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-riot.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-vogue.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/expo-vogue.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/sass-less.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/img/sass-less.png
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/js/ie8-responsive-file-warning.js:
--------------------------------------------------------------------------------
1 | // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
2 | // IT'S JUST JUNK FOR OUR DOCS!
3 | // ++++++++++++++++++++++++++++++++++++++++++
4 | /*!
5 | * Copyright 2011-2015 Twitter, Inc.
6 | *
7 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For
8 | * details, see https://creativecommons.org/licenses/by/3.0/.
9 | */
10 | // Intended to prevent false-positive bug reports about responsive styling supposedly not working in IE8.
11 | if (window.location.protocol == 'file:') {
12 | window.alert('ERROR: Bootstrap\'s responsive CSS is disabled!\nSee getbootstrap.com/getting-started/#respond-file-proto for details.')
13 | }
14 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/assets/js/vendor/autoprefixer.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/assets/js/vendor/autoprefixer.js
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/css.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: CSS
4 | slug: css
5 | lead: "Global CSS settings, fundamental HTML elements styled and enhanced with extensible classes, and an advanced grid system."
6 | ---
7 |
8 |
9 | {% include css/overview.html %}
10 | {% include css/grid.html %}
11 | {% include css/type.html %}
12 | {% include css/code.html %}
13 | {% include css/tables.html %}
14 | {% include css/forms.html %}
15 | {% include css/buttons.html %}
16 | {% include css/images.html %}
17 | {% include css/helpers.html %}
18 | {% include css/responsive-utilities.html %}
19 | {% include css/less.html %}
20 | {% include css/sass.html %}
21 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/dist/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/grid/grid.css:
--------------------------------------------------------------------------------
1 | h4 {
2 | margin-top: 25px;
3 | }
4 | .row {
5 | margin-bottom: 20px;
6 | }
7 | .row .row {
8 | margin-top: 10px;
9 | margin-bottom: 0;
10 | }
11 | [class*="col-"] {
12 | padding-top: 15px;
13 | padding-bottom: 15px;
14 | background-color: #eee;
15 | background-color: rgba(86,61,124,.15);
16 | border: 1px solid #ddd;
17 | border: 1px solid rgba(86,61,124,.2);
18 | }
19 |
20 | hr {
21 | margin-top: 40px;
22 | margin-bottom: 40px;
23 | }
24 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/jumbotron/jumbotron.css:
--------------------------------------------------------------------------------
1 | /* Move down content because we have a fixed navbar that is 50px tall */
2 | body {
3 | padding-top: 50px;
4 | padding-bottom: 20px;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/navbar-fixed-top/navbar-fixed-top.css:
--------------------------------------------------------------------------------
1 | body {
2 | min-height: 2000px;
3 | padding-top: 70px;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/navbar-static-top/navbar-static-top.css:
--------------------------------------------------------------------------------
1 | body {
2 | min-height: 2000px;
3 | }
4 |
5 | .navbar-static-top {
6 | margin-bottom: 19px;
7 | }
8 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/navbar/navbar.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 20px;
3 | padding-bottom: 20px;
4 | }
5 |
6 | .navbar {
7 | margin-bottom: 20px;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/offcanvas/offcanvas.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $('[data-toggle="offcanvas"]').click(function () {
3 | $('.row-offcanvas').toggleClass('active')
4 | });
5 | });
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/blog.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/blog.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/carousel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/carousel.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/cover.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/cover.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/dashboard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/dashboard.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/equal-height-columns.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/equal-height-columns.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/grid.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/grid.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/jumbotron-narrow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/jumbotron-narrow.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/jumbotron.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/jumbotron.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/justified-nav.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/justified-nav.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar-fixed.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar-fixed.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar-static.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar-static.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/navbar.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/non-responsive.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/non-responsive.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/offcanvas.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/offcanvas.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sign-in.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sign-in.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/starter-template.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/starter-template.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sticky-footer-navbar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sticky-footer-navbar.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sticky-footer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/sticky-footer.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/theme.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/examples/screenshots/theme.jpg
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/starter-template/starter-template.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 50px;
3 | }
4 | .starter-template {
5 | padding: 40px 15px;
6 | text-align: center;
7 | }
8 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/theme/theme.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 70px;
3 | padding-bottom: 30px;
4 | }
5 |
6 | .theme-dropdown .dropdown-menu {
7 | position: static;
8 | display: block;
9 | margin-bottom: 20px;
10 | }
11 |
12 | .theme-showcase > p > .btn {
13 | margin: 5px 0;
14 | }
15 |
16 | .theme-showcase .navbar .container {
17 | width: auto;
18 | }
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.css:
--------------------------------------------------------------------------------
1 | body {
2 | height: 1200px;
3 | }
4 | .tooltip {
5 | min-width: 250px;
6 | max-width: 500px;
7 | }
8 | .tooltip .tooltip-inner {
9 | min-width: 250px;
10 | max-width: 500px;
11 | min-height: 100px;
12 | text-align: left;
13 | }
14 | .container-viewport {
15 | position: absolute;
16 | top: 100px;
17 | right: 250px;
18 | left: 250px;
19 | height: 300px;
20 | background-color: #eee;
21 | }
22 | .btn-bottom {
23 | position: absolute;
24 | bottom: 0;
25 | left: 0;
26 | }
27 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $('.tooltip-right').tooltip({
3 | placement: 'right',
4 | viewport: {selector: 'body', padding: 2}
5 | })
6 | $('.tooltip-bottom').tooltip({
7 | placement: 'bottom',
8 | viewport: {selector: 'body', padding: 2}
9 | })
10 | $('.tooltip-viewport-right').tooltip({
11 | placement: 'right',
12 | viewport: {selector: '.container-viewport', padding: 2}
13 | })
14 | $('.tooltip-viewport-bottom').tooltip({
15 | placement: 'bottom',
16 | viewport: {selector: '.container-viewport', padding: 2}
17 | })
18 | })
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/docs/favicon.ico
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/javascript.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: JavaScript
4 | slug: js
5 | lead: "Bring Bootstrap's components to life with over a dozen custom jQuery plugins. Easily include them all, or one by one."
6 | ---
7 |
8 |
9 | {% include js/overview.html %}
10 | {% include js/transitions.html %}
11 | {% include js/modal.html %}
12 | {% include js/dropdowns.html %}
13 | {% include js/scrollspy.html %}
14 | {% include js/tabs.html %}
15 | {% include js/tooltips.html %}
16 | {% include js/popovers.html %}
17 | {% include js/alerts.html %}
18 | {% include js/buttons.html %}
19 | {% include js/collapse.html %}
20 | {% include js/carousel.html %}
21 | {% include js/affix.html %}
22 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/docs/robots.txt:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 | # www.robotstxt.org/
5 |
6 | # Allow crawling of all content
7 | User-agent: *
8 | Disallow:
9 | Sitemap: {{ site.url }}/sitemap.xml
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-core-theme/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/grunt/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../js/.jshintrc",
3 | "asi" : false,
4 | "browser" : false,
5 | "es3" : false,
6 | "node" : true
7 | }
8 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "asi" : true,
3 | "browser" : true,
4 | "eqeqeq" : false,
5 | "eqnull" : true,
6 | "es3" : true,
7 | "expr" : true,
8 | "jquery" : true,
9 | "latedef" : true,
10 | "laxbreak" : true,
11 | "nonbsp" : true,
12 | "strict" : true,
13 | "undef" : true,
14 | "unused" : true
15 | }
16 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/js/tests/unit/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends" : "../../.jshintrc",
3 | "devel" : true,
4 | "es3" : false,
5 | "qunit" : true
6 | }
7 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/.csslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "adjoining-classes": false,
3 | "box-sizing": false,
4 | "box-model": false,
5 | "compatible-vendor-prefixes": false,
6 | "floats": false,
7 | "font-sizes": false,
8 | "gradients": false,
9 | "important": false,
10 | "known-properties": false,
11 | "outline-none": false,
12 | "qualified-headings": false,
13 | "regex-selectors": false,
14 | "shorthand": false,
15 | "text-indent": false,
16 | "unique-headings": false,
17 | "universal-selector": false,
18 | "unqualified-attributes": false
19 | }
20 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/breadcrumbs.less:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
8 | margin-bottom: @line-height-computed;
9 | list-style: none;
10 | background-color: @breadcrumb-bg;
11 | border-radius: @border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: @breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: @breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/alerts.less:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | .alert-variant(@background; @border; @text-color) {
4 | background-color: @background;
5 | border-color: @border;
6 | color: @text-color;
7 |
8 | hr {
9 | border-top-color: darken(@border, 5%);
10 | }
11 | .alert-link {
12 | color: darken(@text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/background-variant.less:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | .bg-variant(@color) {
4 | background-color: @color;
5 | a&:hover,
6 | a&:focus {
7 | background-color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/border-radius.less:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | .border-top-radius(@radius) {
4 | border-top-right-radius: @radius;
5 | border-top-left-radius: @radius;
6 | }
7 | .border-right-radius(@radius) {
8 | border-bottom-right-radius: @radius;
9 | border-top-right-radius: @radius;
10 | }
11 | .border-bottom-radius(@radius) {
12 | border-bottom-right-radius: @radius;
13 | border-bottom-left-radius: @radius;
14 | }
15 | .border-left-radius(@radius) {
16 | border-bottom-left-radius: @radius;
17 | border-top-left-radius: @radius;
18 | }
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/center-block.less:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | .center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/clearfix.less:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | .clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/hide-text.less:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (has been removed in v4)
10 | .hide-text() {
11 | font: ~"0/0" a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | .text-hide() {
20 | .hide-text();
21 | }
22 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/labels.less:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | .label-variant(@color) {
4 | background-color: @color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken(@color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/list-group.less:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | .list-group-item-variant(@state; @background; @color) {
4 | .list-group-item-@{state} {
5 | color: @color;
6 | background-color: @background;
7 |
8 | a&,
9 | button& {
10 | color: @color;
11 |
12 | .list-group-item-heading {
13 | color: inherit;
14 | }
15 |
16 | &:hover,
17 | &:focus {
18 | color: @color;
19 | background-color: darken(@background, 5%);
20 | }
21 | &.active,
22 | &.active:hover,
23 | &.active:focus {
24 | color: #fff;
25 | background-color: @color;
26 | border-color: @color;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/nav-divider.less:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | .nav-divider(@color: #e5e5e5) {
6 | height: 1px;
7 | margin: ((@line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: @color;
10 | }
11 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/nav-vertical-align.less:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | .navbar-vertical-align(@element-height) {
7 | margin-top: ((@navbar-height - @element-height) / 2);
8 | margin-bottom: ((@navbar-height - @element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/opacity.less:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | .opacity(@opacity) {
4 | opacity: @opacity;
5 | // IE8 filter
6 | @opacity-ie: (@opacity * 100);
7 | filter: ~"alpha(opacity=@{opacity-ie})";
8 | }
9 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/pagination.less:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: @padding-vertical @padding-horizontal;
8 | font-size: @font-size;
9 | line-height: @line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | .border-left-radius(@border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | .border-right-radius(@border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/panels.less:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
4 | border-color: @border;
5 |
6 | & > .panel-heading {
7 | color: @heading-text-color;
8 | background-color: @heading-bg-color;
9 | border-color: @heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: @border;
13 | }
14 | .badge {
15 | color: @heading-bg-color;
16 | background-color: @heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: @border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/progress-bar.less:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | .progress-bar-variant(@color) {
4 | background-color: @color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | #gradient > .striped();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/reset-filter.less:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | .reset-filter() {
7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
8 | }
9 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/reset-text.less:
--------------------------------------------------------------------------------
1 | .reset-text() {
2 | font-family: @font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: @line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/resize.less:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | .resizable(@direction) {
4 | resize: @direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/responsive-visibility.less:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | .responsive-visibility() {
6 | display: block !important;
7 | table& { display: table !important; }
8 | tr& { display: table-row !important; }
9 | th&,
10 | td& { display: table-cell !important; }
11 | }
12 |
13 | .responsive-invisibility() {
14 | display: none !important;
15 | }
16 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/size.less:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | .size(@width; @height) {
4 | width: @width;
5 | height: @height;
6 | }
7 |
8 | .square(@size) {
9 | .size(@size; @size);
10 | }
11 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/tab-focus.less:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | .tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/text-emphasis.less:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | .text-emphasis-variant(@color) {
4 | color: @color;
5 | a&:hover,
6 | a&:focus {
7 | color: darken(@color, 10%);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/mixins/text-overflow.less:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | .text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/responsive-embed.less:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/less/wells.less:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: @well-bg;
12 | border: 1px solid @well-border;
13 | border-radius: @border-radius-base;
14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: @border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: @border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/nuget/MyGet.ps1:
--------------------------------------------------------------------------------
1 | $nuget = $env:NuGet
2 |
3 | #parse the version number out of package.json
4 | $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
5 |
6 | #create packages
7 | & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
8 | & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/test-infra/S3Cachefile.json:
--------------------------------------------------------------------------------
1 | {
2 | "npm-modules": {
3 | "key": "./npm-shrinkwrap.json",
4 | "cache": "../node_modules",
5 | "generate": "./uncached-npm-install.sh"
6 | },
7 | "rubygems": {
8 | "key": "../pseudo_Gemfile.lock",
9 | "cache": "$GEMDIR",
10 | "generate": "gem install -N jekyll -v $JEKYLL_VERSION && gem install -N rouge -v $ROUGE_VERSION"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/test-infra/requirements.txt:
--------------------------------------------------------------------------------
1 | boto==2.25.0
2 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/lib/bootstrap/test-infra/uncached-npm-install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 | cd .. # /bootstrap/
4 | cp test-infra/npm-shrinkwrap.json npm-shrinkwrap.json
5 | # npm is flaky, so try multiple times
6 | MAXTRIES=3
7 | TRIES=1
8 | while ! npm install; do
9 | if [ $TRIES -ge $MAXTRIES ]; then
10 | exit 1
11 | fi
12 | TRIES=$(($TRIES + 1))
13 | echo "Retrying npm install (Try $TRIES of $MAXTRIES)..."
14 | done
15 | rm npm-shrinkwrap.json
16 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme-data.js:
--------------------------------------------------------------------------------
1 | ThemeData = function (file) {
2 | return Assets.getText(file);
3 | }
4 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/cart/cartDrawer/cartSubTotals/cartSubTotals.less:
--------------------------------------------------------------------------------
1 | .cart-drawer {
2 | .cart-items {
3 | // border: 3px solid @body-bg
4 | }
5 |
6 | .table {
7 | background-color: transparent;
8 | }
9 |
10 | .cart-totals {
11 | .text-align(left);
12 | padding: 15px;
13 | font-size: 16px;
14 | height: 100%;
15 | width: 225px;
16 | height: 225px;
17 | color: contrast(@cart-drawer-bg, black, white);
18 | }
19 |
20 | thead {
21 | height: 2em;
22 | font-weight: 900;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/dashboard/widget/widget.less:
--------------------------------------------------------------------------------
1 | // use .dashboard-widget for outer div, and .dashboard-widget-center for inner div to properly orient on the dashboard slider
2 | // see dashboard.import.less
3 |
4 | .order-multi-graph-link {
5 | &:hover {
6 | text-decoration: none;
7 | }
8 | }
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/layout/footer/footer.less:
--------------------------------------------------------------------------------
1 | /* Set the fixed height of the footer here */
2 | .footer-default {
3 | position: relative;
4 | padding: 40px 20px;
5 | background-color: @footer-default-bg;
6 |
7 | a {
8 | color: @footer-default-color;
9 |
10 | &:hover {
11 | color: @footer-default-color-hover;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/layout/header/header.less:
--------------------------------------------------------------------------------
1 | .ltr({
2 | // This is for making sure WebKit knows the "default" direction when switching back from RTL.
3 | // It solves a bug where some of the elements stayed RTL because the Computed Style on Document still says direction: rtl
4 | direction: ltr;
5 | });
6 |
7 | .rtl({
8 | direction: rtl;
9 | text-align: right;
10 | });
11 |
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/products/productDetail/attributes/attributes.less:
--------------------------------------------------------------------------------
1 | .pdp-container {
2 | .metafield-list-item, .metafield-new-item {
3 | .row {
4 | padding: 5px 3px 5px;
5 | }
6 | padding: 5px 3px 5px;
7 | cursor: pointer;
8 | input {
9 | width: 48%;
10 | }
11 | }
12 | .metafield-remove {
13 | position: absolute;
14 | top: 10px;
15 | right: 5px;
16 | color: @input-color-placeholder;
17 | cursor: pointer;
18 | }
19 | }
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/products/productDetail/variants/variantForm/childVariant/childVariant.less:
--------------------------------------------------------------------------------
1 | .child-variant-table {
2 | margin-bottom: 0px;
3 | }
4 | .remove-child-variant {
5 | margin: 8px 0 0 0;
6 | }
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/products/productDetail/variants/variantList/variantList.less:
--------------------------------------------------------------------------------
1 | .variant-list-item {
2 | margin: 5px 0 5px 0;
3 | line-height: 28px;
4 | cursor: pointer;
5 | .progress {
6 | height: 28px;
7 | }
8 | .progress-bar-success {
9 | opacity: 0.8;
10 | }
11 | .well{
12 | margin-bottom: 5px;
13 | }
14 | }
--------------------------------------------------------------------------------
/packages/reaction-core-theme/theme/products/productList/productList.less:
--------------------------------------------------------------------------------
1 | .product-list {
2 | display: none;
3 | }
4 | .product-list-item img {
5 | margin-top: 20px;
6 | }
--------------------------------------------------------------------------------
/packages/reaction-core/.gitignore:
--------------------------------------------------------------------------------
1 | .build*
2 | .DS_Store
3 | *.log
4 | versions.json
5 | .versions
6 |
--------------------------------------------------------------------------------
/packages/reaction-core/.npm/package/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/packages/reaction-core/.npm/package/README:
--------------------------------------------------------------------------------
1 | This directory and the files immediately inside it are automatically generated
2 | when you change this package's NPM dependencies. Commit the files in this
3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4 | so that others run the same versions of sub-dependencies.
5 |
6 | You should NOT check in the node_modules directory that Meteor automatically
7 | creates; if you are using git, the .gitignore file tells git to ignore it.
8 |
--------------------------------------------------------------------------------
/packages/reaction-core/client/components/numericInput/numericInput.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-core/common/common.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * Match.OptionalOrNull
4 | * See Meteor Match methods
5 | * @param {String} pattern - match pattern
6 | * @return {Boolean} matches - void, null, or pattern
7 | */
8 | Match.OptionalOrNull = function (pattern) {
9 | return Match.OneOf(void 0, null, pattern);
10 | };
11 |
12 | /**
13 | * Match.OrderHookOption
14 | * See Meteor Match methods
15 | * @return {Boolean} matches - void, null, or pattern
16 | */
17 | Match.OrderHookOptions = function () {
18 | return Match.OneOf(Object);
19 | };
20 |
--------------------------------------------------------------------------------
/packages/reaction-core/lib/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower/"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/reaction-core/lib/.gitignore:
--------------------------------------------------------------------------------
1 | bower
2 |
--------------------------------------------------------------------------------
/packages/reaction-core/server/init.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * Execute start up fixtures
4 | */
5 |
6 | Meteor.startup(function () {
7 | ReactionCore.init();
8 | // we've finished all reaction core initialization
9 | ReactionCore.Log.info("Reaction initialization finished.");
10 | });
11 |
--------------------------------------------------------------------------------
/packages/reaction-core/server/logger.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionCore.Log = Logger;
3 |
--------------------------------------------------------------------------------
/packages/reaction-core/server/methods/.gitignore:
--------------------------------------------------------------------------------
1 | /products-DEPRECATED.js
2 |
--------------------------------------------------------------------------------
/packages/reaction-core/server/registry/registry.js:
--------------------------------------------------------------------------------
1 | /*
2 | * ReactionRegistry is a global server object that it can be reused in packages
3 | * assumes collection data in reaction-core/private/data, optionally jsonFile
4 | * use jsonFile when calling from another package, as we can't read the assets from here
5 | */
6 |
7 | // initialize shop registry when a new shop is added
8 | ReactionCore.Collections.Shops.find().observe({
9 | added(doc) {
10 | ReactionRegistry.setShopName(doc);
11 | ReactionRegistry.setDomain();
12 | },
13 | removed() {
14 | // TODO SHOP REMOVAL CLEANUP FOR #357
15 | }
16 | });
17 |
--------------------------------------------------------------------------------
/packages/reaction-dashboard/README.md:
--------------------------------------------------------------------------------
1 | # reaction-dashboard
2 | Reaction Commerce dashboard templates
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-dashboard
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-dashboard/client/templates/dashboard/dashboard.js:
--------------------------------------------------------------------------------
1 | //
2 | // registry helper for the dashboard, assembles i18n labels
3 | //
4 | Template.dashboardHeader.helpers({
5 | registry: function () {
6 | // just some handle little helpers for default package i18nKey/i18nLabel
7 | let route = ReactionRouter.getRouteName();
8 | let registry = ReactionCore.getRegistryForCurrentRoute() || {};
9 | if (registry && route) {
10 | return ReactionCore.translateRegistry(registry);
11 | }
12 | }
13 | });
14 |
15 | //
16 | // dashboard events
17 | //
18 | Template.dashboardHeader.events({
19 | "click [data-event-action=showPackageSettings]": function () {
20 | ReactionCore.showActionView();
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/packages/reaction-dashboard/client/templates/dashboard/import/import.html:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/reaction-dashboard/client/templates/dashboard/packages/grid/grid.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#each group in groups}}
4 |
5 | {{#cardGroup title=group}}
6 | {{> packagesGridGroup apps=(appsInGroup group)}}
7 | {{/cardGroup}}
8 |
9 | {{/each}}
10 |
11 |
12 |
13 |
14 |
15 | {{#each app in apps}}
16 | {{#if (pkgPermissions app)}}
17 |
18 | {{> gridPackage package=app}}
19 |
20 | {{/if}}
21 | {{/each}}
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/packages/reaction-dashboard/client/templates/dashboard/packages/packages.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{> packagesGrid}}
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/reaction-default-theme/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Default Theme
2 |
3 | Default theme from Reaction Commerce. Simply includes all css from `reactioncommerce:core-theme`.
4 |
--------------------------------------------------------------------------------
/packages/reaction-default-theme/img/.gitignore:
--------------------------------------------------------------------------------
1 | /logo.png
2 |
--------------------------------------------------------------------------------
/packages/reaction-default-theme/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | name: "reactioncommerce:default-theme",
3 | summary: "Reaction Commerce Default theme",
4 | version: "1.0.4"
5 | });
6 |
7 | Package.onUse(function (api) {
8 | // Works with meteor 1.2 and above
9 | api.versionsFrom("METEOR@1.2");
10 |
11 | // Using less only for this theme
12 | api.use("less");
13 | api.use("fortawesome:fontawesome@4.5.0");
14 |
15 | // Include core theme to get its base styles
16 | api.use("reactioncommerce:core-theme@2.0.1");
17 |
18 | // Add top level .less files
19 | api.addFiles([
20 | "main.less"
21 | ], "client");
22 | });
23 |
--------------------------------------------------------------------------------
/packages/reaction-email-templates/server/register.js:
--------------------------------------------------------------------------------
1 | ReactionCore.registerPackage({
2 | label: "Email Templates",
3 | name: "reaction-email-templates",
4 | icon: "fa fa-envelope-square",
5 | autoEnable: true,
6 | settings: {
7 | name: "Email"
8 | },
9 | registry: [{
10 | provides: "dashboard",
11 | template: "emailTemplateDashboard",
12 | label: "Email",
13 | description: "Email templates",
14 | icon: "fa fa-envelope-square",
15 | priority: 4,
16 | container: "appearance"
17 | }]
18 | });
19 |
--------------------------------------------------------------------------------
/packages/reaction-email-templates/templates/checkout/checkoutLogin.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-email-templates/templates/checkout/checkoutLogin.html
--------------------------------------------------------------------------------
/packages/reaction-email-templates/templates/coreDefault.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-email-templates/templates/coreDefault.html
--------------------------------------------------------------------------------
/packages/reaction-i18n/.npm/package/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/.npm/package/README:
--------------------------------------------------------------------------------
1 | This directory and the files immediately inside it are automatically generated
2 | when you change this package's NPM dependencies. Commit the files in this
3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4 | so that others run the same versions of sub-dependencies.
5 |
6 | You should NOT check in the node_modules directory that Meteor automatically
7 | creates; if you are using git, the .gitignore file tells git to ignore it.
8 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/.npm/package/npm-shrinkwrap.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "i18next": {
4 | "version": "2.2.0"
5 | },
6 | "i18next-browser-languagedetector": {
7 | "version": "0.0.14"
8 | },
9 | "i18next-localstorage-cache": {
10 | "version": "0.0.4"
11 | },
12 | "i18next-sprintf-postprocessor": {
13 | "version": "0.0.6",
14 | "dependencies": {
15 | "sprintf-js": {
16 | "version": "1.0.3"
17 | }
18 | }
19 | },
20 | "jquery-i18next": {
21 | "version": "0.0.14"
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/README.md:
--------------------------------------------------------------------------------
1 | # reaction-i18n
2 | Reaction Commerce i18n utilities
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-i18n
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/client/i18next.browserify.js:
--------------------------------------------------------------------------------
1 | i18next = require("i18next");
2 | i18nextSprintfPostProcessor = require("i18next-sprintf-postprocessor");
3 | i18nextJquery = require("jquery-i18next");
4 | i18nextBrowserLanguageDetector = require("i18next-browser-languagedetector");
5 | i18nextLocalStorageCache = require("i18next-localstorage-cache");
6 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/private/readme.md:
--------------------------------------------------------------------------------
1 | Export from an existing mongodb/meteor reaction collection:
2 | See: http://docs.mongodb.org/v2.2/reference/mongoexport/
3 |
4 | mongoexport --port 3001 --db meteor --collection Products --jsonArray --out packages/reaction-core/private/data/Products.json
--------------------------------------------------------------------------------
/packages/reaction-i18n/server/i18next.js:
--------------------------------------------------------------------------------
1 | i18next = Npm.require("i18next");
2 | i18nextSprintfPostProcessor = Npm.require("i18next-sprintf-postprocessor");
3 | i18nextJquery = Npm.require("jquery-i18next");
4 | i18nextBrowserLanguageDetector = Npm.require("i18next-browser-languagedetector");
5 | i18nextLocalStorageCache = Npm.require("i18next-localstorage-cache");
6 |
--------------------------------------------------------------------------------
/packages/reaction-i18n/server/register.js:
--------------------------------------------------------------------------------
1 | ReactionCore.registerPackage({
2 | label: "i18n",
3 | name: "reaction-i18n",
4 | icon: "fa fa-language",
5 | autoEnable: true,
6 | settings: {
7 | name: "i18n"
8 | },
9 | registry: [{
10 | provides: "dashboard",
11 | template: "i18nDashboard",
12 | label: "i18n",
13 | description: "Internationalization utilities",
14 | icon: "fa fa-language",
15 | priority: 2,
16 | container: "utilities"
17 | }, {
18 | provides: "settings",
19 | template: "i18nSettings",
20 | label: "Localization and i18n",
21 | container: "reaction-i18n"
22 | }]
23 | });
24 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/client/templates/dashboard/inventory.html:
--------------------------------------------------------------------------------
1 |
2 | Sorry, there is not an inventory dashboard yet.
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/client/templates/dashboard/inventory.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-inventory/client/templates/dashboard/inventory.js
--------------------------------------------------------------------------------
/packages/reaction-inventory/client/templates/settings/settings.html:
--------------------------------------------------------------------------------
1 |
2 | Sorry, there are no UI inventory settings yet.
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/client/templates/settings/settings.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-inventory/client/templates/settings/settings.js
--------------------------------------------------------------------------------
/packages/reaction-inventory/common/collections.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ReactionCore Collections Inventory
3 | */
4 | ReactionCore.Collections.Inventory = new Mongo.Collection("Inventory");
5 |
6 | ReactionCore.Collections.Inventory.attachSchema(ReactionCore.Schemas.Inventory);
7 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/common/globals.js:
--------------------------------------------------------------------------------
1 | // exported, global/window scope
2 | ReactionInventory = {};
3 | ReactionInventory.Schemas = {};
4 | ReactionInventory.Collections = {};
5 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/server/logger.js:
--------------------------------------------------------------------------------
1 | // set logging level
2 | // ReactionInventory.Log = logger.bunyan.createLogger({name: "inventory", stream: formatOut});
3 | ReactionInventory.Log = Logger;
4 |
--------------------------------------------------------------------------------
/packages/reaction-inventory/server/publications.js:
--------------------------------------------------------------------------------
1 | Meteor.publish("Inventory", function () {
2 | if (this.userId === null) {
3 | return this.ready();
4 | }
5 | const shopId = ReactionCore.getShopId();
6 | if (!shopId) {
7 | return this.ready();
8 | }
9 | if (Roles.userIsInRole(this.userId, ["admin", "owner", "createProduct"],
10 | shopId)) {
11 | return ReactionCore.Collections.Inventory.find({
12 | shopId: shopId
13 | });
14 | }
15 | return this.ready();
16 | });
17 |
--------------------------------------------------------------------------------
/packages/reaction-layout/README.md:
--------------------------------------------------------------------------------
1 | # reaction-layout
2 | Reaction Commerce layout templates
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-layout
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/createContentMenu/createContentMenu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#each item in items}}
4 | {{> button (buttonProps item)}}
5 | {{/each}}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/footer/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/header/brand/brand.html:
--------------------------------------------------------------------------------
1 |
2 | {{siteName}}
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/header/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{> CoreNavigationBar coreNavProps}}
7 |
8 |
9 |
10 | {{!-- {{> tagNav tagNavProps}} --}}
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/header/menu/button.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/layout.js:
--------------------------------------------------------------------------------
1 | /**
2 | * coreHead helpers
3 | * used to define layout for routes
4 | * see: common/routing.js
5 | */
6 |
7 | Template.coreHead.helpers({
8 | metaData: function () {
9 | return ReactionCore.MetaData;
10 | }
11 | });
12 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/loading/loading.html:
--------------------------------------------------------------------------------
1 |
2 | {{>spinner}}
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/notFound/notFound.js:
--------------------------------------------------------------------------------
1 | Template.notFound.onCreated = function () {
2 | // todo report not found source
3 | };
4 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/layout/notice/unauthorized.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Oops!
6 | You don't have permission to view this content.
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{> loginForm}}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/theme/theme.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-layout/client/templates/theme/theme.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | Meteor.startup(() => {
4 | Tracker.autorun(() => {
5 | const subscription = ReactionCore.Subscriptions.Shops;
6 | if (subscription.ready()) {
7 | const shop = ReactionCore.Collections.Shops.findOne({});
8 |
9 | if (shop) {
10 | if (shop.theme) {
11 | $("#reactionLayoutStyles").text(shop.theme.styles || "");
12 | } else {
13 | $("#reactionLayoutStyles").text("");
14 | }
15 | }
16 | }
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/packages/reaction-layout/private/themes/notFound.css:
--------------------------------------------------------------------------------
1 | /**
2 | * @theme base
3 | * @name notFound
4 | * @label Not Found Page
5 | * @author Reaction commerce
6 | * @url https://reactioncommerce.com
7 | */
8 |
9 | .rui.not-found {
10 | /**
11 | * @label Not Found Container
12 | */
13 | border: --;
14 | padding: --;
15 | background-color: --;
16 | }
17 |
18 | .rui.not-found i {
19 | /**
20 | * @label Icon
21 | */
22 | }
23 |
24 | .rui.not-found .title {
25 | /**
26 | * @label
27 | */
28 | color: --;
29 | font: --;
30 | }
31 |
32 | .rui.not-found .message {
33 | /**
34 | * @label
35 | */
36 | color: --;
37 | font: --;
38 | }
39 |
--------------------------------------------------------------------------------
/packages/reaction-layout/server/register.js:
--------------------------------------------------------------------------------
1 |
2 | // Register Themes
3 | // ReactionUI.registerTheme(Assets.getText("private/themes/notFound.css"));
4 | //
5 | ReactionCore.registerPackage({
6 | label: "Layout",
7 | name: "reaction-layout",
8 | icon: "fa fa-object-group",
9 | autoEnable: true,
10 | settings: {
11 | name: "Layout"
12 | },
13 | registry: [{
14 | provides: "dashboard",
15 | template: "layoutDashboard",
16 | label: "Layout",
17 | description: "Layout utilities",
18 | icon: "fa fa-object-group",
19 | priority: 4,
20 | container: "appearance"
21 | }]
22 | });
23 |
--------------------------------------------------------------------------------
/packages/reaction-logging/.npm/package/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/packages/reaction-logging/.npm/package/README:
--------------------------------------------------------------------------------
1 | This directory and the files immediately inside it are automatically generated
2 | when you change this package's NPM dependencies. Commit the files in this
3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4 | so that others run the same versions of sub-dependencies.
5 |
6 | You should NOT check in the node_modules directory that Meteor automatically
7 | creates; if you are using git, the .gitignore file tells git to ignore it.
8 |
--------------------------------------------------------------------------------
/packages/reaction-logging/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Logging
2 |
3 | Reaction Commerce internal logging package.
4 |
5 | ```
6 | meteor add reactioncommerce:reaction-logging
7 | ```
8 |
--------------------------------------------------------------------------------
/packages/reaction-logging/client/bunyan.browserify.js:
--------------------------------------------------------------------------------
1 | bunyan = require("bunyan");
2 |
--------------------------------------------------------------------------------
/packages/reaction-logging/tests/bunyan-test.js:
--------------------------------------------------------------------------------
1 | Tinytest.add('bunyan', function(test) {
2 | test.isNotNull(logger, 'logger should be available');
3 | test.isNotNull(bunyan, 'bunyan should be available');
4 | });
5 |
--------------------------------------------------------------------------------
/packages/reaction-orders/README.md:
--------------------------------------------------------------------------------
1 | # reaction-layout
2 | Provides Reaction Commerce order management.
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-orders
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/list/items/items.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ordersListItems helpers
3 | *
4 | */
5 | Template.ordersListItems.helpers({
6 | media: function () {
7 | const variantImage = ReactionCore.Collections.Media.findOne({
8 | "metadata.productId": this.productId,
9 | "metadata.variantId": this.variants._id
10 | });
11 | // variant image
12 | if (variantImage) {
13 | return variantImage;
14 | }
15 | // find a default image
16 | const productImage = ReactionCore.Collections.Media.findOne({
17 | "metadata.productId": this.productId
18 | });
19 | if (productImage) {
20 | return productImage;
21 | }
22 | return false;
23 | }
24 | });
25 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/list/pdf/pdf.js:
--------------------------------------------------------------------------------
1 | /**
2 | * completedPDFLayout
3 | * inheritsHelpersFrom dashboardOrdersList
4 | * Uses the browser print function.
5 | */
6 | Template.completedPDFLayout.inheritsHelpersFrom("dashboardOrdersList");
7 |
8 | Template.completedPDFLayout.inheritsEventsFrom("dashboardOrdersList");
9 |
10 | Template.completedPDFLayout.helpers({
11 | invoice: function () {
12 | return this.billing[0].invoices;
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/list/summary/summary.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ordersListSummary helpers
3 | *
4 | * @returns paymentInvoice
5 | */
6 | Template.ordersListSummary.helpers({
7 | invoice: function () {
8 | return this.invoice;
9 | }
10 | });
11 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/orderPage/details/details.js:
--------------------------------------------------------------------------------
1 | /**
2 | * pageOrderDetail helpers
3 | *
4 | */
5 | Template.pageOrderDetail.helpers({
6 | userProfile: function () {
7 | if (typeof this.userId === "string") {
8 | const userProfile = ReactionCore.Collections.
9 | Accounts.findOne(this.userId);
10 | return userProfile.profile;
11 | }
12 | },
13 | orderAge: function () {
14 | return moment(this.createdAt).fromNow();
15 | },
16 | shipmentTracking: function () {
17 | return this.shipping.shipmentMethod.tracking;
18 | },
19 | paymentMethod: function () {
20 | return this.payment.paymentMethod[0].processor;
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/workflow/orderCompleted/orderCompleted.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/reaction-orders/client/templates/dashboard/orders/workflow/orderSummary/orderSummary.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-buyer/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-buyer/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-buyer/reaction-p2p-marketplace-buyer-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-buyer/reaction-p2p-marketplace-buyer.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-locations/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/client/templates/products/locationField/locationField.js:
--------------------------------------------------------------------------------
1 | // inherit helpers from template productDetail so we can use fieldComponent in this here template
2 | Template.productDetailLocationField.inheritsHelpersFrom("productDetail");
3 | Template.productDetailLocationField.inheritsEventsFrom("productDetail");
4 | Template.productDetailLocationField.inheritsHooksFrom("productDetail");
5 |
6 |
7 | Template.productDetailLocationField.onRendered(
8 | function() {
9 | Meteor.setTimeout(function() { // what the?!? document doesn't seem to be ready immediately when this event is fired...
10 | // always show the map on product detail
11 | $(".map-container").css({ opacity: 1.0 });
12 | }, 100);
13 | }
14 | );
15 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/client/templates/products/locationFieldDisplay/locationFieldDisplay.html:
--------------------------------------------------------------------------------
1 |
2 | {{ locationForProduct this }}
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/client/templates/products/productMap/productMap.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{> googleMap name="map" options=mapOptions}}
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/client/templates/products/productMap/productMap.less:
--------------------------------------------------------------------------------
1 |
2 | @import "{reactioncommerce:reaction-ui}/client/styles/variables.less";
3 | @import "{reactioncommerce:reaction-ui}/client/styles/mixins.less";
4 |
5 | .product-map {
6 | //display: none; // makes map initialize empty :( // will be changed by view switcher
7 | width: 100%;
8 | }
9 |
10 | .product-map .map-container {
11 | width: 100%;
12 | height: 600px;
13 | padding: 0 20px;
14 | }
15 |
16 | @media screen and (max-width: @screen-xs) {
17 | .product-map .map-container {
18 | height: 350px;
19 | }
20 | }
21 |
22 | .product-detail-map {
23 | margin-top: 40px;
24 | }
25 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/client/templates/products/productMap/productMapSingle.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{> googleMap name="map" options=mapOptions}}
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/common/collections/collections.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ReactionCore Collections MapMarkers
3 | */
4 | ReactionCore.Collections.MapMarkers = new Mongo.Collection("MapMarkers");
5 |
6 | ReactionCore.Collections.MapMarkers.attachSchema(ReactionCore.Schemas.MapMarker);
7 |
8 | ReactionCore.Collections.MapMarkers.allow({
9 | insert: function(userId, doc) {
10 | // only allow posting if you are logged in
11 | return !! userId;
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/common/schemas/mapmarkers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Map Marker Schema
3 | */
4 |
5 | ReactionCore.Schemas.MapMarker = new SimpleSchema({
6 | _id: {
7 | type: String,
8 | optional: true
9 | },
10 | productId: {
11 | type: String,
12 | optional: false,
13 | defaultValue: ""
14 | },
15 | shopId: {
16 | type: String,
17 | autoValue: ReactionCore.shopIdAutoValue,
18 | index: 1,
19 | label: "Product ShopId"
20 | },
21 | latitude: {
22 | type: String,
23 | defaultValue: "0"
24 | },
25 | longitude: {
26 | type: String,
27 | defaultValue: "0"
28 | },
29 | });
30 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/public/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-locations/public/images/icon.png
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/reaction-p2p-marketplace-locations-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/reaction-p2p-marketplace-locations.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-locations/server/security/browserPolicy.js:
--------------------------------------------------------------------------------
1 | Meteor.startup(function() {
2 | BrowserPolicy.content.allowOriginForAll("*.googleapis.com");
3 | BrowserPolicy.content.allowOriginForAll("*.gstatic.com");
4 | return BrowserPolicy.content.allowOriginForAll("maps.googleapis.com");
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-profile/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/client/templates/accountProfile/marketplaceAccountProfile.less:
--------------------------------------------------------------------------------
1 |
2 | .profile-input-description {
3 | height: 200px !important;
4 | }
5 |
6 | .address-book .panel-control-bar,
7 | .address-list-heading,
8 | .address-list-heading,
9 | .address-list-item div[data-event-action="selectBillingAddress"],
10 | #addressBookEditForm .address-options,
11 | #addressBookAddForm .address-options {
12 | display: none;
13 | }
14 |
15 | select[name="country"] option:first-child {
16 | visibility: hidden; /* can't translate (Select One) so we hide it */
17 | }
18 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/client/templates/publicProfile/marketplaceProfileWidget.js:
--------------------------------------------------------------------------------
1 |
2 | Template.marketplaceProfileWidget.inheritsHooksFrom("marketplaceProfile");
3 | Template.marketplaceProfileWidget.inheritsHelpersFrom("marketplaceProfile");
4 | Template.marketplaceProfileWidget.inheritsEventsFrom("marketplaceProfile");
5 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/client/templates/publicProfile/marketplaceProfileWidget.less:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/reaction-p2p-marketplace-profile-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-profile/reaction-p2p-marketplace-profile.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-ratings/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/client/templates/products/productDetail/productDetailMarketplaceRating.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Rating
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/common/collections/collections.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionCore.Collections.Ratings = new Mongo.Collection("Ratings");
3 | ReactionCore.Collections.Ratings.attachSchema(ReactionCore.Schemas.Ratings);
4 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/common/schemas/ratings.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionCore.Schemas.Ratings = new SimpleSchema(
3 | {
4 | "raterId": {
5 | type: String,
6 | optional: false
7 | },
8 | "rateeId": {
9 | type: String,
10 | optional: false
11 | },
12 | "value": {
13 | type: Number,
14 | decimal: true,
15 | optional: false
16 | },
17 | }
18 | );
19 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/reaction-p2p-marketplace-ratings-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/reaction-p2p-marketplace-ratings.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/server/publications/ratings.js:
--------------------------------------------------------------------------------
1 |
2 | Meteor.publish("Ratings", function () {
3 | return ReactionCore.Collections.Ratings.find(
4 | /*
5 | {
6 | raterId: Meteor.userId()
7 | }*/
8 | );
9 |
10 | });
11 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-ratings/server/security/ratings.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionCore.Collections.Ratings.allow({
3 | insert: function(userId, rating) {
4 | if (Match.test(rating, ReactionCore.Schemas.Ratings)) {
5 | return true
6 | }
7 | return false
8 | },
9 | update: function(userId, rating, fields, modifier) {
10 | ReactionCore.Log.info("ReactionCore.Collections.Ratings.allow.update() ",rating);
11 | if (userId != rating.raterId) {
12 | return false;
13 | }
14 | return true;
15 | },
16 | remove: function(userId, rating) {
17 | if (rating.shopId !== ReactionCore.getShopId()) {
18 | return false;
19 | }
20 | return true;
21 | }
22 | });
23 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-sell-date/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-sell-date/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-sell-date/client/templates/products/dateField/dateField.less:
--------------------------------------------------------------------------------
1 |
2 | .pickupTime-label {
3 | float: left;
4 | width: 50px;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-sell-date/common/collections/collections.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Collections Templates
3 | */
4 |
5 | // overriding Products collection set by reaction core
6 | ReactionCore.Collections.Products.attachSchema(ReactionCore.Schemas.Product, {selector: { type: "simple" }, replace: true});
7 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-sell-date/reaction-p2p-marketplace-sell-date-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-seller/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/addressBook/addressBook.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Address Book
5 |
6 | {{> addressBook address=address}}
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/addressBook/addressBook.js:
--------------------------------------------------------------------------------
1 |
2 | Template.addressBookPanelSeller.replaces("addressBookPanel");
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/dashboard/orders/details/detail.js:
--------------------------------------------------------------------------------
1 | Template.orderDetailMarketplace.replaces("orderDetail");
2 |
3 | Template.orderDetail.helpers({
4 | transactionId: function () {
5 | return this.billing[0].paymentMethod.transactionId;
6 | }
7 | });
8 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/dashboard/orders/sellerOrders.less:
--------------------------------------------------------------------------------
1 | /*
2 | .seller-orders .controls {
3 | display: none;
4 | }*/
5 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/dashboard/products/list/productsList.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Products
6 |
7 |
10 | {{> productsMarketplace}}
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/dashboard/products/list/productsList.less:
--------------------------------------------------------------------------------
1 | .backend-product-list img {
2 | width: 100px;
3 | min-width: 100px;
4 | max-width: 100px;
5 | }
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/products/productDetail/variants/variantForm/variantForm.js:
--------------------------------------------------------------------------------
1 |
2 | Template.variantFormMarketplace.replaces('variantForm');
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/signIn/signIn.js:
--------------------------------------------------------------------------------
1 |
2 | //Template.loginFormSignInViewMarketplace.replaces("loginFormSignInView");
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/client/templates/signUp/sellerFlag.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Do you want to sell products?
4 |
5 | {{#if hasError messages.errors.isSeller}}
6 |
7 | {{messages.errors.isSeller}}
8 |
9 | {{/if}}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/collections/collections.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Collections Templates
3 | */
4 |
5 | // overriding Products collection set by reaction core
6 | ReactionCore.Collections.Products.attachSchema(ReactionCore.Schemas.Product, {selector: { type: "simple" }, replace: true});
7 |
8 | ReactionCore.Collections.Accounts.attachSchema(ReactionCore.Schemas.Accounts, {replace: true});
9 |
10 | ReactionCore.Collections.Cart.attachSchema(ReactionCore.Schemas.Cart, {replace: true});
11 |
12 | ReactionCore.Collections.Orders.attachSchema([ReactionCore.Schemas.Cart,
13 | ReactionCore.Schemas.Order,
14 | ReactionCore.Schemas.OrderItem], {replace: true});
15 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/common.js:
--------------------------------------------------------------------------------
1 |
2 | //Meteor.users.update(Meteor.userId(), {$set: {'profile.company': company._id }});
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/schemas/accounts.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionCore.Schemas.Accounts = new SimpleSchema([
3 | ReactionCore.Schemas.Accounts, {
4 | isSeller: {
5 | type: Boolean,
6 | defaultValue: false,
7 | optional: true
8 | },
9 | acceptedTerms: {
10 | type: Boolean,
11 | defaultValue: false,
12 | optional: true
13 | },
14 | isDecided: {
15 | type: Boolean,
16 | defaultValue: false,
17 | optional: true
18 | },
19 | }
20 | ]);
21 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/schemas/cart.js:
--------------------------------------------------------------------------------
1 |
2 | // overriding CartItem schema with extended version
3 | ReactionCore.Schemas.CartItem = new SimpleSchema([
4 | ReactionCore.Schemas.CartItem,
5 | {
6 | sellerId: {
7 | type: String,
8 | index: 1,
9 | optional: true
10 | },
11 | }
12 | ]);
13 |
14 | ReactionCore.Schemas.CartItems = new SimpleSchema({
15 | items: {
16 | type: [ReactionCore.Schemas.CartItem],
17 | optional: true
18 | }
19 | });
20 |
21 | ReactionCore.Schemas.Cart = new SimpleSchema([
22 | ReactionCore.Schemas.Cart,
23 | {
24 | items: {
25 | type: [ReactionCore.Schemas.CartItem],
26 | optional: true
27 | },
28 | }
29 | ]);
30 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/schemas/i18n/de.i18n.json:
--------------------------------------------------------------------------------
1 | {
2 | "schemas": {
3 | "products": {
4 | "inventoryQuantity": {
5 | "label": "Menge",
6 | "placeholder": "Enter a title for your post"
7 | },
8 | "category": {
9 | "label": "Category",
10 | "placeholder": "Select a category",
11 | "options": {
12 | "announcements": "Announcements",
13 | "packages": "Packages",
14 | "ama": "AMA",
15 | "news": "News"
16 | }
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/schemas/orders.js:
--------------------------------------------------------------------------------
1 |
2 | // overriding CartItem schema with extended version
3 | ReactionCore.Schemas.OrderItem = new SimpleSchema([
4 | ReactionCore.Schemas.OrderItem,
5 | {
6 | sellerId: {
7 | type: String,
8 | index: 1,
9 | optional: true
10 | },
11 | }
12 | ]);
13 |
14 | ReactionCore.Schemas.Order = new SimpleSchema([
15 | ReactionCore.Schemas.Order,
16 | {
17 | items: {
18 | type: [ReactionCore.Schemas.OrderItem],
19 | optional: true
20 | },
21 | }
22 | ]);
23 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/common/schemas/products.js:
--------------------------------------------------------------------------------
1 |
2 | // overriding product schema with extended version
3 | ReactionCore.Schemas.Product = new SimpleSchema([
4 | ReactionCore.Schemas.Product, {
5 | userId: {
6 | type: String,
7 | index: 1
8 | },
9 | isActive: {
10 | type: Boolean,
11 | index: 1,
12 | defaultValue: false
13 | },
14 | copiedInventoryQuantity: {
15 | type: Number,
16 | label: "Quantity",
17 | optional: true
18 | },
19 | soldOne: {
20 | type: Boolean,
21 | defaultValue: false
22 | },
23 | }
24 | ]);
25 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/public/images/decision_deco.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-seller/public/images/decision_deco.jpg
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/reaction-p2p-marketplace-seller-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/reaction-p2p-marketplace-seller.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/server/publications/orders.js:
--------------------------------------------------------------------------------
1 | /**
2 | * seller orders
3 | */
4 |
5 | Meteor.publish("SellerOrders", function () {
6 | if (this.userId === null) {
7 | return this.ready();
8 | }
9 | const shopId = ReactionCore.getShopId();
10 | if (!shopId) {
11 | return this.ready();
12 | }
13 | if (Roles.userIsInRole(this.userId, ["admin", "owner"], shopId)) {
14 | return ReactionCore.Collections.Orders.find({
15 | shopId: shopId
16 | });
17 | }
18 | return ReactionCore.Collections.Orders.find({
19 | shopId: shopId,
20 | //"items.item.sellerId": this.userId
21 | items: {
22 | $elemMatch: {
23 | sellerId: this.userId,
24 | }
25 | }
26 | });
27 | });
28 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-seller/server/publications/productsForOrdersHistory.js:
--------------------------------------------------------------------------------
1 | /**
2 | * products publication
3 | * @return {Object} return product cursor
4 | */
5 | Meteor.publish("ProductsForOrdersHistory", function () {
6 | const Products = ReactionCore.Collections.Products;
7 | return Products.find({});
8 | });
9 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-simplified-products/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/cart/cartDrawer/cartDrawer.js:
--------------------------------------------------------------------------------
1 | Template.newOpenCartDrawer.replaces("openCartDrawer");
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/cart/cartDrawer/cartItems/cartItems.js:
--------------------------------------------------------------------------------
1 | Template.newCartDrawerItems.replaces("cartDrawerItems");
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/cart/cartDrawer/cartSubTotals/cartSubTotals.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Your cart
6 | Artikel {{cart.cartCount}}
7 | Total {{formatPrice cart.cartTotal}}
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/cart/cartDrawer/cartSubTotals/cartSubTotals.js:
--------------------------------------------------------------------------------
1 | Template.newCartSubTotals.replaces('cartSubTotals');
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/productDetailHideVariants.js:
--------------------------------------------------------------------------------
1 |
2 | // let simplifyProductPage = function() {
3 |
4 | // }
5 |
6 | // Template.productDetail.onRendered(
7 | // simplifyProductPage
8 | // );
9 |
10 | // Template.productDetailEdit.onRendered( // to simplify page after only fields are reloaded without full page reload
11 | // simplifyProductPage
12 | // );
13 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/simplifiedProduct.js:
--------------------------------------------------------------------------------
1 |
2 | Template.simplifiedProductCssInclude.helpers(
3 | {
4 | urlFor: function(relativeUrl) {
5 | return "/packages/scydev_reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/"+relativeUrl;
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/simplifiedProductBuyer.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/simplifiedProductBuyer.css
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/simplifiedProductSeller.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/simplifiedProductSeller.css
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/client/templates/products/productDetail/tags/tags.less:
--------------------------------------------------------------------------------
1 |
2 | .tag-input-hashtag {
3 | display: none;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/reaction-p2p-marketplace-simplified-products-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace-simplified-products/reaction-p2p-marketplace-simplified-products.js:
--------------------------------------------------------------------------------
1 | // Write your package code here!
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-p2p-marketplace/README.md
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/cart/checkout/checkout.js:
--------------------------------------------------------------------------------
1 | Template.cartCheckoutMarketplace.replaces("cartCheckout");
2 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/cart/checkout/header/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{> layoutHeader}}
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/cart/checkout/header/header.js:
--------------------------------------------------------------------------------
1 |
2 | Template.checkoutHeaderMarketplace.replaces("checkoutHeader");
3 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/dashboard/orders/list/itemSeller/itemSeller.html:
--------------------------------------------------------------------------------
1 |
2 | {{ itemSellerNameAddressPhone this }}
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/dashboard/orders/list/ordersList.js:
--------------------------------------------------------------------------------
1 | Template.dashboardOrdersListMarketplace.replaces("dashboardOrdersList");
2 |
3 | /**
4 | * dashboardOrdersList helpers
5 | *
6 | */
7 | Template.dashboardOrdersList.helpers({
8 | orderCreatedAt: function () {
9 | let context = this.createdAt;
10 | if (window.moment) {
11 | return moment(context).format("DD.MM.YYYY HH:mm");
12 | }
13 | return context;
14 | },
15 | });
16 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/dropdown/dropdown.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> accountsDropdownApps}}
5 |
6 |
Sign Out
7 |
8 |
9 |
10 | {{>spinner}}
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/dropdown/dropdown.js:
--------------------------------------------------------------------------------
1 |
2 | Template.marketplaceUserDropdown.replaces("userDropdown");
3 |
4 | Template.loginDropdown.events({
5 | "click #logout": function (event, template) {
6 | event.preventDefault();
7 |
8 | template.$(".dropdown-toggle").dropdown("toggle");
9 | $("#userDropdownSpinnerContainer").show();
10 |
11 | return event.stopPropagation();
12 | }
13 | });
14 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/dropdown/dropdown.less:
--------------------------------------------------------------------------------
1 | #userDropdownSpinnerContainer div.spinnerBox {
2 | height: 200px;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/products/productList/productList.less:
--------------------------------------------------------------------------------
1 |
2 | .product-list-item img {
3 | width: 100px;
4 | min-width: 100px;
5 | max-width: 100px;
6 | }
7 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/products/productsMarketplace.html:
--------------------------------------------------------------------------------
1 |
2 | {{> searchBox}}
3 |
4 |
5 | {{> productsViewSwitcher}}
6 |
7 | {{> productGrid tag}}
8 |
9 | {{> productList tag}}
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/client/templates/style.less:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | fixes to reaction style
4 | */
5 |
6 | .dropup, .dropdown {
7 | position: static !important;
8 | }
9 |
10 | .product-grid-item .for-sale-on-date,
11 | .product-grid-item .location-text {
12 | width: 100%;
13 | text-align: center;
14 | }
15 |
16 | .product-grid-item .for-sale-on-date {
17 | padding-top: 20px;
18 | }
19 |
20 | .product-list-item .for-sale-on-date,
21 | .product-list-item .location-text {
22 | padding-top: 20px;
23 | }
24 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/reaction-p2p-marketplace-tests.js:
--------------------------------------------------------------------------------
1 | // Write your tests here!
2 | // Here is an example.
3 | Tinytest.add('example', function (test) {
4 | test.equal(true, true);
5 | });
6 |
--------------------------------------------------------------------------------
/packages/reaction-p2p-marketplace/server/methods/checkout.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | ReactionCore.MethodHooks.before('genericSubmit', function(options) {
4 | //"genericSubmit": function (transactionType, cardData, paymentData) {
5 | ReactionCore.Log.info("ReactionCore.MethodHooks.before('genericSubmit') Access Denied!");
6 | throw new Meteor.Error(403, "Access Denied");
7 | });
8 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/README.md:
--------------------------------------------------------------------------------
1 | # reaction-product-variant
2 | Basic Reaction product type with variants.
3 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/productDetail/social/social.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{!-- Social Commentary --}}
4 | {{#each reactionApps provides="social" name="reaction-social"}}
5 | {{> Template.dynamic template=template data=customSocialSettings }}
6 | {{/each}}
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/productGrid/content/content.js:
--------------------------------------------------------------------------------
1 | /**
2 | * gridContent helpers
3 | */
4 |
5 | Template.gridContent.helpers({
6 | displayPrice: function () {
7 | return this._id && this.price && this.price.range;
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/productGrid/controls/controls.js:
--------------------------------------------------------------------------------
1 | Template.gridControls.onRendered(function () {
2 | return this.$("[data-toggle='tooltip']").tooltip({
3 | position: "top"
4 | });
5 | });
6 |
7 | Template.gridControls.helpers({
8 | checked: function () {
9 | const selectedProducts = Session.get("productGrid/selectedProducts");
10 | return _.isArray(selectedProducts) ? selectedProducts.indexOf(this._id) >= 0 : false;
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/productGrid/notice/notice.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if isSoldOut}}
3 | {{#if isBackorder}}
4 | Backorder
5 | {{else}}
6 | Sold Out!
7 | {{/if}}
8 | {{else}}
9 | {{#if isLowQuantity}}
10 | Limited Supply
11 | {{/if}}
12 | {{/if}}
13 |
14 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/productGrid/notice/notice.js:
--------------------------------------------------------------------------------
1 | /**
2 | * gridNotice helpers
3 | */
4 | Template.gridNotice.helpers({
5 | isLowQuantity: function () {
6 | return this.isLowQuantity;
7 | },
8 | isSoldOut: function () {
9 | return this.isSoldOut;
10 | },
11 | isBackorder: function () {
12 | return this.isBackorder;
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/packages/reaction-product-variant/client/templates/products/products.html:
--------------------------------------------------------------------------------
1 |
2 | {{>productGrid tag}}
3 |
4 |
5 |
6 |
7 | {{>productGrid}}
8 | {{#if hasPermission "createProduct"}}
9 | {{>productList}}
10 | {{/if}}
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/reaction-router/server/register.js:
--------------------------------------------------------------------------------
1 | ReactionCore.registerPackage({
2 | label: "Router",
3 | name: "reaction-router",
4 | icon: "fa fa-share-square-o",
5 | autoEnable: true,
6 | settings: {
7 | name: "Layout"
8 | },
9 | registry: [{
10 | provides: "dashboard",
11 | template: "routerDashboard",
12 | label: "Routing",
13 | description: "Routing utilities",
14 | icon: "fa fa-share-square-o",
15 | priority: 4,
16 | container: "utilities"
17 | }]
18 | });
19 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data-custom/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Sample Data
2 |
3 | This package contains some sample data to load into an empty reaction database. It also contains the data needed to obtain a functional installation. This package will also load the sample data on first startup, but only if no other data is found in the collection being loaded.
4 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data-custom/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | summary: "Reaction Commerce Sample Data",
3 | name: "scydev:reaction-sample-data-custom",
4 | version: "0.1.2",
5 | documentation: "README.md"
6 | });
7 |
8 | Package.onUse(function (api) {
9 | api.versionsFrom("METEOR@1.2.1");
10 |
11 | // reaction core
12 | api.use("reactioncommerce:core@0.12.0");
13 |
14 | // load fixture data
15 | api.addFiles("server/load.js", "server");
16 |
17 | // Private fixture data
18 | api.addAssets("private/data/Products.json", "server");
19 | api.addAssets("private/data/Shops.json", "server");
20 | api.addAssets("private/data/Tags.json", "server");
21 | });
22 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data-custom/private/data/Tags.json:
--------------------------------------------------------------------------------
1 | []
2 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data-custom/server/load.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hook to setup core additional imports during ReactionCore init (shops process first)
3 | */
4 | if (ReactionCore && ReactionCore.Hooks) {
5 | ReactionCore.Hooks.Events.add("onCoreInit", () => {
6 | ReactionImport.fixture().process(Assets.getText("private/data/Shops.json"), ["name"], ReactionImport.shop);
7 | // ensure Shops are loaded first.
8 | ReactionImport.flush();
9 | // these will flush/import with the rest of the imports from core init.
10 | ReactionImport.fixture().process(Assets.getText("private/data/Products.json"), ["title"], ReactionImport.load);
11 | ReactionImport.fixture().process(Assets.getText("private/data/Tags.json"), ["name"], ReactionImport.load);
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Sample Data
2 |
3 | This package contains some sample data to load into an empty reaction database. It also contains the data needed to obtain a functional installation. This package will also load the sample data on first startup, but only if no other data is found in the collection being loaded.
4 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data/package.js:
--------------------------------------------------------------------------------
1 | Package.describe({
2 | summary: "Reaction Commerce Sample Data",
3 | name: "reactioncommerce:reaction-sample-data",
4 | version: "0.1.2",
5 | documentation: "README.md"
6 | });
7 |
8 | Package.onUse(function (api) {
9 | api.versionsFrom("METEOR@1.2.1");
10 |
11 | // reaction core
12 | api.use("reactioncommerce:core@0.12.0");
13 |
14 | // load fixture data
15 | api.addFiles("server/load.js", "server");
16 |
17 | // Private fixture data
18 | api.addAssets("private/data/Products.json", "server");
19 | api.addAssets("private/data/Shops.json", "server");
20 | api.addAssets("private/data/Tags.json", "server");
21 | });
22 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data/private/data/Tags.json:
--------------------------------------------------------------------------------
1 | [{
2 | "slug": "example-product",
3 | "name": "example-product",
4 | "isTopLevel": false,
5 | "updatedAt": {
6 | "$date": "2014-04-12T08:17:20.576-0700"
7 | },
8 | "createdAt": {
9 | "$date": "2014-04-12T08:17:20.576-0700"
10 | },
11 | "_id": "cseCBSSrJ3t8HQSNP",
12 | "shopId": "J8Bhq3uTtdgwZx3rz"
13 | }, {
14 | "slug": "shop",
15 | "name": "Shop",
16 | "isTopLevel": true,
17 | "updatedAt": {
18 | "$date": "2014-04-09T13:23:57.412-0700"
19 | },
20 | "createdAt": {
21 | "$date": "2014-04-09T13:23:57.412-0700"
22 | },
23 | "_id": "rpjCvTBGjhBi2xdro",
24 | "shopId": "J8Bhq3uTtdgwZx3rz"
25 | }]
26 |
--------------------------------------------------------------------------------
/packages/reaction-sample-data/server/load.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Hook to setup core additional imports during ReactionCore init (shops process first)
3 | */
4 | if (ReactionCore && ReactionCore.Hooks) {
5 | ReactionCore.Hooks.Events.add("onCoreInit", () => {
6 | ReactionImport.fixture().process(Assets.getText("private/data/Shops.json"), ["name"], ReactionImport.shop);
7 | // ensure Shops are loaded first.
8 | ReactionImport.flush();
9 | // these will flush/import with the rest of the imports from core init.
10 | ReactionImport.fixture().process(Assets.getText("private/data/Products.json"), ["title"], ReactionImport.load);
11 | ReactionImport.fixture().process(Assets.getText("private/data/Tags.json"), ["name"], ReactionImport.load);
12 | });
13 | }
14 |
--------------------------------------------------------------------------------
/packages/reaction-schemas/README.md:
--------------------------------------------------------------------------------
1 | # Reaction Schemas
2 | This is a core package of Reaction Commerce and provides schema definitions.
3 |
4 | `reactioncommerce:reaction-collections` is dependent on, and includes this package.
5 |
6 | ## Installation
7 |
8 | ```bash
9 | meteor add reactioncommerce:reaction-schemas
10 | ```
11 |
--------------------------------------------------------------------------------
/packages/reaction-schemas/common/schemas/templates.js:
--------------------------------------------------------------------------------
1 | ReactionCore.Schemas.Templates = new SimpleSchema({
2 | template: {
3 | type: String
4 | },
5 | language: {
6 | type: String,
7 | optional: true,
8 | defaultValue: "en"
9 | },
10 | source: {
11 | type: String,
12 | optional: true
13 | }
14 | });
15 |
--------------------------------------------------------------------------------
/packages/reaction-schemas/common/schemas/themes.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @summary Themes Schema
3 | * Schema for themes used in reaction-layout
4 | */
5 |
6 | ReactionCore.Schemas.Themes = new SimpleSchema({
7 | theme: {
8 | type: String,
9 | index: true
10 | },
11 |
12 | author: {
13 | type: String,
14 | optional: true
15 | },
16 |
17 | layout: {
18 | type: String,
19 | optional: true,
20 | defaultValue: "coreLayout"
21 | },
22 |
23 | url: {
24 | type: String,
25 | optional: true
26 | },
27 |
28 | components: {
29 | type: [Object],
30 | optional: true,
31 | blackbox: true
32 | }
33 | });
34 |
--------------------------------------------------------------------------------
/packages/reaction-schemas/common/schemas/translations.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * translations schema
4 | * mostly just a blackbox for now
5 | * someday maybe we'll validate the entire schema
6 | * since ui editing for these values are likely
7 | */
8 |
9 | ReactionCore.Schemas.Translation = new SimpleSchema({
10 | shopId: {
11 | type: String,
12 | index: 1,
13 | autoValue: ReactionCore.shopIdAutoValue,
14 | label: "Translation ShopId"
15 | },
16 | language: {
17 | type: String
18 | },
19 | i18n: {
20 | type: String,
21 | index: 1
22 | },
23 | translation: {
24 | type: Object,
25 | blackbox: true
26 | }
27 | });
28 |
--------------------------------------------------------------------------------
/packages/reaction-schemas/common/schemas/workflow.js:
--------------------------------------------------------------------------------
1 | /**
2 | * workflow schema for attaching to collection where
3 | * PackageWorkflow is controlling view flow
4 | * Shop defaultWorkflow is defined in Shop
5 | */
6 |
7 | ReactionCore.Schemas.Workflow = new SimpleSchema({
8 | status: {
9 | type: String,
10 | defaultValue: "new",
11 | index: 1
12 | },
13 | workflow: {
14 | type: [String],
15 | optional: true
16 | }
17 | });
18 |
--------------------------------------------------------------------------------
/packages/reaction-shipping/.gitignore:
--------------------------------------------------------------------------------
1 | .build*
2 | .versions
3 |
--------------------------------------------------------------------------------
/packages/reaction-shipping/README.md:
--------------------------------------------------------------------------------
1 | # reaction-shipping
2 | `meteor add reactioncommerce:reaction-shipping`
3 |
4 | ## Description
5 | Flat Shipping Rate Provider for Reaction Commerce.
6 |
7 | ## Provides
8 | Flat rate shipping package, example for shipping packages. Add admin screen for flat rates in shipping package Extends core shipping templates
9 |
10 | ## TODO
11 | - Extend to additional rate sources
12 | - Examples extending for aftership, postmaster.io,etc
13 |
--------------------------------------------------------------------------------
/packages/reaction-shipping/client/templates/cart/checkout/shipping/shipping.js:
--------------------------------------------------------------------------------
1 | Template.flatRateCheckoutShipping.inheritsHelpersFrom("coreCheckoutShipping");
2 | Template.flatRateCheckoutShipping.inheritsEventsFrom("coreCheckoutShipping");
3 |
--------------------------------------------------------------------------------
/packages/reaction-shipping/client/templates/shipping.less:
--------------------------------------------------------------------------------
1 | .add-shipping-method,
2 | .edit-shipping-method,
3 | .delete-shipping-method{
4 | cursor: pointer;
5 | padding-right: 10px;
6 | }
7 |
8 | .add-shipping-provider {
9 | cursor: pointer;
10 | padding-right: 33px;
11 | margin-top: 30px;
12 | }
13 |
14 | .edit-shipping-provider {
15 | cursor: pointer;
16 | padding-right: 18px;
17 | }
18 |
19 | .shipping-rate-tables {
20 |
21 | }
--------------------------------------------------------------------------------
/packages/reaction-shipping/common/collections.js:
--------------------------------------------------------------------------------
1 | ReactionCore.Schemas.ShippingPackageConfig = new SimpleSchema([
2 | ReactionCore.Schemas.PackageConfig, {
3 | "settings.name": {
4 | type: String,
5 | defaultValue: "Flat Rate Service"
6 | }
7 | }
8 | ]);
9 |
--------------------------------------------------------------------------------
/packages/reaction-shipping/server/fixtures.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Fixture - we always want a record
3 | */
4 | // Meteor.startup(function() {
5 | // var jsonFile;
6 | // jsonFile = Assets.getText("private/data/Shipping.json");
7 | // return Fixtures.loadData(ReactionCore.Collections.Shipping, jsonFile);
8 | // });
9 | Meteor.startup(function () {
10 | ReactionImport.process(Assets.getText("private/data/Shipping.json"), ["name"], ReactionImport.shipping);
11 | ReactionImport.flush();
12 | });
13 |
--------------------------------------------------------------------------------
/packages/reaction-social/.gitignore:
--------------------------------------------------------------------------------
1 | .meteor/local
2 | .meteor/meteorite
3 | .versions
4 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/apps/facebook.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{#if showText}} {{i18n "social.shareOnFacebook" "Share on Facebook"}} {{/if}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/apps/googleplus.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{#if showText}} {{i18n "social.shareOnGoogle" "Share on Google+"}} {{/if}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/apps/pinterest.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{#if showText}} {{i18n "social.shareOnPinterest" "Share on Pinterest"}} {{/if}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/apps/twitter.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/dashboard/social.js:
--------------------------------------------------------------------------------
1 | Template.socialSettings.helpers({
2 | packageData() {
3 | return ReactionCore.Collections.Packages.findOne({
4 | name: "reaction-social"
5 | });
6 | },
7 |
8 | checkboxAtts: function () {
9 | return {
10 | class: "checkbox-switch"
11 | };
12 | }
13 | });
14 |
15 |
16 | AutoForm.hooks({
17 | "social-update-form": {
18 | onSuccess() {
19 | Alerts.removeSeen();
20 | return Alerts.toast("Social settings saved.", "success", {
21 | autoHide: true
22 | });
23 | },
24 | onError(operation, error) {
25 | Alerts.removeSeen();
26 | return Alerts.toast(`Social settings update failed. ${error}`, "error");
27 | }
28 | }
29 | });
30 |
--------------------------------------------------------------------------------
/packages/reaction-social/client/templates/social.html:
--------------------------------------------------------------------------------
1 |
2 | {{#if Template.subscriptionsReady}}
3 | {{#each socialTemplates}}
4 | {{> Template.dynamic template=this data=settings }}
5 | {{/each}}
6 | {{/if}}
7 |
8 |
--------------------------------------------------------------------------------
/packages/reaction-social/server/policy.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | * set browser policies
4 | */
5 | BrowserPolicy.content.allowOriginForAll("*.facebook.com");
6 |
7 | BrowserPolicy.content.allowOriginForAll("connect.facebook.net");
8 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/README.md:
--------------------------------------------------------------------------------
1 | # reaction-ui-navbar
2 | Reaction Commerce UI Navbar
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-ui-navbar
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/client/components/brand/brand.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{#with logo}}
4 |
5 |
6 |
7 | {{/with}}
8 | {{siteName}}
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/client/components/brand/brand.js:
--------------------------------------------------------------------------------
1 | Template.coreNavigationBrand.helpers({
2 | logo() {
3 | const shop = ReactionCore.Collections.Shops.findOne(ReactionCore.getShopId());
4 |
5 | if (_.isArray(shop.brandAssets)) {
6 | const brandAsset = _.find(shop.brandAssets, (asset) => asset.type === "navbarBrandImage");
7 | return ReactionCore.Collections.Media.findOne(brandAsset.mediaId);
8 | }
9 |
10 | return false;
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/client/components/brand/brand.less:
--------------------------------------------------------------------------------
1 | // Imports
2 | @import "{reactioncommerce:reaction-ui}/client/styles/variables.less";
3 | @import "{reactioncommerce:reaction-ui}/client/styles/mixins.less";
4 |
5 | .rui.navbar .brand {
6 | .display(flex);
7 | .flex(0 0 auto);
8 | .align-items(center);
9 | .margin-left(10px);
10 | }
11 |
12 | .rui.navbar .brand .logo img {
13 | max-height: @navbar-height - 5;
14 | .padding-right(10px);
15 | }
16 |
17 | .rui.navbar .brand .title {}
18 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/client/components/i18n/i18n.html:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/client/components/navbar/navbar.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{> coreNavigationBrand}}
6 |
9 |
10 |
{{> i18nChooser}}
11 |
{{> accounts tpl="loginDropdown"}}
12 |
{{> cartIcon}}
13 |
{{> cartPanel}}
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/reaction-ui-navbar/server/register.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI.registerTheme(Assets.getText("private/themes/navbar.css"));
3 |
--------------------------------------------------------------------------------
/packages/reaction-ui-tagnav/README.md:
--------------------------------------------------------------------------------
1 | # reaction-ui-navbar
2 | Reaction Commerce UI Tag Nav
3 |
4 | ```
5 | meteor add reactioncommerce:reaction-ui-tagnav
6 | ```
7 |
--------------------------------------------------------------------------------
/packages/reaction-ui-tagnav/client/components/components.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI = ReactionUI || {};
3 | ReactionUI.TagNav = {};
4 | ReactionUI.TagNav.Components = {};
5 |
--------------------------------------------------------------------------------
/packages/reaction-ui-tagnav/client/components/tagGroup/tagGroup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 | {{> tagList (tagListProps groupTag)}}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/reaction-ui-tagnav/client/helpers/helpers.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI = ReactionUI || {};
3 | ReactionUI.TagNav.Helpers = {};
4 |
--------------------------------------------------------------------------------
/packages/reaction-ui/.gitignore:
--------------------------------------------------------------------------------
1 | .meteor/local
2 | .meteor/meteorite
3 |
--------------------------------------------------------------------------------
/packages/reaction-ui/.npm/package/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/packages/reaction-ui/.npm/package/README:
--------------------------------------------------------------------------------
1 | This directory and the files immediately inside it are automatically generated
2 | when you change this package's NPM dependencies. Commit the files in this
3 | directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
4 | so that others run the same versions of sub-dependencies.
5 |
6 | You should NOT check in the node_modules directory that Meteor automatically
7 | creates; if you are using git, the .gitignore file tells git to ignore it.
8 |
--------------------------------------------------------------------------------
/packages/reaction-ui/README.md:
--------------------------------------------------------------------------------
1 | # reaction-ui
2 | UI Components for Reaction Commerce
3 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/button/button.less:
--------------------------------------------------------------------------------
1 |
2 | .rui.button > .contents {
3 | display: flex;
4 | flex: 1 1 auto;
5 | width: 100%;
6 | height: 100%;
7 | justify-content: center;
8 | align-items: center;
9 | }
10 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/cards/cardGroup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 | {{> UI.contentBlock}}
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/cards/cards.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> Template.contentBlock}}
5 |
6 |
7 |
8 | {{#each controlProps in controls}}
9 | {{> button controlProps}}
10 | {{/each}}
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/cards/cards.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-ui/client/components/cards/cards.js
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/components.jsx:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI = ReactionUI || {};
3 | ReactionUI.Components = {};
4 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/gallery/gallery.jsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-ui/client/components/gallery/gallery.jsx
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/icon/icon.jsx:
--------------------------------------------------------------------------------
1 | const classnames = ReactionUI.Lib.classnames;
2 |
3 | const Icon = React.createClass({
4 | propTypes: {
5 | icon: React.PropTypes.string.isRequired
6 | },
7 |
8 | render() {
9 | let classes;
10 |
11 | if (this.props.icon) {
12 | if (this.props.icon.indexOf("icon-") === 0) {
13 | classes = this.props.icon;
14 | } else {
15 | classes = classnames({
16 | fa: true,
17 | [`fa-${this.props.icon}`]: true
18 | });
19 | }
20 | }
21 |
22 | return (
23 |
24 | );
25 | }
26 | });
27 |
28 | ReactionUI.Components.Icon = Icon;
29 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/media/media.less:
--------------------------------------------------------------------------------
1 |
2 | .rui.media img {
3 | width: 100%;
4 | }
5 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/numericInput/numericInput.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/separator/separator.jsx:
--------------------------------------------------------------------------------
1 | const Items = ReactionUI.Components.Items;
2 | const classnames = ReactionUI.Lib.classnames;
3 |
4 | class Separator extends React.Component {
5 |
6 | render() {
7 | const classes = classnames({
8 | rui: true,
9 | separator: true,
10 | labeled: this.props.label
11 | });
12 |
13 |
14 | if (this.props.label) {
15 | return (
16 |
17 |
18 | {this.props.label}
19 |
20 |
21 | );
22 | }
23 |
24 | return (
25 |
26 | );
27 | }
28 | }
29 |
30 | ReactionUI.Components.Separator = Separator;
31 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/separator/separator.less:
--------------------------------------------------------------------------------
1 | @import "{reactioncommerce:reaction-ui}/client/styles/variables.less";
2 |
3 | .rui.separator.labeled {
4 | display: flex;
5 | align-items: center;
6 | }
7 |
8 | .rui.separator.labeled hr {
9 | flex: 1 1 auto;
10 | }
11 |
12 | .rui.separator.labeled .label {
13 | flex: 0 0 auto;
14 | color: @text-color;
15 | text-transform: uppercase;
16 | font-size: 1.2rem;
17 | }
18 |
19 | .rui.separator.padding.xs {
20 | padding-left: @padding-xs-horizontal;
21 | padding-right: @padding-xs-horizontal;
22 | }
23 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/socialShare/socialShare.jsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/packages/reaction-ui/client/components/socialShare/socialShare.jsx
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/tags/tagList.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{#each tag in tags}}
5 | {{> tagItem (tagProps tag)}}
6 | {{/each}}
7 |
8 |
9 | {{#if isEditing}}
10 | {{> tagItem tagBlankProps}}
11 | {{/if}}
12 |
13 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/textfield/textfield.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/components/upload/upload.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{> button uploadButtonProps}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/helpers/helpers.js:
--------------------------------------------------------------------------------
1 | const classnames = ReactionUI.Lib.classnames;
2 |
3 | ReactionUI = ReactionUI || {};
4 | ReactionUI.Helpers = {
5 | templateClassName(templateInstance, defaults, key) {
6 | const classNameData = templateInstance.data.classNames || {};
7 | const classNameOverrides = classNameData[key];
8 |
9 | if (_.isString(classNameOverrides)) {
10 | return classnames(defaults, classNameOverrides);
11 | }
12 |
13 | return classnames({
14 | ...defaults || {},
15 | ...classNameOverrides
16 | });
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/styles/mixins.less:
--------------------------------------------------------------------------------
1 | // Default mixins
2 | @import "{reactioncommerce:core-theme}/lib/bootstrap/less/mixins.less";
3 | @import "{reactioncommerce:core-theme}/default/mixins/flexbox.less";
4 | @import "{reactioncommerce:core-theme}/default/mixins/rtl.less";
5 | @import "{reactioncommerce:core-theme}/default/mixins/lesshat.less";
6 |
7 | // If your forked this package you may import or add your mixins overrides here
8 |
--------------------------------------------------------------------------------
/packages/reaction-ui/client/styles/variables.less:
--------------------------------------------------------------------------------
1 | // Default variables
2 | @import "{reactioncommerce:core-theme}/lib/bootstrap/less/variables.less";
3 | @import "{reactioncommerce:core-theme}/default/variables.less";
4 |
5 | // If your forked this package you may import or add your variables overrides here
6 |
--------------------------------------------------------------------------------
/packages/reaction-ui/common/global.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI = ReactionUI || {};
3 |
--------------------------------------------------------------------------------
/packages/reaction-ui/lib/client.browserify.js:
--------------------------------------------------------------------------------
1 |
2 | ReactionUI = ReactionUI || {};
3 | ReactionUI.Lib = {};
4 |
5 | ReactionUI.Lib.classnames = require("classnames");
6 | ReactionUI.Lib.Drop = require("tether-drop");
7 | ReactionUI.Lib.ReactDOM = require("react-dom");
8 | ReactionUI.Lib.Sortable = require("sortablejs");
9 | ReactionUI.Lib.TextareaAutosize = require("react-textarea-autosize");
10 | ReactionUI.Lib.Tooltip = require("tether-tooltip");
11 |
--------------------------------------------------------------------------------
/packages/reaction-ui/private/themes/button.css:
--------------------------------------------------------------------------------
1 | /**
2 | * @theme base
3 | * @label Buttons
4 | * @component button
5 | * @name button
6 | * @author Reaction Commerce
7 | * @url https://reactioncommerce.com
8 | */
9 |
10 | .rui.button {
11 | /**
12 | * @label Button
13 | */
14 | background-color: --;
15 | color: --;
16 | }
17 |
18 | .rui.button:hover {
19 | /**
20 | * @label Button Hover (Mouse Over)
21 | */
22 | background-color: --;
23 | color: --;
24 | }
25 |
26 | .rui.button:active {
27 | /**
28 | * @label Button Active (On Click)
29 | */
30 | background-color: --;
31 | color: --;
32 | }
33 |
--------------------------------------------------------------------------------
/packages/reaction-ui/private/themes/theme.css:
--------------------------------------------------------------------------------
1 | /**
2 | * @summary Reaction Commerce Base Theme
3 | * @theme base
4 | * @author Reaction Commerce
5 | * @url https://reactioncommerce.com
6 | */
7 |
--------------------------------------------------------------------------------
/private/settings/.gitignore:
--------------------------------------------------------------------------------
1 | *.json
2 |
--------------------------------------------------------------------------------
/public/assets/bootstrap/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/bootstrap/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/public/assets/bootstrap/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/bootstrap/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/public/assets/bootstrap/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/bootstrap/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/public/assets/bootstrap/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/bootstrap/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/public/assets/images/Berechnungsbeispiel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/Berechnungsbeispiel.png
--------------------------------------------------------------------------------
/public/assets/images/bekanntheit-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/bekanntheit-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/bestellung-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/bestellung-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/bezahlung-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/bezahlung-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/food-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/food-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/holz.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/holz.jpg
--------------------------------------------------------------------------------
/public/assets/images/kochen-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/kochen-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/profil-kreide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/profil-kreide.png
--------------------------------------------------------------------------------
/public/assets/images/snaxter_hintergrund.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/snaxter_hintergrund.png
--------------------------------------------------------------------------------
/public/assets/images/snaxter_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/snaxter_icon.jpg
--------------------------------------------------------------------------------
/public/assets/images/socialmedia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/socialmedia.jpg
--------------------------------------------------------------------------------
/public/assets/images/tom_josh.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/tom_josh.jpg
--------------------------------------------------------------------------------
/public/assets/images/wandtafel.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/wandtafel.jpg
--------------------------------------------------------------------------------
/public/assets/images/zuckerrohr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/images/zuckerrohr.png
--------------------------------------------------------------------------------
/public/assets/socicon/fonts/socicon.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/socicon/fonts/socicon.eot
--------------------------------------------------------------------------------
/public/assets/socicon/fonts/socicon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/socicon/fonts/socicon.ttf
--------------------------------------------------------------------------------
/public/assets/socicon/fonts/socicon.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/assets/socicon/fonts/socicon.woff
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/favicon.ico
--------------------------------------------------------------------------------
/public/hungrypeople.snaxter.ch.html:
--------------------------------------------------------------------------------
1 | L2RUTlBoZ1o5T2ZpQjBvM0xHZCtYd3lXdU1Uc2RweGNiR0JQblFVM2hlWT0
2 |
--------------------------------------------------------------------------------
/public/loaderio-7a47b8ab93fa78cda1de3d2a17ce4019.txt:
--------------------------------------------------------------------------------
1 | loaderio-7a47b8ab93fa78cda1de3d2a17ce4019
--------------------------------------------------------------------------------
/public/resources/avatar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/resources/avatar.gif
--------------------------------------------------------------------------------
/public/resources/placeholder.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/public/resources/placeholder.gif
--------------------------------------------------------------------------------
/server/fixtures.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Create a global reference to the app level "Assets"
3 | */
4 | AppAssets = Assets;
5 |
--------------------------------------------------------------------------------
/settings/.gitignore:
--------------------------------------------------------------------------------
1 | *.json
2 | !dev.settings.json
3 |
--------------------------------------------------------------------------------
/settings/dev.settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "ROOT_URL": "",
3 | "MONGO_URL": "",
4 | "MAIL_URL": "",
5 | "reaction": {
6 | "REACTION_USER": "",
7 | "REACTION_AUTH": "",
8 | "REACTION_EMAIL": ""
9 | },
10 | "isDebug": "info",
11 | "public": {}
12 | }
13 |
--------------------------------------------------------------------------------
/tests/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ScyDev/reaction/9a63f15b4d090603110b8f1b1d6ccd761b312d73/tests/.gitignore
--------------------------------------------------------------------------------
/tests/jasmine/client/integration/loginSpecs.js:
--------------------------------------------------------------------------------
1 | /**
2 | * client integration tests for layouts
3 | * integration tests are those that check client
4 | * interactions with the server
5 | */
6 | describe("User signup", function () {
7 | let user = {
8 | email: faker.internet.email(),
9 | password: faker.internet.password()
10 | };
11 |
12 | it("should return a meteor userId users by one", function () {
13 | signUp(user);
14 | expect(Meteor.userId()).not.toBeNull;
15 | });
16 |
17 | it("should automatically log-in new user", function () {
18 | expect(Meteor.userId()).not.toBeNull;
19 | });
20 | });
21 |
--------------------------------------------------------------------------------
/tests/jasmine/client/integration/productGridSpecs.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Product grid integration specs
3 | *
4 | */
5 | // describe("Product Grid", function () {
6 | // beforeAll(function (done) {
7 | // VelocityHelpers.exportGlobals();
8 | // Meteor.subscribe("products", function () {
9 | // Products = ReactionCore.Collections.Products.find().fetch();
10 | // done();
11 | // });
12 | // });
13 | //
14 | // it("should have one product", function () {
15 | // expect(Products.length).toBeGreaterThan(0);
16 | // });
17 | // });
18 |
--------------------------------------------------------------------------------