mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-28 11:00:39 +00:00
upload request prototype UI
This commit is contained in:
Vendored
+165
-164
@@ -1,194 +1,195 @@
|
||||
import i18n from '../../i18n'
|
||||
import axios from 'axios'
|
||||
import Vue from 'vue'
|
||||
import router from "../../router";
|
||||
import router from '../../router'
|
||||
|
||||
const defaultState = {
|
||||
isVisibleNavigationBars: localStorage.getItem('is_navigation_bars') !== 'false',
|
||||
isDarkMode: false,
|
||||
isVisibleSidebar: localStorage.getItem('file_info_visibility') === 'true' || false,
|
||||
itemViewType: localStorage.getItem('preview_type') || 'list',
|
||||
config: undefined,
|
||||
index: undefined,
|
||||
requestedPlan: undefined,
|
||||
emojis: undefined,
|
||||
sorting: {
|
||||
sort: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).sort : 'DESC',
|
||||
field: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).field : 'created_at',
|
||||
},
|
||||
isVisibleNavigationBars: localStorage.getItem('is_navigation_bars') !== 'false',
|
||||
isDarkMode: false,
|
||||
isVisibleSidebar: localStorage.getItem('file_info_visibility') === 'true' || false,
|
||||
itemViewType: localStorage.getItem('preview_type') || 'list',
|
||||
config: undefined,
|
||||
index: undefined,
|
||||
requestedPlan: undefined,
|
||||
emojis: undefined,
|
||||
sorting: {
|
||||
sort: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).sort : 'DESC',
|
||||
field: localStorage.getItem('sorting') ? JSON.parse(localStorage.getItem('sorting')).field : 'created_at',
|
||||
},
|
||||
}
|
||||
const actions = {
|
||||
toggleThemeMode: ({commit}, mode = undefined) => {
|
||||
const app = document.getElementsByTagName('html')[0]
|
||||
toggleThemeMode: ({ commit }, mode = undefined) => {
|
||||
const app = document.getElementsByTagName('html')[0]
|
||||
|
||||
if (!mode) {
|
||||
mode = app.classList.contains('dark') ? 'light' : 'dark'
|
||||
}
|
||||
if (!mode) {
|
||||
mode = app.classList.contains('dark') ? 'light' : 'dark'
|
||||
}
|
||||
|
||||
commit('REPLACE_CONFIG_VALUE', {
|
||||
key: 'defaultThemeMode',
|
||||
value: mode,
|
||||
})
|
||||
commit('REPLACE_CONFIG_VALUE', {
|
||||
key: 'defaultThemeMode',
|
||||
value: mode,
|
||||
})
|
||||
|
||||
// Update user settings
|
||||
if (!Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) {
|
||||
Vue.prototype.$updateText('/user/settings', 'theme_mode', mode)
|
||||
}
|
||||
},
|
||||
toggleNavigationBars: ({commit, state}) => {
|
||||
// Store dark mode into localStorage
|
||||
localStorage.setItem('is_navigation_bars', !state.isVisibleNavigationBars)
|
||||
// Update user settings
|
||||
if (!Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) {
|
||||
Vue.prototype.$updateText('/user/settings', 'theme_mode', mode)
|
||||
}
|
||||
},
|
||||
toggleNavigationBars: ({ commit, state }) => {
|
||||
// Store dark mode into localStorage
|
||||
localStorage.setItem('is_navigation_bars', !state.isVisibleNavigationBars)
|
||||
|
||||
// Change preview
|
||||
commit('TOGGLE_NAVIGATION_BARS')
|
||||
},
|
||||
togglePreviewType: ({commit, state}, preview) => {
|
||||
// Get preview type
|
||||
let previewType = preview ? preview : state.itemViewType === 'list' ? 'grid' : 'list'
|
||||
// Change preview
|
||||
commit('TOGGLE_NAVIGATION_BARS')
|
||||
},
|
||||
togglePreviewType: ({ commit, state }, preview) => {
|
||||
// Get preview type
|
||||
let previewType = preview ? preview : state.itemViewType === 'list' ? 'grid' : 'list'
|
||||
|
||||
// Store preview type to localStorage
|
||||
localStorage.setItem('preview_type', previewType)
|
||||
// Store preview type to localStorage
|
||||
localStorage.setItem('preview_type', previewType)
|
||||
|
||||
// Change preview
|
||||
commit('CHANGE_PREVIEW', previewType)
|
||||
},
|
||||
toggleEmojiType: ({commit, getters}, type = undefined) => {
|
||||
let newType = type ? type : getters.config.defaultEmoji === 'twemoji' ? 'applemoji' : 'twemoji'
|
||||
// Change preview
|
||||
commit('CHANGE_PREVIEW', previewType)
|
||||
},
|
||||
toggleEmojiType: ({ commit, getters }, type = undefined) => {
|
||||
let newType = type ? type : getters.config.defaultEmoji === 'twemoji' ? 'applemoji' : 'twemoji'
|
||||
|
||||
// Update config
|
||||
commit('REPLACE_CONFIG_VALUE', {
|
||||
key: 'defaultEmoji',
|
||||
value: newType,
|
||||
})
|
||||
// Update config
|
||||
commit('REPLACE_CONFIG_VALUE', {
|
||||
key: 'defaultEmoji',
|
||||
value: newType,
|
||||
})
|
||||
|
||||
// Update user settings
|
||||
Vue.prototype.$updateText('/user/settings', 'emoji_type', newType)
|
||||
},
|
||||
fileInfoToggle: (context, visibility = undefined) => {
|
||||
if (!visibility) {
|
||||
if (context.state.isVisibleSidebar) {
|
||||
context.commit('FILE_INFO_TOGGLE', false)
|
||||
} else {
|
||||
context.commit('FILE_INFO_TOGGLE', true)
|
||||
}
|
||||
} else {
|
||||
context.commit('FILE_INFO_TOGGLE', visibility)
|
||||
}
|
||||
},
|
||||
getLanguageTranslations: ({commit, state}, lang) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get(`/translations/${lang}`)
|
||||
.then((response) => {
|
||||
i18n.setLocaleMessage(lang, response.data)
|
||||
i18n.locale = lang
|
||||
// Update user settings
|
||||
Vue.prototype.$updateText('/user/settings', 'emoji_type', newType)
|
||||
},
|
||||
fileInfoToggle: (context, visibility = undefined) => {
|
||||
if (!visibility) {
|
||||
if (context.state.isVisibleSidebar) {
|
||||
context.commit('FILE_INFO_TOGGLE', false)
|
||||
} else {
|
||||
context.commit('FILE_INFO_TOGGLE', true)
|
||||
}
|
||||
} else {
|
||||
context.commit('FILE_INFO_TOGGLE', visibility)
|
||||
}
|
||||
},
|
||||
getLanguageTranslations: ({ commit, state }, lang) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios
|
||||
.get(`/translations/${lang}`)
|
||||
.then((response) => {
|
||||
i18n.setLocaleMessage(lang, response.data)
|
||||
i18n.locale = lang
|
||||
|
||||
resolve(response)
|
||||
})
|
||||
.catch((error) => {
|
||||
if (!error.response) {
|
||||
location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
resolve(response)
|
||||
})
|
||||
.catch((error) => {
|
||||
if (!error.response) {
|
||||
location.reload()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
|
||||
const mutations = {
|
||||
LOAD_EMOJIS_LIST(state, data) {
|
||||
state.emojis = data
|
||||
},
|
||||
UPDATE_SORTING(state) {
|
||||
state.sorting.field = JSON.parse(localStorage.getItem('sorting')).field
|
||||
state.sorting.sort = JSON.parse(localStorage.getItem('sorting')).sort
|
||||
},
|
||||
INIT(state, data) {
|
||||
state.config = data.config
|
||||
},
|
||||
SET_SAAS(state, data) {
|
||||
state.config.isSaaS = data
|
||||
},
|
||||
FILE_INFO_TOGGLE(state, isVisible) {
|
||||
state.isVisibleSidebar = isVisible
|
||||
LOAD_EMOJIS_LIST(state, data) {
|
||||
state.emojis = data
|
||||
},
|
||||
UPDATE_SORTING(state) {
|
||||
state.sorting.field = JSON.parse(localStorage.getItem('sorting')).field
|
||||
state.sorting.sort = JSON.parse(localStorage.getItem('sorting')).sort
|
||||
},
|
||||
INIT(state, data) {
|
||||
state.config = data.config
|
||||
},
|
||||
SET_SAAS(state, data) {
|
||||
state.config.isSaaS = data
|
||||
},
|
||||
FILE_INFO_TOGGLE(state, isVisible) {
|
||||
state.isVisibleSidebar = isVisible
|
||||
|
||||
localStorage.setItem('file_info_visibility', isVisible)
|
||||
},
|
||||
SET_AUTHORIZED(state, value) {
|
||||
state.config.isAuthenticated = value
|
||||
},
|
||||
SET_INDEX_CONTENT(state, data) {
|
||||
state.index = data
|
||||
},
|
||||
CHANGE_PREVIEW(state, type) {
|
||||
state.itemViewType = type
|
||||
},
|
||||
TOGGLE_NAVIGATION_BARS(state) {
|
||||
state.isVisibleNavigationBars = !state.isVisibleNavigationBars
|
||||
},
|
||||
STORE_REQUESTED_PLAN(state, plan) {
|
||||
state.requestedPlan = plan
|
||||
},
|
||||
REPLACE_CONFIG_VALUE(state, {key, value}) {
|
||||
state.config[key] = value
|
||||
},
|
||||
SET_SOCIAL_LOGIN_CONFIGURED(state, service) {
|
||||
if (service === 'facebook') {
|
||||
state.config.allowedFacebookLogin = true
|
||||
state.config.isFacebookLoginConfigured = true
|
||||
}
|
||||
localStorage.setItem('file_info_visibility', isVisible)
|
||||
},
|
||||
SET_AUTHORIZED(state, value) {
|
||||
state.config.isAuthenticated = value
|
||||
},
|
||||
SET_INDEX_CONTENT(state, data) {
|
||||
state.index = data
|
||||
},
|
||||
CHANGE_PREVIEW(state, type) {
|
||||
state.itemViewType = type
|
||||
},
|
||||
TOGGLE_NAVIGATION_BARS(state) {
|
||||
state.isVisibleNavigationBars = !state.isVisibleNavigationBars
|
||||
},
|
||||
STORE_REQUESTED_PLAN(state, plan) {
|
||||
state.requestedPlan = plan
|
||||
},
|
||||
REPLACE_CONFIG_VALUE(state, { key, value }) {
|
||||
state.config[key] = value
|
||||
},
|
||||
SET_SOCIAL_LOGIN_CONFIGURED(state, service) {
|
||||
if (service === 'facebook') {
|
||||
state.config.allowedFacebookLogin = true
|
||||
state.config.isFacebookLoginConfigured = true
|
||||
}
|
||||
|
||||
if (service === 'google') {
|
||||
state.config.allowedGoogleLogin = true
|
||||
state.config.isGoogleLoginConfigured = true
|
||||
}
|
||||
if (service === 'google') {
|
||||
state.config.allowedGoogleLogin = true
|
||||
state.config.isGoogleLoginConfigured = true
|
||||
}
|
||||
|
||||
if (service === 'github') {
|
||||
state.config.allowedGithubLogin = true
|
||||
state.config.isGithubLoginConfigured = true
|
||||
}
|
||||
if (service === 'github') {
|
||||
state.config.allowedGithubLogin = true
|
||||
state.config.isGithubLoginConfigured = true
|
||||
}
|
||||
|
||||
if (service === 'recaptcha') {
|
||||
state.config.allowedRecaptcha = true
|
||||
state.config.isRecaptchaConfigured = true
|
||||
}
|
||||
},
|
||||
SET_STRIPE_CREDENTIALS(state, data) {
|
||||
state.config.stripe_public_key = data.key
|
||||
state.config.isStripe = true
|
||||
},
|
||||
SET_PAYSTACK_CREDENTIALS(state, data) {
|
||||
state.config.paystack_public_key = data.key
|
||||
state.config.isPaystack = true
|
||||
},
|
||||
SET_PAYPAL_CREDENTIALS(state, data) {
|
||||
state.config.paypal_client_id = data.key
|
||||
state.config.isPayPal = true
|
||||
},
|
||||
UPDATE_DARK_MODE_STATUS(state, val) {
|
||||
state.isDarkMode = val
|
||||
},
|
||||
if (service === 'recaptcha') {
|
||||
state.config.allowedRecaptcha = true
|
||||
state.config.isRecaptchaConfigured = true
|
||||
}
|
||||
},
|
||||
SET_STRIPE_CREDENTIALS(state, data) {
|
||||
state.config.stripe_public_key = data.key
|
||||
state.config.isStripe = true
|
||||
},
|
||||
SET_PAYSTACK_CREDENTIALS(state, data) {
|
||||
state.config.paystack_public_key = data.key
|
||||
state.config.isPaystack = true
|
||||
},
|
||||
SET_PAYPAL_CREDENTIALS(state, data) {
|
||||
state.config.paypal_client_id = data.key
|
||||
state.config.isPayPal = true
|
||||
},
|
||||
UPDATE_DARK_MODE_STATUS(state, val) {
|
||||
state.isDarkMode = val
|
||||
},
|
||||
}
|
||||
|
||||
const getters = {
|
||||
isVisibleNavigationBars: (state) => state.isVisibleNavigationBars,
|
||||
isVisibleSidebar: (state) => state.isVisibleSidebar,
|
||||
itemViewType: (state) => state.itemViewType,
|
||||
requestedPlan: (state) => state.requestedPlan,
|
||||
api: (state) => state.config.api,
|
||||
config: (state) => state.config,
|
||||
emojis: (state) => state.emojis,
|
||||
index: (state) => state.index,
|
||||
isDarkMode: (state) => state.isDarkMode,
|
||||
sorting: (state) => {
|
||||
return {
|
||||
sorting: state.sorting,
|
||||
URI: '?sort=' + state.sorting.field + '&direction=' + state.sorting.sort,
|
||||
}
|
||||
},
|
||||
isVisibleNavigationBars: (state) => state.isVisibleNavigationBars,
|
||||
isVisibleSidebar: (state) => state.isVisibleSidebar,
|
||||
itemViewType: (state) => state.itemViewType,
|
||||
requestedPlan: (state) => state.requestedPlan,
|
||||
api: (state) => state.config.api,
|
||||
config: (state) => state.config,
|
||||
emojis: (state) => state.emojis,
|
||||
index: (state) => state.index,
|
||||
isDarkMode: (state) => state.isDarkMode,
|
||||
sorting: (state) => {
|
||||
return {
|
||||
sorting: state.sorting,
|
||||
URI: '?sort=' + state.sorting.field + '&direction=' + state.sorting.sort,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export default {
|
||||
state: defaultState,
|
||||
getters,
|
||||
actions,
|
||||
mutations,
|
||||
state: defaultState,
|
||||
getters,
|
||||
actions,
|
||||
mutations,
|
||||
}
|
||||
|
||||
+1
-1
@@ -140,7 +140,7 @@ const mutations = {
|
||||
})
|
||||
},
|
||||
CHANGE_ITEM_NAME(state, file) {
|
||||
state.entries.find(item => {
|
||||
state.entries.find((item) => {
|
||||
if (item.data.id === file.data.id) {
|
||||
item.data.attributes.name = file.data.attributes.name
|
||||
item.data.attributes.color = file.data.attributes.color ? file.data.attributes.color : null
|
||||
|
||||
+1
-2
@@ -203,7 +203,6 @@ const actions = {
|
||||
|
||||
// Reload File data after folder uploading is finished
|
||||
if (getters.isUploadingFolder) {
|
||||
|
||||
// Reload files after upload is done
|
||||
Vue.prototype.$getDataByLocation()
|
||||
|
||||
@@ -330,7 +329,7 @@ const actions = {
|
||||
.then(() => {
|
||||
itemsToDelete.forEach((data) => {
|
||||
// If is folder, update app data
|
||||
if (data.type === 'folder' && (getters.currentFolder && data.id === getters.currentFolder.data.id)) {
|
||||
if (data.type === 'folder' && getters.currentFolder && data.id === getters.currentFolder.data.id) {
|
||||
router.back()
|
||||
}
|
||||
})
|
||||
|
||||
+4
-1
@@ -88,7 +88,10 @@ const actions = {
|
||||
.then(() => {
|
||||
items.forEach((item) => {
|
||||
// Remove item from file browser
|
||||
if (getters.currentFolder && Vue.prototype.$isThisRoute(router.currentRoute, ['MySharedItems'])) {
|
||||
if (
|
||||
getters.currentFolder &&
|
||||
Vue.prototype.$isThisRoute(router.currentRoute, ['MySharedItems'])
|
||||
) {
|
||||
commit('REMOVE_ITEM', item.data.id)
|
||||
}
|
||||
|
||||
|
||||
Vendored
+8
-2
@@ -28,7 +28,10 @@ const actions = {
|
||||
})
|
||||
commit('SET_CURRENT_FOLDER', response.data.root)
|
||||
|
||||
if (!getters.currentTeamFolder || getters.currentTeamFolder.data.id !== response.data.teamFolder.data.id) {
|
||||
if (
|
||||
!getters.currentTeamFolder ||
|
||||
getters.currentTeamFolder.data.id !== response.data.teamFolder.data.id
|
||||
) {
|
||||
commit('SET_CURRENT_TEAM_FOLDER', response.data.teamFolder)
|
||||
}
|
||||
|
||||
@@ -67,7 +70,10 @@ const actions = {
|
||||
})
|
||||
commit('SET_CURRENT_FOLDER', response.data.root)
|
||||
|
||||
if (!getters.currentTeamFolder || getters.currentTeamFolder.data.id !== response.data.teamFolder.data.id) {
|
||||
if (
|
||||
!getters.currentTeamFolder ||
|
||||
getters.currentTeamFolder.data.id !== response.data.teamFolder.data.id
|
||||
) {
|
||||
commit('SET_CURRENT_TEAM_FOLDER', response.data.teamFolder)
|
||||
}
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import router from '../../router'
|
||||
import { events } from '../../bus'
|
||||
import i18n from '../../i18n'
|
||||
import axios from 'axios'
|
||||
import Vue from 'vue'
|
||||
|
||||
const defaultState = {
|
||||
uploadRequest: undefined,
|
||||
}
|
||||
|
||||
const actions = {}
|
||||
|
||||
const mutations = {
|
||||
SET_UPLOAD_REQUEST(state, payload) {
|
||||
state.uploadRequest = payload
|
||||
},
|
||||
}
|
||||
|
||||
const getters = {
|
||||
uploadRequest: (state) => state.uploadRequest,
|
||||
}
|
||||
|
||||
export default {
|
||||
state: defaultState,
|
||||
getters,
|
||||
actions,
|
||||
mutations,
|
||||
}
|
||||
+11
-3
@@ -64,7 +64,10 @@ const actions = {
|
||||
|
||||
items.forEach((item) => {
|
||||
if (item.data.type === 'folder') {
|
||||
if (context.getters.user.data.relationships.favourites.data.find((folder) => folder.id === item.data.id)) return
|
||||
if (
|
||||
context.getters.user.data.relationships.favourites.data.find((folder) => folder.id === item.data.id)
|
||||
)
|
||||
return
|
||||
|
||||
addFavourites.push({ id: item.data.id })
|
||||
}
|
||||
@@ -137,7 +140,9 @@ const mutations = {
|
||||
state.user.data.relationships.settings.data.attributes.avatar.sm = avatar
|
||||
},
|
||||
REMOVE_ITEM_FROM_FAVOURITES(state, item) {
|
||||
state.user.data.relationships.favourites.data = state.user.data.relationships.favourites.data.filter((folder) => folder.data.id !== item.data.id)
|
||||
state.user.data.relationships.favourites.data = state.user.data.relationships.favourites.data.filter(
|
||||
(folder) => folder.data.id !== item.data.id
|
||||
)
|
||||
},
|
||||
UPDATE_NAME_IN_FAVOURITES(state, data) {
|
||||
state.user.data.relationships.favourites.data.find((folder) => {
|
||||
@@ -149,7 +154,10 @@ const mutations = {
|
||||
}
|
||||
|
||||
const getters = {
|
||||
isLimitedUser: (state) => state.user && state.user.data.relationships.failedPayments && state.user.data.relationships.failedPayments.data.length === 3,
|
||||
isLimitedUser: (state) =>
|
||||
state.user &&
|
||||
state.user.data.relationships.failedPayments &&
|
||||
state.user.data.relationships.failedPayments.data.length === 3,
|
||||
permission: (state) => state.permission,
|
||||
user: (state) => state.user,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user