Browse Source

publish muk_web_utils - 12.0

pull/35/head
MuK IT GmbH 6 years ago
parent
commit
8dd6457765
  1. 2
      muk_web_utils/__manifest__.py
  2. 99
      muk_web_utils/static/src/js/core/dropzone.js
  3. 51
      muk_web_utils/static/src/js/libs/jquery.js
  4. 2
      muk_web_utils/template/assets.xml

2
muk_web_utils/__manifest__.py

@ -20,7 +20,7 @@
{
"name": "MuK Web Utils",
"summary": """Utility Features""",
"version": "12.0.2.4.1",
"version": "12.0.2.4.2",
"category": "Extra Tools",
"license": "AGPL-3",
"author": "MuK IT",

99
muk_web_utils/static/src/js/core/dropzone.js

@ -0,0 +1,99 @@
/**********************************************************************************
*
* Copyright (C) 2017 MuK IT GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
**********************************************************************************/
odoo.define('muk_web_utils.dropzone', function (require) {
"use strict";
var core = require('web.core');
var _t = core._t;
var QWeb = core.qweb;
var DropzoneMixin = {
_checkDropzoneEvent: function(event) {
return true;
},
_renderDropzone: function($dropzone) {
this.$dropzone = $dropzone;
this.$dropzone.dndHover().on({
'dndHoverStart': this._hoverDropzoneEnter.bind(this),
'dndHoverEnd': this._hoverDropzoneLeave.bind(this),
});
},
_toggleDropzone: function(state) {
this.$dropzone.toggleClass('mk_dropzone', state);
},
_hoverDropzoneEnter: function(event) {
if(this._checkDropzoneEvent(event)) {
this._toggleDropzone(true);
event.preventDefault();
return false;
}
},
_hoverDropzoneLeave: function(event) {
this._toggleDropzone(false);
event.stopPropagation();
event.preventDefault();
return false;
},
_handleDrag: function(event) {
},
_handleDrop: function(event) {
},
_dragenterDropzone: function(event) {
if(this._checkDropzoneEvent(event)) {
event.preventDefault();
}
},
_dragoverDropzone: function(event) {
if(this._checkDropzoneEvent(event)) {
event.preventDefault();
this._handleDrag();
}
},
_dragleaveDropzone: function(event) {
if(this._checkDropzoneEvent(event)) {
event.preventDefault();
}
},
_dropDropzone: function(event) {
if(this._checkDropzoneEvent(event)) {
event.preventDefault();
event.stopPropagation();
this._handleDrop();
}
}
};
var FileDropzoneMixin = {
_checkDropzoneEvent: function(event) {
return window.File && window.FileReader && window.FileList && window.Blob;
},
_handleDrag: function(event) {
event.originalEvent.dataTransfer.dropEffect = 'copy';
},
};
return {
DropzoneMixin: DropzoneMixin,
FileDropzoneMixin: FileDropzoneMixin,
};
});

51
muk_web_utils/static/src/js/libs/jquery.js

@ -0,0 +1,51 @@
/**********************************************************************************
*
* Copyright (C) 2018 MuK IT GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
**********************************************************************************/
$.fn.textWidth = function(text, font) {
if (!$.fn.textWidth.fakeEl) $.fn.textWidth.fakeEl = $('<span>').hide().appendTo(document.body);
$.fn.textWidth.fakeEl.text(text || this.val() || this.text()).css('font', font || this.css('font'));
return $.fn.textWidth.fakeEl.width();
};
$.fn.dndHover = function(options) {
return this.each(function() {
var self = $(this);
var collection = $();
self.on('dragenter', function(event) {
if (collection.size() === 0) {
self.trigger('dndHoverStart');
}
collection = collection.add(event.target);
});
self.on('dragleave', function(event) {
setTimeout(function() {
collection = collection.not(event.target);
if (collection.size() === 0) {
self.trigger('dndHoverEnd');
}
}, 1);
});
self.on('drop', function(event) {
setTimeout(function() {
collection = $();
self.trigger('dndHoverEnd');
}, 1);
});
});
};

2
muk_web_utils/template/assets.xml

@ -38,7 +38,9 @@
<link rel="stylesheet" type="text/scss" href="/muk_web_utils/static/src/scss/share.scss" />
</xpath>
<xpath expr="//script[last()]" position="after">
<script type="text/javascript" src="/muk_web_utils/static/src/js/libs/jquery.js"></script>
<script type="text/javascript" src="/muk_web_utils/static/src/js/core/utils.js"></script>
<script type="text/javascript" src="/muk_web_utils/static/src/js/core/dropzone.js"></script>
<script type="text/javascript" src="/muk_web_utils/static/src/js/fields/module.js"></script>
<script type="text/javascript" src="/muk_web_utils/static/src/js/fields/copy.js"></script>
<script type="text/javascript" src="/muk_web_utils/static/src/js/fields/share.js"></script>

Loading…
Cancel
Save