cookbook

VueJS + NodeJS Evergreen Cookbook

MIT License

Stars
458
Committers
3

Bot releases are hidden (Show)

cookbook - v0.1.9

Published by ais-one over 5 years ago

Version 0.1.9

  • hotfix: place back user
  • hotfix: if table slot found (you are using a custom list), load data... because you are not using the default "" component where pagination set when the component is created causing a load to happen
  • improvement: permissions are now in data() instead of computed
  • chore: update example-firebase, change custom filters and forms to use slots
  • chore: write documentation on how to change to custom filters and forms
cookbook - v0.1.8

Published by ais-one over 5 years ago

Version 0.1.8

  • chore: linter and prettier package updates (you MAY need to edit your code to avoid linting errors)
  • improvement[MINOR BREAKING CHANGE - for paged results]: add totalRecords property to return object of find() function so the following is returned { records, pagination, totalRecords }. totalRecords is the total possible records returned from a search, before paging limits are applied. We do not use "pagination.totalItems" any more as it has no effect, and we do not mutate pagination (there is no need to mutate explicitly).
  • improvement: reduce store usage (it was not necessary and added complexity)
    • remove from vuex: records, totalRecs, crudOps, defaultRec, pagination, filterData
    • save pagination and filterData into vuex when getRecordsHelper() is triggered or on initial store creating, retrieve on mounted,
  • improvement: use doPage field to indicate if not using paging or page size, page size increments
  • improvement: add table-toolbar & form-toolbar scoped slots, add reference to vue-crud-x in the slots (vcx), so that you can access its properties and methods
  • improvement: move VueCrudX.vue source file to location for common components where all example projects can access
  • improvement: now works on NUXT: (SPA, SSR and generated!!!), includes social login using github (Need to setup OAuth2, client id & secret, and callback URL)
  • improvement: move Loading/BusyOverlay to a common components folder (the same folder as VueCrudX.vue)
  • chore: version updates for Vuetify & VueJS, and other npm packages
  • chore: added firestore rules and index files in example-firebase
  • work in progress: add testing (deferred, to use dredd.io from apiary?)
cookbook - v0.1.7

Published by ais-one over 5 years ago

