* Release Mergeback (#8644) * Remove email addresses from translatable strings (#8448) * Fix User > Profile showing {getProgressDisplay()} * Remove bad nextRewardAt check * 1st iteration of issue #8385 - more pending * #8385 config and jade fixes, tests pending * #8385 fixing lint errors * Fix faqs string and test * Fix faq.jade and add workaround for faq.js * Fixing accidental checking for faq.js * fix emails in faq.js * fetch emails once in auth.js * Fixing community manager email in auth.js (cherry picked from commit842fbe42a8) * chore(i18n): update locales (cherry picked from commitb2225f05e5) * Merge branch 'stripe-webhook' into develop (cherry picked from commit30f514e46f) * add recent Grand Gala seasonal special equipment names (#8606) This is to help translators add good glossary entries now for keeping the current wiki pages consistent with future additions to the website's seasonal shop. (cherry picked from commit4846bc5769) * stripe webhook for unpaid subs: add 3 days of remaining time (cherry picked from commit1d7b733759) * New default background (#8597) * feat(bgs): new default background * feat(bgs): backfill migration * fix(migration): extraneous imports, bad paths * fix(bgs): address comments * fix(test): assert equality (cherry picked from commit03088f1d9f) * chore(sprites): compile (cherry picked from commit831b122ce2) * chore(i18n): update locales (cherry picked from commitbe1754ab07) * chore(public-docs): Community Guidelines update Also Bailey announcement (cherry picked from commit565d50dd99) * chore(i18n): update locales (cherry picked from commitd4198f8913) * 3.83.0 (cherry picked from commitea18489991) * chore(news): Bailey * rebuild shrinkwrap (cherry picked from commit96ce948e1a) * stripe webhook: fix handling of automatic requests (cherry picked from commitc4463f991b) * 3.83.1 * v3.83.2 - April Fools 2017 (#8632) * feat(event): April Fools 2017 * feat(event): NPCs and Bailey * fix(event): tweak NPCs, add challenge link * chore(sprites): compile * 3.83.2 * v3.83.3 Fooling Fix (#8633) * fix(fooling): add logic to party and member modals * 3.83.3 * v3.83.4 Export fooling (#8634) * fix(fooling): allow export * 3.83.4 * v3.83.5 End Fooling (#8638) * chore(event): no more foolin * chore(sprites): compile * 3.83.5 * fix(merge-conflict): prefer develop for config.json.example * fix(merge-conflict): fewer istanbul deps * Replace golden rock mount body sprite * feat(content): BGs and Armoire 2017-04 Also fixes a positioning issue on Spring Healer headgear. * chore(sprites): compile * chore(i18n): update locales * 3.84.0
#Running
- Open a terminal and type
npm run client:dev - Open a second terminal and type
npm start
#Preparation Reading
-
Vue 2 (https://vuejs.org)
-
Webpack (https://webpack.github.io/) is the build system and it includes plugins for code transformation, right now we have: BabelJS for ES6 transpilation, eslint for code style, less and postcss for css compilation. The code comes from https://github.com/vuejs-templates/webpack which is a Webpack template for Vue, with some small modifications to adapt it to our use case. Docs http://vuejs-templates.github.io/webpack/
-
We’re using
.vuefiles that make it possible to have HTML, JS and CSS for each component together in a single location. They’re implemented as a webpack plugin and the docs can be found here http://vue-loader.vuejs.org/en/ -
SemanticUI is the UI framework http://semantic-ui.com/. So far I’ve only used the CSS part, it also has JS plugins but I’ve yet to use them. It supports theming so if it’s not too difficult we’ll want to customize the base theme with our own styles instead of writing CSS rules to override the original styling.
The code is in /website/client. We’re using something very similar to Vuex (equivalent of React’s Redux) for state management http://vuex.vuejs.org/en/index.html
The API is almost the same except that we don’t use mutations but only actions because it would make it difficult to work with common code
The project is developed directly in the develop branch as long as we’ll be able to avoid splitting it into a different branch.
So far most of the work has been on the template, so there’s no complex logic to understand. The only thing I would suggest you to read about is Vuex for data management: it’s basically a Flux implementation: there’s a central store that hold the data for the entire app, and every change to the data must happen through an action, the data cannot be mutated directly.