Browse Source

Image Editor redesign

pull/33/head
NGPixel 8 years ago
parent
commit
a04bed7c89
11 changed files with 133 additions and 148 deletions
  1. 2
      assets/css/app.css
  2. 2
      assets/css/libs.css
  3. BIN
      assets/fonts/fontawesome-webfont.eot
  4. BIN
      assets/fonts/fontawesome-webfont.ttf
  5. BIN
      assets/fonts/fontawesome-webfont.woff
  6. BIN
      assets/fonts/fontawesome-webfont.woff2
  7. 2
      assets/js/app.js
  8. 64
      assets/js/libs.js
  9. 4
      client/js/components/editor.js
  10. 2
      client/scss/components/_editor.scss
  11. 205
      views/modals/editor-image.pug

2
assets/css/app.css
File diff suppressed because it is too large
View File

2
assets/css/libs.css
File diff suppressed because it is too large
View File

BIN
assets/fonts/fontawesome-webfont.eot

BIN
assets/fonts/fontawesome-webfont.ttf

BIN
assets/fonts/fontawesome-webfont.woff

BIN
assets/fonts/fontawesome-webfont.woff2

2
assets/js/app.js
File diff suppressed because it is too large
View File

64
assets/js/libs.js
File diff suppressed because it is too large
View File

4
client/js/components/editor.js

@ -82,10 +82,10 @@ if($('#mk-editor').length === 1) {
{
name: "link",
action: (editor) => {
if(!mdeModalOpenState) {
/*if(!mdeModalOpenState) {
mdeModalOpenState = true;
$('#modal-editor-link').slideToggle();
}
}*/
},
className: "fa fa-link",
title: "Insert Link",

2
client/scss/components/_editor.scss

@ -196,7 +196,7 @@
}
.editor-modal-folderlist {
height: 358px;
height: 100%;
overflow: auto;
overflow-x: hidden;
}

205
views/modals/editor-image.pug

@ -1,130 +1,111 @@
.modallayer#modal-editor-image
.modallayer-content
.columns
.column
h3 Insert Image
.modal#modal-editor-image
.modal-background
.modal-container
.modal-content.is-expanded
.column.is-narrow.editor-modal-load(v-bind:class="{ 'is-active': isLoading }")
span {{ isLoadingText }}
i
.column.is-narrow
.control.is-grouped
p.control
a.button.is-dark.is-outlined(v-on:click="newFolder")
span.icon.is-small: i.fa.fa-folder
span New Folder
.control.has-addons
a.button.is-info.is-outlined#btn-editor-uploadimage
span.icon.is-small: i.fa.fa-upload
span Upload Image
label
input(type="file", multiple)
a.button.is-info.is-outlined(v-on:click="fetchFromUrl")
span.icon.is-small: i.fa.fa-download
span Fetch from URL
.column.is-narrow
.control.is-grouped
p.control
a.button.is-warning.is-outlined(v-on:click="cancel") Cancel
p.control
a.button.is-primary.is-outlined(v-on:click="insertImage") Insert Image
header.is-green
span Insert Image
p.modal-notify(v-bind:class="{ 'is-active': isLoading }")
span {{ isLoadingText }}
i
.modal-toolbar.is-green
a.button(v-on:click="newFolder")
i.fa.fa-folder
span New Folder
a.button#btn-editor-uploadimage
i.fa.fa-upload
span Upload Image
label
input(type="file", multiple)
a.button(v-on:click="fetchFromUrl")
i.fa.fa-download
span Fetch from URL
section.is-gapless
.columns
.column.is-one-quarter.modal-sidebar.is-green(style={'max-width':'350px'})
.box.editor-modal-folderlist
aside.menu
p.menu-label
| Folders
ul.menu-list
li(v-for="fld in folders")
a(v-on:click="selectFolder(fld)", v-bind:class="{ 'is-active': currentFolder === fld }")
span.icon.is-small: i.fa.fa-folder
span /{{ fld }}
.box.editor-modal-imagealign
.control.is-grouped
.control
span Alignment
.control.has-addons
a.button.is-primary(title="Left", v-on:click="selectAlignment('left')", v-bind:class="{ 'is-outlined': currentAlign !== 'left' }")
span.icon.is-small: i.fa.fa-align-left
a.button.is-primary(title="Center", v-on:click="selectAlignment('center')", v-bind:class="{ 'is-outlined': currentAlign !== 'center' }")
span.icon.is-small: i.fa.fa-align-center
a.button.is-primary(title="Right", v-on:click="selectAlignment('right')", v-bind:class="{ 'is-outlined': currentAlign !== 'right' }")
span.icon.is-small: i.fa.fa-align-right
.control
a.button.is-primary(title="Page Logo", v-on:click="selectAlignment('logo')", v-bind:class="{ 'is-outlined': currentAlign !== 'logo' }")
span.icon.is-small: i.fa.fa-external-link-square
.column.editor-modal-imagechoices
figure(v-for="img in images", v-bind:class="{ 'is-active': currentImage === img._id }", v-on:click="selectImage(img._id)", v-bind:data-uid="img._id")
img(v-bind:src="'/uploads/t/' + img._id + '.png'")
span: strong {{ img.basename }}
span {{ img.filesize | filesize }}
em(v-show="images.length < 1") This folder is empty.
footer
a.button.is-grey.is-outlined(v-on:click="cancel") Discard
a.button.is-green(v-on:click="insertImage") Insert Image
.columns
.column.is-one-quarter(style={'max-width':'350px'})
.box.editor-modal-folderlist
aside.menu
p.menu-label
| Folders
ul.menu-list
li(v-for="fld in folders")
a(v-on:click="selectFolder(fld)", v-bind:class="{ 'is-active': currentFolder === fld }")
span.icon.is-small: i.fa.fa-folder
span /{{ fld }}
.box.editor-modal-imagealign
.control.is-grouped
.control
span Alignment
.control.has-addons
a.button.is-primary(title="Left", v-on:click="selectAlignment('left')", v-bind:class="{ 'is-outlined': currentAlign !== 'left' }")
span.icon.is-small: i.fa.fa-align-left
a.button.is-primary(title="Center", v-on:click="selectAlignment('center')", v-bind:class="{ 'is-outlined': currentAlign !== 'center' }")
span.icon.is-small: i.fa.fa-align-center
a.button.is-primary(title="Right", v-on:click="selectAlignment('right')", v-bind:class="{ 'is-outlined': currentAlign !== 'right' }")
span.icon.is-small: i.fa.fa-align-right
.control
a.button.is-primary(title="Page Logo", v-on:click="selectAlignment('logo')", v-bind:class="{ 'is-outlined': currentAlign !== 'logo' }")
span.icon.is-small: i.fa.fa-external-link-square
.column.editor-modal-imagechoices
figure(v-for="img in images", v-bind:class="{ 'is-active': currentImage === img._id }", v-on:click="selectImage(img._id)", v-bind:data-uid="img._id")
img(v-bind:src="'/uploads/t/' + img._id + '.png'")
span: strong {{ img.basename }}
span {{ img.filesize | filesize }}
em(v-show="images.length < 1") This folder is empty.
.modal(v-bind:class="{ 'is-active': newFolderShow }")
.modal.is-superimposed(v-bind:class="{ 'is-active': newFolderShow }")
.modal-background
.modal-container
.modal-content
.card.is-fullwidth
header.card-header
p.card-header-title New Folder
.card-content
.content
label.label Enter the new folder name:
p.control
input.input#txt-editor-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter="newFolderCreate", v-on:keyup.esc="newFolderDiscard")
span.help.is-danger(v-show="newFolderError") This folder name is invalid!
footer.card-footer
a.card-footer-item(v-on:click="newFolderDiscard") Discard
a.card-footer-item(v-on:click="newFolderCreate") Create
header.is-light-blue New Folder
section
label.label Enter the new folder name:
p.control.is-fullwidth
input.input#txt-editor-newfoldername(type='text', placeholder='folder name', v-model='newFolderName', v-on:keyup.enter="newFolderCreate", v-on:keyup.esc="newFolderDiscard")
span.help.is-danger(v-show="newFolderError") This folder name is invalid!
footer
a.button.is-grey.is-outlined(v-on:click="newFolderDiscard") Discard
a.button.is-light-blue(v-on:click="newFolderCreate") Create
.modal(v-bind:class="{ 'is-active': fetchFromUrlShow }")
.modal.is-superimposed(v-bind:class="{ 'is-active': fetchFromUrlShow }")
.modal-background
.modal-container
.modal-content
.card.is-fullwidth
header.card-header
p.card-header-title Fetch Image from URL
.card-content
.content
label.label Enter full URL path to the image:
p.control
input.input#txt-editor-fetchimgurl(type='text', placeholder='http://www.example.com/some-image.png', v-model='fetchFromUrlURL')
span.help.is-danger.is-hidden This URL path is invalid!
footer.card-footer
a.card-footer-item(v-on:click="fetchFromUrlDiscard") Discard
a.card-footer-item(v-on:click="fetchFromUrlGo") Fetch
header.is-light-blue Fetch Image from URL
section
label.label Enter full URL path to the image:
p.control.is-fullwidth
input.input#txt-editor-fetchimgurl(type='text', placeholder='http://www.example.com/some-image.png', v-model='fetchFromUrlURL')
span.help.is-danger.is-hidden This URL path is invalid!
footer
a.button.is-grey.is-outlined(v-on:click="fetchFromUrlDiscard") Discard
a.button.is-light-blue(v-on:click="fetchFromUrlGo") Fetch
.modal(v-bind:class="{ 'is-active': renameImageShow }")
.modal.is-superimposed(v-bind:class="{ 'is-active': renameImageShow }")
.modal-background
.modal-container
.modal-content
.card.is-fullwidth
header.card-header
p.card-header-title Rename Image
.card-content
.content
label.label Enter the new filename (without the extension) of the image:
p.control
input.input#txt-editor-renameimage(type='text', placeholder='filename', v-model='renameImageFilename')
span.help.is-danger.is-hidden This filename is invalid!
footer.card-footer
a.card-footer-item(v-on:click="renameImageDiscard") Discard
a.card-footer-item(v-on:click="renameImageGo") Rename
header.is-indigo Rename Image
section
label.label Enter the new filename (without the extension) of the image:
p.control.is-fullwidth
input.input#txt-editor-renameimage(type='text', placeholder='filename', v-model='renameImageFilename')
span.help.is-danger.is-hidden This filename is invalid!
footer
a.button.is-grey.is-outlined(v-on:click="renameImageDiscard") Discard
a.button.is-light-blue(v-on:click="renameImageGo") Rename
.modal(v-bind:class="{ 'is-active': deleteImageShow }")
.modal.is-superimposed(v-bind:class="{ 'is-active': deleteImageShow }")
.modal-background
.modal-container
.modal-content
.card.is-fullwidth
header.card-header.is-danger
p.card-header-title Delete image?
.card-content
.content
| Are you sure you want to delete #[strong {{deleteImageFilename}}]?
footer.card-footer
a.card-footer-item(v-on:click="deleteImageWarn(false)") Discard
a.card-footer-item(v-on:click="deleteImageGo") Delete
header.is-red Delete image?
section
span Are you sure you want to delete #[strong {{deleteImageFilename}}]?
footer
a.button.is-grey.is-outlined(v-on:click="deleteImageWarn(false)") Discard
a.button.is-red(v-on:click="deleteImageGo") Delete
Loading…
Cancel
Save