Version 0.1.7

  • note: example folder is now renamed as example-firebase
  • improvement: add form-open event - with data loaded when form opens
  • improvement: add scoped-slots for filter & edit form [IMPORTANT] please use this from now for customizing the CRUD, please see the following files for reference:
    • example-firebase/src/pages/MultiCrud/Example.vue
    • example-rest/src/pages/Book.vue
    • example-rest/src/pages/Page.vue
  • improvement: remove summary component (use scoped-slot instead)
  • improvement: code refactor in progress (make it easier to use)
  • done: (example-rest) - Vanilla VueJS connecting to REST backend)
    • improvement: Websocket (can use https://www.websocket.org/echo.html & ngrok to test)
    • improvement: use RxJS in example-rest/src/pages/Book.vue for debounce and fetch handling
    • improvement: add transaction in DB query
  • chore: update npm packages ([email protected])
  • chore: update & improve documentation
cookbook - v0.1.6

Published by ais-one over 5 years ago

Version 0.1.6

  • chore: update npm packages ([email protected])
  • fix: (issue 44) metadata from firestore
  • work in progress: RESTful++ Backend For Testing
    • Priority Items
      • Done - Use ObjectionJS + SQLite for example, Mongo will have basic example with reconnect, and a simple find
      • Done - Login & OTP, Key-Value Store for user token storage on server (can replace with redis)
      • Done - Sample relational database implementation with (1-1, 1-m, m-n use cases) migrations, seeders, swagger documentation - Done
      • Done - Implementation of RESTful routes
    • Non-essential items
      • WIP - Websocket (use https://www.websocket.org/echo.html & ngrok to test)
      • TBD - Multiple File upload example (to local folder)
      • TBD - Single File upload example (to firestore)
      • TBD - Graphql
      • TBD - Logging
      • TBD- Security Improvements
      • TBD - Social Logins
  • work in progress: Frontend REST example
    • TBD - Nuxt (SPA first then transition to SSR)
    • TBD - Vanilla VueJS
  • chore: implement testing
cookbook - v0.1.5

Published by ais-one almost 6 years ago

Version 0.1.5

  • chore: upgraded to vuetify 1.4.1
  • improvement: you can now customize table content, see @/pages/MultiCrud/Example.vue, Toggle Table button shows how it works
  • work in progress: REST API Example (merge Nuxt & REST example, use Nuxt SPA - decision still in progress)
    • Seperated backend code, so it can be used as an example backend various frontend projects
    • Important: deciding whether to use MongoDB or SQLite
    • Login - Done
    • Show table - In progress
    • Show nested table (one to many) - In progress
    • Show table (many to many) - In progress
cookbook - v0.1.4

Published by ais-one almost 6 years ago

Version 0.1.4

  • NO BREAKING CHANGES
  • chore: upgraded to vuetify 1.3.11
  • improvement: hide vue-i18n warning messages - @/lang.js
  • improvement: you can return your own object for CRUD operations (see readme). return of hard-coded numbers will be DEPRECATED
  • improvement: you can customize toolbar buttons and optionally have text below toolbar button (space limited though) - see @/pages/Crud/party.js & @/pages/Crud/party-inline.js
  • improvement: create, update & delete events also emit the crudOps result (property named 'res'). if the operation did not return anything, res is undefined
  • improvement: [SOMEWHAT - NEEDS MORE TESTING] - fixed header https://github.com/vuetifyjs/vuetify/issues/1547
  • improvement: allow user to hide filter button on toolbar (crudTable.showFilterButton = false)
  • work in progress: REST API Example
    • Login - Done
    • Show table - In progress
    • Show nested table (one to many) - In progress
    • Show table (many to many) - In progress
cookbook - v0.1.3

Published by ais-one almost 6 years ago

Version 0.1.3

  • chore: upgraded to vuetify 1.3.8
  • improvement: add v-btn-toggle, grouped input [Alpha Version - Specification May Change]
  • improvement: [NON BREAKING CHANGE] please use 'field' instead of 'type' for Form & Filter inputs, 'type' will be deprecated
  • improvement: pass in 'this._self' as props to and so that your custom forms or filters can access the parent vue-crud-x component
  • bug fix: confirmation dialog logic for update and create was wrong
  • bug fix: CRUD update permissions in saveRow
  • improvement: export csv now does not require id to be first column - @/assts/util.js
  • work in progress: REST API Example
    • Login - Done
    • Show table - In progress
    • Show nested table (one to many) - In progress
    • Show table (many to many) - In progress
cookbook - v0.1.2

Published by ais-one almost 6 years ago

Version 0.1.2

  • bug fix: missing pleaseSave key in '@/lang', user needs to save changes or cancel them (by refreshing) before they can add inline record
  • bug fix: many inline save row issues (due to handling of realtime firebase snaphot updates, CRUD unaffected)
  • improvement: only save row if the row has been edited
  • improvement: add loaded event (when submitFilter() is called)
  • improvement: detect if i18n (multi-lang dependency) is present during mounted() of vue-crud-x and handle if not present
  • improvement: add time picker '@/TimePicker', improve date picker '@/DatePicker' (customize date format, prepend-icon now optional)
  • improvement: add realtime firebase in example project (Select "Real Time" on menu)
  • chore: clean up folder organization in example project
  • chore: improve documentation
  • work in progress: REST API Example
    • Login - Done
    • Show table - In progress
    • Show nested table (one to many) - In progress
    • Show table (many to many) - In progress
cookbook - v0.1.1

Published by ais-one almost 6 years ago

Version 0.1.1 (No Breaking Changes)

  • Removed wrongly installed dependencies in package.json
  • upgraded to vuetify 1.3.5
  • Add summary component (optional)
  • html in table cell & header cell
  • improve save row function by allowing background color to indicate change has been done on a cell in the row
  • fix CSV export function - use " (double quote) for field delimiter and escape "(double quote) using 2 "s
  • add JSON export (@/assets/util)
  • add secondary firebase app for auth user creation (@/firebase)
  • add editing object so as to indicate which rows user has edited inline and at what time (@/VueCrudX)
    (https://stackoverflow.com/questions/37517208/firebase-kicks-out-current-user/38013551#38013551)
  • [Work In Progress] REST API Example
    • Login - Done
    • Show table - In progress
    • Show nested table (one to many) - In progress
    • Show table (many to many) - In progress
cookbook - v0.1.0

Published by ais-one about 6 years ago

Version 0.1.0

  • first minor version change!
  • fixed bug in can() function which shows button even though flag is false
  • improved configurability & look-and-feel customization (spacing, color, alignment, etc.) of vue-crud-x
    • see party-inline.js crudTable property for full details (some properties and props have been removed)
    • crudTable.attrs shows the customizations for the various parts of the component
    • the attrs are not limited to what is in the party-inline.js file (details of this are explained in party-inline.js)
    • [BREAKING CHANGE] Action Column, now indicated in headers array instead of actionColumn flag, see party-inline.j]
  • improve usability
    • make all buttons accessible, put them at top bar (done)
    • make top bar sticky - fixed (done - will need to revisit in Vuetify 2.0)
  • upgrade to vuetify 1.2.9 and updated outdated packages
  • [WORK IN PROGRESS] REST API example (with authorization & with configuration management)
    • jwt, google authenticator 2FA
    • knex, objectionjs, sqlite, keyv
    • update VueCrudX component in Nuxt example
cookbook - v0.0.24

Published by ais-one about 6 years ago

Version 0.0.24

  • updated packages & vuetify to 1.2.6
  • update to Nuxt example to use Nuxt 2.0
  • save row button for inline edit (reduce API calls)
  • add row button, allow popup for user to enter data for field/s before row is added (e.g. specify a date or name)
  • [Breaking Change - really sorry for this] use full component name for inline edit (v-select instead of select, so in future you can include your own)
cookbook - v0.0.23

Published by ais-one about 6 years ago

Version 0.0.23

  • [Major Breaking Change] improved Inline Edit, use attributes object with v-bind instead of hardcoding attributes
    • supports: v-text-field, v-select, v-combobox, v-autocomplete, v-textarea, v-date-picker, v-time-picker
    • all inputs need to use the new way of defining the objects
    • Example Usage: @/Components/Crud/party-inline.js
  • [MINOR breaking change] improved Auto-generated Filters and Forms, use attributes object with v-bind instead of hardcoding attributes
    • supports: v-text-field, v-select, v-combobox, v-autocomplete, v-textarea, v-date-picker, v-time-picker
    • v-select is broken and needs to use the new way of defining the objects
    • Example Usage: @/Components/Crud/party-inline.js
  • improve look of progress loaders
    • prefer to use linear progress bars rather than circular fullscreen dialog (especially, when you have multiple crud components in a page)
  • added WebCam and DrawingCanvas components in test page for example on capture of photo an signatures in a form
  • add autocomplete sample in test page (to be improved in future)
  • still using vuetify 1.2.3, as the popup dialog transparency from 1.2.4 is a problem
cookbook - v0.0.22

Published by ais-one about 6 years ago

Version 0.0.22

  • fix issue with inline edit where empty columns does not open dialog
  • Update project README.md and example README.md
cookbook - v0.0.21

Published by ais-one about 6 years ago

HAS BUG IN INLINE EDIT, USE VERSION 0.0.22 INSTEAD

Version 0.0.21

  • user permissions
  • inline edit improvements, add v-datepicker to inline edit, have inline edit without using dialog (blur will update contents if it has been changed)
  • created DatePicker component in example that integrates v-text-field with v-date-picker, so you write less boilerplate code
  • move nuxt example from external repo to here...
  • move rest example from external repo to here...
  • clearble input (v-text-field in filter)
cookbook - v0.0.20

Published by ais-one about 6 years ago

Version 0.0.20

  • Move the doPage & crudTitle props into crudTable props as objects (breaking change on pagination flag)
  • update vuetify to 1.2.2
  • add textarea input type for inline edits
  • crud improvement
    • add actionColumn (if true, table row has edit/delete icons)
    • option to create new record via dialog (current & default behaviour) or by adding row
    • if you have actionColumn but no inline edit fields, clicking on row will emit 'selected' event
    • REST API example repository
    • Mutiple CRUD in a page
      • Working example on using parent and child table in same page
      • Scroll to top example included
    • half-sized filter inputs on wider screens (see halfSize property)
  • autogenerated filter if crudFilter's filterVue component is null & your filterData is properly populated
  • autogenerated form if crudForm's formAutoData is properly populated (still needs some improvements)
  • many customization on table look and feel
    • colors, action columns, dark or light theme
    • see party-inline.js for example settings and comments
  • FIXED: fix custom filters and forms in multi CRUD page (e.g. filter component gets overwritten)
  • next Update (in order of priority)
    • user permissions & delete related records (e.g. deleting a party will also delete all notes belonging to that party)
    • v-data-table actions-append: implement later, requires vuetifyjs 1.2.X
cookbook - v0.0.19

Published by ais-one about 6 years ago

Version 0.0.19

  • pagination example (yes with firebase — only problem is that all records are loaded (e.g. 50 records) every time find is triggered, and page size is 5). Good thing is, you can use the example and it will work well on a DB supporting Total record count, Limit and Offset.
  • use one Vue file for compilation
  • use VueI18n for translations, and include Vuetify i18n
    • one for Vuetify
    • one for VueCrudX
    • the rest for your app
  • clean up firebase code, fix firestore duplicate check for update (thanks @gakera)
  • example implementation as component (you can use it on a page with charts or google maps, etc)
  • no breaking changes but... need to install vue-i18n
  • update vuetify to 1.1.12
  • firebase transactions and pagination example in party-inline.js
    • not really true server side pagination as limit / offset is expensive in firebase (skipped records are charged)
    • but it serves as a good example for server side pagination implementation
  • use HTTP status codes as CRUD operation result return values, for use with snackbar and calling function (non breaking change)
  • it is possible to work with NuxtJS (https://github.com/ais-one/nuxt-vcx)
cookbook - v0.0.18

Published by ais-one about 6 years ago

Version 0.0.18

  • update firebase packages & vuetify to 1.1.10
  • set vue-crud-x dependency tag to latest in example folder package.json
  • add snackbar to notify results of CRUD operations (configurable and can be disabled)
  • dynamic initial values (e.g. timestamp), see defaultRec implemented as function (no breaking change as you can still use defaultRec as object)
  • confimation for create / delete / update operations (confirmation can be individually disabled)
  • use native Javascript instead of Vuetify confirm dialog (reduce code and simplify code), will use Vuetify again once I can come up with simpler logic for it.
  • add inline-edit mode (use with care)
cookbook - v0.0.17

Published by ais-one about 6 years ago

  • add progress indicator (thin line to upper part) to all async operations
  • use type="date" instead of datepicker, reduce code
  • enhanced filter example (Filter.vue example that auto generate filter fields from filter object)
  • update to vuetify 1.1.8
  • make image upload component (can also modify to be file upload)
cookbook - v0.0.16

Published by ais-one over 6 years ago

Version 0.0.16

  • now using vue-cli 3 scaffolding for example
  • update to vuetify 1.1.1

Version 0.0.15

  • update to vuetify 1.0.19
  • align filter apply icon to right (consistency)
  • add hasDuplicate (for firestore) check in example (party)
  • add total record at top to search if non paged result
cookbook - v0.0.14

Published by ais-one over 6 years ago

  • Major Bug Fix
    • Bad news, create operation does not populate record with default values (defaultRec)
    • Good news, you only need to update this component, you need not do anything on your custom code