🎨 Add site and rename app

This commit is contained in:
brunosimon
2017-12-27 15:52:29 +01:00
parent 0e491b0660
commit 657fa4546d
224 changed files with 206 additions and 42 deletions
+36
View File
@@ -0,0 +1,36 @@
import Vue from 'vue'
import Vuex from 'vuex'
import chatModule from './modules/chat'
import projectsModule from './modules/projects'
import filesModule from './modules/files'
Vue.use(Vuex)
export default new Vuex.Store({
modules:
{
chat: chatModule,
projects: projectsModule,
files: filesModule
},
state:
{
serverConfig: null,
scrollbarWidth: 0
},
mutations:
{
updateServerConfig(state, data)
{
state.serverConfig = data
},
updateScrollbarWidth(state, data)
{
state.scrollbarWidth = data
}
}
})
+81
View File
@@ -0,0 +1,81 @@
export default {
state:
{
open: false,
user: null,
pendingUser: null,
messages: [],
pendingMessage: null,
pendingAlert: null,
question: null,
unreadCount: 0
},
mutations:
{
emptyMessages(state)
{
state.messages = []
},
createMessage(state, data)
{
state.messages.push(data)
// Add to unread count if not open or document is hidden (tab not active)
if(!state.open || document.hidden)
{
state.unreadCount++
}
// Clamp
if(state.messages.length > 100)
{
state.messages.splice(0, state.messages.length - 100)
}
},
updateUser(state, data)
{
state.user = data
},
setPendingUser(state, data)
{
state.pendingUser = data
},
setPendingMessage(state, data)
{
state.pendingMessage = data
},
setPendingAlert(state)
{
const date = new Date()
state.pendingAlert = { date }
},
setQuestion(state, data)
{
state.question = data
},
openChat(state)
{
state.unreadCount = 0
state.open = true
},
closeChat(state)
{
state.open = false
},
toggleChat(state)
{
state.unreadCount = 0
state.open = !state.open
}
}
}
+118
View File
@@ -0,0 +1,118 @@
import FileTree from '@/utils/FileTree'
export default {
state:
{
tree: new FileTree({ autoWash: true }),
currentFile: null,
currentVersion: null,
currentLine: null,
search: ''
},
mutations:
{
updateFiles(state, data)
{
state.tree = new FileTree({ autoWash: true })
for(const file of data)
{
file.isNew = false
file.isChanged = false
state.tree.addFile(file.path.full, file)
}
},
createFile(state, data)
{
data.isNew = true
data.isChanged = false
data.isActive = false
state.tree.addFile(data.path.full, data)
},
deleteFile(state, data)
{
state.tree.removeFile(data.path.full)
},
setFile(state, data)
{
// Null file
if(!data)
{
if(state.currentFile)
{
state.currentFile.isActive = false
}
state.currentFile = null
}
// File path
else
{
// Retrieve file from path
const file = state.tree.getFile(data)
// No current file or file different than current
if(!state.currentFile || state.currentFile.id !== file.id)
{
if(state.currentFile)
{
state.currentFile.isActive = false
}
state.currentFile = file
state.currentFile.isActive = true
state.currentFile.isNew = false
state.currentFile.isChanged = false
}
}
},
createVersion(state, data)
{
const file = state.tree.getFile(data.file)
if(file)
{
file.versions.push(data.version)
file.isChanged = true
}
},
setVersion(state, data)
{
// Date sent
if(typeof data === 'string')
{
// Find version by date
const version = state.currentFile.versions.find((version) => version.date === data)
// Found
if(version)
{
state.currentVersion = version
}
}
// Version directly sent
else
{
state.currentVersion = data
}
},
setLine(state, data)
{
state.currentLine = data
},
searchFile(state, data)
{
state.search = data
}
}
}
+48
View File
@@ -0,0 +1,48 @@
export default {
state:
{
all: {},
current: null
},
mutations:
{
updateProjects(state, data)
{
state.all = data
// Has a current project
if(state.current)
{
// Current project has been removed
if(typeof state.all[state.current.slug] === 'undefined')
{
const projectKeys = Object.keys(state.all)
state.current = state.all[projectKeys[0]]
}
}
// No current project
else
{
// Set first project as current
const projectKeys = Object.keys(state.all)
state.current = state.all[projectKeys[0]]
}
},
addProject(state, data)
{
state.all.push(data)
},
setProject(state, data)
{
// Test of project exist
if(typeof state.all[data] !== 'undefined')
{
state.current = state.all[data]
}
}
}
}