merge conflict

This commit is contained in:
Senta Mandutz 2019-07-21 14:22:37 +02:00
parent 0097de5122
commit d003166e33
2 changed files with 160 additions and 366 deletions

View File

@ -1,7 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="de">
<head> <head>
<title>OHM News</title>
<!-- NOTE: Meta Tags --> <!-- NOTE: Meta Tags -->
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="description" content="Ohm management app"> <meta name="description" content="Ohm management app">
@ -9,7 +9,6 @@
<meta name="author" content=""> <meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--for demonstration:--> <!--for demonstration:-->
<!-- <meta http-equiv="refresh" content="10">
<!-- <meta http-equiv="refresh" content="30"> --> <!-- <meta http-equiv="refresh" content="30"> -->
<!-- NOTE: Define Theme Color --> <!-- NOTE: Define Theme Color -->
@ -47,36 +46,30 @@
<link rel="apple-touch-startup-image" sizes="640x1136" href="ios-splash/apple_splash_640.png" /><!-- Phone --> <link rel="apple-touch-startup-image" sizes="640x1136" href="ios-splash/apple_splash_640.png" /><!-- Phone -->
<!-- NOTE: CSS --> <!-- NOTE: CSS -->
<!-- CSS_Material Design for Bootstrap fonts and icons --> <!-- CSS_Material Design for Bootstrap fonts and icons -->
<link rel="stylesheet" href="lib/bootstrap-font-and-icons.css"> <link rel="stylesheet" href="lib/bootstrap-font-and-icons.css">
<!-- CSS_Material Design for Bootstrap minified CSS --> <link rel="stylesheet" href="lib/bootstrap-material-design-icons-2.5.94.min.css">
<!--<link rel="stylesheet" href="lib/bootstrap-material-design.min.css">--> <!-- CSS_Buefy-->
<link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.css">
<!--<link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.min.css">-->
<!-- CSS_Custom Design -->
<link rel="stylesheet" type="text/css" href="style/style.css">
<!-- NOTE: Call manifest.json --> <!-- NOTE: Call manifest.json -->
<link rel="manifest" href="manifest.json"> <link rel="manifest" href="manifest.json">
<!-- NOTE: Load JQuery, Vue.js, VueRouter, Vuetify --> <!-- NOTE: Material Icons e.g. seach -->
<script src="lib/jquery-3.3.1.min.js"></script> <link rel="stylesheet" href="https://cdn.materialdesignicons.com/2.5.94/css/materialdesignicons.min.css">
<!-- NOTE: Load .js Libraries -->
<script src="lib/vue-2.6.10.js"></script> <script src="lib/vue-2.6.10.js"></script>
<script src="lib/vue-router-3.0.1.js"></script> <script src="lib/vue-router-3.0.1.js"></script>
<!-- Buefy/Vuetify -->
<script src="lib/buefy-0.7.5.js"></script> <script src="lib/buefy-0.7.5.js"></script>
<!-- <script src="lib/buefy-0.7.5.min.js"></script>--> <!-- <script src="lib/buefy-0.7.5.min.js"></script>-->
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/2.5.94/css/materialdesignicons.min.css"> <script src="lib/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.css">
<!--<link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.min.css">-->
<!-- <script src="lib/vuetify-1.5.14.js"></script>--> <!-- NOTE: Include .js Routes -->
<!-- <script src="lib/vuetify-1.5.14.min.js"></script>--> <script src="routes/auth.js"></script><!-- Must load before profile.js -->
<!-- <link rel="stylesheet" type="text/css" href="lib/vuetify-1.5.14.css">-->
<!-- <link rel="stylesheet" type="text/css" href="lib/vuetify-1.5.14.min.css">-->
<!-- CSS_Custom Design -->
<link rel="stylesheet" type="text/css" href="style/style.css">
<!-- NOTE: JavaScript Libs & Files -->
<script src="routes/home.js"></script> <script src="routes/home.js"></script>
<script src="routes/files.js"></script> <script src="routes/files.js"></script>
<script src="routes/createMessage.js"></script> <script src="routes/createMessage.js"></script>
@ -85,302 +78,53 @@
<script src="routes/msgCard.js"></script> <script src="routes/msgCard.js"></script>
<script src="routes/messageData.js"></script> <script src="routes/messageData.js"></script>
<script src="routes/tagData.js"></script> <script src="routes/tagData.js"></script>
<script src="routes/majorData.js"></script>
<script src="routes/profilCard.js"></script> <script src="routes/profilCard.js"></script>
<script src="routes/profilData.js"></script>
<script src="routes/login.js"></script>
<script src="routes/navRoutes.js"></script> <script src="routes/navRoutes.js"></script>
<script src="search.js"></script>
<title>OHM News</title>
</head> </head>
<body> <body>
<div id="api"> <div id="api">
<div class="om-header-container"> <div class="om-header-container">
<div class="om-header"> <div class="om-header">
<a class="logo-img" href="index.html"><img src="img/app_icon.png" width=45px height=45px></a> <a class="logo-img is-hidden-desktop" href="index.html"><img src="img/app_icon.png" width=45px height=45px></a>
<form class="om-searchbar" @submit.prevent="search()"> <a class="logo-img is-hidden-touch" href="index.html"><img src="img/app_icon_desk.png" width=100px height=100px></a>
<b-field> <search></search>
<b-autocomplete rounded v-model="searchtext" @keydown.native.enter="search" :data="filteredDataArray" placeholder="suche..." icon="magnify" @select="option => selected = option">
</b-autocomplete>
<!--<b-input
type="search"
v-model="searchtext"
icon="magnify"
placeholder="Suche...">
</b-input>-->
<!--<b-taginput
id="search-text"
type="search"
v-model="selected"
:data=taglist
autocomplete
allow-new:true
icon="magnify"
placeholder="Suche.."
@typing="getFilteredTags"
@input="saveTagsToArray">
</b-taginput>-->
<b-button type="is-light" @click="clear">X</b-button>
</b-field>
</form>
</div> </div>
</div> </div>
<div class="om-content"> <div class="om-content">
<div id=xxx></div> <div id=xxx></div>
<nav-router></nav-router> <nav-router></nav-router>
<router-view></router-view> <router-view :key="auth.user"></router-view>
</div> </div>
</div> </div>
<!--<b-tabs type="is-toggle" expanded>
<b-tab-item><router-link to="/home" >
<b-icon
pack="fas"
icon="home"
size="is-small">
</b-icon>
</router-link></b-tab-item>
<b-tab-item icon="magnify"></b-tab-item>
<b-tab-item icon="plus-circle"></b-tab-item>
<b-tab-item icon="bookmark"></b-tab-item>
<b-tab-item icon="account"></b-tab-item>
</b-tabs>-->
<!--
<nav class="navbar is-fixed-bottom is-expanded is-light is-hoverable" role="navigation" aria-label="main navigation">
<div class="navbar-brand is-expanded">
<router-link to="/home" class="navbar-item is-expanded has-text-centered is-active">
<i class="material-icons">home</i>
</router-link>
<router-link to="/files" class="navbar-item is-expanded">
<i class="material-icons">language</i>
</router-link>
<router-link to="/createMessage" class="navbar-item is-expanded">
<i class="material-icons">add_circle</i>
</router-link>
<router-link to="/bookmark" class="navbar-item is-expanded">
<i class="material-icons">bookmark</i>
</router-link>
<router-link to="/profil" class="navbar-item is-expanded">
<i class="material-icons">person</i>
</router-link>
</div>
</nav>
<nav class="nav nav-tabs nav-justified om-nav" v-if="$route.path !=='/createMessage' ">
<router-link to="/home" class="navbar-item has-text-centered"><i class="material-icons">home</i></router-link>
<router-link to="/files" class="navbar-item has-text-centered"><i class="material-icons">language</i></router-link>
<router-link to="/createMessage" class="navbar-item has-text-centered outlined"><i class="material-icons">add_circle</i></router-link>
<router-link to="/bookmark" class="navbar-item has-text-centered"><i class="material-icons">bookmark</i></router-link>
<router-link to="/profil" class="navbar-item has-text-centered"><i class="material-icons">person</i></router-link>
</nav>
</div>
-->
<script>
var isSearchActive = false;
var tagArray = ["lorem"];
</script>
<!-- const routes = [
{ path: "/", component: HomeRouter },
{ path: "/home", component: HomeRouter },
{ path: "/files", component: FileRouter },
{ path: "/createMessage", component: CreateMsgRouter },
{ path: "/bookmark", component: BookmarkRouter },
{ path: "/profil", component: ProfilRouter },
];
const router = new VueRouter({
routes
}); -->
<script> <script>
var app = new Vue({
new Vue({
router, router,
el: '#api', el: '#api',
data: function() { components: {
return { // Locally registered components
searchtext: "",
//isSearchActiv: false,
selected: [],
taglist: data,
};
}, },
computed: { data: {
filteredDataArray() { // Locally registered variables
return this.taglist.filter((option) => { auth: auth,
return option },
.toString()
.toLowerCase() computed:{
.indexOf(this.searchtext.toLowerCase()) >= 0 // Methods to change data appearance, does cache results
})
}
}, },
methods: { methods: {
// Methods to change data content, run always again
getFilteredTags(text) {
this.taglist = data.filter((option) => {
return option
.toString()
.toLowerCase()
.indexOf(text.toLowerCase()) >= 0
})
this.search();
},
saveTagsToArray: function() {
tagArray = this.selected;
console.info(tagArray);
},
search: function() {
searching(this.searchtext);
},
list_messages: function() {
messages();
},
list_tags: function() {
$.ajax({
url: "api/tag/ids",
method: "GET"
})
.done(jd => {
// NICHT SO wg. Vue: _messagelist = jd;
if(data == ""){
_taglist.splice(0, _taglist.length);
_taglist.push.apply(_taglist, jd);
console.log("tag: jd: " + jd);
for (var e in jd) {
if (!_tags[jd[e]]) {
get_insert_tag(jd[e]);
}
}
}
}).fail(function(e, f, g) {
console.log("err: " + e + f + g);
});
},
clear: function() {
console.log("clear");
isSearchActiv = false;
this.searchtext = "";
this.list_messages();
},
},
mounted: function() {
//this.search();
this.list_tags();
}, },
}); });
function get_insert_tag(id) {
$.ajax({
url: "api/tag/" + id,
method: "GET"
}).done(function(tag) {
data.push("#" + tag.name);
console.log("it worked!");
}).fail(function(e, f, g) {
console.log("cannot load " + id + ".json: " + e + f + g);
})
}
function searching(searchtext) {
isSearchActiv = true;
console.log("Searchtext: " + searchtext.replace(/#/g, ''));
$.ajax({
url: "api/msg/search/" + searchtext.replace(/#/g, ''),
method: "GET"
}).done(jd => {
// NICHT SO wg. Vue: _messagelist = jd;
router.push('/home');
_messagelist.splice(0, _messagelist.length);
_messagelist.push.apply(_messagelist, jd);
//console.log("jd: "+jd);
for (var e in jd) {
if (!_messages[jd[e]]) {
get_insert_message(jd[e]);
}
}
}).fail(function(e, f, g) {
console.log("searching: err: " + e + f + g);
})
}
function messages() {
$.ajax({
url: "api/msg/ids",
method: "GET"
})
.done(jd => {
// NICHT SO wg. Vue: _messagelist = jd;
_messagelist.splice(0, _messagelist.length);
_messagelist.push.apply(_messagelist, jd);
//console.log("jd: "+jd);
for (var e in jd) {
if (!_messages[jd[e]]) {
get_insert_message(jd[e]);
}
}
}).fail(function(e, f, g) {
console.log("list_msg: err: " + e + f + g);
});
}
const search_data = [];
/*
export.default {
data: function () {
return {
selected: [],
taglist: data,
};
},
computed: {
filteredTagArray() {
this.taglist = data.filter((option) => {
return option
.toString()
.toLowerCase()
.indexOf(this.name.toLowerCase()) >= 0
})
},
},
methods: {
evaluate(text) {
this.taglist = data.filter((option) => {
return option
.toString()
.toLowerCase()
.indexOf(text.toLowerCase()) >= 0
})
},
},
mounted: function () {
if ($(this).bootstrapMaterialDesign)
$(this).bootstrapMaterialDesign();
},
};
*/
</script> </script>
<!-- CDN_Vue.js minified lib -->
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script> --> <!-- NOTE: Call SW registration -->
<!-- CDN_jQuery minified lib --> <script src="registerSW.js"></script>
<!--<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>-->
<!-- Load Popper.js -->
<script src="lib/popper-1.12.6.js"></script>
<!-- Load Bootstrap.js -->
<script src="lib/bootstrap-material-design.js"></script>
<!-- NOTE: Call main.js -->
<script src="main.js"></script>
</body> </body>
</html> </html>

View File

@ -2,9 +2,10 @@ var tagArray = [];
const data=[]; const data=[];
const CreateMsgRouter = { const CreateMsgRouter = {
template: ` template: `
<div class="content card om-card"> <div class="content">
<div class="is-hidden-desktop">
<div id="mobile" class="content card om-card">
<h4>Neue Nachricht erstellen</h4> <h4>Neue Nachricht erstellen</h4>
<b-field> <b-field>
<b-input placeholder="User" id="user"></b-input> <b-input placeholder="User" id="user"></b-input>
</b-field> </b-field>
@ -33,11 +34,48 @@ const CreateMsgRouter = {
<b-button @click="$router.go(-1)">ABBRECHEN</b-button> <b-button @click="$router.go(-1)">ABBRECHEN</b-button>
<b-button type="is-primary" @click="createMsg">SENDEN</b-button> <b-button type="is-primary" @click="createMsg">SENDEN</b-button>
</div>
</div>
<div class="column is-three-quarters is-pulled-right is-hidden-touch content-desktop">
<div id="desktop" class="content card om-card">
<h4>Neue Nachricht erstellen</h4>
<b-field>
<b-input placeholder="User" id="user"></b-input>
</b-field>
<b-field>
<b-input placeholder="Betreff" id="subject"></b-input>
</b-field>
<b-field label="Tags">
<b-taginput
id="tag"
v-model="selected"
:data=taglist
autocomplete
allow-new:false
icon="label"
placeholder="#"
@typing="getFilteredTags"
@input="saveTagsToArray">
</b-taginput>
</b-field>
<b-field>
<b-input placeholder="Nachricht" id="message" type="textarea"></b-input>
</b-field>
<b-button @click="$router.go(-1)">ABBRECHEN</b-button>
<b-button type="is-primary" @click="createMsg">SENDEN</b-button>
</div>
</div>
</div>`,
</div>
`,
data: function () { data: function () {
return { return {
auth: auth,
isDisabled: false,
selected: [], selected: [],
taglist: data, taglist: data,
}; };
@ -51,7 +89,7 @@ const CreateMsgRouter = {
var _subject = $("#subject").val(); var _subject = $("#subject").val();
var _message = $("#message").val(); var _message = $("#message").val();
var _tag = tagArray; var _tag = tagArray;
var _user = $("#user").val(); var _user = auth.name ? auth.name : $("#user").val();
//console.log("Message Created: " + _tag + " " + _message + " " + _user); //console.log("Message Created: " + _tag + " " + _message + " " + _user);
$.ajax({ $.ajax({
url: "api/msg", url: "api/msg",
@ -103,14 +141,26 @@ const CreateMsgRouter = {
} }
}, },
mounted: function () { mounted: function () {
//this.list_tags(); var userField = $('#user');
if (auth != null && auth.mail != '') {
// userField.prop('placeholder',auth.name);
var authorName = auth.name.split(' ');
authorName = authorName[1] + ', ' + authorName[0];
userField.val(authorName);
userField.prop('disabled',true);
} else {
userField.prop('placeholder','User');
userField.prop('disabled',false);
}
this.list_tags();
if ($(this).bootstrapMaterialDesign) if ($(this).bootstrapMaterialDesign)
$(this).bootstrapMaterialDesign(); $(this).bootstrapMaterialDesign();
}, },
}; };
function get_insert_tag(id){ function get_insert_tag(id){
$.ajax({ url: "api/tag/"+id, method: "GET" }).done(function (tag) { $.ajax({ url: "api/tag/id/"+id, method: "GET" }).done(function (tag) {
data.push("#" + tag.name); data.push("#" + tag.name);
console.log("Array:"+this.data); console.log("Array:"+this.data);
}).fail(function (e, f, g) { }).fail(function (e, f, g) {