ember 3.18 version update modifications
This commit is contained in:
@@ -8,6 +8,10 @@ export default DS.JSONAPIAdapter.extend DataAdapterMixin,
|
|||||||
namespace: config.apiNamespace
|
namespace: config.apiNamespace
|
||||||
host: config.apiHost
|
host: config.apiHost
|
||||||
authorizer: 'authorizer:devise'
|
authorizer: 'authorizer:devise'
|
||||||
|
headers: Ember.computed 'session.data.authenticated.access_token', ->
|
||||||
|
headers = {}
|
||||||
|
headers['Authorization'] = "Bearer #{@session.data.authenticated.token}" if @session.isAuthenticated
|
||||||
|
headers
|
||||||
#pathForType: (type)->
|
#pathForType: (type)->
|
||||||
# type.underscore().pluralize()
|
# type.underscore().pluralize()
|
||||||
|
|
||||||
@@ -42,14 +46,14 @@ export default DS.JSONAPIAdapter.extend DataAdapterMixin,
|
|||||||
switch status
|
switch status
|
||||||
when 401, 403
|
when 401, 403
|
||||||
application_route = Ember.getOwner(@).lookup('route:application')
|
application_route = Ember.getOwner(@).lookup('route:application')
|
||||||
application_route.set 'router.globals.flash_message', "Unauthorized action"
|
application_route.set 'globals.flash_message', "Unauthorized action"
|
||||||
#@get('session')?.invalidate()
|
#@get('session')?.invalidate()
|
||||||
#application_route.set 'router.globals.current_user', null
|
#application_route.set 'globals.current_user', null
|
||||||
#application_route.transitionTo('login')
|
#application_route.transitionTo('login')
|
||||||
else
|
else
|
||||||
if typeof(payload?.error) is 'string'
|
if typeof(payload?.error) is 'string'
|
||||||
application_route = Ember.getOwner(@).lookup('route:application')
|
application_route = Ember.getOwner(@).lookup('route:application')
|
||||||
application_route.set 'router.globals.flash_message', payload.error
|
application_route.set 'globals.flash_message', payload.error
|
||||||
@_super arguments...
|
@_super arguments...
|
||||||
|
|
||||||
#buildURL: (modelName, id, snapshot, requestType, query)->
|
#buildURL: (modelName, id, snapshot, requestType, query)->
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import Ember from 'ember'
|
import Ember from 'ember'
|
||||||
import layout from '../templates/components/editable-attribute'
|
import layout from '../templates/components/editable-attribute'
|
||||||
|
#NOTE: this is an aged component locked to model and name. Needs more to be used differently, and name does not reflect it's function (Benjamin: 2019-12-21)
|
||||||
|
|
||||||
export default Ember.Component.extend
|
export default Ember.Component.extend
|
||||||
layout: layout
|
layout: layout
|
||||||
@@ -22,7 +23,7 @@ export default Ember.Component.extend
|
|||||||
model = @get('model')
|
model = @get('model')
|
||||||
@set 'validation_message', ''
|
@set 'validation_message', ''
|
||||||
if validate = @get('validate')
|
if validate = @get('validate')
|
||||||
@set 'validation_message', 'Must be given' if validate is 'presence' and not @get('model.name')
|
@set 'validation_message', 'Must be given' if validate is 'presence' and not @get("model.#{@get 'attributeName'}")
|
||||||
unless @get 'validation_message'
|
unless @get 'validation_message'
|
||||||
@set 'isEditing', false
|
@set 'isEditing', false
|
||||||
model.save()
|
model.save()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import Ember from 'ember'
|
import Ember from 'ember'
|
||||||
import UiCalendarComponent from 'ember-semantic-ui-calendar/components/ui-calendar'
|
import UiCalendarComponent from 'fomantic-ui-ember/components/ui-calendar'
|
||||||
{ computed, inject, merge } = Ember
|
{ computed, inject, merge } = Ember
|
||||||
export default UiCalendarComponent.extend
|
export default UiCalendarComponent.extend
|
||||||
momentValue: null
|
momentValue: null
|
||||||
@@ -21,4 +21,3 @@ export default UiCalendarComponent.extend
|
|||||||
momentDate = if date then moment(date) else null
|
momentDate = if date then moment(date) else null
|
||||||
momentDate._ambigTime = true if momentDate and @get('is_date')
|
momentDate._ambigTime = true if momentDate and @get('is_date')
|
||||||
@sendAction 'onChange', momentDate
|
@sendAction 'onChange', momentDate
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import ComponentOverrides from 'ember-cli-dunlop/overrides/component'
|
import 'ember-cli-dunlop/overrides/component'
|
||||||
import ControllerOverrides from 'ember-cli-dunlop/overrides/controller'
|
import 'ember-cli-dunlop/overrides/model'
|
||||||
import ObjectOverrides from 'ember-cli-dunlop/overrides/object'
|
import 'ember-cli-dunlop/overrides/controller'
|
||||||
import RouteOverrides from 'ember-cli-dunlop/overrides/route'
|
import 'ember-cli-dunlop/overrides/object'
|
||||||
import DunlopTranslationFunctions from 'ember-cli-dunlop/dunlop-translations/global-functions'
|
import 'ember-cli-dunlop/overrides/route'
|
||||||
|
import 'ember-cli-dunlop/dunlop-translations/global-functions'
|
||||||
#included: function(app) {
|
#included: function(app) {
|
||||||
# this._super.included(app);
|
# this._super.included(app);
|
||||||
# app.import('ember-cli-dunlop/overrides/component');
|
# app.import('ember-cli-dunlop/overrides/component');
|
||||||
|
|||||||
@@ -4,8 +4,9 @@ import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mi
|
|||||||
|
|
||||||
export default Ember.Mixin.create ApplicationRouteMixin,
|
export default Ember.Mixin.create ApplicationRouteMixin,
|
||||||
current_user_loaded: (user) -> @get('initial_resources_resolve')(user)
|
current_user_loaded: (user) -> @get('initial_resources_resolve')(user)
|
||||||
|
router: Ember.inject.service()
|
||||||
beforeModel: (transition) ->
|
beforeModel: (transition) ->
|
||||||
@set 'router.globals.initial_resources_fulfilled', false
|
@set 'globals.initial_resources_fulfilled', false
|
||||||
time_now = new Date()
|
time_now = new Date()
|
||||||
console.log "Application beforeModel"
|
console.log "Application beforeModel"
|
||||||
initial_resources_loaded = new Ember.RSVP.Promise((resolve, reject) =>
|
initial_resources_loaded = new Ember.RSVP.Promise((resolve, reject) =>
|
||||||
@@ -13,10 +14,10 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
@set 'initial_resources_reject', reject
|
@set 'initial_resources_reject', reject
|
||||||
).then((resources) =>
|
).then((resources) =>
|
||||||
console.log "Initial resources loaded (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
console.log "Initial resources loaded (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
||||||
@set 'router.globals.initial_resources_fulfilled', true
|
@set 'globals.initial_resources_fulfilled', true
|
||||||
).catch((reason) =>
|
).catch((reason) =>
|
||||||
console.log "No initial resource loading (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
console.log "No initial resource loading (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
||||||
@set('router.globals.flash_message', reason) if reason
|
@set('globals.flash_message', reason) if reason
|
||||||
).finally -> Ember.$('#initial-loader').remove()
|
).finally -> Ember.$('#initial-loader').remove()
|
||||||
|
|
||||||
@set 'initial_resources_loaded_promise', initial_resources_loaded
|
@set 'initial_resources_loaded_promise', initial_resources_loaded
|
||||||
@@ -33,10 +34,10 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
@get('initial_resources_resolve')() # do not halt propagation
|
@get('initial_resources_resolve')() # do not halt propagation
|
||||||
return
|
return
|
||||||
@get('store').queryRecord('user', me: true).then (user) =>
|
@get('store').queryRecord('user', me: true).then (user) =>
|
||||||
@set 'router.globals.current_user', user
|
@set 'globals.current_user', user
|
||||||
@current_user_loaded user # overloadable
|
@current_user_loaded user # overloadable
|
||||||
, =>
|
, =>
|
||||||
@set 'router.globals.current_user', null
|
@set 'globals.current_user', null
|
||||||
@get('initial_resources_resolve')() # no initial resources without user, do not halt application propagation (login page)
|
@get('initial_resources_resolve')() # no initial resources without user, do not halt application propagation (login page)
|
||||||
@transitionTo('login')
|
@transitionTo('login')
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
if status = error.status || error?.errors?[0].status
|
if status = error.status || error?.errors?[0].status
|
||||||
switch parseInt(status)
|
switch parseInt(status)
|
||||||
when 401, 403
|
when 401, 403
|
||||||
@set 'router.globals.current_user', null
|
@set 'globals.current_user', null
|
||||||
@transitionTo 'login'
|
@transitionTo 'login'
|
||||||
return
|
return
|
||||||
#when 404
|
#when 404
|
||||||
@@ -63,7 +64,7 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
into: 'application'
|
into: 'application'
|
||||||
outlet: 'error-handling'
|
outlet: 'error-handling'
|
||||||
controller: controller
|
controller: controller
|
||||||
#@set "router.globals.flash_message", "Oops! Something went wrong!<br>#{error.message}".htmlSafe()
|
#@set "globals.flash_message", "Oops! Something went wrong!<br>#{error.message}".htmlSafe()
|
||||||
|
|
||||||
clear_error: ->
|
clear_error: ->
|
||||||
#@disconnectOutlet # https://github.com/emberjs/ember-inspector/issues/625
|
#@disconnectOutlet # https://github.com/emberjs/ember-inspector/issues/625
|
||||||
@@ -73,7 +74,7 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
outlet: 'error-handling'
|
outlet: 'error-handling'
|
||||||
into: 'application'
|
into: 'application'
|
||||||
controller: 'application'
|
controller: 'application'
|
||||||
@set 'router.globals.modal_active', false
|
@set 'globals.modal_active', false
|
||||||
|
|
||||||
clear_error_and_go_home: ->
|
clear_error_and_go_home: ->
|
||||||
@send 'clear_error'
|
@send 'clear_error'
|
||||||
@@ -82,8 +83,8 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
didTransition: ->
|
didTransition: ->
|
||||||
@_super arguments...
|
@_super arguments...
|
||||||
Ember.run.next =>
|
Ember.run.next =>
|
||||||
return unless path = @get('controller.currentPath')
|
return unless path = @get('router.currentRouteName')
|
||||||
@set 'router.globals.current_route', Ember.Object.create
|
@set 'globals.current_route', Ember.Object.create
|
||||||
path: path # a.b.c
|
path: path # a.b.c
|
||||||
node: path.replace(/.*\./, '') # c
|
node: path.replace(/.*\./, '') # c
|
||||||
primary: '.' in path
|
primary: '.' in path
|
||||||
@@ -159,17 +160,17 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
unless partialPath
|
unless partialPath
|
||||||
message = "Cannot find template for modal '#{modalName}'"
|
message = "Cannot find template for modal '#{modalName}'"
|
||||||
console.log message
|
console.log message
|
||||||
@set "router.globals.flash_message", message
|
@set "globals.flash_message", message
|
||||||
return
|
return
|
||||||
controller.set 'partialName', partialPath
|
controller.set 'partialName', partialPath
|
||||||
@incrementProperty 'router.globals.modals_counter'
|
@incrementProperty 'globals.modals_counter'
|
||||||
controller.privateWillOpenModal() # setup expected attributes to be used in willOpenModal
|
controller.privateWillOpenModal() # setup expected attributes to be used in willOpenModal
|
||||||
controller.willOpenModal() # can be implemented to setup stuff before rendering and hooks
|
controller.willOpenModal() # can be implemented to setup stuff before rendering and hooks
|
||||||
@render 'modals/layout',
|
@render 'modals/layout',
|
||||||
into: 'application'
|
into: 'application'
|
||||||
outlet: 'modal'
|
outlet: 'modal'
|
||||||
controller: controller
|
controller: controller
|
||||||
@set 'router.globals.modal_active', true
|
@set 'globals.modal_active', true
|
||||||
false # return false since this result will in most cases the the last statement of an action. So prevent bubbling
|
false # return false since this result will in most cases the the last statement of an action. So prevent bubbling
|
||||||
|
|
||||||
closeModal: ->
|
closeModal: ->
|
||||||
@@ -180,10 +181,10 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
|||||||
outlet: 'modal'
|
outlet: 'modal'
|
||||||
into: 'application'
|
into: 'application'
|
||||||
controller: 'application'
|
controller: 'application'
|
||||||
@set 'router.globals.modal_active', false
|
@set 'globals.modal_active', false
|
||||||
|
|
||||||
signOut: ->
|
signOut: ->
|
||||||
@set 'router.globals.current_user', null
|
@set 'globals.current_user', null
|
||||||
@get('session').invalidate() if @get('session.isAuthenticated')
|
@get('session').invalidate() if @get('session.isAuthenticated')
|
||||||
@transitionTo 'login'
|
@transitionTo 'login'
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ export default Ember.Component.extend
|
|||||||
return partialNameTranslation.htmlSafe() if partialNameTranslation = tspan(partial_title_path, translation_params)
|
return partialNameTranslation.htmlSafe() if partialNameTranslation = tspan(partial_title_path, translation_params)
|
||||||
|
|
||||||
# @toString() => <frontend@component:workflow-action-definition/modals/edit-workflow-action-definition::ember873>
|
# @toString() => <frontend@component:workflow-action-definition/modals/edit-workflow-action-definition::ember873>
|
||||||
underscored = component_name.underscore().replace(/\//g, '.')
|
underscored = @get('component_name').underscore().replace(/\//g, '.')
|
||||||
return convention_translation.htmlSafe() if convention_translation = tspan("#{underscored}.title", translation_params)
|
return convention_translation.htmlSafe() if convention_translation = tspan("#{underscored}.title", translation_params)
|
||||||
|
|
||||||
# Return a kind of humanized version of the title
|
# Return a kind of humanized version of the title
|
||||||
@@ -123,7 +123,7 @@ export default Ember.Component.extend
|
|||||||
# transition to top level route if current is nested inside a model.show route
|
# transition to top level route if current is nested inside a model.show route
|
||||||
if modelName = my_scope.get('model.constructor.modelName')
|
if modelName = my_scope.get('model.constructor.modelName')
|
||||||
flat_model_name = modelName.replace(/^\w+\//, '').replace('/', '.') # panda/projec => project
|
flat_model_name = modelName.replace(/^\w+\//, '').replace('/', '.') # panda/projec => project
|
||||||
if my_scope.get('router.globals.current_route.path')?.match("^#{flat_model_name}.show")
|
if my_scope.get('globals.current_route.path')?.match("^#{flat_model_name}.show")
|
||||||
my_scope.get('router').transitionTo flat_model_name
|
my_scope.get('router').transitionTo flat_model_name
|
||||||
|
|
||||||
if @get('model.isNew')
|
if @get('model.isNew')
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import DS from 'ember-data'
|
||||||
|
export default DS.Model.reopen
|
||||||
|
toJSON: (options = {}) ->
|
||||||
|
#serializer = @_internalModel.store.serializerFor('-default')
|
||||||
|
serializer = Ember.getOwner(@).lookup('serializer:to-json')
|
||||||
|
options.includeId = true if options.includeId isnt false
|
||||||
|
#throw "The toJSON of models (global-functionality/ember-data-overrides) changed serializer type, expected DS.JSONSerializer" unless serializer.constructor.toString() is "DS.JSONSerializer"
|
||||||
|
snapshot = @_internalModel.createSnapshot()
|
||||||
|
serializer.serialize(snapshot, options)
|
||||||
@@ -8,12 +8,12 @@
|
|||||||
if can_make_editable
|
if can_make_editable
|
||||||
/= push-action type='edit' action='editRecord'
|
/= push-action type='edit' action='editRecord'
|
||||||
if isEditing
|
if isEditing
|
||||||
= input value=model.name enter='saveRecord'
|
= input value=model.name enter=(action 'saveRecord')
|
||||||
else
|
else
|
||||||
span= model.name
|
span= model.name
|
||||||
if isEditing
|
if isEditing
|
||||||
.ui.action.input
|
.ui.action.input
|
||||||
= input value=model.name enter='saveRecord'
|
= input value=model.name enter=(action 'saveRecord')
|
||||||
= push-action type='rollback' action='rollbackRecord'
|
= push-action type='rollback' action='rollbackRecord'
|
||||||
= push-action type='destroy' action='destroyRecord'
|
= push-action type='destroy' action='destroyRecord'
|
||||||
= push-action type='save' action='saveRecord'
|
= push-action type='save' action='saveRecord'
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export default Ember.Component.extend
|
|||||||
# localStorage.setItem 'user_id', result.user_id
|
# localStorage.setItem 'user_id', result.user_id
|
||||||
# @get('router').transitionTo('index').then (index_route) ->
|
# @get('router').transitionTo('index').then (index_route) ->
|
||||||
# # do not set on globals of current route, since that one will be 'destroyed' in trasition
|
# # do not set on globals of current route, since that one will be 'destroyed' in trasition
|
||||||
# index_route.store.findRecord('user', result.user_id).then (current_user) -> index_route.set('router.globals.current_user', current_user)
|
# index_route.store.findRecord('user', result.user_id).then (current_user) -> index_route.set('globals.current_user', current_user)
|
||||||
|
|
||||||
## STRATEGY 2 DEVISE SESSION BASED
|
## STRATEGY 2 DEVISE SESSION BASED
|
||||||
#uri = "#{config.apiHost}/users/sign_in.json"
|
#uri = "#{config.apiHost}/users/sign_in.json"
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import DS from 'ember-data'
|
||||||
|
|
||||||
|
export default DS.JSONSerializer.extend
|
||||||
|
keyForRelationship: (key, typeClass, method) ->
|
||||||
|
switch typeClass
|
||||||
|
when 'belongsTo' then "#{key}_id"
|
||||||
|
else key
|
||||||
|
shouldSerializeHasMany: -> false
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
.field
|
.field
|
||||||
.ui.left.icon.input
|
.ui.left.icon.input
|
||||||
i.user.icon
|
i.user.icon
|
||||||
= input type='email' value=identification enter='submitLogin' placeholder="e-mail" class='login-email'
|
= input type='email' value=identification enter=(action 'submitLogin') placeholder="e-mail" class='login-email'
|
||||||
.field
|
.field
|
||||||
.ui.left.icon.input
|
.ui.left.icon.input
|
||||||
i.lock.icon
|
i.lock.icon
|
||||||
= input type='password' value=password enter='submitLogin' placeholder='password' class='login-password'
|
= input type='password' value=password enter=(action 'submitLogin') placeholder='password' class='login-password'
|
||||||
.ui.fluid.large.orange.submit.button{action 'submitLogin'} Login
|
.ui.fluid.large.orange.submit.button{action 'submitLogin'} Login
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ ui-dropdown class='basic pointing' action='nothing'
|
|||||||
.ui.horizontal.divider= t 'date.unit.week'
|
.ui.horizontal.divider= t 'date.unit.week'
|
||||||
.divider
|
.divider
|
||||||
.item
|
.item
|
||||||
.ui.input.select-week= input type='number' value=week_selector_week placeholder='week' size=3 enter='week_selector_activate'
|
.ui.input.select-week= input type='number' value=week_selector_week placeholder='week' size=3 enter=(action 'week_selector_activate')
|
||||||
' /
|
' /
|
||||||
.ui.input.select-year= input type='number' value=week_selector_year placeholder='year' size=5 enter='week_selector_activate'
|
.ui.input.select-year= input type='number' value=week_selector_year placeholder='year' size=5 enter=(action 'week_selector_activate')
|
||||||
if has_valid_week_selector_value
|
if has_valid_week_selector_value
|
||||||
'
|
'
|
||||||
button.ui.mini.secondary.icon.button{action 'week_selector_activate'}: i.filter.icon
|
button.ui.mini.secondary.icon.button{action 'week_selector_activate'}: i.filter.icon
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
.ui.fluid.icon.input
|
.ui.fluid.icon.input
|
||||||
= input value=value enter='enterPressed' placeholder=smart_placeholder
|
= input value=value enter=(action 'enterPressed') placeholder=smart_placeholder
|
||||||
if has_active_filter_value
|
if has_active_filter_value
|
||||||
i.close.action.icon{action 'clear_query'}
|
i.close.action.icon{action 'clear_query'}
|
||||||
else if showSearchIcon
|
else if showSearchIcon
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ if label
|
|||||||
else
|
else
|
||||||
if labelPath
|
if labelPath
|
||||||
label= t labelPath
|
label= t labelPath
|
||||||
one-way-input value=(get changeset attribute) update=(action 'setAttribute') onblur=(action 'validateProperty' changeset attribute) disabled=disabled onenter='inputEnter'
|
one-way-input value=(get changeset attribute) update=(action 'setAttribute') onblur=(action 'validateProperty' changeset attribute) disabled=disabled onenter=(action 'inputEnter')
|
||||||
|
|
||||||
if (get changeset.error attribute)
|
if (get changeset.error attribute)
|
||||||
each (get (get changeset.error attribute) 'validation') as |error|
|
each (get (get changeset.error attribute) 'validation') as |error|
|
||||||
|
|||||||
+29
-31
@@ -19,42 +19,40 @@
|
|||||||
"coffee": "coffee --bare --compile --watch addon"
|
"coffee": "coffee --bare --compile --watch addon"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ember-cli-babel": "^6.6.0",
|
"ember-cli-babel": "^7.18.0",
|
||||||
"ember-cli-emblem": "^0.9.0",
|
"ember-cli-emblem": "^0.12.0",
|
||||||
"ember-cli-htmlbars": "^2.0.1",
|
"ember-cli-htmlbars": "^4.2.3",
|
||||||
"ember-cli-sass": ">=7.0.0"
|
"ember-cli-sass": "^10.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"active-model-adapter": "^2.2.0",
|
"active-model-adapter": "^2.2.0",
|
||||||
"broccoli-asset-rev": "^2.4.5",
|
"broccoli-asset-rev": "^3.0.0",
|
||||||
"ember-ajax": "^3.0.0",
|
"ember-ajax": "^5.0.0",
|
||||||
"ember-cli": "2.16.2",
|
"ember-cli": "^3.17.0",
|
||||||
"ember-cli-coffeescript": "^1.16.1",
|
"ember-cli-coffeescript": "^1.16.1",
|
||||||
"ember-cli-dependency-checker": "^1.3.0",
|
"ember-cli-dependency-checker": "^3.2.0",
|
||||||
"ember-cli-eslint": "^4.2.3",
|
"ember-cli-inject-live-reload": "^2.0.2",
|
||||||
"ember-cli-htmlbars-inline-precompile": "^1.0.2",
|
"ember-cli-moment-shim": "^3.7.1",
|
||||||
"ember-cli-inject-live-reload": "^1.4.1",
|
"ember-cli-pagination": "^3.1.5",
|
||||||
"ember-cli-mirage": "^0.4.9",
|
"ember-cli-shims": "^1.2.0",
|
||||||
"ember-cli-moment-shim": "^3.5.0",
|
"ember-cli-sri": "^2.1.1",
|
||||||
"ember-cli-pagination": "^3.0.2",
|
"ember-cli-uglify": "^3.0.0",
|
||||||
"ember-cli-qunit": "^4.3.0",
|
"ember-composable-helpers": "^4.0.0",
|
||||||
"ember-cli-shims": "^1.0.2",
|
"ember-data": "^3.18.0",
|
||||||
"ember-cli-sri": "^2.1.0",
|
"ember-export-application-global": "^2.0.1",
|
||||||
"ember-cli-uglify": "^1.2.0",
|
"ember-get-config": "^0.2.4",
|
||||||
"ember-composable-helpers": "^2.1.0",
|
"ember-load-initializers": "^2.1.1",
|
||||||
"ember-data": "^2.16.3",
|
"ember-one-way-controls": "^3.1.0",
|
||||||
"ember-export-application-global": "^1.0.5",
|
"ember-qunit": "^4.6.0",
|
||||||
"ember-get-config": "^0.2.1",
|
"ember-resolver": "^7.0.0",
|
||||||
"ember-load-initializers": "^1.0.0",
|
"ember-simple-auth": "^3.0.0",
|
||||||
"ember-one-way-controls": "^2.0.1",
|
"ember-source": "^3.18.0",
|
||||||
"ember-resolver": "^4.5.0",
|
"ember-truth-helpers": "^2.1.0",
|
||||||
"ember-semantic-ui-calendar": "^1.0.1",
|
"eslint": "^6.8.0",
|
||||||
"ember-simple-auth": "^1.4.2",
|
"eslint-plugin-ember": "^7.10.1",
|
||||||
"ember-source": "~2.16.2",
|
"eslint-plugin-node": "^11.0.0",
|
||||||
"ember-truth-helpers": "^1.3.0",
|
|
||||||
"loader.js": "^4.2.3",
|
"loader.js": "^4.2.3",
|
||||||
"sass": "^1.15.1",
|
"sass": "^1.15.1"
|
||||||
"semantic-ui-ember": "^3.0.3"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 4"
|
"node": ">= 4"
|
||||||
|
|||||||
Reference in New Issue
Block a user