Add Collections section in Docs page

This commit is contained in:
Liyas Thomas
2020-07-18 06:39:45 +05:30
parent 4dc76b864f
commit 1827a98284
4 changed files with 328 additions and 281 deletions

View File

@@ -1,14 +1,21 @@
<template> <template>
<div> <div>
<div class="flex-wrap"> <div class="flex-wrap">
<div>
<button class="icon" @click="toggleShowChildren"> <button class="icon" @click="toggleShowChildren">
<i class="material-icons" v-show="!showChildren">arrow_right</i> <i class="material-icons" v-show="!showChildren">arrow_right</i>
<i class="material-icons" v-show="showChildren">arrow_drop_down</i> <i class="material-icons" v-show="showChildren">arrow_drop_down</i>
<i class="material-icons">folder</i> <i class="material-icons">folder</i>
<span>{{ collection.name }}</span> <span>{{ collection.name }}</span>
</button> </button>
</div> <div>
<button
v-if="doc"
class="icon"
@click="$emit('select-collection')"
v-tooltip.left="$t('import')"
>
<i class="material-icons">keyboard_backspace</i>
</button>
<v-popover> <v-popover>
<button class="tooltip-target icon" v-tooltip.left="$t('more')"> <button class="tooltip-target icon" v-tooltip.left="$t('more')">
<i class="material-icons">more_vert</i> <i class="material-icons">more_vert</i>
@@ -35,6 +42,7 @@
</template> </template>
</v-popover> </v-popover>
</div> </div>
</div>
<div v-show="showChildren"> <div v-show="showChildren">
<ul> <ul>
@@ -97,6 +105,7 @@ export default {
props: { props: {
collectionIndex: Number, collectionIndex: Number,
collection: Object, collection: Object,
doc: Boolean,
}, },
data() { data() {
return { return {

View File

@@ -70,20 +70,22 @@ TODO:
<collection <collection
:collection-index="index" :collection-index="index"
:collection="collection" :collection="collection"
:doc="doc"
@edit-collection="editCollection(collection, index)" @edit-collection="editCollection(collection, index)"
@add-folder="addFolder(collection, index)" @add-folder="addFolder(collection, index)"
@edit-folder="editFolder($event)" @edit-folder="editFolder($event)"
@edit-request="editRequest($event)" @edit-request="editRequest($event)"
@select-collection="$emit('use-collection', collection)"
/> />
</li> </li>
</ul> </ul>
</div> </div>
<nuxt-link :to="localePath('doc')" :aria-label="$t('documentation')"> <!-- <nuxt-link :to="localePath('doc')" :aria-label="$t('documentation')">
<button class="icon"> <button class="icon">
<i class="material-icons">topic</i> <i class="material-icons">topic</i>
<span>{{ $t("generate_docs") }}</span> <span>{{ $t("generate_docs") }}</span>
</button> </button>
</nuxt-link> </nuxt-link> -->
</pw-section> </pw-section>
</template> </template>
@@ -113,6 +115,9 @@ export default {
editRequest: () => import("./editRequest"), editRequest: () => import("./editRequest"),
importExportCollections: () => import("./importExportCollections"), importExportCollections: () => import("./importExportCollections"),
}, },
props: {
doc: Boolean,
},
data() { data() {
return { return {
showModalAdd: false, showModalAdd: false,

View File

@@ -14,6 +14,8 @@
<style scoped lang="scss"> <style scoped lang="scss">
fieldset { fieldset {
display: flex;
flex: 1;
margin: 16px 0; margin: 16px 0;
border-radius: 8px; border-radius: 8px;
background-color: var(--bg-dark-color); background-color: var(--bg-dark-color);

View File

@@ -1,6 +1,8 @@
<template> <template>
<div class="page"> <div class="page">
<pw-section class="blue" :label="$t('collections')" ref="collections"> <div class="content">
<div class="page-columns inner-left">
<pw-section class="blue" :label="$t('import')" ref="collections">
<ul> <ul>
<li> <li>
<p class="info"> <p class="info">
@@ -10,8 +12,13 @@
</ul> </ul>
<ul> <ul>
<li> <li>
<div class="flex-wrap">
<label for="collectionUpload"> <label for="collectionUpload">
<button class="icon" @click="$refs.collectionUpload.click()" v-tooltip="$t('json')"> <button
class="icon"
@click="$refs.collectionUpload.click()"
v-tooltip="$t('json')"
>
<i class="material-icons">folder</i> <i class="material-icons">folder</i>
<span>{{ $t("import_collections") }}</span> <span>{{ $t("import_collections") }}</span>
</button> </button>
@@ -22,6 +29,16 @@
type="file" type="file"
@change="uploadCollection" @change="uploadCollection"
/> />
<div>
<button
class="icon"
@click="collectionJSON = '[]'"
v-tooltip.bottom="$t('clear')"
>
<i class="material-icons">clear_all</i>
</button>
</div>
</div>
</li> </li>
</ul> </ul>
<ul> <ul>
@@ -258,6 +275,14 @@
</div> </div>
</pw-section> </pw-section>
</div> </div>
<aside class="sticky-inner inner-right">
<section>
<collections @use-collection="useSelectedCollection($event)" :doc="true" />
</section>
</aside>
</div>
</div>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
@@ -309,6 +334,7 @@ export default {
components: { components: {
"pw-section": () => import("~/components/layout/section"), "pw-section": () => import("~/components/layout/section"),
Editor: AceEditor, Editor: AceEditor,
collections: () => import("~/components/collections"),
}, },
data() { data() {
return { return {
@@ -349,6 +375,11 @@ export default {
}) })
} }
}, },
useSelectedCollection(collection) {
let importCollection = `[${JSON.stringify(collection, null, 2)}]`
this.collectionJSON = JSON.stringify(JSON.parse(importCollection), null, 2)
},
}, },
head() { head() {
return { return {