diff --git a/vispa/extensions/file/__init__.py b/vispa/extensions/file/__init__.py
deleted file mode 100644
index 73923dca3ade545eac01e051fe0dbfcfe3fd7172..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/__init__.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import cherrypy
-
-from vispa.server import AbstractExtension
-from vispa.controller import AbstractController
-
-from .controller import FileController
-
-
-class FileBrowserController(AbstractController):
- pass
-
-class FileBrowserExtension(AbstractExtension):
-
- def name(self):
- return 'file'
-
- def dependencies(self):
- return []
-
- def setup(self):
- self.add_controller(FileController())
diff --git a/vispa/extensions/file/controller.py b/vispa/extensions/file/controller.py
deleted file mode 100644
index 1e2cff8fb549d79f07c84d05c9c354a77c32259a..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/controller.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 -*-
-import cherrypy
-# import vispa.workspace, providing e.g. "module()" and "get_instance()"
-import vispa.workspace
-# we import vispa's AbstractController which provides a collection of useful
-# methods
-from vispa.controller import AbstractController
-
-# define a new class that inherits from AbstractController
-class FileController(AbstractController):
-
- def __init__(self):
- AbstractController.__init__(self)
- self.extension = None
diff --git a/vispa/extensions/file/static/css/base/base.css b/vispa/extensions/file/static/css/base/base.css
deleted file mode 100644
index 216bd94cd679711b8c79f5c27c254f00c0f458e6..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/base.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.file-rightclickmenu-itemhide{display:none;visibility:hidden}
-.file-rightclickmenu-itemshow{display:block;visibility:visible}
-.file-content{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;position:absolute;height:100%;bottom:0;right:0;top:0;left:0;overflow:hidden}
-.file-content>.alert{position:absolute;top:40px;width:100%}
-.progress-row>span{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}
-.progress-row>span>.progress-title{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
-.progress-row>span>.fa{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}
-.progress-row>span>.fa:hover{color:#eee}
-.progress-row>span>.progress{-webkit-box-flex:1;-webkit-flex:auto;-ms-flex:auto;flex:auto;margin-bottom:0}
-.progress-row>span>.btn{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none;margin-left:12px}
-.fileselector{height:50vh}
-.fileselector>.file-content>.alert{top:55px}
-.fileselector .file-path-bar{position:absolute;top:3px}
-.table-info-dialog>tbody>tr>td{border:none;border:0}
-.table-info-dialog-width{width:114px}
-.table-info-dialog{overflow:hidden;table-layout:fixed;word-wrap:break-word}
-.file-info-dialog-header{margin-bottom:20px}
-.filterField{bottom:5px;right:5px;position:absolute;visibility:hidden;width:300px;z-index:99}
\ No newline at end of file
diff --git a/vispa/extensions/file/static/css/base/base.less b/vispa/extensions/file/static/css/base/base.less
deleted file mode 100644
index e06cf92ee787cc8409bfb348ef75c0c6d16b179b..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/base.less
+++ /dev/null
@@ -1,107 +0,0 @@
-@gray-dark: lighten(#000, 20%);
-@gray-lighter: lighten(#000, 93.5%);
-@table-bg-hover: #f5f5f5;
-@table-border-color: #ddd;
-@breadcrumb-bg: #f5f5f5;
-@breadcrumb-padding-vertical: 8px;
-@padding-base-vertical: 6px;
-@padding-base-horizontal: 12px;
-
-
-.file-rightclickmenu-itemhide {
- display: none;
- visibility: hidden;
-}
-.file-rightclickmenu-itemshow {
- display: block;
- visibility: visible;
-}
-/* main template */
-
-.file-content {
- -moz-user-select: none;
- -khtml-user-select: none;
- -webkit-user-select: none;
- -o-user-select: none;
- user-select: none;
- position: absolute;
- height: 100%;
- bottom: 0px;
- right: 0px;
- top: 0px;
- left: 0px;
- overflow: hidden;
- > .alert {
- position: absolute;
- top: 40px;
- width: 100%;
- }
-}
-
-.progress-row {
- > span {
- width: 100%;
- display: flex;
- flex-direction: row;
- align-items: center;
- > .progress-title {
- flex: auto;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- > .fa {
- flex: none;
- &:hover {
- color: @gray-lighter;
- }
- }
- > .progress {
- flex: auto;
- margin-bottom: 0px;
- }
- > .btn {
- flex: none;
- margin-left: @padding-base-horizontal;
- }
- }
-}
-
-/* file selector */
-
-.fileselector {
- height: 50vh;
- > .file-content > .alert {
- top: 55px;
- }
- .file-path-bar {
- position: absolute;
- top: 3px;
- }
-}
-
-/* info dialog - temporary: this leaves, when template of table view is used */
-
-.table-info-dialog > tbody > tr > td {
- border: none;
- border: 0;
-}
-.table-info-dialog-width {
- width: 114px;
-}
-.table-info-dialog {
- overflow: hidden;
- table-layout: fixed;
- word-wrap: break-word;
-}
-.file-info-dialog-header {
- margin-bottom: 20px;
-}
-.filterField {
- bottom: 5px;
- right: 5px;
- position: absolute;
- visibility: hidden;
- width: 300px;
- z-index: 99;
-}
diff --git a/vispa/extensions/file/static/css/base/file-icons.css b/vispa/extensions/file/static/css/base/file-icons.css
deleted file mode 100644
index c9090984d82d017df991453bb3e534f57e93d9b5..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/file-icons.css
+++ /dev/null
@@ -1,14 +0,0 @@
-.fi-bmp,.fi-gif,.fi-ico,.fi-jpeg,.fi-jpg,.fi-png,.fi-raw,.fi-svg,.fi-tif,.fi-tiff{color:#054109}
-.fi-c,.fi-cc,.fi-cpp,.fi-cxx,.fi-h,.fi-hxx{color:#164F86}
-.fi-F,.fi-F03,.fi-F90,.fi-F95,.fi-f,.fi-f03,.fi-f90,.fi-f95{color:#002452}
-.fi-csh,.fi-sh{color:#0365C0}
-.fi-css,.fi-html,.fi-jade,.fi-js,.fi-json,.fi-less,.fi-mako{color:#3B1F4E}
-.fi-m,.fi-r,.fi-tex,.fi-xml,.fi-yaml,.fi-yml{color:#5F327C}
-.fi-py,.fi-pyc{color:#C3971A}
-.fi-pxlio{color:#51A7F9}
-.fi-root{color:#00882B}
-.fi-eps,.fi-pdf,.fi-ps{color:#C82506}
-.fi-rar,.fi-tar,.fi-targz,.fi-zip{color:#4A1402}
-.fi-conf,.fi-ini{color:#862506}
-.fi-log,.fi-txt{color:#1A1A1A}
-.fi-default-alt:before,.fi-default-symlink:before,.fi-default:before{color:#8E8E8E}
\ No newline at end of file
diff --git a/vispa/extensions/file/static/css/base/file-icons.less b/vispa/extensions/file/static/css/base/file-icons.less
deleted file mode 100644
index d05e9bf2460142cdb40033c2b5d6ead52645ac76..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/file-icons.less
+++ /dev/null
@@ -1,98 +0,0 @@
-// colors for fis
-
-@fi-blue1: #51A7F9; // 1 = lightest
-@fi-blue2: #0365C0;
-@fi-blue3: #164F86;
-@fi-blue4: #002452; // 4 = darkest
-@fi-green1: #70BF41;
-@fi-green2: #00882B;
-@fi-green3: #0B5D18;
-@fi-green4: #054109;
-@fi-yellow1: #F5D328;
-@fi-yellow2: #DCBD23;
-@fi-yellow3: #C3971A;
-@fi-yellow4: #A37512;
-@fi-orange1: #F39019;
-@fi-orange2: #DE6A10;
-@fi-orange3: #BD5B0C;
-@fi-orange4: #924607;
-@fi-red1: #EC5D57;
-@fi-red2: #C82506;
-@fi-red3: #862506;
-@fi-red4: #570706;
-@fi-purple1: #B36AE2;
-@fi-purple2: #773F9B;
-@fi-purple3: #5F327C;
-@fi-purple4: #3B1F4E;
-@fi-brown1: #4A1402;
-@fi-gray1: #8E8E8E;
-@fi-gray2: #444444;
-@fi-gray3: #1A1A1A;
-
-// @fi-brown: #4A1402;
-// @fi-red: #96281B;
-// @fi-blue-dark: #3A539B;
-// @fi-blue: #3A539B;
-// @fi-blue-light: #59ABE3;
-// @fi-purple: #913D88;
-// @fi-purple-light: #913D88;
-// @fi-green-dark: #003B0B;
-// @fi-green-light: #008A1A;
-// @fi-yellow: #D99305;
-// @fi-orange: #D16D00;
-// @fi-gray-dark: #444;
-// @fi-gray-light: #8e8e8e;
-
-
-// pictures
-.fi-bmp, .fi-gif, .fi-ico, .fi-jpeg, .fi-jpg, .fi-png, .fi-raw, .fi-svg, .fi-tif, .fi-tiff {
- color: @fi-green4;
-}
-// coding
-.fi-c, .fi-cc, .fi-cpp, .fi-h, .fi-cxx, .fi-hxx {
- color: @fi-blue3;
-}
-.fi-f, .fi-f03, .fi-f90, .fi-f95, .fi-F, .fi-F03, .fi-F90, .fi-F95 {
- color: @fi-blue4;
-}
-.fi-sh, .fi-csh {
- color: @fi-blue2;
-}
-.fi-css, .fi-html, .fi-jade, .fi-js, .fi-less, .fi-mako, .fi-json {
- color: @fi-purple4;
-}
-.fi-tex, .fi-xml, .fi-yaml, .fi-yml, .fi-r, .fi-m {
- color: @fi-purple3;
-}
-.fi-py, .fi-pyc {
- color: @fi-yellow3;
-}
-// pxlio
-.fi-pxlio {
- color: @fi-blue1;
-}
-// root
-.fi-root {
- color: @fi-green2;
-}
-// adobe
-.fi-eps, .fi-pdf, .fi-ps {
- color: @fi-red2;
-}
-// packed
-.fi-rar, .fi-tar, .fi-targz, .fi-zip {
- color: @fi-brown1;
-}
-// conf/ini
-.fi-conf, .fi-ini {
- color: @fi-red3;
-}
-// log txt
-.fi-log, .fi-txt {
- color: @fi-gray3;
-}
-// default
-.fi-default:before, .fi-default-alt:before, .fi-default-symlink:before {
- color: @fi-gray1;
-}
-
diff --git a/vispa/extensions/file/static/css/base/pathbar.css b/vispa/extensions/file/static/css/base/pathbar.css
deleted file mode 100644
index 694046db78f4deb3e88b88f8e8068b6c71e5ed9d..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/pathbar.css
+++ /dev/null
@@ -1,32 +0,0 @@
-.path-bar-icon{width:44px;border-right:2px solid #ddd}
-.path-bar-icon .dropdown-toggle{webkit-box-shadow:none!important;box-shadow:none!important;width:44px;cursor:pointer;padding:8px 14px 4px 14px}
-.path-bar-icon .dropdown-menu{margin-top:9px}
-.path-bar-icon .dropdown-menu .glyphicon{margin-right:10px}
-.file-path-bar{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;width:100%;height:36px}
-.file-path-bar>.options{width:44px;border-right:2px solid #ddd}
-.file-path-bar>.options .dropdown-toggle{webkit-box-shadow:none!important;box-shadow:none!important;width:44px;cursor:pointer;padding:8px 14px 4px 14px}
-.file-path-bar>.options .dropdown-menu{margin-top:9px}
-.file-path-bar>.options .dropdown-menu .glyphicon{margin-right:10px}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark{padding:3px 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;white-space:nowrap}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark:hover{background-color:#f5f5f5;cursor:pointer}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark:hover>.bookmark-glyphicon-edit{color:#333}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark:hover>.bookmark-glyphicon-remove{color:#333}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-symbol{color:#000}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-symbol-editable{color:#555}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-symbol-editable:hover{color:#000}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-name{margin-right:10px;display:inline-block;max-width:80%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname{margin-right:10px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.075) inset;color:#555;-webkit-transition:border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s;transition:border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname::-webkit-input-placeholder{color:#999}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname:-moz-placeholder{color:#999;opacity:1}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname::-moz-placeholder{color:#999;opacity:1}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.input-bookmarkname:-ms-input-placeholder{color:#999}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-edit{color:#fff}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-edit:hover{color:#000!important}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-remove{color:#fff}
-.file-path-bar>.bookmark-dropdown>.bookmark-container>.bookmarks>.bookmark>.bookmark-glyphicon-remove:hover{color:#000!important}
-.file-path-bar>.path-list{position:relative;margin-left:15px;width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}
-.file-path-bar>.path-list>.path-bar-item+.path-bar-item:before{content:"/";padding:0 7px;text-align:left}
-.file-path-bar>.path-list>.path-bar-item{text-decoration:none}
-.file-path-bar>.path-list .glyphicon{display:inline}
-.file-path-bar>.path-list>.active{pointer-events:none!important;color:#333!important}
\ No newline at end of file
diff --git a/vispa/extensions/file/static/css/base/pathbar.less b/vispa/extensions/file/static/css/base/pathbar.less
deleted file mode 100644
index 374c80a80ba4ed21c67bedaee09c3380485367cf..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/pathbar.less
+++ /dev/null
@@ -1,166 +0,0 @@
-@gray-dark: lighten(#000, 20%);
-@gray: lighten(#000, 33.5%);
-@table-border-color: #ddd;
-@body-bg: #fff;
-@dropdown-link-hover-bg: #f5f5f5;
-@gray-base: #000;
-@border-radius-base: 4px;
-@input-bg: #fff;
-@input-color: @gray;
-@input-border: #ccc;
-@input-border-radius: @border-radius-base;
-@input-border-focus: #66afe9;
-@input-color-placeholder: #999;
-
-/* icons for options and bookmarks in path bar */
-.path-bar-icon {
- width: 44px;
- border-right: 2px solid @table-border-color;
- .dropdown-toggle {
- webkit-box-shadow: none !important;
- box-shadow: none !important;
- width: 44px;
- cursor: pointer;
- padding: 8px 14px 4px 14px;
- }
- .dropdown-menu {
- margin-top: 9px;
- .glyphicon {
- margin-right: 10px;
- }
- }
-}
-
-/* path bar */
-.file-path-bar {
- display: -webkit-box; // OLD - iOS 6-, Safari 3.1-6
- display: -moz-box; // OLD - Firefox 19- (buggy but mostly works)
- display: -ms-flexbox; // TWEENER - IE 10
- display: -webkit-flex;
- display: flex;
- -webkit-box-align: center;
- -webkit-flex-align: center;
- -ms-flex-align: center;
- -webkit-align-items: center;
- align-items: center;
- width: 100%;
- height: 36px;
-
- /* option gear wheel */
- > .options {
- .path-bar-icon;
- }
-
- /* bookmarks */
- > .bookmark-dropdown {
- > .bookmark-container {
- > .bookmarks {
- > .bookmark {
- padding: 3px 20px;
- display: flex;
- white-space: nowrap;
- &:hover {
- background-color: @dropdown-link-hover-bg;
- cursor: pointer;
- > .bookmark-glyphicon-edit {
- color: @gray-dark;
- }
- > .bookmark-glyphicon-remove {
- color: @gray-dark;
- }
- }
- > .bookmark-glyphicon-symbol {
- color: @gray-base;
- }
- > .bookmark-glyphicon-symbol-editable {
- color: @gray;
- &:hover {
- color: @gray-base;
- }
- }
- > .bookmark-name {
- margin-right: 10px;
- display: inline-block;
- max-width: 80%;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- > .input-bookmarkname {
- margin-right: 10px;
- background-color: @input-bg;
- background-image: none;
- border: 1px solid @input-border;
- border-radius: @input-border-radius;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
- color: @input-color;
- transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
- &:focus {
- border-color: @input-border-focus;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
- }
- &::-webkit-input-placeholder {
- // WebKit browsers
- color: @input-color-placeholder;
- }
- &:-moz-placeholder {
- // Mozilla Firefox 4 to 18
- color: @input-color-placeholder;
- opacity: 1;
- }
- &::-moz-placeholder {
- // Mozilla Firefox 19+
- color: @input-color-placeholder;
- opacity: 1;
- }
- &:-ms-input-placeholder {
- // Internet Explorer 10+
- color: @input-color-placeholder;
- }
- }
- > .bookmark-glyphicon-edit {
- color: @body-bg;
- &:hover {
- color: @gray-base !important;
- }
- }
- > .bookmark-glyphicon-remove {
- color: @body-bg;
- &:hover {
- color: @gray-base !important;
- }
- }
- }
- }
- }
- }
-
- /* path list */
- > .path-list {
- position: relative;
- margin-left: 15px;
- width: 80%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- direction: rtl;
- text-align: left;
- > .path-bar-item + .path-bar-item:before {
- content: "/";
- padding: 0 7px;
- text-align: left;
- }
- > .path-bar-item {
- text-decoration: none;
- }
- .glyphicon {
- display: inline;
- }
- > .active {
- pointer-events: none !important;
- color: @gray-dark !important;
- }
- }
-}
diff --git a/vispa/extensions/file/static/css/base/views/symbol/symbol.css b/vispa/extensions/file/static/css/base/views/symbol/symbol.css
deleted file mode 100644
index 3c5806d1909394096373a14c5f020cfcc6498e19..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/views/symbol/symbol.css
+++ /dev/null
@@ -1,44 +0,0 @@
-.file-view-symbol{position:absolute;top:40px;left:0;bottom:0;overflow:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:left}
-.file-view-symbol.file-list{width:100%}
-.file-view-symbol.file-list.dragover{box-shadow:0 0 20px #5cb85c inset}
-.file-view-symbol.file-list.dragover>.node{background-color:rgba(0,0,0,0)!important}
-.file-view-symbol.file-list.gear-wheel-disable .glyphicon-cog{opacity:0}
-.file-view-symbol.icon-tiny .file-node{margin:5px}
-.file-view-symbol.icon-tiny .file-node{width:80px;height:68px}
-.file-view-symbol.icon-tiny .symbol-icon-p{margin-top:-35px;display:inline-block;text-align:center;z-index:-1;padding:0;-webkit-user-select:none;font-size:24px;width:80px}
-.file-view-symbol.icon-tiny .symbol-name{width:80px}
-.file-view-symbol.icon-tiny .file-selection-box{left:12px}
-.file-view-symbol.icon-tiny .file-properties{margin-top:-9px;top:10px}
-.file-view-symbol.icon-small .file-node{margin:2px 4px 2px 4px}
-.file-view-symbol.icon-small .file-node{width:100px;height:85px}
-.file-view-symbol.icon-small .symbol-icon-p{margin-top:-35px;display:inline-block;text-align:center;z-index:-1;padding:0;-webkit-user-select:none;font-size:30px;width:100px}
-.file-view-symbol.icon-small .symbol-name{width:100px}
-.file-view-symbol.icon-small .file-selection-box{left:20px}
-.file-view-symbol.icon-small .file-properties{margin-top:1px;top:0}
-.file-view-symbol.icon-medium .file-node{margin:8px}
-.file-view-symbol.icon-medium .file-node{width:110px;height:90px}
-.file-view-symbol.icon-medium .symbol-icon-p{margin-top:-23px;display:inline-block;text-align:center;z-index:-1;padding:0;-webkit-user-select:none;font-size:38px;width:110px}
-.file-view-symbol.icon-medium .symbol-name{width:110px}
-.file-view-symbol.icon-medium .file-selection-box{left:20px}
-.file-view-symbol.icon-medium .file-properties{margin-top:1px;top:0}
-.file-view-symbol.icon-large .file-node{margin:12px}
-.file-view-symbol.icon-large .file-node{width:116px;height:100px}
-.file-view-symbol.icon-large .symbol-icon-p{margin-top:-24px;display:inline-block;text-align:center;z-index:-1;padding:0;-webkit-user-select:none;font-size:46px;width:116px}
-.file-view-symbol.icon-large .symbol-name{width:116px}
-.file-view-symbol.icon-large .file-selection-box{left:20px}
-.file-view-symbol.icon-large .file-properties{margin-top:1px;top:0}
-.file-view-symbol .file-node{border-radius:5px;float:left;-webkit-user-select:none}
-.file-view-symbol .file-node[draggable=true]{cursor:move;-khtml-user-drag:element}
-.file-view-symbol .file-node:hover{background-color:#f5f5f5;cursor:pointer}
-.file-view-symbol .file-node:hover>.file-properties{visibility:visible}
-.file-view-symbol .file-node[selected]{background-color:#D2D2D2;color:#fff}
-.file-view-symbol .file-node[selected]>.file-properties{visibility:visible}
-.file-view-symbol .file-node.dragstart{opacity:.4}
-.file-view-symbol .file-node.dragover{background-color:rgba(92,184,92,.5)!important}
-.file-view-symbol .file-selection-p{display:inherit;margin:0 0 0 4px;position:relative;visibility:visible;-webkit-user-select:none}
-.file-view-symbol .symbol-name{-webkit-hyphens:auto;-moz-hyphens:auto;display:inline-block;font-family:'Trebuchet MS',Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;margin-top:-5px;margin-bottom:0;overflow:hidden;text-align:center;word-wrap:break-word;-webkit-user-select:none}
-.file-view-symbol .file-selection-box{position:absolute;top:2px;visibility:visible;-webkit-user-select:none;content:''}
-.file-view-symbol .file-selection-box span{background:green url(../../../../img/white_plus.png) no-repeat center;border-radius:8px;display:block;height:16px;width:16px;-webkit-user-select:none}
-.file-view-symbol .file-selection-box input{display:none}
-.file-view-symbol .file-selection-box input:checked+span{background:red url(../../../../img/white_minus.png) no-repeat center}
-.file-view-symbol .file-properties{visibility:hidden;float:right;margin-right:3px;-webkit-user-select:none}
\ No newline at end of file
diff --git a/vispa/extensions/file/static/css/base/views/symbol/symbol.less b/vispa/extensions/file/static/css/base/views/symbol/symbol.less
deleted file mode 100644
index c37a836265471369919d8b9ef4116ce9a9ab0f48..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/views/symbol/symbol.less
+++ /dev/null
@@ -1,195 +0,0 @@
-@symbol-bg-hover : #f5f5f5;
-@brand-success : #5cb85c;
-@brand-danger : #d9534f;
-@default-file-symbol-node-width : 100px;
-@file-symbol-node-width-tiny : @default-file-symbol-node-width * 0.8;
-@file-symbol-node-width-small : @default-file-symbol-node-width;
-@file-symbol-node-width-medium : @default-file-symbol-node-width + 10;
-@file-symbol-node-width-large : @default-file-symbol-node-width + 16;
-@default-file-symbol-node-height : 85px;
-@file-symbol-node-height-tiny : @default-file-symbol-node-height * 0.8;
-@file-symbol-node-height-small : @default-file-symbol-node-height;
-@file-symbol-node-height-medium : @default-file-symbol-node-height + 5;
-@file-symbol-node-height-large : @default-file-symbol-node-height + 15;
-@default-file-symbol-font-size : 30px;
-@file-symbol-font-size-tiny : @default-file-symbol-font-size * 0.8;
-@file-symbol-font-size-small : @default-file-symbol-font-size;
-@file-symbol-font-size-medium : @default-file-symbol-font-size + 8;
-@file-symbol-font-size-large : @default-file-symbol-font-size + 16;
-@file-symbol-icon-margin-top-tiny : -35px;
-@file-symbol-icon-margin-top-small : -35px;
-@file-symbol-icon-margin-top-medium : -23px;
-@file-symbol-icon-margin-top-large : -24px;
-@file-symbol-selectionbox-left-tiny : 12px;
-@file-symbol-selectionbox-left-small : 20px;
-@file-symbol-selectionbox-left-medium : 20px;
-@file-symbol-selectionbox-left-large : 20px;
-
-.icon-size (@size) {
- @font-size : 'file-symbol-font-size-@{size}';
- @node-width : 'file-symbol-node-width-@{size}';
- @node-height : 'file-symbol-node-height-@{size}';
- @margin-top : 'file-symbol-icon-margin-top-@{size}';
- .file-node {
- width : @@node-width;
- height : @@node-height;
- }
- .symbol-icon-p {
- margin-top : @@margin-top;
- display : inline-block;
- text-align : center;
- z-index : -1;
- padding : 0;
- -webkit-user-select : none;
- font-size : @@font-size;
- width : @@node-width;
- }
- .symbol-name {
- width: @@node-width;
- }
-}
-.selectionbox-position (@size) {
- @left: 'file-symbol-selectionbox-left-@{size}';
- .file-selection-box {
- left: @@left;
- }
-}
-.properties-position (@margin) {
- .file-properties {
- margin-top : @margin;
- top : 1 - @margin;
- }
-}
-.file-view-symbol {
- position : absolute;
- top : 40px;
- left : 0;
- bottom : 0;
- overflow : auto;
- -webkit-user-select : none;
- user-select : none;
- float : left;
- &.file-list {
- width: 100%;
- &.dragover{
- box-shadow: 0px 0px 20px @brand-success inset;
- > .node {
- background-color: rgba(0,0,0,0) !important;
- }
- }
- &.gear-wheel-disable {
- .glyphicon-cog {
- opacity: 0.0;
- }
- }
- }
- &.icon-tiny {
- .file-node {
- margin: 5px;
- }
- .icon-size(tiny);
- .selectionbox-position(tiny);
- .properties-position(-9px);
- }
- &.icon-small {
- .file-node {
- margin: 2px 4px 2px 4px;
- }
- .icon-size(small);
- .selectionbox-position(small);
- .properties-position(1px);
- }
- &.icon-medium {
- .file-node {
- margin: 8px;
- }
- .icon-size(medium);
- .selectionbox-position(medium);
- .properties-position(1px);
- }
- &.icon-large {
- .file-node {
- margin: 12px;
- }
- .icon-size(large);
- .selectionbox-position(large);
- .properties-position(1px);
- }
- .file-node {
- border-radius : 5px;
- float : left;
- -webkit-user-select : none;
- &[draggable=true] {
- cursor : move;
- -khtml-user-drag : element;
- }
- &:hover {
- background-color : @symbol-bg-hover;
- cursor : pointer;
- > .file-properties {
- visibility: visible;
- }
- }
- &[selected] {
- background-color : #D2D2D2;
- color : white;
- > .file-properties {
- visibility: visible;
- }
- }
- &.dragstart {
- opacity: 0.4;
- }
- &.dragover {
- background-color: fade(@brand-success, 50%) !important;
- }
- }
- .file-selection-p {
- display : inherit;
- margin : 0 0 0 4px;
- position : relative;
- visibility : visible;
- -webkit-user-select : none;
- }
- .symbol-name {
- -webkit-hyphens : auto;
- -moz-hyphens : auto;
- display : inline-block;
- font-family : 'Trebuchet MS', Helvetica, Arial, sans-serif;
- font-size : 13px;
- font-weight : normal;
- margin-top : -5px;
- margin-bottom : 0;
- overflow : hidden;
- text-align : center;
- word-wrap : break-word;
- -webkit-user-select : none;
- }
- .file-selection-box {
- position : absolute;
- top : 2px;
- visibility : visible;
- -webkit-user-select : none;
- content : '';
- span {
- background : green url("../../../../img/white_plus.png") no-repeat center;
- border-radius : 8px;
- display : block;
- height : 16px;
- width : 16px;
- -webkit-user-select : none;
- }
- input {
- display: none;
- &:checked + span {
- background: red url("../../../../img/white_minus.png") no-repeat center;
- }
- }
- }
- .file-properties {
- visibility : hidden;
- float : right;
- margin-right : 3px;
- -webkit-user-select : none;
- }
-}
diff --git a/vispa/extensions/file/static/css/base/views/table/table.css b/vispa/extensions/file/static/css/base/views/table/table.css
deleted file mode 100644
index 5964b3d9b2fc9b8b517dbb5e8a03c4294a638e75..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/views/table/table.css
+++ /dev/null
@@ -1,80 +0,0 @@
-.file-view-table.row-tiny .node{height:34px}
-.file-view-table.row-tiny .icon{width:30px;-webkit-box-flex:0;-webkit-flex:0 0 30px;-ms-flex:0 0 30px;flex:0 0 30px}
-.file-view-table.row-tiny .icon [class*=" fi-"],.file-view-table.row-tiny .icon [class^=fi-]{font-size:24px}
-.file-view-table.row-tiny .icon .fi-folder,.file-view-table.row-tiny .icon .fi-folder-open,.file-view-table.row-tiny .icon .fi-folder-symlink{font-size:16px}
-.file-view-table.row-small .node{height:40px}
-.file-view-table.row-small .icon{width:45px;-webkit-box-flex:0;-webkit-flex:0 0 45px;-ms-flex:0 0 45px;flex:0 0 45px}
-.file-view-table.row-small .icon [class*=" fi-"],.file-view-table.row-small .icon [class^=fi-]{font-size:30px}
-.file-view-table.row-small .icon .fi-folder,.file-view-table.row-small .icon .fi-folder-open,.file-view-table.row-small .icon .fi-folder-symlink{font-size:22px}
-.file-view-table.row-medium .node{height:48px}
-.file-view-table.row-medium .icon{width:60px;-webkit-box-flex:0;-webkit-flex:0 0 60px;-ms-flex:0 0 60px;flex:0 0 60px}
-.file-view-table.row-medium .icon [class*=" fi-"],.file-view-table.row-medium .icon [class^=fi-]{font-size:38px}
-.file-view-table.row-medium .icon .fi-folder,.file-view-table.row-medium .icon .fi-folder-open,.file-view-table.row-medium .icon .fi-folder-symlink{font-size:30px}
-.file-view-table.row-large .node{height:56px}
-.file-view-table.row-large .icon{width:75px;-webkit-box-flex:0;-webkit-flex:0 0 75px;-ms-flex:0 0 75px;flex:0 0 75px}
-.file-view-table.row-large .icon [class*=" fi-"],.file-view-table.row-large .icon [class^=fi-]{font-size:46px}
-.file-view-table.row-large .icon .fi-folder,.file-view-table.row-large .icon .fi-folder-open,.file-view-table.row-large .icon .fi-folder-symlink{font-size:38px}
-.file-table-hidden{display:none!important;visibility:hidden!important}
-.file-table-select-column{width:70px;-webkit-box-flex:0;-webkit-flex:0 0 70px;-ms-flex:0 0 70px;flex:0 0 70px;text-align:center}
-.file-table-icon-column{text-align:left}
-.file-table-size-column{width:120px;-webkit-box-flex:0;-webkit-flex:0 0 120px;-ms-flex:0 0 120px;flex:0 0 120px;text-align:right}
-.file-table-time-column{width:215px;-webkit-box-flex:0;-webkit-flex:0 0 215px;-ms-flex:0 0 215px;flex:0 0 215px;padding-left:20px;text-align:left}
-.file-table-options-column{width:50px;-webkit-box-flex:0;-webkit-flex:0 0 50px;-ms-flex:0 0 50px;flex:0 0 50px;text-align:center}
-.file-view-table .file-list.edit-tools-hidden .edit-tools{display:none!important;visibility:hidden!important}
-.file-view-table{width:100%}
-.file-view-table.select-touch input[type=checkbox]{width:22px;height:22px}
-.file-view-table .file-table-head{position:absolute;top:44px;left:0;display:-webkit-flex;display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:38px;padding-top:7px;border-bottom:3px solid #ddd}
-.file-view-table .file-table-head .glyphicon{margin-left:4px}
-.file-view-table .file-table-head>.select{width:70px;-webkit-box-flex:0;-webkit-flex:0 0 70px;-ms-flex:0 0 70px;flex:0 0 70px;text-align:center}
-.file-view-table .file-table-head>.icon{text-align:left}
-.file-view-table .file-table-head>.name{webkit-flex:1;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}
-.file-view-table .file-table-head>.size{width:120px;-webkit-box-flex:0;-webkit-flex:0 0 120px;-ms-flex:0 0 120px;flex:0 0 120px;text-align:right}
-.file-view-table .file-table-head>.time{width:215px;-webkit-box-flex:0;-webkit-flex:0 0 215px;-ms-flex:0 0 215px;flex:0 0 215px;padding-left:20px;text-align:left}
-.file-view-table .file-table-head>.options{width:50px;-webkit-box-flex:0;-webkit-flex:0 0 50px;-ms-flex:0 0 50px;flex:0 0 50px;text-align:center}
-.file-view-table .file-table-head>.name,.file-view-table .file-table-head>.size,.file-view-table .file-table-head>.time{cursor:pointer}
-.file-view-table .file-list{position:absolute;bottom:0;right:0;top:80px;left:0;overflow-y:auto;width:100%}
-.file-view-table .file-list.dragover{box-shadow:0 0 20px #5cb85c inset}
-.file-view-table .file-list.dragover>.node{background-color:rgba(0,0,0,0)!important}
-.file-view-table .file-list.gear-wheel-disable .glyphicon-cog{opacity:.4}
-.file-view-table .file-list>.node{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-flex-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;width:100%}
-.file-view-table .file-list>.node:nth-child(2n){background-color:#f9f9f9}
-.file-view-table .file-list>.node:hover{background-color:#f5f5f5}
-.file-view-table .file-list>.node:not(:hover) .edit-tools{display:none}
-.file-view-table .file-list>.node[selected]{background-color:#f5f5f5}
-.file-view-table .file-list>.node.dragover{background-color:rgba(92,184,92,.5)!important}
-.file-view-table .file-list>.node.dragover-denied{background-color:rgba(217,83,79,.5)!important}
-.file-view-table .file-list>.node.dragstart{opacity:.4;cursor:move}
-.file-view-table .file-list>.node[draggable=true]{cursor:pointer;-khtml-user-drag:element}
-.file-view-table .file-list>.node.stop-pointer-events *{pointer-events:none}
-.file-view-table .file-list>.node>.select{width:70px;-webkit-box-flex:0;-webkit-flex:0 0 70px;-ms-flex:0 0 70px;flex:0 0 70px;text-align:center}
-.file-view-table .file-list>.node>.icon{text-align:left}
-.file-view-table .file-list>.node>.name{-webkit-flex:1;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative}
-.file-view-table .file-list>.node>.name>.vhidden{visibility:hidden;display:inline-block;width:0}
-.file-view-table .file-list>.node>.name>.completename{display:inline-block;position:absolute;top:0;left:0;max-width:100%;overflow:hidden;visibility:hidden;white-space:nowrap;padding-right:1px}
-.file-view-table .file-list>.node>.name>.completename>.wrapper{width:100%;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;position:absolute;top:0;visibility:visible}
-.file-view-table .file-list>.node>.name>.completename>.wrapper>.flex{-webkit-flex:1 1 1px;-webkit-box-flex:1;-ms-flex:1 1 1px;flex:1 1 1px;position:relative}
-.file-view-table .file-list>.node>.name>.completename>.wrapper>.flex>.root{position:absolute;max-width:100%;overflow:hidden;text-overflow:ellipsis}
-.file-view-table .file-list>.node>.name>.completename>.wrapper>.ext{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}
-.file-view-table .file-list>.node>.name>.input-filename{background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.075) inset;color:#555;-webkit-transition:border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s;transition:border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s}
-.file-view-table .file-list>.node>.name>.input-filename:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}
-.file-view-table .file-list>.node>.name>.input-filename::-webkit-input-placeholder{color:#999}
-.file-view-table .file-list>.node>.name>.input-filename:-moz-placeholder{color:#999;opacity:1}
-.file-view-table .file-list>.node>.name>.input-filename::-moz-placeholder{color:#999;opacity:1}
-.file-view-table .file-list>.node>.name>.input-filename:-ms-input-placeholder{color:#999}
-.file-view-table .file-list>.node>.edit-tools{font-size:12px;width:250px;-webkit-box-flex:0;-webkit-flex:0 0 250px;-ms-flex:0 0 250px;flex:0 0 250px;text-align:right}
-.file-view-table .file-list>.node>.edit-tools .glyphicon{margin-left:14px}
-.file-view-table .file-list>.node>.edit-tools .glyphicon-pencil{margin-left:4px}
-@media (max-width:992px){.file-view-table .file-list>.node>.edit-tools{width:110px;-webkit-box-flex:0;-webkit-flex:0 0 110px;-ms-flex:0 0 110px;flex:0 0 110px}
-.file-view-table .file-list>.node>.edit-tools .glyphicon{margin-left:10px;margin-right:10px}
-.file-view-table .file-list>.node>.edit-tools .glyphicon-pencil{margin-left:8px}
-}
-.file-view-table .file-list>.node>.size{width:120px;-webkit-box-flex:0;-webkit-flex:0 0 120px;-ms-flex:0 0 120px;flex:0 0 120px;text-align:right}
-.file-view-table .file-list>.node>.time{width:215px;-webkit-box-flex:0;-webkit-flex:0 0 215px;-ms-flex:0 0 215px;flex:0 0 215px;padding-left:20px;text-align:left}
-.file-view-table .file-list>.node>.options{width:50px;-webkit-box-flex:0;-webkit-flex:0 0 50px;-ms-flex:0 0 50px;flex:0 0 50px;text-align:center;cursor:pointer}
-.fileselector .node{height:38px}
-.fileselector .icon{width:40px}
-.fileselector .icon [class*=" icon-"],.fileselector .icon [class^=icon-]{font-size:26px}
-.fileselector .icon .icon-folder,.fileselector .icon .icon-folder-open,.fileselector .icon .icon-folder-symlink{font-size:22px}
-.fileselector .edit-tools{display:none!important;visibility:hidden!important}
-.fileselector .size{display:none!important;visibility:hidden!important}
-.fileselector .time{display:none!important;visibility:hidden!important}
\ No newline at end of file
diff --git a/vispa/extensions/file/static/css/base/views/table/table.less b/vispa/extensions/file/static/css/base/views/table/table.less
deleted file mode 100755
index 7f66d09becb0451aa13c60be9e31847d0c324d02..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/css/base/views/table/table.less
+++ /dev/null
@@ -1,386 +0,0 @@
-/* define variables and classes from bootstrap */
-@screen-md : 992px;
-
-@gray : lighten(#000, 33.5%); // #555
-@brand-success : #5cb85c;
-@brand-danger : #d9534f;
-
-@table-bg-accent : #f9f9f9;
-@table-bg-hover : #f5f5f5;
-@table-bg-active : @table-bg-hover;
-@table-border-color : #ddd;
-
-@border-radius-base : 4px;
-
-@input-bg : #fff;
-@input-color : @gray;
-@input-border : #ccc;
-@input-border-radius : @border-radius-base;
-@input-border-focus : #66afe9;
-@input-color-placeholder : #999;
-
-/* some own variables */
-@width-edit-tool-small : 110px; // when sharing is included: 160
-@width-edit-tool-large : 250px; // when sharing is included: 320
-@width-select-column : 70px;
-@width-icon-column : 45px;
-@width-size-column : 120px;
-@width-time-column : 215px;
-@width-options-column : 50px;
-
-
-// size of icons
-@default-file-table-height : 40px;
-@file-table-tiny : @default-file-table-height - 6;
-@file-table-small : @default-file-table-height;
-@file-table-medium : @default-file-table-height + 8;
-@file-table-large : @default-file-table-height + 16;
-
-.file-table-icon-size (@default-file-table-height) {
- [class^="fi-"], [class*=" fi-"] {
- font-size: @default-file-table-height - 10;
- }
- .fi-folder, .fi-folder-open, .fi-folder-symlink {
- font-size: @default-file-table-height - 18;
- }
-}
-
-.file-view-table {
- &.row-tiny {
- .node {
- height: @file-table-tiny;
- }
- .icon {
- width : @width-icon-column - 15;
- flex : 0 0 @width-icon-column - 15;
- .file-table-icon-size(@file-table-tiny);
- }
- }
- &.row-small {
- .node {
- height: @file-table-small;
- }
- .icon {
- width : @width-icon-column;
- flex : 0 0 @width-icon-column;
- .file-table-icon-size(@file-table-small);
- }
- }
- &.row-medium {
- .node {
- height: @file-table-medium;
- }
- .icon {
- width : @width-icon-column + 15;
- flex : 0 0 @width-icon-column + 15;
- .file-table-icon-size(@file-table-medium);
- }
- }
- &.row-large {
- .node {
- height: @file-table-large;
- }
- .icon {
- width : @width-icon-column + 30;
- flex : 0 0 @width-icon-column + 30;
- .file-table-icon-size(@file-table-large);
- }
- }
-}
-
-
-/* some classes for columns */
-.file-table-hidden {
- display : none !important;
- visibility : hidden !important;
-}
-.file-table-select-column {
- width : @width-select-column;
- flex : 0 0 @width-select-column;
- text-align : center;
-}
-.file-table-icon-column {
- text-align: left;
-}
-.file-table-size-column {
- width : @width-size-column;
- flex : 0 0 @width-size-column;
- text-align : right;
-}
-.file-table-time-column {
- width : @width-time-column;
- flex : 0 0 @width-time-column;
- padding-left : 20px;
- text-align : left;
-}
-.file-table-options-column {
- width : @width-options-column;
- flex : 0 0 @width-options-column;
- text-align : center;
-}
-
-/* hide edit tools on touch displays */
-.file-view-table {
- .file-list {
- &.edit-tools-hidden {
- .edit-tools {
- display : none !important;
- visibility : hidden !important;
- }
- }
- }
-}
-
-/* tale view */
-.file-view-table {
- width: 100%;
- &.select-touch {
- input[type=checkbox] {
- width : 22px;
- height : 22px;
- }
- }
- /* table head of filelist */
- .file-table-head {
- position : absolute;
- top : 44px;
- left : 0px;
- display : -webkit-flex;
- display : flex;
- width : 100%;
- height : 38px;
- padding-top : 7px;
- border-bottom : 3px solid @table-border-color;
- .glyphicon {
- margin-left: 4px;
- }
- > .select {
- .file-table-select-column;
- }
- > .icon {
- .file-table-icon-column;
- }
- > .name {
- webkit-flex: 1;
- flex: 1;
- }
- > .size {
- .file-table-size-column;
- }
- > .time {
- .file-table-time-column;
- }
- > .options {
- .file-table-options-column;
- }
- > .name, > .size, > .time {
- cursor: pointer;
- }
- }
- /* all other rows */
- .file-list {
- position : absolute;
- bottom : 0px;
- right : 0px;
- top : 80px;
- left : 0px;
- overflow-y : auto;
- width : 100%;
- &.dragover{
- box-shadow: 0px 0px 20px @brand-success inset;
- > .node {
- background-color: rgba(0,0,0,0) !important;
- }
- }
- &.gear-wheel-disable {
- .glyphicon-cog {
- opacity: 0.4;
- }
- }
- > .node {
- display : -webkit-box; // OLD - iOS 6-, Safari 3.1-6
- display : -moz-box; // OLD - Firefox 19- (buggy but mostly works)
- display : -ms-flexbox; // TWEENER - IE 10
- display : -webkit-flex;
- display : flex;
- -webkit-box-align : center;
- -webkit-flex-align : center;
- -ms-flex-align : center;
- -webkit-align-items : center;
- align-items : center;
- width : 100%;
- &:nth-child(2n) {
- background-color: @table-bg-accent;
- }
- &:hover {
- background-color: @table-bg-hover;
- }
- &:not(:hover) .edit-tools {
- display: none;
- }
- &[selected] {
- background-color: @table-bg-active;
- }
- &.dragover {
- background-color: fade(@brand-success, 50%) !important;
- }
- &.dragover-denied {
- background-color: fade(@brand-danger, 50%) !important;
- }
- &.dragstart {
- opacity: 0.4;
- cursor: move;
- }
- &[draggable=true] {
- cursor : pointer;
- -khtml-user-drag : element;
- }
- &.stop-pointer-events * {
- pointer-events: none;
- }
- > .select {
- .file-table-select-column;
- }
- > .icon {
- .file-table-icon-column;
- }
- > .name {
- -webkit-flex : 1;
- flex : 1;
- position : relative;
- > .vhidden {
- visibility : hidden;
- display : inline-block;
- width : 0px;
- }
- > .completename {
- display : inline-block;
- position : absolute;
- top : 0px;
- left : 0px;
- max-width : 100%;
- overflow : hidden;
- visibility : hidden;
- white-space : nowrap;
- padding-right : 1px; // dirty hack to give a little bit more space so we wont have an ellipsis when there is enough space
- > .wrapper {
- width : 100%;
- display : -webkit-box; // OLD - iOS 6-, Safari 3.1-6
- display : -moz-box; // OLD - Firefox 19- (buggy but mostly works)
- display : -ms-flexbox; // TWEENER - IE 10
- display : -webkit-flex;
- display : flex;
- position : absolute;
- top : 0px;
- visibility : visible;
- > .flex {
- -webkit-flex : 1 1 1px;
- flex : 1 1 1px;
- position : relative;
- > .root {
- position : absolute;
- max-width : 100%;
- overflow : hidden;
- text-overflow : ellipsis;
- }
- }
- > .ext {
- flex-shrink: 0;
- }
- }
-
- }
- > .input-filename {
- background-color : @input-bg;
- background-image : none;
- border : 1px solid @input-border;
- border-radius : @input-border-radius;
- box-shadow : 0 1px 1px rgba(0, 0, 0, 0.075) inset;
- color : @input-color;
- transition : border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
- &:focus {
- border-color : @input-border-focus;
- outline : 0;
- -webkit-box-shadow : inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
- box-shadow : inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);
- }
- &::-webkit-input-placeholder { // WebKit browsers
- color: @input-color-placeholder;
- }
- &:-moz-placeholder { // Mozilla Firefox 4 to 18
- color : @input-color-placeholder;
- opacity : 1;
- }
- &::-moz-placeholder { // Mozilla Firefox 19+
- color : @input-color-placeholder;
- opacity : 1;
- }
- &:-ms-input-placeholder { // Internet Explorer 10+
- color: @input-color-placeholder;
- }
- }
- }
- > .edit-tools {
- font-size : 12px;
- width : @width-edit-tool-large;
- flex : 0 0 @width-edit-tool-large;
- text-align : right;
- .glyphicon {
- margin-left: 14px;
- }
- .glyphicon-pencil {
- margin-left: 4px;
- }
- @media(max-width:@screen-md) {
- width : @width-edit-tool-small;
- flex : 0 0 @width-edit-tool-small;
- .glyphicon {
- margin-left : 10px;
- margin-right : 10px;
- }
- .glyphicon-pencil {
- margin-left: 8px;
- }
- }
- }
- > .size {
- .file-table-size-column;
- }
- > .time {
- .file-table-time-column;
- }
- > .options {
- .file-table-options-column;
- cursor: pointer;
- }
- }
- }
-}
-
-/* fileselector */
-.fileselector {
- .node {
- height: 38px;
- }
- .icon {
- width: 40px;
- [class^="icon-"], [class*=" icon-"] {
- font-size: 26px;
- }
- .icon-folder, .icon-folder-open, .icon-folder-symlink {
- font-size: 22px;
- }
- }
- .edit-tools {
- display : none !important;
- visibility : hidden !important;
- }
- .size {
- display : none !important;
- visibility : hidden !important;
- }
- .time {
- display : none !important;
- visibility : hidden !important;
- }
-}
diff --git a/vispa/extensions/file/static/html/alert.html b/vispa/extensions/file/static/html/alert.html
deleted file mode 100644
index de1a77b02306249ba2cde267eb7b5612a9cc908c..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/alert.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
You don't have the permission to read this directory
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/alert.jade b/vispa/extensions/file/static/html/alert.jade
deleted file mode 100644
index 99f04888e15aedd511175b9b1ce4c87a9605cd62..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/alert.jade
+++ /dev/null
@@ -1 +0,0 @@
-.alert.alert-danger(role="alert") You don't have the permission to read this directory
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/bookmarkSymbolDialog.html b/vispa/extensions/file/static/html/bookmarkSymbolDialog.html
deleted file mode 100644
index 56ecf0abe62d571b3b6de13507e8d18fcbe86ff9..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/bookmarkSymbolDialog.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
- cancel
- save
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/bookmarkSymbolDialog.jade b/vispa/extensions/file/static/html/bookmarkSymbolDialog.jade
deleted file mode 100644
index 6e38293b81c1b1a6fed3207473ae4802a82bfe43..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/bookmarkSymbolDialog.jade
+++ /dev/null
@@ -1,11 +0,0 @@
-div
- div
- button.btn.btn-default(type="button", data-bind="button")
- i.glyphicon(data-bind="symbol")
- div
- button.btn.btn-danger(type="button", id="cancel", title="cancel")
- i.glyphicon.glyphicon-remove
- span cancel
- button.btn.btn-success(type="button", id="save", title="save")
- i.glyphicon.glyphicon-ok
- span save
diff --git a/vispa/extensions/file/static/html/fileselectorBottom.html b/vispa/extensions/file/static/html/fileselectorBottom.html
deleted file mode 100644
index f2c4768b71e17125054e2b2f6fb09a77c9cfcfe0..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/fileselectorBottom.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/vispa/extensions/file/static/html/fileselectorBottom.jade b/vispa/extensions/file/static/html/fileselectorBottom.jade
deleted file mode 100644
index b8de3f1b09dace9a7da87e7a725c015bfc7a459b..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/fileselectorBottom.jade
+++ /dev/null
@@ -1,6 +0,0 @@
-form.form-inline(role="form")
- .form-group(style="float: left")
- label.sr-only(for="exampleInputEmail2") Type filename
- input.form-control(type="text", id="FileSelectorFileInput", placeholder="Type filename")
-button.btn.btn-default.fs-close(type="button", data-dismiss="modal") Close
-button.btn.btn-primary.fs-select(type="button") Select
diff --git a/vispa/extensions/file/static/html/filter.html b/vispa/extensions/file/static/html/filter.html
deleted file mode 100644
index 8b20a110f01e800de02092e5db4b1c6f5a5d15f1..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/filter.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/filter.jade b/vispa/extensions/file/static/html/filter.jade
deleted file mode 100644
index baa9dc6bd992a217f82a58ec115944ac3605f4c7..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/filter.jade
+++ /dev/null
@@ -1,2 +0,0 @@
-.filterField
- input.form-control(type="text" placeholder="Filter files")
diff --git a/vispa/extensions/file/static/html/infodialog.html b/vispa/extensions/file/static/html/infodialog.html
deleted file mode 100644
index 20e3ed4c031753ec69a2e3c3a014af5f0f1a8d0f..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/infodialog.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
- Name:
-
-
-
- Type:
-
-
-
- Size:
-
-
-
-
- Location:
-
-
-
-
- Last modified:
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/infodialog.jade b/vispa/extensions/file/static/html/infodialog.jade
deleted file mode 100644
index 2e5dcdba174d5eda909d2d1829680ea5f3274df6..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/infodialog.jade
+++ /dev/null
@@ -1,24 +0,0 @@
-.file-info-dialog
- table.table.table-hover.table-info-dialog
- tbody
- tr
- td.table-info-dialog-width Name:
- td(data-bind="name")
- tr
- td Type:
- td(data-bind="extension")
- tr
- td Size:
- td
- span(data-bind="size")
- span(data-bind="sizeSuffix")
- tr
- tr
- td Location:
- td(data-bind="path")
- tr
- td Last modified:
- td(data-bind="mtime")
- tr
- td(data-bind="symlinkDesc")
- td(data-bind="symlink")
diff --git a/vispa/extensions/file/static/html/infodialogmore.html b/vispa/extensions/file/static/html/infodialogmore.html
deleted file mode 100644
index ff87a351ff8bb79634fc7120f4bdfa76dfdfc052..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/infodialogmore.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
- Name
- Size
- Type
- Last modified
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/infodialogmore.jade b/vispa/extensions/file/static/html/infodialogmore.jade
deleted file mode 100644
index 05c014291c562e9715fe12d683e2d9f06e375b5d..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/infodialogmore.jade
+++ /dev/null
@@ -1,22 +0,0 @@
-.file-info-dialog
- .file-info-dialog-header
- span(data-bind="numberOfSelectedItems")
- | items with a total size of
- span(data-bind="totalSize")
- span(data-bind="totalSizeSuffix")
- | selected:
- table.table.table-condensed.table-hover
- thead
- tr
- th Name
- th(width="84px") Size
- th(width="74px") Type
- th(width="180px") Last modified
- tbody.table-info-dialog-body
- tr
- td(data-bind="name")
- td
- span(data-bind="size")
- span(data-bind="sizeSuffix")
- td(data-bind="extension")
- td(data-bind="mtime")
diff --git a/vispa/extensions/file/static/html/main.html b/vispa/extensions/file/static/html/main.html
deleted file mode 100644
index cb2f6d30357c11acac32b78cd75a73f1afa3c54a..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/main.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/main.jade b/vispa/extensions/file/static/html/main.jade
deleted file mode 100644
index 4609ebd6cce83c7df3fca4e5174e6b12829d2cdc..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/main.jade
+++ /dev/null
@@ -1 +0,0 @@
-.file-content
diff --git a/vispa/extensions/file/static/html/openDialog.html b/vispa/extensions/file/static/html/openDialog.html
deleted file mode 100644
index 23f9e802630cb29198db9505d685523a5655c3e9..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/openDialog.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Cancel
- Code Editor
- Downlaod
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/openDialog.jade b/vispa/extensions/file/static/html/openDialog.jade
deleted file mode 100644
index 869bc9e010b4150259e5318cb362f26a295b943f..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/openDialog.jade
+++ /dev/null
@@ -1,12 +0,0 @@
-div
- span
- div
- button.btn.btn-danger(type="button", id="cancel", title="Cancel")
- i.glyphicon.glyphicon-remove
- span Cancel
- button.btn.btn-primary(type="button", id="codeeditor", title="Open with code editor")
- i.glyphicon.glyphicon-pencil
- span Code Editor
- button.btn.btn-primary(type="button", id="download", title="Download")
- i.glyphicon.glyphicon-download
- span Downlaod
diff --git a/vispa/extensions/file/static/html/pathbar.html b/vispa/extensions/file/static/html/pathbar.html
deleted file mode 100644
index e785fb8b030f5119f2c0aaf7d7fe7d1729411a0d..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/pathbar.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/vispa/extensions/file/static/html/pathbar.jade b/vispa/extensions/file/static/html/pathbar.jade
deleted file mode 100644
index ceb95d59bac85c909a65092e4c715e4370dbc70d..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/pathbar.jade
+++ /dev/null
@@ -1,24 +0,0 @@
-.file-path-bar
- .btn-group.options
- span.dropdown-toggle
- i.glyphicon.glyphicon-menu-hamburger
- .btn-group.path-bar-icon.bookmark-dropdown
- span.dropdown-toggle(data-toggle="dropdown")
- i.glyphicon.glyphicon-bookmark
- ul.dropdown-menu.bookmark-container(role="menu")
- li.bookmark-button
- a(href="#")
- i.glyphicon.glyphicon-plus
- | Add bookmark
- li.divider
- li.bookmarks.sortable
- .bookmark(href="#", data-bind="bookmark")
- i.bookmark-glyphicon-symbol
- i(data-bind="bookmark-glyphicon")
- span.bookmark-name(data-bind="bookmark-name")
- i.bookmark-glyphicon-edit(title="Edit bookmark")
- i.glyphicon.glyphicon-pencil
- i.bookmark-glyphicon-remove(title="Remove bookmark")
- i.glyphicon.glyphicon-remove
- .path-list
- a(href="#", data-bind="pathPart").path-bar-item
diff --git a/vispa/extensions/file/static/html/setACLdialog.html b/vispa/extensions/file/static/html/setACLdialog.html
deleted file mode 100644
index 39ae96cce9d48f6725ad205484aaa33f557ca1c7..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/setACLdialog.html
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
- Cancel
- Ok
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/setACLdialog.jade b/vispa/extensions/file/static/html/setACLdialog.jade
deleted file mode 100644
index a740df80da270ca87a7ef4d01de68661d675fba8..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/setACLdialog.jade
+++ /dev/null
@@ -1,44 +0,0 @@
-div.form-horizontal
- div.form-group
- label.control-label.col-xs-2(for="type") Type:
- div.col-xs-10
- select.form-control(type="select", id="type")
- option user
- option group
- option mask
- option other
- div.form-group
- label.control-label.col-xs-2(for="name") Name:
- div.col-xs-10
- input.form-control(type="text", id="name", placeholder="Name")
- div.form-group
- label.control-label.col-xs-2 Rights:
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="read")
- |Read
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="write")
- |Write
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="execute")
- |Execute
- div.form-group
- label.control-label.col-xs-2 Options:
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="remove")
- |Remove
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="recursive")
- |Recursive
- div.col-xs-3
- label.checkbox-inline
- input(type="checkbox", value="", id="default")
- |Default
-div
- button.btn.btn-default(type="button", id="cancel") Cancel
- button.btn.btn-primary(type="button", id="ok") Ok
diff --git a/vispa/extensions/file/static/html/showACLdialog.html b/vispa/extensions/file/static/html/showACLdialog.html
deleted file mode 100644
index af8f84b9193059f92dba9b2a7a9969de83f966ba..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/showACLdialog.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- Type
- Name
- Rights
- Default
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/showACLdialog.jade b/vispa/extensions/file/static/html/showACLdialog.jade
deleted file mode 100644
index 58b4bd2fb2cf05a0cbc1b2f4b8aa29613020cb20..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/showACLdialog.jade
+++ /dev/null
@@ -1,14 +0,0 @@
-div
- table.table.table-condensed.table-hover
- thead
- tr
- th Type
- th Name
- th Rights
- th Default
- tbody
- tr
- td(data-bind="type")
- td(data-bind="name")
- td(data-bind="rights")
- td(data-bind="default")
diff --git a/vispa/extensions/file/static/html/symbol.html b/vispa/extensions/file/static/html/symbol.html
deleted file mode 100644
index 4991dc3546b470bfc4f2d01316b4d35d967253ba..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/symbol.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/symbol.jade b/vispa/extensions/file/static/html/symbol.jade
deleted file mode 100644
index f27f2feb5398bec7cee4ba9956444176b2e9a9c6..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/symbol.jade
+++ /dev/null
@@ -1,12 +0,0 @@
-.file-view-symbol.file-list.icon-tiny
- .file-node(draggable="true", data-bind="data")
- p.file-selection-p
- label.file-selection-box
- input(type="checkbox").file-selection-checkbox
- span
- p.file-properties
- |
- //- p.symbol-icon-p
- .symbol-icon-p
- div(data-bind="icon")
- p(data-bind="name").symbol-name
diff --git a/vispa/extensions/file/static/html/table.html b/vispa/extensions/file/static/html/table.html
deleted file mode 100644
index e2d505bc57c1e9014f709278096b2158ba47dcc7..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/table.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
Name
-
Size
-
Modified
-
-
-
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/table.jade b/vispa/extensions/file/static/html/table.jade
deleted file mode 100755
index f5531166bddcc74c7ab9d317f63fbb601bc5d86b..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/table.jade
+++ /dev/null
@@ -1,48 +0,0 @@
-.file-view-table
- // header of table
- .file-table-head
- .select
- input(type="checkbox").select-all
- .icon
- .name Name
- i.glyphicon.glyphicon-sort-by-alphabet
- .size.hidden-sm.hidden-xs Size
- i.glyphicon.glyphicon-sort
- .time.hidden-xs Modified
- i.glyphicon.glyphicon-sort
- // .options
- // file list
- .file-list
- .node.file-node(draggable="true", data-bind="data")
- .select
- span.file-selection-p.input
- input(type="checkbox").file-selection-checkbox
- .icon
- span(data-bind="icon")
- .name
- i.vhidden i
- span.completename(data-bind="name")
- span.wrapper
- span.flex
- span.root(data-bind="root")
- span.ext(data-bind="ext")
- .edit-tools.hidden-xs
- a.edit-rename(href="#")
- i.glyphicon.glyphicon-pencil(title="Rename")
- span.hidden-sm.hidden-xs Rename
- a.edit-download(href="#")
- i.glyphicon.glyphicon-download(title="Download")
- span.hidden-sm.hidden-xs Download
- // a.edit-share(href="#")
- // i.glyphicon.glyphicon-link(title="Share")
- // span.hidden-sm.hidden-xs Share
- a.edit-remove(href="#")
- i.glyphicon.glyphicon-remove(title="Remove")
- span.hidden-sm.hidden-xs Remove
- .size.hidden-sm.hidden-xs
- span(data-bind="size")
- span(data-bind="sizeSuffix")
- .time.hidden-xs
- span(data-bind="mtime")
- // .file-properties.options
- // .glyphicon.glyphicon-cog
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/uploadProgressbar.html b/vispa/extensions/file/static/html/uploadProgressbar.html
deleted file mode 100644
index 147a44a54bc05f1480e5be0c41b315dbf49655cf..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/uploadProgressbar.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/html/uploadProgressbar.jade b/vispa/extensions/file/static/html/uploadProgressbar.jade
deleted file mode 100644
index 4f9496d0f82c6df1039d9cfb29ee8e463345b17f..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/html/uploadProgressbar.jade
+++ /dev/null
@@ -1,10 +0,0 @@
-.progress-row
- span
- .progress-title
- .fa.fa-remove
- span
- .progress
- .progress-bar.progress-bar-primary.progress-bar-striped.active(role="progressbar", aria-valuenow="0", aria-valuemin="0", aria-valuemax="100" style="width: 0%;") 0%
- .btn.btn-xs.btn-danger
- i.fa.fa-stop
- | abort
diff --git a/vispa/extensions/file/static/img/c.png b/vispa/extensions/file/static/img/c.png
deleted file mode 100644
index c1a9ea2b1014077dfe25acc877843f5756b40c18..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/c.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/cc.png b/vispa/extensions/file/static/img/cc.png
deleted file mode 100644
index 46953946ffc90730ab4b69be2d6d63de4ddf2b63..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/cc.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/cpp.png b/vispa/extensions/file/static/img/cpp.png
deleted file mode 100644
index b5dbaf9207e75498c7dd00f1432a61828d638b67..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/cpp.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/default.png b/vispa/extensions/file/static/img/default.png
deleted file mode 100644
index d1a943c4a56906b07c41fb37b42d683308c65cca..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/default.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/document-open.png b/vispa/extensions/file/static/img/document-open.png
deleted file mode 100644
index f35f2583540678b7a544d9175245096082f302af..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/document-open.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/edit-cut.png b/vispa/extensions/file/static/img/edit-cut.png
deleted file mode 100644
index 217663b19c426af17532b2a6c49c5e8bd119911a..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/edit-cut.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/edit-delete.png b/vispa/extensions/file/static/img/edit-delete.png
deleted file mode 100644
index 9becb3e2f3346b028b6349ccbd3d1d0c633b2d06..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/edit-delete.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/edit-paste.png b/vispa/extensions/file/static/img/edit-paste.png
deleted file mode 100644
index dd429ced625603273671b08c983a1c31c8207649..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/edit-paste.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/folder-new.png b/vispa/extensions/file/static/img/folder-new.png
deleted file mode 100644
index fcd15c018493cecd0498daa8d0f2e1cf3f4126e3..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/folder-new.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/folder.png b/vispa/extensions/file/static/img/folder.png
deleted file mode 100644
index 17f1500964a0e083c2d1c5287b72cd68b1b37131..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/folder.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/format-text-italic.png b/vispa/extensions/file/static/img/format-text-italic.png
deleted file mode 100644
index 87ed6f9f6e7b93dcbe0a9f5df0c1a05d963179c9..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/format-text-italic.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/h.png b/vispa/extensions/file/static/img/h.png
deleted file mode 100644
index 0fd3c989e13f4163962a83ca6031a012cb481dea..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/h.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/jpeg.png b/vispa/extensions/file/static/img/jpeg.png
deleted file mode 100644
index 112284145ac53d0f4232a7103b58b32129145cb7..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/jpeg.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/jpg.png b/vispa/extensions/file/static/img/jpg.png
deleted file mode 100644
index 67aae057da24c206c1ccd42272c223b6951c2e21..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/jpg.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/pdf.png b/vispa/extensions/file/static/img/pdf.png
deleted file mode 100644
index d4276f572488d437a0a8934fd8043e09b6aec06f..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/pdf.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/png.png b/vispa/extensions/file/static/img/png.png
deleted file mode 100644
index e3719c24630b401fdffb6d482d78e1e9aa06a909..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/png.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/pxlio.png b/vispa/extensions/file/static/img/pxlio.png
deleted file mode 100644
index 3d0594a77dcb7beefe010113c2b2b9c9b928d650..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/pxlio.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/py.png b/vispa/extensions/file/static/img/py.png
deleted file mode 100644
index f0de8ddfd5de822c601ee449eae025ed3c2a8485..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/py.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/pyc.png b/vispa/extensions/file/static/img/pyc.png
deleted file mode 100644
index e853b241300533fe389895e039cc426c8832e617..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/pyc.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/root.png b/vispa/extensions/file/static/img/root.png
deleted file mode 100644
index 6cf56a0dd41192fbbdc7eac906a89888363c4433..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/root.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/sort-asc.gif b/vispa/extensions/file/static/img/sort-asc.gif
deleted file mode 100644
index 730533fa3570dd4805cec70fe2630e85a2e1b863..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/sort-asc.gif and /dev/null differ
diff --git a/vispa/extensions/file/static/img/sort-desc.gif b/vispa/extensions/file/static/img/sort-desc.gif
deleted file mode 100644
index 4c3b61020bb4d707e41e94fbf2b6ebe5d0c87f6b..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/sort-desc.gif and /dev/null differ
diff --git a/vispa/extensions/file/static/img/txt.png b/vispa/extensions/file/static/img/txt.png
deleted file mode 100644
index ab595b769786a57de527277a5b1f065555b3068d..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/txt.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/unsorted.gif b/vispa/extensions/file/static/img/unsorted.gif
deleted file mode 100644
index 5647f658329230706ec09c5e3c24fae39d225a04..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/unsorted.gif and /dev/null differ
diff --git a/vispa/extensions/file/static/img/upbutton.png b/vispa/extensions/file/static/img/upbutton.png
deleted file mode 100644
index 7ac40c6550bc95442e36fab939b61a00fafce9f1..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/upbutton.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/user-home.png b/vispa/extensions/file/static/img/user-home.png
deleted file mode 100644
index a29bd69f68067c1c763cb596109c3cff0f5ad93d..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/user-home.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/vorlage.png b/vispa/extensions/file/static/img/vorlage.png
deleted file mode 100644
index 78fa32d001626b231dc7924babc4708a9929bf2b..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/vorlage.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/white_minus.png b/vispa/extensions/file/static/img/white_minus.png
deleted file mode 100644
index 739e52779550e8bca7d4e885cbea1f7648ccc032..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/white_minus.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/white_plus.png b/vispa/extensions/file/static/img/white_plus.png
deleted file mode 100644
index 284bb3c4b66ed19eb1f008b5ff1134714c26e441..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/white_plus.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/xml.png b/vispa/extensions/file/static/img/xml.png
deleted file mode 100644
index 83eb1311b1b2891519655f230531458a73437fed..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/xml.png and /dev/null differ
diff --git a/vispa/extensions/file/static/img/zip.png b/vispa/extensions/file/static/img/zip.png
deleted file mode 100644
index dab247ed9e5fdd6b9cef501cd74185cd8c0eddaf..0000000000000000000000000000000000000000
Binary files a/vispa/extensions/file/static/img/zip.png and /dev/null differ
diff --git a/vispa/extensions/file/static/js/base/actions.js b/vispa/extensions/file/static/js/base/actions.js
deleted file mode 100755
index 05d1489dff04a361029b7d76c880a93b49d3edd0..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/actions.js
+++ /dev/null
@@ -1,623 +0,0 @@
-define([
- "jquery",
- "jclass",
- "vispa/vue/menu",
- "text!../../html/openDialog.html",
- "text!../../html/infodialog.html",
- "text!../../html/infodialogmore.html",
- "text!../../html/showACLdialog.html",
- "text!../../html/setACLdialog.html"
-], function (
- $,
- JClass,
- Menu,
- openTmpl,
- infoTmpl,
- moreTmpl,
- showACLdialogTmpl,
- setACLdialogTmpl
-) {
-
- var FileBaseActions = JClass._extend({
- init: function (FileBase) {
- this.FileBase = FileBase;
- this.selections = FileBase.selections;
- this.removebool = false;
- this.entries = [];
- },
-
- // Reimplemented by the actions of the filebrowser / -selector
- openFolder: function (data) {
- // Make the function callable with a string or a selection.
- // In this case it is possible because the selection contains only one element.
- var newPath = "";
- if (typeof data == "string") {
- newPath = this.FileBase.helper.abspath(data);
- } else {
- newPath = Object.keys(this.FileBase.selections.entries)[0];
- }
- newPath = this.FileBase.selections.entries[newPath]
- .data()
- .data.realpath || newPath;
- this.FileBase.instance.setLoading(true, 0);
- this.FileBase.instance.state.set("path", newPath);
- },
-
- openFolderInNewTab: function (data) {
- var newPath = "";
- if (typeof data == "string") {
- newPath = this.FileBase.helper.abspath(data);
- } else {
- newPath = Object.keys(this.FileBase.selections.entries)[0];
- }
- newPath = this.FileBase.selections.entries[newPath]
- .data()
- .data.realpath || newPath;
- this.FileBase.instance.spawnInstance("file", "FileBrowser", {
- "path": newPath
- });
- },
-
- openFile: function (data) {
- var self = this;
- var path = null;
-
- if (typeof data == "string") {
- path = this.FileBase.helper.abspath(data);
- } else {
- $.each(Object.keys(this.FileBase.selections.entries), function () {
- // file is equal to this
- self.openFile(String(this));
- });
- return;
- }
-
- var selectionElem = this.FileBase.selections.entries[path];
- if (selectionElem && selectionElem.data().data.symlink) {
- path = this.FileBase.selections.entries[path].data().data.realpath;
- }
-
- vispa.fileHandler.runDefaultHandler(path, this.FileBase.instance);
- },
-
- _openWithCodeEditor: function (path) {
- this.FileBase.instance.spawnInstance("codeeditor", "CodeEditor", {
- path: path
- });
- },
-
- rename: function () {
- var self = this;
- var fullpaths = Object.keys(this.FileBase.selections.entries);
- $.each(fullpaths, function () {
- var fullpath = this;
- // get the filename
- var name = self.FileBase.helper.filenameFromPath(fullpath);
- // var name = fullpath.replace(self.FileBase.instance.state.get("path"), "").replace("/", "");
- // Open a promt with callback function executing the ajax command
- // the default value is given at the end of the prompt command
- // bootbox.prompt("Enter a new name",
- self.FileBase.instance.prompt("Enter a new name", // -> Does not support default argument
- function (newName) {
- if (newName == name || newName === null || newName === "" || newName ===
- undefined) {
- return;
- }
-
- self._rename(self.FileBase.instance.state.get("path"), name, newName);
- }, {
- defaultValue: name
- });
- });
- },
-
- _rename: function (path, name, newName) {
- var self = this;
- if (newName === null || newName === "" || newName === undefined) {
- newName = name;
- }
- if (newName == name) {
- return true;
- }
- var dfd = self.FileBase.instance.POST("/ajax/fs/rename", {
- "path": path,
- "name": name,
- "new_name": newName
- }, function (err) {
- if (err) return;
- // rename triggers 2 events, let's try to wait for both
- self.FileBase.updateView(400);
- });
- return true;
- },
-
- copy: function () {
- $(".file-node").css("opacity", "1.0");
- this.removebool = false;
- this.entries = Object.keys(this.FileBase.selections.entries);
- $.cookie("vispaFile", JSON.stringify({
- "fileEntries": this.entries,
- "fileRemove": this.removebool
- }), {
- path: "/"
- });
- },
-
- cut: function () {
- $(".file-node").css("opacity", "1.0");
- this.removebool = true;
- this.entries = Object.keys(this.FileBase.selections.entries);
- $.cookie("vispaFile", JSON.stringify({
- "fileEntries": this.entries,
- "fileRemove": this.removebool
- }), {
- path: "/"
- });
- for (var i = 0; i < this.entries.length; i++) {
- $(this.FileBase.selections.entries[this.entries[i]]).css("opacity", "0.4");
- }
- },
-
- paste: function () {
- var self = this;
- var cookie = $.cookie("vispaFile");
- if (cookie === undefined || cookie === null) {
- return;
- }
-
- var src = JSON.parse(cookie);
- var paths = src.fileEntries;
- var cut = src.fileRemove;
-
- var dfd = self.FileBase.instance.POST("/ajax/fs/paste", {
- "path": this.FileBase.instance.state.get("path"),
- "paths": JSON.stringify(paths),
- "cut": cut
- }, function () {
- if (cut) {
- self.removebool = false;
- // delete cookie
- $.removeCookie("vispaFile", {
- path: "/"
- });
- }
- //self.FileBase.updateView();
- this.entries = [];
- });
- },
-
- move: function (source, destination) {
- var self = this;
- self.FileBase.instance.POST("/ajax/fs/move", {
- "source": JSON.stringify(source),
- "destination": JSON.stringify(destination)
- });
- },
-
- remove: function () {
- var self = this;
- this.entries = Object.keys(this.FileBase.selections.entries);
- var confirmDialog = this.FileBase.instance.prefs.get("ShowDeleteDialog");
- if (confirmDialog) {
- this.FileBase.instance.confirm(
- "Do you really want to delete " + this.entries.length + " items?",
- function (result) {
- if (result === true) {
- self._remove();
- }
- }
- );
- } else {
- self._remove();
- }
- },
-
- _remove: function () {
- var self = this;
- var dfd = self.FileBase.instance.POST("/ajax/fs/remove", {
- "path": JSON.stringify(self.entries)
- }, function (err) {
- //self.FileBase.updateView();
- self.entries = [];
- self.FileBase.selections.entries = {};
- });
- },
-
- download: function () {
- var self = this;
- var path = Object.keys(this.FileBase.selections.entries);
-
- function _download(path, deleteOnComplete) {
- $("")
- .attr({
- src: vispa.dynamicURL("fs/getfile/?path=" + path +
- "&_workspaceId=" + String(this.FileBase.instance.workspace.id) +
- "&download=1" +
- "&deleteoncomplete=" + String(deleteOnComplete)),
- style: "display:none;"
- }).appendTo("body");
- }
-
- var date = new Date()
- var tempname = "vispa_"
- tempname += self.FileBase.helper.filenameFromPath(self.FileBase.instance.state.get("path")) + "_";
- tempname += date.toISOString().slice(0, 10).replace(/-/g, "_") + "_";
- tempname += date.toISOString().slice(11, 19).replace(/:/g, "_") + ".zip";
- console.log(tempname)
- if (path.length != 1) {
- self.compress(tempname, function (err, archive) {
- _download(archive, true);
- }, true);
- } else if (path.length == 1 && self.FileBase.selections.entries[
- Object.keys(self.FileBase.selections.entries)].data().data.type == "d") {
- self.compress(tempname, function (err, archive) {
- _download(archive, true);
- }, true);
- } else {
- _download(path[0]);
- }
- },
-
- compress: function (name, callback, isTmp) {
- var self = this;
-
- function _compress(name) {
- self.FileBase.instance.POST("/ajax/fs/compress", {
- paths: JSON.stringify(Object.keys(self.FileBase.selections.entries)),
- path: self.FileBase.instance.state.get("path"),
- name: name,
- isTmp: isTmp
- }, callback);
- }
-
- if (name || isTmp) {
- _compress(name);
- } else {
- self.FileBase.instance.prompt("Enter a name for the zip-file", function (newName) {
- if (newName === null || newName === "") { //noinspection JSLint
- self.FileBase.instance.confirm("Please insert a valid name.", function (res) {
- if (res) self.compress(name, callback);
- }, {
- yesLabel: "Ok",
- noLabel: "Cancel",
- header: " Alert"
- });
- return;
- }
- _compress(newName);
- }, {
- header: " Name"
- });
- }
- return this;
- },
-
- showACL: function () {
- var self = this;
-
- var path = Object.keys(self.FileBase.selections.entries);
- var filetype = "file";
- if (path.length == 0) {
- path = self.FileBase.instance.state.get("path");
- filetype = "folder";
- } else if (path.length == 1) {
- path = Object.keys(self.FileBase.selections.entries)[0];
- if (self.FileBase.selections.entries[path].data().data.type == "d") filetype = "folder";
- } else {
- self.FileBase.instance.alert("Can not get ACL of multiple files.");
- return;
- }
- var filename = self.FileBase.helper.filenameFromPath(path);
-
- self.FileBase.instance.GET("/ajax/fs/getfacl", {
- path: path
- }, function (err, res) {
- if (err) return;
- var $body = $(showACLdialogTmpl);
- $("tbody", $body).render(res, {
- type: {
- text: function () {
- return this[0];
- }
- },
- name: {
- text: function () {
- return this[1];
- }
- },
- rights: {
- text: function () {
- return this[2];
- }
- },
- default: {
- text: function () {
- if (this.length == 4) {
- return this[3];
- } else {
- return "-"
- }
- }
- }
- });
- self.FileBase.instance.alert($body.html(), {
- header: "ACL of " + filetype + " \"" + filename + "\"",
- okLabel: "Close"
- });
- });
- },
-
- setACLEntry: function () {
- var self = this;
-
- var path = Object.keys(self.FileBase.selections.entries);
- var filetype = "file";
- if (path.length == 0) {
- path = self.FileBase.instance.state.get("path");
- filetype = "folder";
- } else if (path.length == 1) {
- path = Object.keys(self.FileBase.selections.entries)[0];
- if (self.FileBase.selections.entries[path].data().data.type == "d") filetype = "folder";
- } else {
- self.FileBase.instance.alert("Setting ACL entry for multiple files not implemented.");
- return;
- }
- var filename = self.FileBase.helper.filenameFromPath(path);
-
- // render dialog
- var dialog = null;
- // body
- var $body = $(setACLdialogTmpl).first();
- //footer
- var $footer = $(setACLdialogTmpl).last();
- $("#cancel", $footer).click(function () {
- dialog.close();
- });
- $("#ok", $footer).click(function () {
- opts = {
- path: path
- }
- opts.type = $("#type", $body).val();
- opts.name = $("#name", $body).val();
- if (!opts.name && opts.type != "mask" && opts.type != "other") {
- self.FileBase.instance.alert("Please insert a valid name.");
- return;
- }
- opts.mode = ""
- if ($("#read", $body).prop("checked")) opts.mode += "r"
- if ($("#write", $body).prop("checked")) opts.mode += "w"
- if ($("#execute", $body).prop("checked")) opts.mode += "x"
- opts.remove = $("#remove", $body).prop("checked");
- opts.recursive = $("#recursive", $body).prop("checked");
- opts.default = $("#default", $body).prop("checked");
- self.FileBase.instance.POST("/ajax/fs/setfacl", opts);
- dialog.close();
- });
- // dialog
- self.FileBase.instance.dialog({
- header: "Set ACL entry for " + filetype + " \"" + filename + "\"",
- body: $body,
- footer: $footer,
- onRender: function () {
- dialog = this;
- }
- });
- },
-
- info: function () {
- var self = this;
- var sizeSuffix = null;
- var totalSize = null;
- var totalSizeSuffix = null;
- var path = this.FileBase.instance.state.get("path");
- var array = [];
- var numberOfSelectedItems = Object.keys(this.FileBase.selections.entries).length;
- var infoObject = null;
- if (numberOfSelectedItems > 0) {
-
- // get name, size etc.
- $.each(this.FileBase.selections.entries, function () {
- var value = this;
- var name = value.data().data.name;
- var size = value.data().data.size;
- totalSize = totalSize + size;
- sizeSuffix = self.FileBase.helper.convertSize(size).sizeSuffix;
- size = self.FileBase.helper.convertSize(size).size;
- var mtime = value.data().data.mtime;
- mtime = self.FileBase.helper.convertTimestamp(mtime);
- var symlinkDesc = value.data().data.symlink ? "Symlink to: " : "";
- var symlink = value.data().data.symlink ? value.data().data.realpath : "";
- var extension = self.FileBase.helper.strExtension(name);
- // extension for folders and unknown files
- if (extension === null && value.data().data.symlink) {
- extension = "symlink";
- } else if (extension === null && value.data().data.type == "d") {
- extension = "folder";
- } else if (extension === null && value.data().data.type == "f") {
- extension = "unknown file type";
- }
-
- // fill data to object
- infoObject = {
- "name": name,
- "extension": extension,
- "size": size,
- "sizeSuffix": sizeSuffix,
- "path": path,
- "mtime": mtime,
- "symlinkDesc": symlinkDesc,
- "symlink": symlink
- };
- array.push(infoObject);
- });
- // convert total Size
- totalSizeSuffix = self.FileBase.helper.convertSize(totalSize).sizeSuffix;
- totalSize = self.FileBase.helper.convertSize(totalSize).size;
- // render when only one item is selected
- if (numberOfSelectedItems == 1) {
- self.FileBase.instance.alert($(infoTmpl).render(infoObject), {
- header: "Info",
- okLabel: "Close"
- });
- // render when more items are selected
- } else {
- var appendToRender = $(moreTmpl);
- $("tbody", appendToRender).render(array);
- $(".file-info-dialog-header", appendToRender).render({
- "numberOfSelectedItems": numberOfSelectedItems,
- "totalSize": totalSize,
- "totalSizeSuffix": totalSizeSuffix
- });
- self.FileBase.instance.alert(appendToRender.html(), {
- header: "Info",
- okLabel: "Close"
- });
- }
- }
- },
-
- createFile: function () {
- var self = this;
- var newName = null;
- self.FileBase.instance.prompt("Enter name for new file:", function (name) {
- if (name === null || name === "") {
- return;
- }
- newName = name;
- self.FileBase.instance.POST("/ajax/fs/createfile", {
- "path": self.FileBase.instance.state.get("path"),
- "name": newName
- });
- });
- },
-
- createFolder: function () {
- var self = this;
- var newName = null;
- self.FileBase.instance.prompt("Enter name for new directory:", function (name) {
- if (name === null || name === "") {
- return;
- }
- newName = name;
- self.FileBase.instance.POST("/ajax/fs/createfolder", {
- "path": self.FileBase.instance.state.get("path"),
- "name": newName
- });
- });
- },
-
- // The function takes up to two arguments.
- // path: location of storage, default is current path
- // files: list of files as FileList object. If not given, the browser's selector is used.
- upload: function (path, files) {
- var self = this;
-
- // set path
- if (!path) {
- path = this.FileBase.instance.state.get("path");
- }
- // setup input
- if (self.$input === undefined) {
- self.$input = $(" ");
- self.$input.attr({
- type: "file",
- name: "files[]",
- multiple: true
- });
- }
- self.$input.fileupload({
- dropZone: null,
- maxChunkSize: vispa.args.global.max_request_body_size - 500,
- url: self.FileBase.instance.dynamicURL("/ajax/fs/upload?path=" + path),
- add: function (event, data) {
- var file = data.files[0];
- if (file.type === "") {
- self.FileBase.instance.confirm(
- "The type of file \"" + file.name + "\" is unknown or it is a folder. Latter can not \
- be uploaded and must be stored into an archive firstly. Do you want to try it anyways?",
- function (confirmed) {
- if (confirmed) data.submit();
- }
- );
- } else {
- data.submit();
- }
- },
- submit: function (event, data) {
- // add new progress bar to sidebar view
- data.progressbarId = vispa.utils.uuid(16);
- data.FileUploadInstance = self.FileBase.instance.spawnInstance("file", "FileUpload", {
- id: data.progressbarId,
- data: data,
- });
- },
- start: function () {
- self.$input.val(null);
- },
- progress: function (event, data) {
- var percentage = parseInt(data.loaded / data.total * 100, 10);
- data.FileUploadInstance.setProgress(data.progressbarId, percentage);
- },
- done: function (event, data) {
- data.FileUploadInstance.setDone(data.progressbarId);
- },
- fail: function (event, data) {
- data.FileUploadInstance.setFailed(data.progressbarId);
- if (data.errorThrown !== "abort") {
- var errorMessage = data.jqXHR.responseJSON ? data.jqXHR.responseJSON.message : data.jqXHR.responseText;
- self.FileBase.instance.alert(errorMessage);
- }
- },
- always: function (event, data) {
- data.FileUploadInstance.setFinished(data.progressbarId);
- }
- });
-
- // trigger upload, use browser selector of if files are not given
- if (!files) {
- self.$input.click();
- } else {
- self.$input.fileupload("add", {
- files: files
- })
- }
-
- },
-
- filter: function () {
- var self = this;
- // if (content.filelist) {};
- var filter = $("input", this.FileBase.view.filterField);
- filter.keyup(function (event) {
- var filteredContent = $.extend({}, self.FileBase.workflow.data);
- event.stopPropagation();
- event.preventDefault();
- //noinspection JSLint
- var charCode = (typeof event.keyCode == "undefined") ? event.which : event.keyCode;
- // Enter == 13 and Escape == 27
- if (charCode == 27 || charCode == 13) {
- self.FileBase.view.toggleFilter(true);
- self.FileBase.refresh(self.FileBase.workflow.data);
- filter = self.FileBase.workflow.data;
- // FIXME: the selectionmode is set to true because the shortcut ctrl down is
- // triggered but not the crtl:up. This is a problem with the jquery plugin
- self.FileBase.workflow.selectmode = false;
- return;
- }
- var inputString = filter.val();
- if (inputString === "") {
- self.FileBase.refresh(self.FileBase.workflow.data);
- } else {
- filteredContent.filelist = filteredContent.filelist.filter(function (elem) {
- return ~elem.name.indexOf(inputString);
- });
- self.FileBase.refresh(filteredContent, self.FileBase.workflow.sort, self.FileBase
- .workflow
- .reverse, true);
- }
- });
- }
- });
-
- return FileBaseActions;
-});
diff --git a/vispa/extensions/file/static/js/base/base.js b/vispa/extensions/file/static/js/base/base.js
deleted file mode 100755
index dc23d2c8b4d723a5504b6e9d5df0a428e9d1dbb7..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/base.js
+++ /dev/null
@@ -1,194 +0,0 @@
-define([
- "jquery",
- "jclass",
- "./view",
- "./events",
- "./actions",
- "./selections",
- "./items",
- "./helper",
- "./sort",
- "./pathbar",
- "./views/symbol",
- "./views/table",
- "text!../../html/alert.html"
-], function(
- $,
- JClass,
- FileBaseView,
- FileBaseEvents,
- FileBaseActions,
- FileBaseSelections,
- FileBaseMenuItems,
- FileBaseHelper,
- FileBaseSorting,
- PathBar,
- SymbolView,
- TableView,
- AlertTmpl
-) {
-
- var FileBase = JClass._extend({
-
- init: function(instance) {
- var self = this;
-
- this.instance = instance;
- // components
- this.view = new FileBaseView(this);
- this.events = new FileBaseEvents(this);
- this.actions = new FileBaseActions(this);
- this.selections = new FileBaseSelections(this);
- this.menuitems = new FileBaseMenuItems(this);
- this.helper = new FileBaseHelper(this);
- this.sorting = new FileBaseSorting(this);
- this.pathBar = new PathBar(this);
-
- // the workflow object may be extended
- this.workflow = {
- parentpath: "/",
- currentView: null,
- data: null,
- selectmode: false,
- sort: "name",
- reverse: false,
- lastRefresh: null,
- updateState: 0, // 0: idle, >0: last request, -1: running,
- // -2: done & requested again, -3: running & requested again
- galleryFiles: []
- };
-
- // Get the default view from the preferences
- var viewstring = vispa.device.hasTouch ? "Table" : this.instance.prefs.get("View");
- this.workflow.currentView = viewstring == "Symbol" ? SymbolView : TableView;
-
- // register path state change
- this.instance.state.on("path", function () {
- self.updateView();
- });
-
- // buffered refresh events
- window.setInterval(function() {
- if (self.workflow.updateState == -2 || (self.workflow.updateState > 0 &&
- ($.now() - self.workflow.updateState) > (self.instance.isVisible() ? 0 : 2000))) {
- // 200ms since "move from/to" upon rename have a 160ms gap (idk why)
- self._updateView();
- }
- }, 50);
-
- },
-
- setContent: function(node) {
- this.pathBar.setup(node);
- this.view.setMainContainer(node);
- },
-
- changeView: function(viewConstructor) {
- var newView = new viewConstructor(this);
-
- if (this.workflow.currentView !== null && newView.type == this.workflow.currentView.type)
- return null;
-
- this.workflow.currentView = newView;
- this.view.toggleViewMenu();
- this.instance.prefs.set("View", newView.type);
- // this.instance.pushPreferences();
-
- this.selections.unselectAll();
- // add the view to the center pane of the main container
- this.workflow.currentView.render();
- },
-
- updateView: function(additionalDelay) {
- if (this.workflow.updateState >= 0) {
- if (additionalDelay !== undefined) { // events may want to wait for more events
- this.workflow.updateState =
- Math.max(this.workflow.updateState, $.now() + additionalDelay);
- } else { // everyone else wants a fast update
- this.workflow.updateState = 1;
- }
- } else if (this.workflow.updateState == -1) {
- this.workflow.updateState = -3;
- } else if (this.workflow.updateState == -2) {
- this._updateView();
- }
- },
-
- _updateView: function() {
- var self = this;
-
- // delay further if the current view is not loaded completely
- if (!this.workflow.currentView.template) {
- this.workflow.updateState = -2;
- return;
- } else {
- this.workflow.updateState = -1;
- }
-
- // remove gallery files
- self.workflow.galleryFiles = []
- // set new label already so it will be available for fragment generation
- this.instance.setLabel(this.instance.state.get('path'), true);
- this.instance.GET("/ajax/fs/filecount", {
- path: self.instance.state.get('path'),
- watch_id: "0"
- }, function(err, data) {
- if (err) return;
- self.instance.setLoading(false);
- if (data.count < 0) {
- self.instance.setLoading(true);
- self.view.fileContentContainer.empty();
- self.view.fileContentContainer.append(AlertTmpl);
- self.pathBar.render();
- self.workflow.updateState++;
- self.instance.setLoading(false);
- return;
- }
- self.instance.setLoading(true, data.count > 50 ? 0 : null);
-
- if (self.view.fileContentContainer !== null) {
- self.selections.unselectAll();
- self.view.fileContentContainer.empty();
- }
-
- self.instance.GET("/ajax/fs/filelist", {
- path: self.instance.state.get('path'),
- watch_id: "0"
- }, function(err, data) {
- if (err) {
- self.instance.setLoading(false);
- } else {
- self.refresh(data);
- }
- self.workflow.updateState++;
- });
- });
- },
-
- refresh: function(content, sort, reverse, filter) {
- if (!content) {
- return;
- }
- sort = sort === undefined ? this.workflow.sort : sort;
- reverse = reverse === undefined ? this.workflow.reverse : reverse;
- content = content === undefined ? this.workflow.data : content;
- filter = filter === undefined ? false : filter;
- // only the first time this.workflow.data is null.
- if (!filter) {
- this.workflow.data = content;
- }
- this.helper.sortItems(content, sort, reverse);
- this.workflow.currentView.setContent(content);
- this.pathBar.render();
- $(".file-input", this.view.node).remove();
- this.menuitems.hideMenu();
- var label = content.path || this.instance.state.get("path");
- // remove a slash in the end via a regexp
- label = label.replace(/\/$/g, "");
- this.instance.setLabel(label, true);
- this.instance.setLoading(false);
- }
- });
-
- return FileBase;
-});
diff --git a/vispa/extensions/file/static/js/base/bookmark.js b/vispa/extensions/file/static/js/base/bookmark.js
deleted file mode 100755
index b89261986de3c34179b46ab3dfe71016cf025151..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/bookmark.js
+++ /dev/null
@@ -1,443 +0,0 @@
-define([
- "jquery",
- "jclass",
- "text!../../html/bookmarkSymbolDialog.html"
-], function(
- $,
- JClass,
- BookmarkSymbolDialogTmpl
-) {
-
- var BookmarkContainer = JClass._extend({
-
- init: function (PathBar) {
- var self = this;
- self.FileBase = PathBar.FileBase;
- self.instance = self.FileBase.instance;
- self.container = null;
- self.allowedSymbols = ["asterisk", "plus", "euro", "eur", "minus", "cloud",
- "envelope", "pencil", "glass", "music", "search", "heart", "star", "star-empty",
- "user", "film", "th-large", "th", "th-list", "ok", "remove", "zoom-in", "zoom-out",
- "off", "signal", "cog", "trash", "home", "file", "time", "road", "download-alt",
- "download", "upload", "inbox", "play-circle", "repeat", "refresh", "list-alt",
- "lock", "flag", "headphones", "volume-off", "volume-down", "volume-up", "qrcode",
- "barcode", "tag", "tags", "book", "bookmark", "print", "camera", "font", "bold",
- "italic", "text-height", "text-width", "align-left", "align-center", "align-right",
- "align-justify", "list", "indent-left", "indent-right", "facetime-video", "picture",
- "map-marker", "adjust", "tint", "edit", "share", "check", "move", "step-backward",
- "fast-backward", "backward", "play", "pause", "stop", "forward", "fast-forward",
- "step-forward", "eject", "chevron-left", "chevron-right", "plus-sign", "minus-sign",
- "remove-sign", "ok-sign", "question-sign", "info-sign", "screenshot", "remove-circle",
- "ok-circle", "ban-circle", "arrow-left", "arrow-right", "arrow-up", "arrow-down",
- "share-alt", "resize-full", "resize-small", "exclamation-sign", "gift", "leaf",
- "fire", "eye-open", "eye-close", "warning-sign", "plane", "calendar", "random",
- "comment", "magnet", "chevron-up", "chevron-down", "retweet", "shopping-cart",
- "folder-close", "folder-open", "resize-vertical", "resize-horizontal", "hdd",
- "bullhorn", "bell", "certificate", "thumbs-up", "thumbs-down", "hand-right",
- "hand-left", "hand-up", "hand-down", "circle-arrow-right", "circle-arrow-left",
- "circle-arrow-up", "circle-arrow-down", "globe", "wrench", "tasks", "filter",
- "briefcase", "fullscreen", "dashboard", "paperclip", "heart-empty", "link", "phone",
- "pushpin", "usd", "gbp", "sort", "sort-by-alphabet", "sort-by-alphabet-alt",
- "sort-by-order", "sort-by-order-alt", "sort-by-attributes", "sort-by-attributes-alt",
- "unchecked", "expand", "collapse-down", "collapse-up", "log-in", "flash", "log-out",
- "new-window", "record", "save", "open", "saved", "import", "export", "send",
- "floppy-disk", "floppy-saved", "floppy-remove", "floppy-save", "floppy-open",
- "credit-card", "transfer", "cutlery", "header", "compressed", "earphone", "phone-alt",
- "tower", "stats", "sd-video", "hd-video", "subtitles", "sound-stereo", "sound-dolby",
- "sound-5-1", "sound-6-1", "sound-7-1", "copyright-mark", "registration-mark",
- "cloud-download", "cloud-upload", "tree-conifer", "tree-deciduous", "cd", "save-file",
- "open-file", "level-up", "copy", "paste", "alert", "equalizer", "king", "queen", "pawn",
- "bishop", "knight", "baby-formula", "tent", "blackboard", "bed", "apple", "erase",
- "hourglass", "lamp", "duplicate", "piggy-bank", "scissors", "bitcoin", "btc", "xbt",
- "yen", "jpy", "ruble", "rub", "scale", "ice-lolly", "ice-lolly-tasted", "education",
- "option-horizontal", "option-vertical", "menu-hamburger", "modal-window", "oil", "grain",
- "sunglasses", "text-size", "text-color", "text-background", "object-align-top",
- "object-align-bottom", "object-align-horizontal", "object-align-left",
- "object-align-vertical", "object-align-right", "triangle-right", "triangle-left",
- "triangle-bottom", "triangle-top", "console", "superscript", "subscript", "menu-left",
- "menu-right", "menu-down", "menu-up"
- ];
-
- self.directives = {
- "bookmark": {
- "title": function () {
- return this.path;
- },
- "clicks": function (node) {
- $(node.element).data(this);
- self.setupClicks($(node.element));
- }
- },
- "bookmark-name": {
- "text": function () {
- return this.name;
- }
- },
- "bookmark-glyphicon": {
- "class": function () {
- return "glyphicon glyphicon-" + this.symbol;
- }
- }
- };
-
- self._workspaceiniMtime = 0;
- self._setupDone = false;
- },
-
- setup: function (node) {
- if (this._setupDone) {
- return;
- }
- this._setupDone = true;
-
- var self = this;
- self.container = node;
- vispa.socket.on("workspace.ini_modified", function (data) {
- if (data.workspaceId == self.instance.workspace.id &&
- self._workspaceiniMtime != data.mtime) {
- self._workspaceiniMtime = data.mtime;
- self.setContent();
- }
- });
- this.setContent();
- },
-
- setContent: function () {
- var self = this;
- // get names from workspaceini
- this.instance.GET("/ajax/fs/getworkspaceini", {
- request: JSON.stringify({
- Bookmarks: ["names", "paths", "symbols"]
- })
- }, function (err, data) {
- var names = [];
- var paths = [];
- var symbols = [];
- var bookmarks = [];
- if (err) {
- self.instance.alert("Can't read workspace.ini. Maybe it doesn't exists.");
- } else {
- // split into arrays
- if (data.content.Bookmarks &&
- data.content.Bookmarks.names &&
- data.content.Bookmarks.paths &&
- data.content.Bookmarks.symbols) {
- try {
- names = JSON.parse(data.content.Bookmarks.names);
- paths = JSON.parse(data.content.Bookmarks.paths);
- symbols = JSON.parse(data.content.Bookmarks.symbols);
- } catch (error) {
- self.FileBase.instance.logger.info("The bookmarks format is deprecated. They are \
- converted to JSON within the next save opeartion.");
- names = data.content.Bookmarks.names.split(":");
- paths = data.content.Bookmarks.paths.split(":");
- symbols = data.content.Bookmarks.symbols.split(":");
- }
- }
- if (names.length !== paths.length ||
- names.length !== symbols.length) {
- names = [];
- paths = [];
- symbols = [];
- self.instance.alert("Bookmarks in workspace.ini are maybe broken.");
- }
- }
- for (var i = 0; i < names.length; i++) {
- bookmarks.push({
- name: names[i],
- path: paths[i],
- symbol: symbols[i],
- });
- }
-
- // render and sortability
- self.cancelSortability();
- $(".bookmarks", self.container).render(bookmarks, self.directives);
- self.setupSortability();
-
- // add button
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
- var $bookmarkButton = $(".bookmark-button", self.container);
- $bookmarkButton.off();
- $bookmarkButton.on(clicktype, function (event) {
- event.stopPropagation();
- self.addBookmark();
- });
- });
- },
-
- setupClicks: function ($bookmark) {
- var self = this;
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
- // click on bookmark self
- $bookmark.off();
- $bookmark.on(clicktype, function () {
- $("input", self.container).blur();
- self.FileBase.instance.state.set("path", $bookmark.data().path);
- self.FileBase.updateView();
- });
- // click on remove glyph
- $(".bookmark-glyphicon-remove", $bookmark).off();
- $(".bookmark-glyphicon-remove", $bookmark).on(clicktype, function (event) {
- event.stopPropagation();
- self.removeBookmark($bookmark);
- });
- // click on edit glyph
- $(".bookmark-glyphicon-edit", $bookmark).off();
- $(".bookmark-glyphicon-edit", $bookmark).on(clicktype, function (event) {
- event.stopPropagation();
- self.editBookmark($bookmark);
- });
- },
-
- cancelSortability: function () {
- var self = this;
- if ($(".bookmarks", self.container).sortable("instance")) {
- $(".bookmarks", self.container).sortable("cancel");
- $(".bookmarks", self.container).sortable("destroy");
- }
- },
-
- setupSortability: function () {
- var self = this;
- $(".bookmarks", self.container).sortable({
- cursor: "move",
- delay: 150,
- stop: function (event, ui) {
- self.saveBookmarks(self.getBookmarksFromDOM());
- }
- });
- },
-
- getBookmarksFromDOM: function () {
- var self = this;
- var bookmarks = [];
- // read out bookmarks
- $(".bookmarks", self.container).children().each(function (index, node) {
- bookmarks.push($(node).data());
- });
- return bookmarks;
- },
-
- saveBookmarks: function (bookmarks, callback) {
- var self = this;
-
- var names = [];
- var paths = [];
- var symbols = [];
- // rewrite bookmarks
- if (bookmarks) {
- for (var i = 0; i < bookmarks.length; i++) {
- names.push(bookmarks[i].name);
- paths.push(bookmarks[i].path);
- symbols.push(bookmarks[i].symbol);
- }
- }
- //save them
- this.instance.POST("/ajax/fs/setworkspaceini", {
- request: JSON.stringify({
- Bookmarks: {
- names: JSON.stringify(names),
- paths: JSON.stringify(paths),
- symbols: JSON.stringify(symbols)
- }
- })
- }, (callback || Function)());
- },
-
- addBookmark: function () {
- var self = this;
-
- // get data
- var symbol = "bookmark";
- var path = self.instance.state.get("path");
- var name = self.FileBase.helper.filenameFromPath(
- path.endsWith("/") ? path.substring(0, path.length - 1) : path);
- var bookmarks = self.getBookmarksFromDOM();
- bookmarks.push({
- name: name,
- path: path,
- symbol: symbol
- });
- // save
- self.saveBookmarks(bookmarks, function (err) {
- if (err) self.instance.alert("Couldn't add bookmark.");
- });
- },
-
- removeBookmark: function ($bookmark) {
- var self = this;
-
- this.instance.confirm(
- "Do you want to delete bookmark \"" + $bookmark.data().name + "\"?",
- function (confirmed) {
- if (confirmed) {
- // remove and save
- $bookmark.data().remove = true;
- var bookmarks = self.getBookmarksFromDOM();
- for (var i = 0; i < bookmarks.length; i++) {
- if (bookmarks[i].remove) bookmarks.splice(i, 1);
- }
- self.saveBookmarks(bookmarks, function (err) {
- if (err) self.instance.alert("Couldn't remove bookmark.");
- });
- }
- }
- );
- },
-
- editBookmark: function ($bookmark) {
- var self = this;
-
- var $bookmarkSymbol = $(".bookmark-glyphicon-symbol", $bookmark);
- var $bookmarkName = $(".bookmark-name", $bookmark);
- var $replaceWith = $(" ");
-
- // set length of input field
- var inlineWidth = $bookmarkName.innerWidth() + 20;
- if (inlineWidth < 100) inlineWidth = 100;
- $replaceWith.css("width", inlineWidth);
-
- // dump filename into rename input field, hide origin and show replace
- $replaceWith.attr("value", $bookmarkName.html());
- $bookmarkName.hide();
- $bookmarkName.after($replaceWith);
- $replaceWith.focus();
-
- // when clicking in input filed, do not open folder or file
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
- $replaceWith.on(clicktype, function (event) {
- event.stopPropagation();
- });
- // disable link and edit glyph
- $bookmark.off();
- $bookmark.on("mousedown", function (event) {
- event.preventDefault();
- });
- $(".bookmark-glyphicon-edit", $bookmark).off();
- $(".bookmark-glyphicon-edit", $bookmark).on("mousedown", function (event) {
- event.preventDefault();
- });
- //symbol glyph
- $bookmarkSymbol.toggleClass("bookmark-glyphicon-symbol-editable", true);
- $bookmarkSymbol.toggleClass("bookmark-glyphicon-symbol", false);
- $bookmarkSymbol.prop("title", "Edit symbol");
- $bookmarkSymbol.on("mousedown", function (event) {
- // prevent blur on mousedown, that that it is called after click/tap instead
- event.preventDefault();
- });
- $bookmarkSymbol.on(clicktype, function (event) {
- event.stopPropagation();
- self.editSymbol($bookmark);
- });
-
- // rename on blur
- $replaceWith.blur(function (event) {
- event.preventDefault();
- //check for ascii
- var ascii = /^[ -~]+$/;
- if (!ascii.test(String($replaceWith.val()))) {
- self.instance.alert("Non ASCII character detected!");
- } else {
- // set new data
- var oldname = $bookmark.data().name;
- $bookmark.data().name = String($replaceWith.val());
- // write new data to ini and update view (if newname != oldname)
- if ($bookmark.data().name !== oldname) {
- self.saveBookmarks(self.getBookmarksFromDOM(), function (err) {
- if (err) {
- $bookmark.data().name = oldname;
- self.instance.alert("Couldn't rename bookmark.");
- }
- });
- }
- }
- // reset
- $replaceWith.remove();
- $bookmarkSymbol.toggleClass("bookmark-glyphicon-symbol", true);
- $bookmarkSymbol.toggleClass("bookmark-glyphicon-symbol-editable", false);
- $bookmarkSymbol.removeAttr("title");
- $bookmarkSymbol.off();
- $bookmarkName.show();
- self.setupClicks($bookmark);
- });
- // rename when pressing enter
- $replaceWith.keypress(function (event) {
- if (event.which == 13) {
- event.preventDefault();
- this.blur();
- }
- });
- },
-
- editSymbol: function ($bookmark) {
- var self = this;
-
- $(".input-bookmarkname", self.container).blur();
- var a = $(BookmarkSymbolDialogTmpl);
- var $body = a.children().first();
- var $footer = a.children().last();
- var dialog = null;
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
-
- // render body
- $body.render(self.allowedSymbols, {
- "button": {
- "title": function () {
- return this.value;
- }
- },
- "symbol": {
- "class": function () {
- return "glyphicon glyphicon-" + this.value;
- }
- }
- });
- $(".glyphicon-" + $bookmark.data().symbol, $body).parent()
- .toggleClass("btn-primary btn-default");
- // clicks
- $body.children().on(clicktype, function (event) {
- event.stopPropagation();
- $(".btn-primary", $body).toggleClass("btn-primary btn-default");
- $(event.currentTarget).toggleClass("btn-primary btn-default");
- });
-
- // footer clicks
- // just close for cancel
- $("#cancel", $footer).on(clicktype, function (event) {
- event.stopPropagation();
- dialog.close();
- });
- // save new symbol for save
- $("#save", $footer).on(clicktype, function (event) {
- event.stopPropagation();
- var oldsymbol = $bookmark.data().symbol;
- $bookmark.data().symbol = $(".btn-primary", $body).children().first().prop("class").slice(20);
- self.saveBookmarks(self.getBookmarksFromDOM(), function (err) {
- if (err) {
- self.instance.alert("Couldn't change symbol.");
- $bookmark.data().symbol = oldsymbol;
- }
- // self.setContent();
- });
- dialog.close();
- });
-
- // create dialog
- self.instance.dialog({
- "header": "Edit symbol of bookmark \"" + $bookmark.data().name + "\"",
- "body": $body,
- "footer": $footer,
- beforeClose: function (cb) {
- cb();
- },
- onRender: function () {
- dialog = this;
- }
- });
- }
-
- });
-
- return BookmarkContainer;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/events.js b/vispa/extensions/file/static/js/base/events.js
deleted file mode 100755
index 55fd7cfe5c4b9c0fbb99d104444dfca00a3e6d8a..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/events.js
+++ /dev/null
@@ -1,309 +0,0 @@
-define(["jquery", "jclass"], function ($, JClass) {
-
- var FileBaseEvents = JClass._extend({
- init: function (FileBase) {
- this.FileBase = FileBase;
- },
-
- setupNodeEvents: function (nodeObj) {
- var self = this;
- // get the node
- var node = $(nodeObj.element);
- var data = node.data("data");
-
- // ####################################################################
- // click event on the selection-p
- var selectionP = $(".file-selection-p", node);
- selectionP.on("click tap", node, function (event) {
- // Needed to avoid double event execution
- if ($(event.target).is("span")) {
- return;
- }
- // in event.data is the node (where the data is stored)
- self.FileBase.selections.changeSelection($(event.data));
- self.FileBase.selections.checkIfAllSelected();
- self.FileBase.view.changeToolsAppearance();
- self.FileBase.menuitems.hideMenu();
- });
- this.nodeRightClickHold(node, data);
- this.nodeClickDblClick(node, data);
- this.dragAndDrop(node, data);
- // this.nodePropertiesClickTab(node);
- // this.resizeNodeNameOnHover(node);
- if (data.type == "f" && ~this.FileBase.helper.isBrowserFile(data.name)) {
- this.nodeSetPreview(data);
- }
- if (this.FileBase.workflow.currentView.type === "Table") {
- this.FileBase.workflow.currentView.makeEditButtonsClickable(node);
- }
- },
-
- nodeRightClickHold: function (node, data) {
- var self = this;
- // ####################################################################
- // click on the node itself
- var menuOpenString = vispa.device.hasTouch ? "taphold" : "contextmenu";
- node.on(menuOpenString, function (event) {
- var abspath = self.FileBase.helper.abspath(data.name);
- var inselection = self.FileBase.selections.entries[abspath];
- if (inselection === undefined) {
- if (!(self.FileBase.workflow.selectmode && Object.keys(self.FileBase
- .selections.entries).length >= 1)) {
- self.FileBase.selections.unselectAll();
- }
- self.FileBase.selections.changeSelection(node, true);
- }
- self.FileBase.menuitems.showMenu(event);
- });
- },
-
- // ####################################################################
- nodeClickDblClick: function (node, data) {
- var self = this;
- var prefOpenstring = this.FileBase.instance.prefs.get("Open");
- var openstring = prefOpenstring == "single" ? "click" : "dblclick";
- // For touch devices there exists no dbltap, thus everything has
- // to be switched to tap (=single) events
- openstring = vispa.device.hasTouch ? "tap" : openstring;
- node.on(openstring, function (event) {
- if (vispa.device.isMac && event.metaKey) self.FileBase.workflow.selectmode = true;
- // check if event has to be accepted
- if ($(event.target).is(".file-selection-p,.file-selection-checkbox")) return;
- if (self.FileBase.workflow.currentView.type == "Symbol" && $(event.target).is("span")) return;
- if ($(event.target).parents(".edit-tools").length > 0) return;
- event.preventDefault();
- if (self.FileBase.menuitems.isShown()) {
- self.FileBase.menuitems.hideMenu();
- if (prefOpenstring == "single") {
- if (self.FileBase.instance._shortcuts.singleSelect == "keydown:meta" &&
- event.metaKey) self.FileBase.workflow.selectmode = false;
- return;
- }
- }
- if (self.FileBase.workflow.selectmode) {
- self.FileBase.selections.changeSelection(node, true);
- } else if (self.FileBase.workflow.selectmodeMultiple) {
- // multiple selection with shift (default)
- var indexOfCurrentNode = node.parent().children().index(node);
- var indexOfLastNode = node.parent().children().index(self.FileBase.selections.lastSelectedNode);
- var krementer = (indexOfCurrentNode - indexOfLastNode);
- krementer /= Math.abs(krementer);
- while (!node.attr("selected")) {
- self.FileBase.selections.selectArbitNode(krementer);
- }
- } else {
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- if (data.type == "f") {
- self.FileBase.actions.openFile(data.name);
- } else {
- self.FileBase.actions.openFolder(data.name);
- }
- }
- if (vispa.device.isMac && event.metaKey) self.FileBase.workflow.selectmode = false;
- });
- if (openstring == "dblclick") {
- node.click(function (event) {
- if (vispa.device.isMac && event.metaKey) self.FileBase.workflow.selectmode = true;
- if (!self.FileBase.workflow.selectmode && !self.FileBase.workflow.selectmodeMultiple) {
- self.FileBase.selections.unselectAll();
- }
- event.preventDefault();
- self.FileBase.menuitems.hideMenu();
- if (self.FileBase.workflow.selectmodeMultiple) {
- // multiple selection with shift (default)
- var indexOfCurrentNode = node.parent().children().index(node);
- var indexOfLastNode = node.parent().children().index(self.FileBase.selections.lastSelectedNode);
- var krementer = (indexOfCurrentNode - indexOfLastNode);
- krementer /= Math.abs(krementer);
- while (!node.attr("selected")) {
- self.FileBase.selections.selectArbitNode(krementer);
- }
- } else {
- self.FileBase.selections.changeSelection(node, true);
- }
- if (vispa.device.isMac && event.metaKey) self.FileBase.workflow.selectmode = false;
- });
- }
- },
-
- // nodePropertiesClickTab: function(node) {
- // var self = this;
- // // ####################################################################
- // node.on("click tap", ".file-properties", function(event) {
- // event.preventDefault();
- // if (Object.keys(self.FileBase.selections.entries).length > 1) {
- // return;
- // }
- // var submenu = $("ul", self.FileBase.menuitems.menu);
- // var posOld = self.FileBase.menuitems.position;
- // var posNull = self.FileBase.menuitems.nullPosition;
- // var posNew = self.FileBase.menuitems.getContextMenuPostion(event, submenu);
- // //if the menu should be opened at the same position close it instead
- // var cond1 = posOld.x == posNew.x && posOld.y == posNew.y;
- // //if the menu should be opened again at the null position close it instead
- // var cond2 = posOld.x == posNull.x && posOld.y == posNull.y;
- // if (self.FileBase.menuitems.menu.hasClass("open") && (cond1 || cond2)) {
- // self.FileBase.menuitems.hideMenu();
- // return;
- // }
- // if (!self.FileBase.workflow.selectmode) {
- // self.FileBase.selections.unselectAll();
- // }
- // self.FileBase.selections.changeSelection(node, true);
- // self.FileBase.menuitems.showMenu(event, null, posNew);
- // });
- // },
-
- setupBkgEvents: function (nodeBkg) {
- var self = this;
- nodeBkg.on("click tap", function (event) {
- // check if event has to be accepted
- if (!$(event.target).is(".file-list,.file-content")) return;
- if (event.timeStamp == self.lastEvent) {
- return;
- }
- event.preventDefault();
- self.FileBase.selections.unselectAll();
- self.FileBase.menuitems.hideMenu();
- });
- // Don"t use hold menus on touch
- var menuOpenString = vispa.device.hasTouch ? "taphold" : "contextmenu";
- nodeBkg.on(menuOpenString, function (event) {
- // check if event has to be accepted
- if (!$(event.target).is(".file-list,.file-content")) return;
- self.FileBase.selections.unselectAll();
- event.preventDefault();
- self.FileBase.menuitems.showMenu(event, "b");
- });
- },
-
- nodeSetPreview: function (data) {
- var path = this.FileBase.helper.abspath(data.name);
- var name = data.name;
- var ext = this.FileBase.helper.strExtension(path);
- this.FileBase.workflow.galleryFiles.push({
- title: name,
- src: vispa.dynamicURL("fs/getfile/?path=" + path +
- "&_workspaceId=" + String(this.FileBase.instance.workspace.id)),
- type: ext.toLowerCase() == "pdf" ? "iframe" : "img"
- });
- },
-
- dragAndDrop: function (node, data) {
- if (vispa.device.hasTouch) return;
-
- var self = this;
-
- $(node).draggable({
- containment: "parent",
- helper: "clone",
- opacity: 0.5,
- revert: true,
- start: function () {
- // prevent upload
- self.disableDragAndDropUpload();
- // handle selections
- var selectedItems = Object.keys(self.FileBase.selections.entries);
- if (selectedItems.length === 0) {
- self.FileBase.selections.changeSelection(node, true);
- } else {
- if (!node.attr("selected")) {
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- }
- }
- },
- stop: function () {
- // enable upload again
- self.enableDragAndDropUpload();
- }
- });
-
- if (data.type == "d") {
- $(node).droppable({
- accept: ".node",
- hoverClass: "dragover",
- greedy: true,
- drop: function () {
- var selectedItems = Object.keys(self.FileBase.selections.entries);
- var destination = self.FileBase.helper.abspath(data.name);
- var source = [];
- var name;
- var sourceItem;
- for (var k = 0; k < selectedItems.length; k++) {
- name = self.FileBase.selections.entries[selectedItems[k]].data("data").name;
- sourceItem = self.FileBase.helper.abspath(name);
- if (sourceItem != destination) {
- source.push(self.FileBase.helper.abspath(name));
- } else {
- // return if any source items is destination
- return;
- }
- }
- // move
- if (source.length > 0) self.FileBase.actions.move(source, destination);
- }
- });
- }
-
- },
-
- dragAndDropBkg: function (node) {
- if (vispa.device.hasTouch) return;
-
- var self = this;
- var $bkg = $(".file-list", node);
-
- // CSS convenience for jquery DnD
- $bkg.droppable({
- accept: ".node",
- hoverClass: "dragover",
- greedy: true,
- });
-
- self.enableDragAndDropUpload();
- },
-
- enableDragAndDropUpload: function () {
- if (vispa.device.hasTouch) return;
-
- var self = this;
- var $bkg = $(".file-list", self.FileBase.view.fileContentContainer);
-
- // DnD upload
- // first unbind on document
- $(document).off(".dragAndDropUpload");
- // CSS
- $(document).on("dragenter.dragAndDropUpload", function (event) {
- event.preventDefault();
- $bkg.toggleClass("dragover", true);
- });
- $(document).on("mouseout.dragAndDropUpload", function (event) {
- $bkg.toggleClass("dragover", false);
- });
- // prevent dragover to allow drop
- $(document).on("dragover.dragAndDropUpload", function (event) {
- event.preventDefault();
- });
- $(document).on("drop.dragAndDropUpload", function (event) {
- event.preventDefault();
- $bkg.toggleClass("dragover", false);
- // if files attachted, upload them
- if (event.originalEvent.dataTransfer &&
- event.originalEvent.dataTransfer.files.length !== 0) {
- self.FileBase.actions.upload(null, event.originalEvent.dataTransfer.files);
- }
- });
- },
-
- disableDragAndDropUpload: function () {
- if (vispa.device.hasTouch) return;
-
- $(document).off(".dragAndDropUpload");
- },
-
- });
-
- return FileBaseEvents;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/helper.js b/vispa/extensions/file/static/js/base/helper.js
deleted file mode 100755
index aef23d100ecce81f012ae66acf8f457ffb637eed..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/helper.js
+++ /dev/null
@@ -1,202 +0,0 @@
-define(["jquery", "jclass"], function($, JClass) {
-
- var FileBaseHelper = JClass._extend({
- init: function(FileBase) {
- this.FileBase = FileBase;
- this.browserExtensions = ["png", "jpg", "jpeg", "bmp", "PNG", "JPG",
- "JPEG", "BMP", "Bmp", "Png", "Jpg", "Jpeg", "pdf", "Pdf", "PDF"
- ];
- },
-
- // Sort function for the different sorting types of the file extension
- sortItems: function(content, type, reverse) {
- var self = this;
- var directories = [];
- var files = [];
- var len = content.filelist.length;
- for (var i = 0; i < len; i++) {
- var elem = content.filelist[i];
- if (elem.type == "d") {
- directories.push(elem);
- } else {
- files.push(elem);
- }
- }
- if (type === undefined || type == "name") {
- directories = self.sortByName(directories, reverse);
- files = self.sortByName(files, reverse);
- } else if (type == "time") {
- directories = self.sortByTime(directories, reverse);
- files = self.sortByTime(files, reverse);
- } else if (type == "ext") {
- directories = self.sortByName(directories, false);
- self.sortByExt(files, reverse);
- } else if (type == "size") {
- directories = self.sortByName(directories, false);
- self.sortBySize(files, reverse);
- }
- content.filelist = directories.concat(files);
- },
-
- sortByName: function(arr, reverse) {
- $.LocaleSorter(arr, function(item) {
- return item.name;
- });
- return reverse ? arr.reverse() : arr;
- },
-
- sortByTime: function(arr, reverse) {
- var self = this;
- arr.sort(function(a, b) {
- if (b.mtime === a.mtime) {
- var helpArr = [a, b];
- self.sortByName(helpArr, false);
- return helpArr[0].name == a.name ? -1 : 1;
- } else {
- return !reverse ? b.mtime - a.mtime : a.mtime - b.mtime;
- }
- });
- return arr;
- },
-
- sortByExt: function(arr, reverse) {
- var self = this;
- arr.sort(function(a, b) {
- if (a.ext == b.ext) {
- var helpArr = [a, b];
- self.sortByName(helpArr, false);
- return helpArr[0].name == a.name ? -1 : 1;
- } else {
- return a.ext < b.ext ? -1 : 1;
- }
- });
- return reverse ? arr.reverse() : arr;
- },
-
- sortBySize: function(arr, reverse) {
- var self = this;
- arr.sort(function(a, b) {
- if (a.size == b.size) {
- var helpArr = [a, b];
- self.sortByName(helpArr, false);
- return helpArr[0].name == a.name ? -1 : 1;
- } else {
- return a.size > b.size;
- }
- });
- if (reverse) {
- arr.reverse();
- }
- },
-
- // Return the absolute path of a file / directory
- abspath: function(name) {
- var path = this.FileBase.instance.state.get("path");
- var len = path.length;
- if (name.substr(0, len) == path) {
- return name;
- } else {
- return (path + "/" + name).replace(/\/{2,}/g, "/");
- }
- },
-
- // Get the filename from a full path (abspath = absolute path)
- filenameFromPath: function(abspath) {
- var index = abspath.lastIndexOf("/");
- index = index < 0 ? 0 : index;
- return abspath.slice(index + 1);
- },
-
- pathFromAbsPath: function(abspath) {
- var parts = abspath.split("/");
- parts.pop();
- return parts.join("/");
- },
-
- splitPath: function(abspath) {
- var parts = abspath.split("/");
- if (abspath === "/") parts = [""];
- parts[0] = "/" + parts[0];
- var pathList = [];
- $.each(parts, function(idx, part) {
- pathList.push({
- "pathPart": part
- });
- });
- return pathList;
- },
-
- // Helper function for getting the extension name
- strExtension: function(s) {
- if (s === undefined || s === null) {
- return;
- }
- var parts = s.split("/");
- if (!parts.length) {
- return null;
- }
- s = parts.pop();
-
- parts = s.split(".");
- if (parts.length < 2) {
- return null;
- }
- return parts.pop();
- },
-
- // Converts the mtime into a human readable format
- convertTimestamp: function(mtime) {
- var timestamp = new Date(parseInt(mtime, 10) * 1000);
- //var newTime = timestamp.toLocaleString();
- var newTime = timestamp.toString();
- // return newTime.substr(0, newTime.length - 18);
- return newTime.substr(0, 21);
- },
-
- // Helper function converting the size in a human readable format
- // Returns an object with a float size and a string sizeSuffix
- convertSize: function(size, sizeSuffix) {
- if (size < 1000) {
- sizeSuffix = " B";
- if (!isNaN(size) && isFinite(size)) {
- size = parseFloat(size).toFixed(0);
- }
- } else if (size >= 1000 && size < 1000000) {
- if (!isNaN(size) && isFinite(size)) {
- size = parseFloat(size / 1000).toFixed(2);
- }
- sizeSuffix = " kB";
- } else if (size >= 1000000 && size < 1000000000) {
- if (!isNaN(size) && isFinite(size)) {
- size = parseFloat(size / 1000000).toFixed(2);
- }
- sizeSuffix = " MB";
- } else if (size >= 1000000000 && size < 1000000000000) {
- if (!isNaN(size) && isFinite(size)) {
- size = parseFloat(size / 1000000000).toFixed(2);
- }
- sizeSuffix = " GB";
- }
- return {
- "size": size,
- "sizeSuffix": sizeSuffix
- };
- },
-
- // checks if the file ending is in a list of files which can be shown in
- // a browser
- // TODO: Duplicate of the remote function isbrowserfile.
- // => Remove the remote file
- isBrowserFile: function(path) {
- var ext = this.strExtension(path);
- return $.inArray(ext, this.browserExtensions);
- },
-
- makeIDfromPath: function(path) {
- return this.FileBase.instance.id + "-" + btoa(path).replace(/\=/g, "");
- }
-
- });
-
- return FileBaseHelper;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/items.js b/vispa/extensions/file/static/js/base/items.js
deleted file mode 100755
index 7cab09a66afdb2a73366d613c050cc6aa2a49d97..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/items.js
+++ /dev/null
@@ -1,292 +0,0 @@
-define([
- "jquery",
- "jclass",
- "vispa/vue/menu",
-], function (
- $,
- JClass,
- Menu
-) {
-
- var FileBaseMenuItems = JClass._extend({
- init: function (FileBase) {
- this.FileBase = FileBase;
- this.actions = FileBase.actions;
- this.menu = null;
- this.position = {};
- this.nullPosition = {
- x: 0,
- y: 36
- };
- },
-
- makeMenu: function () {
- var self = this;
- this.menu = new Menu.headless({
- data: {
- type: "b",
- items: {
- openFile: {
- label: "Open File",
- iconClass: "fa-file",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f"]) == -1;
- },
- callback: self.FileBase.actions.openFile.bind(self.FileBase.actions),
- position: 0
- },
- openFileWith: {
- label: "Open File With",
- iconClass: "fa-file",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f"]) == -1;
- },
- items: [],
- position: 1
- },
- openFolder: {
- label: "Open Folder",
- iconClass: "fa-folder-open",
- hidden: function () {
- return $.inArray(this.$parent.type, ["d"]) == -1;
- },
- callback: self.FileBase.actions.openFolder.bind(self.FileBase.actions),
- position: 2
- },
- openFolderInNewTab: {
- label: "Open Folder in new Tab",
- iconClass: "fa-folder-open",
- hidden: function () {
- return $.inArray(this.$parent.type, ["d"]) == -1;
- },
- callback: self.FileBase.actions.openFolderInNewTab.bind(self.FileBase.actions),
- position: 3
- },
- rename: {
- label: "Rename",
- iconClass: "fa-pencil",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d"]) == -1;
- },
- callback: self.FileBase.actions.rename.bind(self.FileBase.actions),
- position: 4
- },
- copy: {
- label: "Copy",
- iconClass: "fa-files-o",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.copy.bind(self.FileBase.actions),
- position: 5
- },
- cut: {
- label: "Cut",
- iconClass: "fa-scissors",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.cut.bind(self.FileBase.actions),
- position: 6
- },
- remove: {
- label: "Remove",
- iconClass: "fa-remove",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.remove.bind(self.FileBase.actions),
- position: 7
- },
- download: {
- label: "Download",
- iconClass: "fa-download",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.download.bind(self.FileBase.actions),
- position: 8
- },
- compress: {
- label: "Compress",
- iconClass: "fa-compress",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.compress.bind(self.FileBase.actions),
- position: 9
- },
- createFolder: {
- label: "New Folder",
- iconClass: "fa-folder",
- hidden: function () {
- return $.inArray(this.$parent.type, ["b"]) == -1;
- },
- callback: self.FileBase.actions.createFolder.bind(self.FileBase.actions),
- position: 10
- },
- createFile: {
- label: "New File",
- iconClass: "fa-file",
- hidden: function () {
- return $.inArray(this.$parent.type, ["b"]) == -1;
- },
- callback: self.FileBase.actions.createFile.bind(self.FileBase.actions),
- position: 11
- },
- upload: {
- label: "Upload",
- iconClass: "fa-upload",
- hidden: function () {
- return $.inArray(this.$parent.type, ["b"]) == -1;
- },
- callback: self.FileBase.actions.upload.bind(self.FileBase.actions),
- position: 12
- },
- divider: {
- divider: true,
- hidden: function () {
- return (this.$parent.type == "b") && !$.cookie("vispaFile");
- },
- position: 13,
- },
- paste: {
- label: "Paste",
- iconClass: "fa-share-alt",
- hidden: function () {
- return ($.inArray(this.$parent.type, ["b"]) == -1) || !$.cookie("vispaFile");
- },
- callback: self.FileBase.actions.paste.bind(self.FileBase.actions),
- position: 14
- },
- info: {
- label: "Info",
- iconClass: "fa-info",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d", "s"]) == -1;
- },
- callback: self.FileBase.actions.info.bind(self.FileBase.actions),
- position: 15
- },
- showACL: {
- label: "Show ACL",
- iconClass: "fa-search",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d"]) == -1;
- },
- callback: self.FileBase.actions.showACL.bind(self.FileBase.actions),
- position: 16
- },
- setACLEntry: {
- label: "Set ACL entry",
- iconClass: "fa-wrench",
- hidden: function () {
- return $.inArray(this.$parent.type, ["f", "d"]) == -1;
- },
- callback: self.FileBase.actions.setACLEntry.bind(self.FileBase.actions),
- position: 17
- },
- }
- },
- methods: {
- updateHandlers: function () {
- if (this.type == "f") {
- var path = $(self.FileBase.selections.lastSelectedNode).data().data.name
- path = self.FileBase.helper.abspath(path)
- this.items.openFileWith.items = vispa.fileHandler.getFileHandlers(path);
- }
- }
- },
- attached: function() {
- $(this.$el).on("click.file", function () {
- self.hideMenu();
- });
- },
- detached: function() {
- $(this.$el).off("click.file");
- },
- });
- this.menu.view = this.FileBase.instance;
- this.menu.$mount();
- },
-
- getMenuType: function () {
- var nNodesSelected = Object.keys(this.FileBase.selections.entries).length;
- if (nNodesSelected === 0) {
- return "b";
- }
- if (nNodesSelected == 1) {
- return $(this.FileBase.selections.lastSelectedNode).data().data.type;
- }
- return "s";
- },
-
- isShown: function () {
- return this.FileBase.view.fileContentContainer.hasClass("open");
- },
-
- // This is not a pure event because it can be triggered by all right clicks or holds.
- // MenuType can be "f" (file), "d" (directory), "b" (background), "s" (selection)
- showMenu: function (event, menuType, position) {
- var self = this;
- event.preventDefault();
- this.menu.$appendTo(this.FileBase.view.fileContentContainer[0]);
- this.menu.type = menuType ? menuType : this.getMenuType();
- this.menu.updateHandlers();
- // put on next tick for vue.js
- vispa.nextTick(function () {
- this.FileBase.view.fileContentContainer.addClass("open");
- if ($(window).height() < 300 || $(window).width() < 768) {
- position = this.nullPosition;
- }
- position = position ? position : self.getContextMenuPostion(event, $(this.menu.$el));
- this.position = position;
- $(this.menu.$el).css({
- left: position.x,
- top: position.y
- });
- }.bind(this));
- },
-
- hideMenu: function () {
- this.FileBase.view.fileContentContainer.removeClass("open");
- this.menu.$remove();
- },
-
- getContextMenuPostion: function (event, contextMenu) {
-
- var menuPostion = {};
- var menuDimension = {};
- // store the fileContentContainer fCC
- var fCC = this.FileBase.view.fileContentContainer;
- var offset = fCC.offset();
-
- menuDimension.x = contextMenu.outerWidth();
- menuDimension.y = contextMenu.outerHeight();
-
- menuPostion.x = 2 * event.clientX - event.pageX - offset.left;
- menuPostion.y = event.clientY - offset.top;
-
- if (vispa.device.hasTouch) {
- menuPostion.x += 5;
- menuPostion.y += 5;
- }
-
- // Check if the side borders are reached
- //(additional 5 px in the shift are needed to prevent firefox from opening scroll bars)
- if (menuPostion.x + menuDimension.x > fCC.width()) {
- menuPostion.x = fCC.width() - menuDimension.x - 5;
- }
-
- // Check if the lower border is reached
- //(additional 5 px in the shift are needed to prevent firefox from opening scroll bars)
- if (menuPostion.y + menuDimension.y > fCC.height()) {
- menuPostion.y = fCC.height() - menuDimension.y - 5;
- }
-
- return menuPostion;
- },
- });
-
- return FileBaseMenuItems;
-});
diff --git a/vispa/extensions/file/static/js/base/pathbar.js b/vispa/extensions/file/static/js/base/pathbar.js
deleted file mode 100755
index f0113c8353cf300fb5a0c701b7d708a32f5d11b0..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/pathbar.js
+++ /dev/null
@@ -1,114 +0,0 @@
-define([
- "jquery",
- "jclass",
- "./bookmark",
- "text!../../html/pathbar.html",
-], function (
- $,
- JClass,
- Bookmark,
- PathbarTmpl
-) {
-
- var PathBar = JClass._extend({
-
- init: function (FileBase) {
- var self = this;
- self.FileBase = FileBase;
- self.instance = FileBase.instance;
- this.actions = FileBase.actions;
- this.selections = FileBase.selections;
- this.bookmark = new Bookmark(this);
- this.node = null;
- },
-
- setup: function (node) {
- var self = this;
- this.node = node;
- // get template
- self.filePathBar = $(PathbarTmpl);
- self.optionWheel();
- self.render();
- },
-
- render: function () {
- var self = this;
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
- // get extended path
- var path = self.FileBase.instance.state.get("path");
- self.FileBase.instance.GET("/ajax/fs/expand", {
- "path": JSON.stringify(path)
- }, function (err, data) {
- if (err) return;
- // build links to pathParts
- if (data.substr(-1) === "/") data = data.substring(0, data.length - 1);
- var pathParts = self.FileBase.helper.splitPath(data);
- var pathPartsLinks = [];
- var item = "";
- $.each(pathParts, function (idx, part) {
- if (idx === 0) {
- item = "/";
- } else {
- item = item + "/" + part.pathPart;
- }
- item = item.replace(/\/{2,}/g, "/");
- pathPartsLinks.push({
- "pathPart": part.pathPart,
- "pathPartLink": item
- });
- });
- var directive = {
- "pathPart": {
- "href": function () {
- return this.pathPartLink;
- }
- }
- };
- // render
- self.filePathBar.find(".path-list").render(pathPartsLinks, directive);
- var pathList = $(".path-list", self.filePathBar);
- // replace first path element by glyphicon hdd
- $("a:first-child", pathList).html(" ");
- // remove active class from other path elements
- $("a", pathList).toggleClass("active", false);
- // set last path element to active
- $("a:last-child", pathList).toggleClass("active", true);
- self.node.append(self.filePathBar);
- // make path elements clickable
- $("a", pathList).on(clicktype, function (event) {
- event.preventDefault();
- var newPath = $(this).attr("href");
- if (newPath != data) {
- self.FileBase.instance.state.set("path", newPath);
- }
- self.FileBase.updateView();
- });
- // bookmarks
- self.bookmark.setup(self.node);
- });
- },
-
- optionWheel: function () {
- var self = this;
- var clicktype = vispa.device.hasTouch ? "tap" : "click";
- var options = $(".options", this.filePathBar);
- // when clicking on option gearwheel, show or hide menu entries depending selectiond nodes
- $(".dropdown-toggle", options).on(clicktype, function (event) {
- var position = self.FileBase.menuitems.nullPosition;
- if (self.FileBase.menuitems.isShown() &&
- self.FileBase.menuitems.position.x == position.x &&
- self.FileBase.menuitems.position.y == position.y) {
- self.FileBase.menuitems.hideMenu();
- } else {
- self.FileBase.menuitems.showMenu(event, null, position);
- // stop propagation and close all other dropdowns manuelly
- event.stopPropagation();
- $(".open").not(self.FileBase.view.fileContentContainer).toggleClass("open");
- }
- });
- }
-
- });
-
- return PathBar;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/selections.js b/vispa/extensions/file/static/js/base/selections.js
deleted file mode 100755
index c816fa8979f39ffe8be07f9f2bc1c1ccbbe8e356..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/selections.js
+++ /dev/null
@@ -1,178 +0,0 @@
-define(["jquery", "jclass"], function($, JClass) {
-
- var FileBaseSelections = JClass._extend({
- init: function(FileBase) {
- this.FileBase = FileBase;
- this.entries = {};
- this.lastSelectedNode = null;
- },
-
- unselectAll: function() {
- // unselect select all box
- var selectAllBox = $(".select-all");
- if (selectAllBox.is(":checked")) {
- selectAllBox.removeAttr("checked");
- }
- // unselect nodes
- $.each(this.entries, function(key, node) {
- $(".file-selection-checkbox", node).removeAttr("checked");
- $(node).removeAttr("selected");
- });
- this.entries = {};
- this.lastSelectedNode = null;
- if (this.FileBase.instance.prefs.get("Open") == "double" && !vispa.device.hasTouch) {
- $(".file-selection-box").css("visibility", "hidden");
- }
- this.FileBase.view.changeToolsAppearance();
- },
-
- selectAll: function() {
- var nodes = $(".file-node", this.FileBase.view.fileContentContainer);
- for (var i = 0; i < nodes.length; i++) {
- var node = $(nodes[i]);
- this.changeSelection(node, true);
- }
- this.FileBase.view.changeToolsAppearance();
- },
-
- unselect: function(path) {
- // uncheck select-all box
- var selectAllBox = $(".select-all");
- selectAllBox.removeAttr("checked");
- // unselect nodes
- delete this.entries[path];
- if ($.isEmptyObject(this.entries) && !vispa.device.hasTouch &&
- this.FileBase.instance.prefs.get("Open") == "double") {
- $(".file-selection-box").css("visibility", "hidden");
- }
- },
-
- addSelection: function(path, node) {
- this.lastSelectedNode = node;
- if (this.entries[path]) {
- return;
- } else {
- this.entries[path] = node;
- }
- $(".file-selection-box").css("visibility", "visible");
- },
-
- changeSelection: function(node, changecss) {
- var self = this;
- changecss = changecss === undefined ? false : changecss;
- var selectp = $(".file-selection-p", node);
- var selectbox = $(":checkbox", selectp);
- var data = node.data("data");
- if (!changecss) {
- // The checked attribute is set before
- if (selectbox.is(":checked")) {
- self.FileBase.selections.addSelection(
- self.FileBase.helper.abspath(data.name), node);
- node.attr("selected", true);
- } else {
- self.FileBase.selections.unselect(
- self.FileBase.helper.abspath(data.name));
- node.removeAttr("selected");
- }
- } else {
- if (selectbox.is(":checked")) {
- selectbox.removeAttr("checked");
- node.removeAttr("selected");
- self.FileBase.selections.unselect(
- self.FileBase.helper.abspath(data.name));
- } else {
- selectbox.prop("checked", true);
- node.attr("selected", true);
- self.FileBase.selections.addSelection(
- self.FileBase.helper.abspath(data.name), node);
- }
- }
- },
-
- checkIfAllSelected: function() {
- var nodes = $(".file-node", this.FileBase.view.fileContentContainer);
- var allSelected = true;
- // check all nodes, if they are selected
- for (var i = 0; i < nodes.length; i++) {
- var node = $(nodes[i]);
- var selectp = $(".file-selection-p", node);
- var selectbox = $(":checkbox", selectp);
- if (!selectbox.is(":checked")) {
- allSelected = false;
- break;
- }
- }
- if (allSelected === true) {
- // set select all checkbox to checked
- var selectAllBox = $(".select-all");
- selectAllBox.attr("checked", true);
- selectAllBox.prop("checked", true);
- }
-
- },
-
- selectNextNode: function() {
- this.selectArbitNode(1);
- },
-
- selectPrevNode: function() {
- this.selectArbitNode(-1);
- },
-
- selectArbitNode: function(number) {
- var selectNode = null;
- var offsetSelected = null;
- var y = 0;
- var lastSelectedNode = this.lastSelectedNode;
- var contentContainer = $(".file-list", this.FileBase.view.fileContentContainer);
- var offsetMain = this.FileBase.view.fileContentContainer.offset().top;
- if (lastSelectedNode === null || number === 0) {
- selectNode = contentContainer.children().first();
- } else {
- if (number >= 1) {
- selectNode = $(lastSelectedNode.nextAll()[number - 1]);
- selectNode = selectNode.length === 0 ? $(lastSelectedNode.parent().children().last()) :
- selectNode;
- // Make the page go down if element is not inside view
- offsetSelected = $(selectNode[0]).offset().top;
- if (offsetSelected + 20 > contentContainer.height() + offsetMain) {
- selectNode[0].scrollIntoView(false);
- var marginBottom = $(selectNode[0]).css("margin-bottom");
- if (marginBottom) {
- y = $(window).scrollTop();
- contentContainer.animate({
- scrollTop: "+=" + marginBottom + "px"
- }, 0);
- }
- }
- } else {
- selectNode = $(lastSelectedNode.prevAll()[Math.abs(number) - 1]);
- selectNode = selectNode.length === 0 ? $(lastSelectedNode.parent().children().first()) :
- selectNode;
- // Make the page go down if element is not inside view
- // selectNode[0].scrollIntoView(true);
- offsetSelected = $(selectNode[0]).offset().top;
- if (offsetSelected - 20 < offsetMain) {
- selectNode[0].scrollIntoView(true);
- var marginTop = $(selectNode[0]).css("margin-top");
- if (marginTop) {
- y = $(window).scrollTop();
- contentContainer.animate({
- scrollTop: "-=" + marginTop + "px"
- }, 0);
- }
- }
- }
- }
- if (selectNode.length === 0) {
- return;
- }
- if (!this.FileBase.workflow.selectmode && !this.FileBase.workflow.selectmodeMultiple) {
- this.unselectAll();
- }
- this.changeSelection(selectNode, true);
- }
- });
-
- return FileBaseSelections;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/sort.js b/vispa/extensions/file/static/js/base/sort.js
deleted file mode 100755
index 449dfaf3be6668847b6035d7e456e150206a0741..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/sort.js
+++ /dev/null
@@ -1,44 +0,0 @@
-define(["jquery", "jclass"], function($, JClass) {
-
- var FileBaseSorting = JClass._extend({
-
- init: function(FileBase) {
- this.FileBase = FileBase;
- },
-
- toggleSortButtons: function(type, reverse) {
- type = type === undefined ? this.FileBase.workflow.sort : type;
- reverse = reverse === undefined ? this.FileBase.workflow.reverse : reverse;
- $.each(this.FileBase.instance.menu.items.Sort.items, function (key, item) {
- var iconBase = item.iconClass.split("-")
- iconBase.pop()
- iconBase = iconBase.join("-")
- if (key == type) {
- item.iconClass = iconBase + (reverse ? "-desc" : "-asc")
- } else {
- item.iconClass = iconBase + "-asc"
- }
- });
- },
-
- changeSort: function(type) {
- this.wf = this.FileBase.workflow;
- type = type === undefined ? "name" : type;
- if (this.wf.sort != type) {
- this.wf.reverse = false;
- this.toggleSortButtons(type, false);
- } else {
- this.wf.reverse = !this.wf.reverse;
- this.toggleSortButtons(type, this.wf.reverse);
- }
- this.wf.sort = type;
- this.FileBase.helper.sortItems(this.wf.data, this.wf.sort, this.wf.reverse);
- this.FileBase.view.reorder();
- if (this.FileBase.workflow.currentView.toggleSortCarets !== undefined) {
- this.FileBase.workflow.currentView.toggleSortCarets();
- }
- }
- });
-
- return FileBaseSorting;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/view.js b/vispa/extensions/file/static/js/base/view.js
deleted file mode 100755
index 8978817f4f6f1fdf04bb986f41c96a292d3892dd..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/view.js
+++ /dev/null
@@ -1,298 +0,0 @@
-define([
- "jquery",
- "jclass",
- "text!../../html/main.html",
- "text!../../html/filter.html"
-], function(
- $,
- JClass,
- MainTmpl,
- FilterTmpl
-) {
-
- var FileBaseView = JClass._extend({
- init: function(FileBase) {
- var self = this;
- this.FileBase = FileBase;
- this.instance = FileBase.instance;
- this.fileContentContainer = null;
- this.filterField = null;
- this.previewBoxID = null;
-
- // directives for rendering, needed for all views
- this.directives = {
- "icon": {
- "class": function() {
- return self.setupSymbols(this.name, this.type, this.symlink);
- }
- },
- // pseudo attribute to set the data to the node
- "data": {
- "data": function(nodeObj) {
- var node = $(nodeObj.element);
- //node.css("order", nodeObj.index);
- node.data("data", this);
- },
- // set the events that can happen when a click on the node occurs
- "action": function(nodeObj) {
- self.FileBase.events.setupNodeEvents(nodeObj);
- },
- // set opacity if cutted
- "opacity": function(nodeObj) {
- var cookie = $.cookie("vispaFile");
- if (cookie === undefined || cookie === null) {
- return;
- }
- var src = JSON.parse(cookie);
- if (!src.fileRemove) {
- return;
- }
- var paths = src.fileEntries;
- var path = self.FileBase.instance.state.get("path") + "/" + this.name;
- self.instance.GET("/ajax/fs/expand", {
- "path": JSON.stringify("$HOME")
- }, function(err, data) {
- if (err) return;
- path = path.replace("$HOME", data);
- var i;
- for (i = 0; i < paths.length; i++) {
- paths[i] = paths[i].replace("$HOME", data);
- }
- if ($.inArray(path, paths) !== -1) {
- $(nodeObj.element).css("opacity", "0.4");
- }
- });
- },
- // insert filename as tooltip
- "title": function() {
- return this.name;
- }
- },
- // convert timestamp to dd.mm.jjjj hh:mm:ss
- "mtime": {
- "text": function() {
- return self.FileBase.helper.convertTimestamp(this.mtime);
- }
- },
- // convert size from bytes to kB, Mb, etc
- "size": {
- "text": function() {
- // do not show folder size
- if (this.type == "d") {
- return "";
- }
- return self.FileBase.helper.convertSize(this.size).size;
- }
- },
- "sizeSuffix": {
- "text": function() {
- // do not show fodler size
- if (this.type == "d") {
- return "";
- }
- return self.FileBase.helper.convertSize(this.size).sizeSuffix;
- }
- }
- };
- },
-
- setMainContainer: function(node) {
- var self = this;
- self.node = node;
-
- // append main template to the maindiv
- self.fileContentContainer = $(MainTmpl).appendTo(node);
- self.FileBase.events.setupBkgEvents(self.fileContentContainer);
-
- // make the context menu
- self.FileBase.menuitems.makeMenu();
-
- // default view
- self.FileBase.changeView(self.FileBase.workflow.currentView);
-
- // filter
- self.filterField = $(FilterTmpl);
- },
-
-
-
- // Helper function for setting the symbol
- setupSymbols: function(name, type, symlink) {
- var self = this;
- var iconPrefix = "fi fi-";
- var src = null;
- var availableIcons = ["bmp", "c", "cc", "conf", "cpp", "csh", "css", "eps", "f", "f03",
- "f90", "f95", "F", "F03", "F90", "F95", "gif", "h", "html", "ico", "ini", "jade",
- "jpeg", "jpg", "js", "less", "lnk", "log", "m", "mako", "pdf", "png", "ps", "pxlio",
- "py", "pyc", "r", "rar", "raw", "root", "sh", "svg", "tar", "tar.gz", "tex", "tif",
- "tiff", "txt", "xml", "yaml", "yml", "zip"
- ];
- // return null;
- if (symlink && type === "f") {
- src = iconPrefix + "default-symlink";
- } else if (symlink && type === "d") {
- src = iconPrefix + "folder-symlink";
- } else if (type === "d") {
- src = iconPrefix + "folder";
- } else {
- // to do: fortran and targz
- var extension = (self.FileBase.helper.strExtension(name) || "").toLowerCase();
- var extensionCapital = (self.FileBase.helper.strExtension(name) || "");
- if (availableIcons.indexOf(extension) >= 0) {
- src = iconPrefix + extension;
- // take correct icon for precompiled fortran files
- var fortranPreCompiled = ["F", "F03", "F90", "F95"];
- if (fortranPreCompiled.indexOf(extensionCapital) >= 0) {
- src = iconPrefix + extensionCapital;
- }
- } else {
- src = iconPrefix + "default-alt";
- }
- // take correct icon for targz
- if (extension === "gz") {
- src = iconPrefix + "targz";
- }
- }
- return src;
- },
-
-
- // toggleViewMenu: function(preView, newView) {
- toggleViewMenu: function() {
- var ids = ["Table", "Symbol"];
- var view = this.FileBase.workflow.currentView.type;
- var idx = ids.indexOf(view);
- if (~idx) {
- ids.splice(idx, 1);
- }
- try {
- this.FileBase.instance.toggleMenuEntry(view, false);
- ids.forEach(function(view) {
- this.FileBase.instance.toggleMenuEntry(view, true);
- }, this);
- } catch (err) {}
- },
-
- toggleFilter: function(toggleOff) {
- toggleOff = toggleOff === undefined ? false : toggleOff;
- var display = this.filterField.css("visibility");
- var input = $("input", this.filterField);
- if (display === "visible" || toggleOff) {
- this.filterField.css({
- "visibility": "hidden"
- });
- input.value = "";
- input.blur();
- this.filterField.remove();
- } else {
- this.node.append(this.filterField);
- this.filterField.css({
- "visibility": "visible"
- });
- input.focus();
- this.FileBase.actions.filter();
- }
- },
-
- reorder: function() {
- var self = this;
- var parentNode = $(".file-list", self.fileContentContainer);
- var nodes = $(".file-node", self.fileContentContainer);
- var filelist = self.FileBase.workflow.data.filelist;
- var len = nodes.length;
- var nodeNameMap = {};
- var j;
- for (j = 0; j < len; j++) {
- nodeNameMap[$(nodes[j]).data().data.name] = nodes[j];
- }
- nodes.detach();
- var name;
- var i;
- for (i = 0; i < len; i++) {
- name = filelist[i].name;
- parentNode.append(nodeNameMap[name]);
- }
- // reorder gallery
- var galleryFilesMap = {};
- var galleryFilesList = [];
- $.each(self.FileBase.workflow.galleryFiles, function (index, item) {
- galleryFilesMap[item.title] = item
- });
- $.each(filelist, function (index, item) {
- if (galleryFilesMap[item.name]) galleryFilesList.push(galleryFilesMap[item.name])
- });
- self.FileBase.workflow.galleryFiles = galleryFilesList;
- },
-
- reactOnChange: function(data) {
- //noinspection JSUnresolvedVariable
- var changeSize = data.subject_infos.length;
- var change = {};
- var newNodes = [];
- var i;
- for (i = 0; i < changeSize; i++) {
- //noinspection JSUnresolvedVariable
- change = data.subject_infos[i];
- if (change.mtime !== undefined) {
- newNodes.push(change);
- } else {
- this.removeNode(change.name);
- this.FileBase.selections.lastSelectedNode = null;
- }
- }
- if (newNodes.length) {
- this.addNodes(newNodes);
- }
- },
-
- removeNode: function(name) {
- var self = this;
- var nodes = $(".file-node", self.fileContentContainer);
- var i;
- for (i = 0; i < nodes.length; i++) {
- if ($(nodes[i]).data().data.name === name) {
- $(nodes[i]).remove();
- self.FileBase.workflow.data.filelist.splice(i, 1);
- break;
- }
- }
- $.each(self.FileBase.workflow.galleryFiles, function (index, item) {
- if (item.title == name) {
- self.FileBase.workflow.galleryFiles.splice(index, 1);
- return false;
- }
- });
- },
-
- addNodes: function(data) {
- this.wf = this.FileBase.workflow;
- var container = $(".file-node", this.FileBase.workflow.currentView.template);
- var docFragment = document.createDocumentFragment();
- $(docFragment).append(container);
- $(docFragment).render(data, this.directives);
- $(".file-list", this.fileContentContainer).append(docFragment);
- this.wf.data.filelist.push.apply(this.wf.data.filelist, data);
- this.FileBase.helper.sortItems(this.wf.data, this.wf.sort, this.wf.reverse);
- this.reorder();
- },
-
- changeToolsAppearance: function() {
- var nNodesSelected = Object.keys(this.FileBase.selections.entries).length;
- var fileList = $(".file-list", this.fileContentContainer);
- if (nNodesSelected > 1) {
- fileList.toggleClass("gear-wheel-disable", true);
- fileList.toggleClass("edit-tools-hidden", true);
- } else {
- if (vispa.device.hasTouch) {
- fileList.toggleClass("edit-tools-hidden", true);
- } else {
- fileList.toggleClass("edit-tools-hidden", false);
- }
- fileList.toggleClass("gear-wheel-disable", false);
- }
- }
-
- });
-
- return FileBaseView;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/base/views/symbol.js b/vispa/extensions/file/static/js/base/views/symbol.js
deleted file mode 100755
index 79594eef617a36ec53dafffcc135bb7c2c601664..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/views/symbol.js
+++ /dev/null
@@ -1,74 +0,0 @@
-define([
- "jquery",
- "jclass",
- "text!../../../html/symbol.html"
-], function(
- $,
- JClass,
- SymbolTmpl
-) {
-
- var SymbolView = JClass._extend({
- init: function(FileBase) {
- this.FileBase = FileBase;
- this.instance = FileBase.instance;
- this.type = "Symbol";
- this.fileContentContainer = FileBase.view.fileContentContainer;
- },
-
- render: function() {
- var self = this;
- self.template = SymbolTmpl;
- if (self.FileBase.workflow.data === null) {
- self.FileBase.updateView();
- } else {
- self.FileBase.refresh(self.FileBase.workflow.data);
- }
- },
-
- setContent: function(data) {
- var self = this;
- this.data = data;
-
- // Get the container, empty it and fill the template
- this.fileContentContainer.html(self.template);
-
- // setup background drag&drop
- self.FileBase.events.dragAndDropBkg(self.fileContentContainer);
-
- //noinspection JSUnresolvedVariable,JSLint
- if (vispa.device.hasTouch) {
- $(".file-properties").css("visibility", "visible");
- }
-
- // Set the right path
- this.FileBase.workflow.parentpath = data.parentpath;
-
- // render the content, first empty gallery files
- this.FileBase.workflow.galleryFiles = [];
- $(".file-view-symbol", this.fileContentContainer)
- .render(data.filelist, this.FileBase.view.directives);
-
- // set icon size
- self.setIconSize();
-
- $(".symbol-name", this.fileContentContainer).ellipsis2({
- row: 2,
- position: "middle"
- // onlyFullWords: true
- });
- },
-
- setIconSize: function() {
- "use strict";
- var iconSize = this.FileBase.instance.prefs.get("IconSize");
- var container = $(".file-view-symbol", this.fileContentContainer);
- ["tiny", "small", "medium", "large"].forEach(function(size) {
- container.toggleClass("icon-" + size, size === iconSize);
- });
- }
-
- });
-
- return SymbolView;
-});
diff --git a/vispa/extensions/file/static/js/base/views/table.js b/vispa/extensions/file/static/js/base/views/table.js
deleted file mode 100755
index b705412c859b18b0521b172a7b16db027e534550..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/base/views/table.js
+++ /dev/null
@@ -1,253 +0,0 @@
-define([
- "jquery",
- "jclass",
- "text!../../../html/table.html"
-], function(
- $,
- JClass,
- TableTmpl
-) {
-
- var TableView = JClass._extend({
- init: function(FileBase) {
- "use strict";
- this.FileBase = FileBase;
- this.instance = FileBase.instance;
- this.type = "Table";
- this.fileContentContainer = FileBase.view.fileContentContainer;
- this.template = TableTmpl;
- },
-
- render: function() {
- "use strict";
- var self = this;
- // self.fileContentContainer.append(template);
- self.template = TableTmpl;
- if (self.FileBase.workflow.data === null) {
- self.FileBase.updateView();
- } else {
- self.FileBase.refresh(self.FileBase.workflow.data);
- }
- },
-
- setContent: function(data) {
- "use strict";
- var self = this;
- this.data = data;
-
- // Get the container, empty it and fill the template
- this.fileContentContainer.html(TableTmpl);
-
- // setup background drag&drop
- self.FileBase.events.dragAndDropBkg(self.fileContentContainer);
-
- // Set the right path
- this.FileBase.workflow.parentpath = data.parentpath;
-
- var fileList = $(".file-list", this.fileContentContainer);
-
- // render the content, first empty gallery files
- this.FileBase.workflow.galleryFiles = [];
- fileList.render(data.filelist,
- this.FileBase.view.directives);
-
- // set icon size
- self.setIconSize();
-
- // resize header of table, also when browser is resized
- self.resizeHeader();
- $(window).resize(function() {
- self.resizeHeader();
- });
-
- // make select-all-checkbox clickable
- $(".select-all", self.fileContentContainer).click(function(event) {
- // not intuitive but works
- if ($(event.target).prop("checked")) {
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.selectAll();
- $(event.target).prop("checked", "checked");
- } else {
- self.FileBase.selections.unselectAll();
- }
- });
-
- // call function for sorting carets
- var firstRowName = $(".name", ".file-table-head");
- firstRowName.click(function() {
- self.FileBase.sorting.changeSort("name");
- self.toggleSortCarets("name");
- });
-
- var firstRowLastChanged = $(".time", ".file-table-head");
- firstRowLastChanged.click(function() {
- self.FileBase.sorting.changeSort("time");
- self.toggleSortCarets("time");
- });
-
- var firstRowSize = $(".size", ".file-table-head");
- firstRowSize.click(function() {
- self.FileBase.sorting.changeSort("size");
- self.toggleSortCarets("size");
- });
-
- this.toggleSortCarets();
- },
-
- toggleSortCarets: function(type, reverse) {
- "use strict";
- type = type === undefined ? this.FileBase.workflow.sort : type;
- reverse = reverse === undefined ? this.FileBase.workflow.reverse : reverse;
- var sortGlyphicons = ["name", "time", "size"];
- var sortMenu = $(".file-table-head", this.FileBase.view.fileContentContainer);
- for (var i = 0; i < sortGlyphicons.length; i++) {
- var button = $("." + sortGlyphicons[i], sortMenu);
- var glyph = $("i.glyphicon", button);
- if (sortGlyphicons[i] != type) {
- glyph.removeClass("glyphicon-sort-by-alphabet glyphicon-sort-by-order");
- glyph.removeClass("glyphicon-sort-by-alphabet-alt glyphicon-sort-by-order-alt");
- glyph.addClass("glyphicon glyphicon-sort");
- } else {
- var glyphClass = sortGlyphicons[i] == "name" ? "glyphicon glyphicon-sort-by-alphabet" :
- "glyphicon glyphicon-sort-by-order";
- if (sortGlyphicons[i] == "time") {
- glyphClass = !reverse ? glyphClass + "-alt" : glyphClass;
- } else {
- glyphClass = reverse ? glyphClass + "-alt" : glyphClass;
- }
- glyph.removeClass("glyphicon-sort-by-alphabet-alt glyphicon-sort-by-order-alt");
- glyph.addClass(glyphClass);
- }
- }
- },
-
- setIconSize: function() {
- "use strict";
- var iconSize = this.FileBase.instance.prefs.get("IconSize");
- var $table = $(".file-view-table", this.fileContentContainer);
- ["tiny", "small", "medium", "large"].forEach(function(size) {
- $table.toggleClass("row-" + size, size == iconSize);
- });
- },
-
- resizeHeader: function() {
- "use strict";
- var $firstNode = $(".file-list .node:first-child", this.fileContentContainer);
- var nameColumnWidth = $(".name", $firstNode).width();
- var sumWidth = $firstNode.innerWidth();
- sumWidth = sumWidth == 100 ? "100%" : sumWidth;
- $(".file-table-head", this.fileContentContainer).css("width", sumWidth);
- $(".file-table-head .name", this.fileContentContainer).css("width", nameColumnWidth);
- },
-
- makeEditButtonsClickable: function(node) {
- "use strict";
- var self = this;
-
- // make edit buttons clickable, only when display is no touch display
- // increase checkboxes on touch displays
- if (vispa.device.hasTouch) {
- $(".file-view-table", node).toggleClass("select-touch", true);
- $(".file-list", node).toggleClass("edit-tools-hidden", true);
- } else {
- $(".edit-rename", node).click(function(event) {
- event.preventDefault();
- var node = $(event.currentTarget.parentElement.parentElement);
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- self.inlineRename(node);
- });
-
- $(".edit-download", node).click(function(event) {
- event.preventDefault();
- var node = $(event.currentTarget.parentElement.parentElement);
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- self.FileBase.actions.download();
- });
-
- // sharing not yet implemented
- $(".edit-share", node).click(function(event) {
- event.preventDefault();
- var node = $(event.currentTarget.parentElement.parentElement);
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- self.FileBase.instance.alert("Sharing not yet implemented.");
- });
-
- $(".edit-remove", node).click(function(event) {
- event.preventDefault();
- var node = $(event.currentTarget.parentElement.parentElement);
- self.FileBase.selections.unselectAll();
- self.FileBase.selections.changeSelection(node, true);
- self.FileBase.actions.remove();
- });
- }
- },
-
- inlineRename: function(node) {
- "use strict";
- var self = this;
- // stop drag and drop for better in line renaming
- node.removeAttr("draggable");
- // stop showing edit tools on hover
- $(".edit-tools", node).addClass("file-table-hidden");
-
- var replaceWith = $(" ");
- // set length of input field
- var nameColumnWidth = $(".name", node).innerWidth();
- var nameWidth = $(".completename", node).innerWidth() + 25;
- var standardInputWidth = 180;
- var inlineWidth = 180;
- if (nameWidth >= nameColumnWidth) {
- inlineWidth = "100%";
- } else {
- if (nameWidth < standardInputWidth) {
- inlineWidth = standardInputWidth;
- } else {
- inlineWidth = nameWidth;
- }
- }
- replaceWith.css("width", inlineWidth);
-
- // dump filename into rename input field, hide origin and show replace
- replaceWith.attr("value", node.data("data").name);
- replaceWith.attr("placeholder", node.data("data").name);
- var origin = $(".completename", node);
- origin.hide();
- origin.after(replaceWith);
- replaceWith.focus();
-
- // when clicking in input filed, do not open folder or file
- replaceWith.click(function(event) {
- event.stopPropagation();
- });
-
- // rename on blur
- replaceWith.blur(function() {
- var path = self.FileBase.instance.state.get("path");
- var name = node.data("data").name;
- var newName = replaceWith.val();
- // only rename when new filename not equal to original filename
- if (newName !== name && newName !== "") {
- self.FileBase.actions._rename(path, name, newName);
- }
- replaceWith.hide();
- origin.show();
- // enable drag and drop
- node.attr("draggable", "true");
- // show edit tools on hover
- $(".edit-tools", node).removeClass("file-table-hidden");
- });
- // rename when pressing enter
- replaceWith.keypress(function(event) {
- if (event.which == 13) {
- this.blur();
- }
- });
- }
-
- });
-
- return TableView;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/browser/browser.js b/vispa/extensions/file/static/js/browser/browser.js
deleted file mode 100755
index 585ad3dc7b00248b4115a601d1d5c5201b292360..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/browser/browser.js
+++ /dev/null
@@ -1,8 +0,0 @@
-define(["../base/base"], function(FileBase) {
-
- var FileBrowser = FileBase._extend({
- });
-
- return FileBrowser;
-});
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/extension.js b/vispa/extensions/file/static/js/extension.js
deleted file mode 100755
index 2157dde793de7c3b5205c89f2b7944fa6d798422..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/extension.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define([
- "vispa/extension",
- "./views",
- "css!../css/base/base",
- "css!../css/base/file-icons",
- "css!../css/base/pathbar",
- "css!../css/base/views/symbol/symbol",
- "css!../css/base/views/table/table"
-], function(Extension, FileViews) {
-
- var FileExtension = Extension._extend({
- init: function init() {
- init._super.call(this, "file", "File Explorer");
-
- this.mainMenuAdd([
- this.addView(FileViews.Browser),
- ]);
- this.addView(FileViews.Selector);
- this.addView(FileViews.Upload);
- }
- });
-
- return FileExtension;
-});
diff --git a/vispa/extensions/file/static/js/prefs.js b/vispa/extensions/file/static/js/prefs.js
deleted file mode 100755
index 9f3e6369c9ea30946b40dbeb6bd551ceae5ff5a6..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/prefs.js
+++ /dev/null
@@ -1,389 +0,0 @@
-define(["./base/views/symbol", "./base/views/table"], function(SymbolView, TableView) {
-
- var menu = {
- // "myIdKey": {
- // label: "My ID",
- // iconClass: "fa fa-info-sign",
- // buttonClass: "btn-primary",
- // childrenStyle: "group, split, basic"
- // callback: function() {
- // console.log(this);
- // this.alert("My ID is: " + this.getId());
- // },
- // },
- Home: {
- label: "Home",
- iconClass: "fa fa-home",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.state.set("path", this.$root.instance.prefs.get("OpenPath"));
- }
- },
- Up: {
- label: "Go up",
- iconClass: "fa fa-arrow-up",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.state.set("path", this.$root.instance.fb.workflow.parentpath);
- }
- },
- Views: {
- label: "Change View",
- iconClass: "fa fa-image",
- buttonClass: "btn-default",
- // unique: true,
- // multiple: false,
- // fastmenu: "dropdown",
- items: {
- Symbol: {
- label: "Symbol",
- iconClass: "fa fa-image",
- buttonClass: "btn-default",
- callback: function() {
- //noinspection JSLint
- this.$root.instance.fb.changeView(SymbolView);
- }
- },
- Table: {
- label: "Table",
- iconClass: "fa fa-list",
- buttonClass: "btn-default",
- callback: function() {
- //noinspection JSLint
- this.$root.instance.fb.changeView(TableView);
- }
- }
- }
- },
- Upload: {
- label: "Upload",
- iconClass: "fa fa-upload",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.fb.actions.upload();
- }
- },
- Refresh: {
- label: "Refresh",
- iconClass: "fa fa-repeat",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.fb.updateView();
- }
- },
- Sort: {
- label: "Sort",
- buttonClass: "btn-default",
- iconClass: "fa fa-sort",
- // unique: true,
- // multiple: false,
- // fastmenu: "dropdown",
- items: {
- name: {
- label: "Name",
- iconClass: "fa fa-sort-alpha-asc",
- buttonClass: "btn-default active",
- callback: function() {
- this.$root.instance.fb.sorting.changeSort("name");
- }
- },
- size: {
- label: "Size",
- iconClass: "fa fa-sort-amount-asc",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.fb.sorting.changeSort("size");
- }
- },
- time: {
- label: "Modified",
- iconClass: "fa fa-sort-numeric-asc",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.fb.sorting.changeSort("time");
- }
- },
- ext: {
- label: "Type",
- iconClass: "fa fa-sort-alpha-asc",
- buttonClass: "btn-default",
- callback: function() {
- this.$root.instance.fb.sorting.changeSort("ext");
- }
- }
- }
- }
- };
-
- var metaCtrl = function (key) {
- return "mac:meta+"+key+" ctrl+"+key;
- };
-
- var preferences = {
- View: {
- label: "Entries style",
- type: "string",
- value: "Table",
- description: "The defailt style of the file entries.",
- options: ["Symbol", "Table"],
- flat: true
- },
- OpenPath: {
- label: "Open path",
- type: "string",
- value: "$HOME",
- description: "The FileBrowser opens per default in this path."
- },
- IconSize: {
- label: "Icon Size",
- type: "string",
- value: "small",
- description: "The size of the icons (when symbols are shown)",
- options: ["tiny", "small", "medium", "large"],
- flat: true,
- },
- Open: {
- label: "Open files with",
- type: "string",
- value: "single",
- description: "Whether to open file with a single or double click.",
- options: ["single", "double"],
- flat: true,
- },
- ShowDeleteDialog: {
- label: "Ask for delete confirmation",
- type: "bool",
- value: true,
- description: "Wether the delete confirmation should be show."
- },
- // keys
- singleSelect: {
- label: "Start multiple selection",
- type: "shortcut",
- level: 2,
- value: "mac:null keydown:ctrl",
- callback: function() {
- this.fb.workflow.selectmode = true;
- }
- },
- abortSingleSelect: {
- label: "End multiple selection",
- type: "shortcut",
- level: 2,
- value: "mac:null keyup:ctrl",
- callback: function() {
- this.fb.workflow.selectmode = false;
- }
- },
- multipleSelect: {
- label: "Start cascading selection",
- type: "shortcut",
- level: 2,
- value: "keydown:shift",
- callback: function() {
- this.fb.workflow.selectmodeMultiple = true;
- }
- },
- abortMultipleSelect: {
- label: "End cascading selection",
- type: "shortcut",
- level: 2,
- value: "keyup:shift",
- callback: function() {
- this.fb.workflow.selectmodeMultiple = false;
- }
- },
- keyCopy: {
- label: "Copy",
- type: "shortcut",
- level: 2,
- value: metaCtrl("c"),
- callback: function() {
- this.fb.actions.copy();
- }
- },
- keyCut: {
- label: "Cut",
- type: "shortcut",
- level: 2,
- value: metaCtrl("x"),
- callback: function() {
- this.fb.actions.cut();
- }
- },
- keyPaste: {
- label: "Paste",
- type: "shortcut",
- level: 2,
- value: metaCtrl("v"),
- callback: function() {
- this.fb.actions.paste();
- }
- },
- keyDelete: {
- label: "Delete",
- type: "shortcut",
- level: 2,
- value: "mac:meta+backspace del",
- callback: function() {
- this.fb.actions.remove();
- }
- },
- keyRename: {
- label: "Rename",
- value: "mac:return F2",
- type: "shortcut",
- level: 2,
- callback: function() {
- this.fb.actions.rename();
- }
- },
- keyFocusLeft: {
- label: "Focus item to the left",
- type: "shortcut",
- level: 2,
- value: "left",
- callback: function() {
- this.fb.selections.selectPrevNode();
- }
- },
- keyFocusRight: {
- label: "Focus item to the right",
- type: "shortcut",
- level: 2,
- value: "right",
- callback: function() {
- this.fb.selections.selectNextNode();
- }
- },
- keyFocusUp: {
- label: "Focus item above",
- type: "shortcut",
- level: 2,
- value: "up",
- callback: function(event) {
- event.preventDefault();
- if (this.fb.workflow.currentView.type == "Table") {
- this.fb.selections.selectPrevNode();
- } else {
- var item = $(".file-node");
- // one pixel offset due to the border of the scroll area
- var widthContent = $(".file-list", this.fb.view.fileContentContainer)[0].scrollWidth - 1;
- var widthItem = item.width() + parseInt(item.css("marginLeft"), 10) + parseInt(item.css(
- "marginRight"), 10);
- var elementsPerRow = Math.floor(widthContent / widthItem);
- this.fb.selections.selectArbitNode(-elementsPerRow);
- }
- }
- },
- keyFocusDown: {
- label: "Focus item below",
- type: "shortcut",
- level: 2,
- value: "down",
- callback: function(event) {
- event.preventDefault();
- if (this.fb.workflow.currentView.type == "Table") {
- this.fb.selections.selectNextNode();
- } else {
- var item = $(".file-node");
- // one pixel offset due to the border of the scroll area
- var widthContent = $(".file-list", this.fb.view.fileContentContainer)[0].scrollWidth - 1;
- var widthItem = item.width() + parseInt(item.css("marginLeft"), 10) + parseInt(item.css(
- "marginRight"), 10);
- var elementsPerRow = Math.floor(widthContent / widthItem);
- this.fb.selections.selectArbitNode(elementsPerRow);
- }
- }
- },
- keyOpen: {
- label: "Open",
- type: "shortcut",
- level: 2,
- value: "mac:meta+o return",
- callback: function() {
- var selectedEntries = this.fb.selections.entries;
- var nEntries = Object.keys(selectedEntries).length;
- if (nEntries === 0 || nEntries > 1) {
- return;
- } else {
- var path = Object.keys(selectedEntries);
- var type = selectedEntries[path].data().data.type;
- if (type == "d") {
- this.fb.actions.openFolder();
- } else {
- this.fb.actions.openFile();
- }
- }
- }
- },
- keyParent: {
- label: "Navigate into parent folder",
- type: "shortcut",
- level: 2,
- value: "mac:meta+up backspace",
- callback: function() {
- this.state.set("path", this.fb.workflow.parentpath);
- }
- },
- keyRefresh: {
- label: "Reload the content of the current folder",
- type: "shortcut",
- level: 2,
- value: "mac:meta+r F5",
- callback: function() {
- this.fb.updateView();
- }
- },
- keyInfo: {
- label: "Open info dialog of context menu",
- type: "shortcut",
- level: 2,
- value: metaCtrl("i"),
- callback: function() {
- if (this.fb.selections.entries === null || this.fb.selections.entries === undefined ||
- Object.keys(this.fb.selections.entries).length === 0) {
- return;
- }
- this.fb.actions.info();
- }
- },
- keySelectAll: {
- label: "Select all files and folders",
- type: "shortcut",
- level: 2,
- value: metaCtrl("a"),
- callback: function() {
- this.fb.selections.selectAll();
- }
- },
- keyEscape: {
- label: "Close filter dialog, unselectAll",
- type: "shortcut",
- level: 2,
- value: "esc",
- callback: function() {
- this.fb.selections.unselectAll();
- this.fb.view.filterField.css({
- "visibility": "hidden"
- });
- }
- },
- keyFilter: {
- label: "Filter files in current view",
- type: "shortcut",
- level: 2,
- value: metaCtrl("f"),
- callback: function() {
- event.stopPropagation();
- this.fb.workflow.selectmode = false;
- this.fb.view.toggleFilter(false);
- }
- }
- };
-
- return {
- menu : menu,
- preferences: preferences,
- };
-});
diff --git a/vispa/extensions/file/static/js/selector/actions.js b/vispa/extensions/file/static/js/selector/actions.js
deleted file mode 100755
index b676c4dee0fa0d87f4878bf32d6d2216f2e4d268..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/selector/actions.js
+++ /dev/null
@@ -1,45 +0,0 @@
-define(["jquery", "../base/actions"], function($, FileBaseActions) {
-
- var FileSelectorActions = FileBaseActions._extend({
-
- // This is not really an open File method but a select file method
- openFile: function(data) {
- if (this.FileBase.instance.multimode) {
- return this;
- } else {
- this.select(data);
- }
- },
-
- select: function(data) {
- var self = this;
- var paths = null;
-
- if (typeof(data) == "string") {
- if (this.FileBase.instance.foldermode && $.isEmptyObject(this.FileBase.selections.entries)) {
- paths = [this.FileBase.instance.state.get("path")];
- } else {
- paths = [this.FileBase.helper.abspath(data)];
- }
- } else {
- if (this.FileBase.instance.foldermode && $.isEmptyObject(this.FileBase.selections.entries)) {
- paths = [this.FileBase.instance.state.get("path")];
- } else {
- paths = Object.keys(this.FileBase.selections.entries);
- }
- }
-
- if (this.FileBase.instance.multimode) {
- self.FileBase.instance.callback(paths, self.FileBase.instance.cb_args);
- } else {
- self.FileBase.instance.callback(paths[0], self.FileBase.instance.cb_args);
- }
- self.FileBase.instance.prefs.set("OpenPath", self.FileBase.instance.state.get("path"));
- self.FileBase.workflow.callbackFired = true;
- self.FileBase.instance.close();
- }
- });
-
- return FileSelectorActions;
-
-});
diff --git a/vispa/extensions/file/static/js/selector/items.js b/vispa/extensions/file/static/js/selector/items.js
deleted file mode 100755
index 2f7e501d9eb03350ca09b0e179135999fedb8d3e..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/selector/items.js
+++ /dev/null
@@ -1,45 +0,0 @@
-define(["jquery", "../base/items"], function($, FileBaseMenuItems) {
-
- var FileSelectorItems = FileBaseMenuItems._extend({
- getContextMenuPostion: function(event, contextMenu) {
-
- var menuPostion = {};
- var menuDimension = {};
- // store the fileContentContainer fCC
- var fCC = this.FileBase.view.fileContentContainer;
- var xOffsetModal = 0
- + fCC.parent().parent().parent().position().left
- + parseInt(fCC.parent().parent().parent().css("margin-left"))
- + fCC.parent().position().left;
- var offset = fCC.offset().top;
-
- menuDimension.x = contextMenu.outerWidth();
- menuDimension.y = contextMenu.outerHeight();
-
- menuPostion.x = 2 * event.clientX - event.pageX;
- menuPostion.y = event.clientY - offset;
-
- menuPostion.x -= xOffsetModal;
-
- if (vispa.device.hasTouch) {
- menuPostion.x += 5;
- menuPostion.y += 5;
- }
-
- // Check if the side borders are reached
- if (menuPostion.x + menuDimension.x > fCC.width()) {
- menuPostion.x = fCC.width() - menuDimension.x;
- }
-
- // Check if the lower border is reached
- if (menuPostion.y + menuDimension.y > fCC.height()) {
- menuPostion.y = fCC.height() - menuDimension.y;
- }
-
- return menuPostion;
- }
- });
-
- return FileSelectorItems;
-});
-
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/selector/selections.js b/vispa/extensions/file/static/js/selector/selections.js
deleted file mode 100755
index f6c1601be2e97919cab26b59fe51f5dbf5915873..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/selector/selections.js
+++ /dev/null
@@ -1,71 +0,0 @@
-define(["jquery", "../base/selections"], function($, FileBaseSelections) {
-
- var FileSelectorSelections = FileBaseSelections._extend({
- init: function init(FileBase) {
- init._super.call(this, FileBase);
- this.dirSelected = 0;
- },
-
- unselectAll: function unselectAll() {
- unselectAll._super.call(this);
- this.toggleSelectionButton();
- this.dirSelected = 0;
- },
-
- unselect: function unselect(path) {
- var entry = this.entries[path];
- if (entry !== undefined && entry.data().data.type == "d") {
- this.dirSelected -= 1;
- }
- unselect._super.call(this, path);
- this.toggleSelectionButton();
- },
-
- addSelection: function addSelection(path, node) {
- addSelection._super.call(this, path, node);
- this.toggleSelectionButton();
- if (node.data().data.type == "d") {
- this.dirSelected += 1;
- }
- },
-
- changeSelection: function changeSelection(node, changecss) {
- changeSelection._super.call(this, node, changecss);
- this.toggleSelectionButton();
- },
-
- toggleSelectionButton: function() {
- var dialog = this.FileBase.instance._dialog;
- if (!dialog || this.FileBase.instance.foldermode) return;
-
- var nSelectedEntries = Object.keys(this.entries).length;
- var isInput = this.FileBase.instance._dialog.filename !== "";
-
- // Switch Cases with something written inside the input field
- // something in the input field and nothing selected by hand
- var switchCaseInput1 = isInput && nSelectedEntries === 0;
- // something in the input field and just one element which is a folder selected
- var switchCaseInput2 = false;
- if (nSelectedEntries == 1) {
- var node = this.entries[Object.keys(this.entries)];
- if (node.data().data.type == "d") {
- switchCaseInput2 = isInput;
- }
- }
-
- if (dialog.selectEnabled = (switchCaseInput1 || switchCaseInput2)) return;
-
- // the switch cases when input field empty:
- // Empty object?
- var switchCase1 = $.isEmptyObject(this.entries);
- // single mode and more than one object selected
- var switchCase2 = !this.FileBase.instance.multimode && nSelectedEntries >= 2;
- // not folder mode but at least one folder selected
- var switchCase3 = !this.FileBase.instance.foldermode && this.dirSelected > 0;
-
- dialog.selectEnabled = !(switchCase1 || switchCase2 || switchCase3);
- }
- });
-
- return FileSelectorSelections;
-});
diff --git a/vispa/extensions/file/static/js/selector/selector.js b/vispa/extensions/file/static/js/selector/selector.js
deleted file mode 100755
index 390f711b311ee20db4b465db4e0d80fb8dca354b..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/selector/selector.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// Call the FileSelector using:
-// Get the file extension
-// var a = vispa.extensions.getExtension("file");
-// get the workspace Id
-// var wid = vispa.workspaces.workspace.data.user_id
-// var args = {
-// "path": Path which should be opened,
-// Default: your personal preferences for the file extension
-// "multimode": true or false, allows the FileSelector to
-// return an array of paths (true)
-// or a single string (false)
-// Default: false,
-// "foldermode": true or false. Allows the FileSelector to only select folders
-// Default: false
-// // "filter": Array of filters, eg ["*.py", "dirs"], <-- not yet implemented
-// "view": "Table" or "Symbol",
-// Default: your personal preferences for the file extension
-// "sort": string. possible values are: "name", "type", "time", "ext"
-// "reverse": bool (true or false)
-// "callback": function(path_array || path_string || null, cb_args){return;}
-// This function is executed with the path array/string or null, if
-// the selector is closed without selection. It supports additional
-// arguments, see cb_args
-// "cb_args": additional arguments which can be passed to the callback function
-// }
-// a.createInstance(wid, FileSelectorView, args)
-//
-// ### ### ### ### ### ### ### ### ### ### ###
-// Working example:
-// var a = vispa.extensions.getExtension("file");
-// a.createInstance(1, FileSelectorView, {
-// path: "/home",
-// callback: function(path, args) {
-// console.log(args);
-// console.log(path);
-// console.log("test");
-// },
-// cb_args: {
-// test: "tblub"
-// },
-// view: "Table",
-// sort: "name",
-// reverse: true,
-// multimode: true,
-// foldermode: true
-// });
-
-define([
- "../base/base",
- "./actions",
- "./selections",
- "./items",
- "../base/views/symbol",
- "../base/views/table",
-], function(
- FileBase,
- FileSelectorActions,
- FileSelectorSelections,
- FileSelectorItems,
- SymbolView,
- TableView
-) {
-
- var FileSelector = FileBase._extend({
-
- init: function init(instance, args) {
- init._super.call(this, instance);
-
- // Get the view
- var viewstring = args.view !== undefined ? args.view : this.instance.prefs.get("View");
-
- this.actions = new FileSelectorActions(this);
- this.selections = new FileSelectorSelections(this);
- this.menuitems = new FileSelectorItems(this);
-
- this.workflow.sort = args.sort !== undefined ? args.sort : this.workflow.sort;
- this.workflow.reverse = args.reverse !== undefined ? args.reverse : this.workflow.reverse;
- this.workflow.currentView = viewstring == "Table" ? TableView : SymbolView;
- },
-
- refresh: function(content, sort, reverse) {
- if (!content) {
- return this;
- }
- sort = sort === undefined ? this.workflow.sort : sort;
- reverse = reverse === undefined ? this.workflow.reverse : reverse;
- content = content === undefined ? this.workflow.data : content;
- // only the first time this.workflow.data is null.
- this.workflow.data = content;
- var cntFilt = {
- "filelist": [],
- "parentpath": content.parentpath
- };
- if (this.instance.foldermode) {
- var nElements = content.filelist.length;
- for (var i = 0; i < nElements; i++) {
- if (content.filelist[i].type == "d") {
- cntFilt.filelist.push(content.filelist[i]);
- }
- }
- } else {
- cntFilt.filelist = content.filelist;
- }
- this.helper.sortItems(cntFilt, sort, reverse);
- this.workflow.currentView.setContent(cntFilt);
- this.instance.setLabel(this.instance.state.get("path"), true);
- this.instance.setLoading(false);
- this.pathBar.render();
- }
-
- });
-
- return FileSelector;
-});
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/vendor/jquery-ellipsis/jquery.ellipsis.min.js b/vispa/extensions/file/static/js/vendor/jquery-ellipsis/jquery.ellipsis.min.js
deleted file mode 100644
index 7c515a3b47c0ed7aef161ecb3bd3330fa93dac30..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/vendor/jquery-ellipsis/jquery.ellipsis.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* jshint ignore:start */
-!function(a){a.fn.ellipsis=function(b){var c={row:1,onlyFullWords:!1,"char":"...",callback:function(){},position:"tail"};return b=a.extend(c,b),this.each(function(){var c=a(this),d=c.text(),e=d,f=e.length,g=c.height();c.text("a");var h=parseFloat(c.css("lineHeight"),10),i=c.height(),j=h>i?h-i:0,k=j*(b.row-1)+i*b.row;if(k>=g)return c.text(d),b.callback.call(this),void 0;var l=1,m=0,n=d.length;if("tail"===b.position){for(;n>l;)m=Math.ceil((l+n)/2),c.text(d.slice(0,m)+b["char"]),c.height()<=k?l=m:n=m-1;d=d.slice(0,l),b.onlyFullWords&&(d=d.replace(/[\u00AD\w\uac00-\ud7af]+$/,"")),d+=b["char"]}else if("middle"===b.position){for(var o=0;n>l;)m=Math.ceil((l+n)/2),o=Math.max(f-m,0),c.text(e.slice(0,Math.floor((f-o)/2))+b["char"]+e.slice(Math.floor((f+o)/2),f)),c.height()<=k?l=m:n=m-1;o=Math.max(f-l,0);var p=e.slice(0,Math.floor((f-o)/2)),q=e.slice(Math.floor((f+o)/2),f);b.onlyFullWords&&(p=p.replace(/[\u00AD\w\uac00-\ud7af]+$/,"")),d=p+b["char"]+q}c.text(d),b.callback.call(this)}),this}}(jQuery);
-/* jshint ignore:end */
\ No newline at end of file
diff --git a/vispa/extensions/file/static/js/views.js b/vispa/extensions/file/static/js/views.js
deleted file mode 100755
index 73b700fc3499d5e167a917a054ab049f21cc66a6..0000000000000000000000000000000000000000
--- a/vispa/extensions/file/static/js/views.js
+++ /dev/null
@@ -1,377 +0,0 @@
-define([
- "vispa/views/main",
- "vispa/views/dialog",
- "vispa/views/side",
- "./prefs",
- "./browser/browser",
- "./selector/selector",
- "text!../html/fileselectorBottom.html",
- "text!../html/uploadProgressbar.html"
-], function (
- MainView,
- DialogView,
- SidebarView,
- Prefs,
- FileBrowser,
- FileSelector,
- tSelectorBottom,
- progressbarTmpl
-) {
-
- var FileBrowserView = MainView._extend({
- init: function init(args) {
- init._super.apply(this, arguments);
- var self = this;
-
- // Store the FileBrowser so that it is known in the View.
- // This is needed for using "fb" methods inside the callback functions
- // in the keyboard shortcuts.
- this.fb = new FileBrowser(this);
-
- // set default state and if args.path is null remove it
- if (args !== undefined)
- if (args.path === null) delete args.path;
- this.state.setup({
- path: this.prefs.get("OpenPath")
- }, args);
-
- // set path to default if not set
- this.label = this.state.get('path');
-
- // register watch event
- this.socket.on("watch", function(data) {
- if (data.event != "change") {
- return;
- }
- // The following two parameters are defined in remote/filesystem.py
- // MAX_INLINE_SUBJECTS = 10
- // MAX_SUBJECT_NAMES = 25
- if (data.subject_count <= 10) {
- self.fb.view.reactOnChange(data);
- } else {
- self.fb.updateView();
- }
- });
-
- if (!args || !args.path) {
- self.GET("/ajax/fs/exists", {
- path: self.prefs.get("OpenPath")
- }, function (err, res) {
- if (!err && res != "d") {
- self.prompt(
- "The open path \"" + self.prefs.get("OpenPath") + "\" does not exist. Please set a " + "new one.",
- function (newpath) {
- self.prefs.set("OpenPath", newpath)
- self.spawnInstance("file", "FileBrowser", args);
- self.close();
- }, {
- defaultValue: self.prefs.get("OpenPath"),
- placeholder: "new open path"
- }
- );
- }
- });
- }
- },
-
- getFragment: function () {
- return this.state.get("path");
- },
-
- applyFragment: function (fragment) {
- if (fragment)
- this.state.set("path", fragment);
- },
-
- // applyPreferences is called when there was a change to the preferences
- applyPreferences: function applyPreferences() {
- applyPreferences._super.call(this);
-
- this.fb.refresh(this.fb.workflow.data);
- this.fb.view.toggleViewMenu();
- this.fb.sorting.toggleSortButtons();
- },
-
- render: function (node) {
- var self = this;
-
- this.setLoading(true);
-
- // if (this.prefs.get("View") == "Symbol") {
- // this.menu.Views.Symbol.disabled = true;
- // this.menu.Views.Table.disabled = false;
- // } else {
- // this.menu.Views.Symbol.disabled = false;
- // this.menu.Views.Table.disabled = true;
- // }
-
- node.addClass("filebrowser");
- this.fb.setContent(node);
-
- self.logger.info("initially filled the content node");
-
- this.setLoading(false);
- },
-
- onFocus: function () {
- if (!this.fb) return;
-
- // wait for blur before focus
- vispa.nextTick(function () {
- this.fb.events.enableDragAndDropUpload();
- }.bind(this), 50);
- },
-
- onBlur: function () {
- if (!this.fb) return;
- this.fb.events.disableDragAndDropUpload();
- },
-
- onClose: function () {
- // this.removeSocketListener("watch");
- this.POST("/ajax/fs/unwatch", {
- watch_id: "0"
- });
- return this;
- },
-
- }, {
- iconClass: "fa-folder",
- label: "FileBrowser",
- name: "FileBrowser",
- menuPosition: 10,
- preferences: {
- items: Prefs.preferences,
- },
- menu: Prefs.menu,
- });
-
- var FileSelectorView = DialogView._extend({
- init: function init(args) {
- init._super.apply(this, arguments);
- var self = this;
-
- // set default state and if args.path is null remove it
- if (args !== undefined)
- if (args.path === null) delete args.path;
- this.state.setup({
- path: this.prefs.get("OpenPath")
- }, args);
-
- this.multimode = args.multimode === undefined ? false : args.multimode;
- this.foldermode = args.foldermode === undefined ? false : args.foldermode;
- this.cb_args = args.cb_args || {};
-
- // Define a default callback if no callback is defined
- var defCallback = function (path, obj) {
- console.log(path);
- console.log(obj);
- };
- this.callback = args.callback === undefined ? defCallback : args.callback;
- // To be compatible with the keyboard shortcuts of the fileselector
- // the name has to be chosen to be fb
- this.fb = new FileSelector(this, args);
-
- this.label = this.state.get("path")
-
- // register watch event
- this.socket.on("watch", function(data) {
- if (data.event != "change")
- return;
- self.fb.updateView(100);
- });
-
- if (!args.path) {
- self.GET("/ajax/fs/exists", {
- path: self.prefs.get("OpenPath")
- }, function (err, res) {
- if (!err && res != "d") {
- self.prompt(
- "The open path \"" + self.prefs.get("OpenPath") + "\" does not exist. Please set a " + "new one.",
- function (newpath) {
- self.prefs.set("OpenPath", newpath)
- self.spawnInstance("file", "FileSelector", args);
- self.close();
- }, {
- defaultValue: self.prefs.get("OpenPath"),
- placeholder: "new open path"
- }
- );
- }
- });
- }
- },
-
- /// transparent override
- dialogExtraOpts: {
- descriptor: true,
- get: function(){
- return {
- data: {
- filename: "",
- selectEnabled: false,
- showInput: true,
- // these are shared
- iconClass: this._class._members.iconClass,
- containerClass: "fileselector",
- buttons: {
- close: {
- pos: 1,
- label: "Close",
- callback: function() {
- this.$root.instance.close();
- },
- },
- select: {
- pos: 2,
- label: "Select",
- class: "btn-primary",
- callback: function() {
- var self = this.$root.instance;
- var nSel = Object.keys(self.fb.selections.entries).length;
- if (nSel === 0 && !self.foldermode) {
- if (this.filename === "") {
- self.logger.info("nothing selected");
- self.close();
- } else {
- self.fb.actions.select(this.filename);
- }
- } else {
- self.fb.actions.select();
- }
- },
- },
- },
- },
- watch: {
- selectEnabled: function () {
- this.buttons.select.class = "btn-primary" + (this.selectEnabled ? "" : " disabled");
- }
- },
- methods: {
- select: function() {
- var self = this.$root.instance;
- var nSel = Object.keys(self.fb.selections.entries).length;
- if (this.filename !== "") {
- if (nSel < 2) {
- self.fb.actions.select(this.filename);
- } else {
- self.alert("Multiple selections can not be combined with the input field.");
- }
- }
- },
- },
- partials: {
- footerLeft: tSelectorBottom.trim(),
- },
- };
- },
- },
-
- render: function(content) {
- this.setLoading(true);
-
- this.fb.setContent($(content));
- this._dialog.showInput = !this.multimode; // this could work as search bar too!
- this.applyPreferences();
-
- this.setLoading(false);
- },
- onFocus: function () {
- var self = this;
- // wait for blur before focus
- vispa.nextTick(function () {
- self.fb.events.enableDragAndDropUpload();
- }, 50);
- },
- onBlur: function () {
- this.fb.events.disableDragAndDropUpload();
- },
- onClose: function () {
- if (!this.fb.workflow.callbackFired) this.callback(null, this.cb_args);
- this.removeSocketListener("watch");
- this.POST("/ajax/fs/unwatch", {
- watch_id: "0"
- });
- }
- }, {
- iconClass: "fa-folder",
- label: "FileSelector",
- name: "FileSelector",
- preferences: {
- items: Prefs.preferences,
- },
- menu: Prefs.menu,
- });
-
- var FileUploadView = SidebarView._extend({
- init: function init() {
- init._super.apply(this, arguments);
- this.items = {};
- this.processArgs.apply(this, arguments);
- },
-
- processArgs: function (args) {
- if (!args || !args.id || !args.data) return;
- // save data
- this.items[args.id] = {
- $node: $(progressbarTmpl),
- data: args.data,
- }
- var $node = this.items[args.id].$node;
- // render it
- $(".progress-title", $node).html(args.data.files[0].name);
- $(".btn-danger", $node).click(function () {
- args.data.jqXHR.abort();
- });
- $(".fa-remove", $node).click(function () {
- this.remove(args.id);
- }.bind(this));
- this.$content.append($node);
- this.show();
- },
-
- setProgress: function (id, percentage) {
- var $node = this.items[id].$node;
- $(".progress-bar", $node).attr("aria-valuenow", percentage);
- $(".progress-bar", $node).css("width", percentage + "%");
- $(".progress-bar", $node).html(percentage + "%");
- },
-
- remove: function (id) {
- var $node = this.items[id].$node;
- $node.remove();
- delete this.items[id]
- this.updatePopovers();
- if (Object.keys(this.items).length == 0) this.hide();
- },
-
- setDone: function (id) {
- var $node = this.items[id].$node;
- $(".progress-bar", $node).toggleClass("progress-bar-primary progress-bar-success");
- },
-
- setFailed: function (id) {
- var $node = this.items[id].$node;
- $(".progress-bar", $node).toggleClass("progress-bar-primary progress-bar-danger");
- },
-
- setFinished: function (id) {
- var $node = this.items[id].$node;
- $(".btn-danger", $node).toggleClass("disabled", true);
- vispa.nextTick(function () {
- this.remove(id);
- }.bind(this), 3000);
- }
- }, {
- name: "FileUpload",
- iconClass: "fa-upload",
- position: 10
- });
-
- return {
- Browser: FileBrowserView,
- Selector: FileSelectorView,
- Upload: FileUploadView,
- };
-});