Commit c1281fe0 authored by Jacob Schatz's avatar Jacob Schatz

adds store and editor files.

parent 232f282b
...@@ -55,6 +55,7 @@ import RefSelectDropdown from './ref_select_dropdown'; ...@@ -55,6 +55,7 @@ import RefSelectDropdown from './ref_select_dropdown';
import GfmAutoComplete from './gfm_auto_complete'; import GfmAutoComplete from './gfm_auto_complete';
import ShortcutsBlob from './shortcuts_blob'; import ShortcutsBlob from './shortcuts_blob';
import initSettingsPanels from './settings_panels'; import initSettingsPanels from './settings_panels';
import RepoBundle from './repo/repo_bundle';
(function() { (function() {
var Dispatcher; var Dispatcher;
...@@ -323,15 +324,13 @@ import initSettingsPanels from './settings_panels'; ...@@ -323,15 +324,13 @@ import initSettingsPanels from './settings_panels';
break; break;
case 'projects:tree:show': case 'projects:tree:show':
shortcut_handler = new ShortcutsNavigation(); shortcut_handler = new ShortcutsNavigation();
new TreeView(); new RepoBundle();
new BlobViewer();
break; break;
case 'projects:find_file:show': case 'projects:find_file:show':
shortcut_handler = true; shortcut_handler = true;
break; break;
case 'projects:blob:show': case 'projects:blob:show':
new BlobViewer(); new RepoBundle();
initBlob();
break; break;
case 'projects:blame:show': case 'projects:blame:show':
initBlob(); initBlob();
......
/* global monaco */ /* global monaco */
import Sidebar from './repo_sidebar' import Sidebar from './repo_sidebar'
import Editor from './repo_editor'
import Service from './repo_service' import Service from './repo_service'
import Store from './repo_store'
class RepoBundle { export default class RepoBundle {
constructor(id, url) { constructor() {
this.service = Service; const url = document.getElementById('ide').dataset.url;
this.service.url = url; Store.service = Service;
this.sidebar = new Sidebar(url); Store.service.url = url;
Store.sidebar = new Sidebar(url);
Store.editor = new Editor();
Store.sidebar.getContent();
} }
} }
window.require.config({ paths: { vs: '/monaco-editor/min/vs' } });
window.require(['vs/editor/editor.main'], () => {
var editor = monaco.editor.create(document.getElementById('ide'), {
value: "function hello() {\n\talert('Hello world!');\n}",
language: 'javascript',
});
});
document.addEventListener('DOMContentLoaded', ()=> {
const ideRoot = document.getElementById('ide');
const bundle = new RepoBundle(
ideRoot,
ideRoot.dataset.url
);
});
import Vue from 'vue';
import Store from './repo_store'
export default class RepoEditor {
constructor() {
this.initMonaco();
}
initMonaco() {
window.require.config({ paths: { vs: '/monaco-editor/min/vs' } });
window.require(['vs/editor/editor.main'], () => {
this.monaco = monaco.
create(
document.getElementById('ide'), {
model: null
}
)
console.log("HELLLOOOO!!!")
this.initVue();
});
}
initVue() {
const editor = this.editor;
this.vue = new Vue({
el: '#ide',
data: () => Store,
created () {
if(this.blobRaw !== ''){
console.log('models', this.monaco.getModels());
}
},
watch: {
blobRaw() {
if(this.isTree) {
} else {
// this.blobRaw
console.log('models', editor.getModels())
}
}
}
});
}
}
\ No newline at end of file
let RepoHelper = {
isTree(data) {
return data.hasOwnProperty('blobs');
}
};
export default RepoHelper;
\ No newline at end of file
...@@ -7,7 +7,7 @@ let RepoService = { ...@@ -7,7 +7,7 @@ let RepoService = {
this.url = url; this.url = url;
}, },
getTree() { getContent() {
return axios.get(this.url); return axios.get(this.url);
} }
}; };
......
import Service from './repo_service' import Service from './repo_service'
import Helper from './repo_helper'
import Vue from 'vue'; import Vue from 'vue';
import Store from './repo_store'
export default class RepoSidebar { export default class RepoSidebar {
constructor(url) { constructor(url) {
this.url = url; this.url = url;
this.getTree();
this.initVue(); this.initVue();
} }
getTree() { // may be tree or file.
Service.getTree() getContent() {
Service.getContent()
.then((response)=> { .then((response)=> {
console.log('response', response.data); let data = response.data;
Store.isTree = Helper.isTree(data);
if(!Store.isTree) {
Store.blobRaw = data.plain;
}
}) })
.catch((response)=> { .catch((response)=> {
console.log('error response', response); console.log('error response', response);
......
let RepoStore = {
service: '',
editor: '',
sidebar: '',
isTree: false,
trees: [],
blobs: [],
submodules: [],
blobRaw: '',
blobRendered: ''
};
export default RepoStore;
...@@ -8,6 +8,4 @@ ...@@ -8,6 +8,4 @@
= render "projects/blob/auxiliary_viewer", blob: blob = render "projects/blob/auxiliary_viewer", blob: blob
#blob-content-holder.blob-content-holder #blob-content-holder.blob-content-holder
%article.file-holder #ide{ data: { url: repo_url }, style: "height:400px;" }
= render "projects/blob/header", blob: blob
= render 'projects/blob/content', blob: blob
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment