cheetah-framework
Version:
Cheetah Framework JS used in all our applications
92 lines (89 loc) • 3.35 kB
JavaScript
import _ from 'lodash'
import LanguageSwitcherHandler from '@cheetah/utils/LanguageSwitcherHandler'
import logoutHandler from '@cheetah/utils/logoutHandler'
export default {
grid: {
keys: {
items: 'data',
total: 'total',
currentPage: 'current_page'
}
},
date: {
dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',
dateFormat: 'yyyy-MM-dd'
},
auth: {
defaultRedirectRoute: {
name: 'home'
},
keys: {
username: 'username',
password: 'password',
remember_me: 'remember_me'
},
routes: {
login: {
name: 'login',
path: '/login'
},
logout: {
name: 'logout',
path: '/logout'
}
}
},
handlers: {
langSwitch: LanguageSwitcherHandler,
remoteCriteriaHandler: criteria => criteria,
logout: logoutHandler,
sessionExpire: require('@cheetah/utils/sessionExpireHandler').default,
usernameHandler: user => {
if (!user) {
return ''
}
return user.first_name ? `${user.first_name} ${user.last_name}` : user.name
}
},
components: {
profile: null,
loginTitle: null,
loginForm: null
},
router: {
mode: 'history',
namePrefix: 'troc.mgmt.api.',
base: '/'
},
queryBuilder: {
resourceInputs: {
/**
* Use async import to prevent circular dependencies
*
* Set to import webpackMode to 'eager' to prevent creating
* chunks.
*
* See the comment below for a configuration example.
*/
// module_name: import (/* webpackMode: 'eager' */ '@module_name/components/RemoteResourceInput')
}
},
appConfig: window.Cheetah,
appName: _.get(window, 'Cheetah.appName', 'APP_NAME'),
assetDir: '/',
disableEcho: false,
echoOptions: window.Cheetah?.echoOptions ?? {},
cronValidator: _.defaults(_.get(window.Cheetah, 'cronValidator'), {
month: /^(?:\*|(?:(?:0?[1-9]|1[0-2]?)|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:\s*-\s*(?:(?:0?[1-9]|1[0-2]?)|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)(?:\s*\/\s*[1-9][0-9]*)?(?:\s*,\s*(?:\*|(?:(?:0?[1-9]|1[0-2]?)|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:\s*-\s*(?:(?:0?[1-9]|1[0-2]?)|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)(?:\s*\/\s*[1-9][0-9]*)?)*$/i,
day_of_month: /^(?:\*|(?:0?[1-9]|[1-2][0-9]?|3[0-1])(?:\s*-\s*(?:0?[1-9]|[1-2][0-9]?|3[0-1]))?)(?:\s*\/\s*[1-9][0-9]*)?(?:\s*,\s*(?:\*|(?:0?[1-9]|[1-2][0-9]?|3[0-1])(?:\s*-\s*(?:0?[1-9]|[1-2][0-9]?|3[0-1]))?)(?:\s*\/\s*[1-9][0-9]*)?)*$/,
day_of_week: /^(?:\*|(?:[0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:\s*-\s*(?:[0-7]|MON|TUE|WED|THU|FRI|SAT|SUN))?)(?:\s*\/\s*[1-9][0-9]*)?(?:\s*,\s*(?:\*|(?:[0-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:\s*-\s*(?:[0-7]|MON|TUE|WED|THU|FRI|SAT|SUN))?)(?:\s*\/\s*[1-9][0-9]*)?)*$/i,
hour: /^(?:\*|(?:[01]?[0-9]|2[0-3])(?:\s*-\s*(?:[01]?[0-9]|2[0-3]))?)(?:\s*\/\s*[1-9][0-9]*)?(?:\s*,\s*(?:\*|(?:[01]?[0-9]|2[0-3])(?:\s*-\s*(?:[01]?[0-9]|2[0-3]))?)(?:\s*\/\s*[1-9][0-9]*)?)*$/,
minute: /^(?:\*|[0-5]?[0-9](?:\s*-\s*[0-5]?[0-9])?)(?:\s*\/\s*[1-9][0-9]*)?(?:\s*,\s*(?:\*|[0-5]?[0-9](?:\s*-\s*[0-5]?[0-9])?)(?:\s*\/\s*[1-9][0-9]*)?)*$/
}),
locks: {
getCurrentUser: () => window.cheetahApp.user,
getUserId: user => user?.id,
getUserName: user => user?.name
},
defaultInputSplitRegExp: /[\s,\\'\-]+/
}