Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2020-02-26 14:00:27 +01:00
parent 626ca81022
commit b84c4e281e
No known key found for this signature in database
GPG key ID: 60C25B8C072916CF
11 changed files with 58 additions and 51 deletions

View file

@ -107,7 +107,7 @@
</div>
</div>
<div class="owner">
<user-div :user-id="form.event.owner" :display-name="form.event.ownerDisplayName" />
<UserDiv :user-id="form.event.owner" :display-name="form.event.ownerDisplayName" />
</div>
<div class="wrapper group-2-2">
<div class="created ">
@ -123,8 +123,12 @@
<script>
import moment from '@nextcloud/moment'
import UserDiv from '../components/_base-UserDiv'
export default {
components: {
UserDiv,
},
props: {
header: {
type: Boolean,

View file

@ -49,7 +49,7 @@
</template>
<script>
import TextFormItem from './textFormItem.vue'
import TextFormItem from './textFormItem'
export default {
components: {
TextFormItem,

View file

@ -73,7 +73,6 @@
</template>
<script>
export default {
props: {
header: {

View file

@ -65,11 +65,13 @@
<script>
import Multiselect from '@nextcloud/vue/dist/Components/Multiselect'
import UserDiv from './_base-UserDiv'
import axios from '@nextcloud/axios'
export default {
components: {
Multiselect,
UserDiv,
},
props: {

View file

@ -23,29 +23,12 @@
import Vue from 'vue'
import router from './router'
import App from './App.vue'
import VueClipboard from 'vue-clipboard2'
import App from './App'
import DatetimePicker from '@nextcloud/vue/dist/Components/DatetimePicker'
import PopoverMenu from '@nextcloud/vue/dist/Components/PopoverMenu'
import Tooltip from '@nextcloud/vue/dist/Components/Tooltip'
import VueClipboard from 'vue-clipboard2'
import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip'
import Modal from './plugins/plugin.js'
import Controls from './components/_base-Controls.vue'
import UserDiv from './components/_base-UserDiv.vue'
import SideBar from './components/_base-SideBar.vue'
import SideBarClose from './components/sideBarClose.vue'
import ShareDiv from './components/shareDiv.vue'
import LoadingOverlay from './components/_base-LoadingOverlay.vue'
Vue.component('Controls', Controls)
Vue.component('PopoverMenu', PopoverMenu)
Vue.component('DatePicker', DatetimePicker)
Vue.component('UserDiv', UserDiv)
Vue.component('SideBar', SideBar)
Vue.component('SideBarClose', SideBarClose)
Vue.component('ShareDiv', ShareDiv)
Vue.component('LoadingOverlay', LoadingOverlay)
Vue.directive('tooltip', Tooltip)

View file

@ -24,6 +24,7 @@
import Modal from './plugin.js'
export default {
name: 'ModalDialog',
data() {
return {
visible: false,

View file

@ -1,6 +1,6 @@
/* jshint esversion: 6 */
// we need our modal component
import ModalDialog from './modalDialog.vue'
import ModalDialog from './ModalDialog'
const Modal = {
// every plugin for Vue.js needs install method
@ -12,7 +12,7 @@ const Modal = {
this.EventBus = new Vue()
// making our modal component global
Vue.component('modal-dialog', ModalDialog)
Vue.component('ModalDialog', ModalDialog)
// exposing global $modal object with method show()
// method show() takes object params as argument

View file

@ -26,9 +26,9 @@ import Vue from 'vue'
import Router from 'vue-router'
// Dynamic loading
const Create = () => import('./views/Create.vue')
const List = () => import('./views/List.vue')
const Results = () => import('./views/Results.vue')
const Create = () => import('./views/Create')
const List = () => import('./views/List')
const Results = () => import('./views/Results')
Vue.use(Router)
export default new Router({

View file

@ -27,7 +27,7 @@
<template>
<div id="app-content">
<controls :intitle="title">
<Controls :intitle="title">
<template slot="after">
<button :disabled="writingForm" class="button btn primary" @click="writeForm(form.mode)">
<span>{{ saveButtonTitle }}</span>
@ -35,7 +35,7 @@
</button>
<button class="button symbol icon-settings" @click="switchSidebar" />
</template>
</controls>
</Controls>
<div class="workbench">
<div>
@ -48,7 +48,7 @@
type="text">
<label>{{ t('forms', 'Description') }}</label>
<textarea id="formDesc" v-model="form.event.description" style="resize: vertical; width: 100%;" />
<textarea id="formDesc" v-model="form.event.description" style="resize: vertical; width: 100%;" />
</div>
<div>
@ -90,7 +90,7 @@
</div>
</div>
<side-bar v-if="sidebar">
<SideBar v-if="sidebar">
<div v-if="adminMode" class="warning">
{{ t('forms', 'You are editing in admin mode') }}
</div>
@ -149,7 +149,7 @@
{{ t('forms', 'Expires') }}
</label>
<DatePicker v-show="form.event.expiration"
<DatetimePicker v-show="form.event.expiration"
v-model="form.event.expirationDate"
v-bind="expirationDatePicker"
:disabled="protect"
@ -194,26 +194,39 @@
</div>
</div>
<share-div v-show="form.event.access === 'select'"
<ShareDiv v-show="form.event.access === 'select'"
:active-shares="form.shares"
:placeholder="t('forms', 'Name of user or group')"
:hide-names="true"
@update-shares="updateShares"
@remove-share="removeShare" />
</side-bar>
<loading-overlay v-if="loadingForm" />
</SideBar>
<LoadingOverlay v-if="loadingForm" />
</div>
</template>
<script>
import moment from '@nextcloud/moment'
import QuizFormItem from '../components/quizFormItem.vue'
import axios from '@nextcloud/axios'
import DatetimePicker from '@nextcloud/vue/dist/Components/DatetimePicker'
import moment from '@nextcloud/moment'
import Controls from '../components/_base-Controls'
import LoadingOverlay from '../components/_base-LoadingOverlay'
import QuizFormItem from '../components/quizFormItem'
import ShareDiv from '../components/shareDiv'
import SideBar from '../components/_base-SideBar'
import UserDiv from '../components/_base-UserDiv'
export default {
name: 'Create',
components: {
Controls,
DatetimePicker,
LoadingOverlay,
QuizFormItem,
ShareDiv,
SideBar,
UserDiv,
},
data() {

View file

@ -23,14 +23,14 @@
<template>
<div id="app-content">
<controls>
<Controls>
<router-link :to="{ name: 'create'}" class="button">
<span class="symbol icon-add" />
<span class="hidden-visually">
{{ t('forms', 'New') }}
</span>
</router-link>
</controls>
</Controls>
<div v-if="noForms" class="">
<div class="icon-forms" />
<h2> {{ t('No existing forms.') }} </h2>
@ -43,7 +43,7 @@
name="list"
tag="div"
class="table">
<form-list-item
<FormListItem
key="0"
:header="true" />
<li
@ -54,21 +54,25 @@
@deleteForm="removeForm(index, form.event)"
@viewResults="viewFormResults(index, form.event, 'results')" />
</transition-group>
<loading-overlay v-if="loading" />
<LoadingOverlay v-if="loading" />
<modal-dialog />
</div>
</template>
<script>
import formListItem from '../components/formListItem.vue'
import FormListItem from '../components/formListItem'
import Controls from '../components/_base-Controls'
import axios from '@nextcloud/axios'
import LoadingOverlay from '../components/_base-LoadingOverlay'
export default {
name: 'List',
components: {
formListItem,
Controls,
FormListItem,
LoadingOverlay,
},
data() {

View file

@ -38,7 +38,7 @@
name="list"
tag="div"
class="table">
<resultItem
<ResultItem
key="0"
:header="true" />
<li
@ -48,24 +48,24 @@
:vote="vote"
@viewResults="viewFormResults(index, form.event, 'results')" />
</transition-group>
<loading-overlay v-if="loading" />
<LoadingOverlay v-if="loading" />
<modal-dialog />
</div>
</div>
</template>
<script>
// import moment from 'moment'
// import lodash from 'lodash'
import resultItem from '../components/resultItem.vue'
import ResultItem from '../components/resultItem'
import json2csvParser from 'json2csv'
import axios from '@nextcloud/axios'
import LoadingOverlay from '../components/_base-LoadingOverlay'
export default {
name: 'Results',
components: {
resultItem,
ResultItem,
LoadingOverlay,
},
data() {
@ -78,6 +78,7 @@ export default {
computed: {
stats() {
const sums = []
if (this.votes != null) {
const uniqueAns = []
@ -94,7 +95,6 @@ export default {
}
}
}
var sums = []
for (let i = 0; i < uniqueAns.length; i++) {
sums[i] = 0
}
@ -105,6 +105,7 @@ export default {
sums[i] = 'Question ' + ansToQ.get(uniqueAns[i]) + ': ' + (sums[i] / ((this.votes.length / uniqueQs.length)) * 100).toFixed(2) + '%' + ' of respondents voted for answer choice: ' + uniqueAns[i]
}
}
return sums.sort()
},
},