Definitions v1

This commit is contained in:
franzz committed 2019-09-16 13:47:13 +02:00
1 parent d3532a3de7
commit c89322a118
15 files changed
+298 -37

No files matched your search

+50 -5
View File
@@ -55,8 +55,50 @@ function CATC(asGlobals)
this.initMenu = function()
{
self.elem.$Menu.find('.fa-home').attr('href', '#'+self.consts.default_page);
self.elem.$Menu.show('fast');
//Search
self.refreshDefs();
self.elem.$Menu.find('#search').addSearch('defs');
$('#add-def').on('show.bs.modal', function (event) {
var $Button = $(event.relatedTarget);
var iDefId = $Button.data('id');
var $Modal = $(this);
var asDef = iDefId?self.vars(['lov-defs', iDefId]):{'title':'', 'description':''};
$Modal.find('#add_def_title').text(iDefId?'Update a definition':'Add a new definition');
$Modal.find('#def_id').val(iDefId);
$Modal.find('#def_title').val(asDef.title);
$Modal.find('#def_description').val(asDef.description);
var asParams = Tools.serialize('def_form');
$Modal.find('#save').off('click').click(function(){
Tools.ajax(
'set_def',
function(asData){
self.onFeedback('success', 'Definition of "'+asData.def.title+'" '+(asData.new_def?'added':'updated'));
self.refreshDefs();
},
'def_form'
);
});
});
self.elem.$Menu.find('.home').click(function(){self.setHash(self.consts.default_page);});
self.elem.$Menu.find('.logoff').click(function(){self.setHash('logoff');});
self.elem.$Menu.slideDown('fast');
};
this.refreshDefs = function() {
Tools.ajax(
'get_defs',
(asData) => {
self.vars('lov-defs', asData);
$.each(self.vars('lov-defs'), function(iKey, asValues) {
self.vars(['lov-defs', iKey, 'safe_title'], removeDiacritics(asValues['title']));
self.vars(['lov-defs', iKey, 'label'], asValues['description']);
self.vars(['lov-defs', iKey, 'safe_label'], removeDiacritics(asValues['description']));
});
}
);
};
this.setSideElemVisibility = function() {
@@ -236,9 +278,12 @@ function CATC(asGlobals)
//Switch main content
$FadeInElem.empty();
$FadeInElem.html($Dom);
//Show main
$FadeInElem.fadeTo('fast', 1, function(){self.pageInit(asHash, bFirstPage);});
$FadeInElem.fadeTo('fast', 1, function(){
self.pageInit(asHash, bFirstPage);
$('[data-toggle="tooltip"]').tooltip();
});
};
/* Variables Handling */
@@ -277,7 +322,7 @@ function CATC(asGlobals)
};
this.getTemplateItem = function(sItemName) {
return self.elem.$Main.find('.template-items').find('.'+sItemName).clone();
return $('.template-items').find('.'+sItemName).clone();
}
}
+79
View File
@@ -168,6 +168,85 @@ function copyArray(asArray)
return asArray.slice(0); //trick to copy array
}
$.prototype.addSearch = function(sSection)
{
$(this)
.autocomplete({
autoFocus: true,
delay: 0,
section:sSection,
source: function(oRequest, fResponse) {
var sTerm = removeDiacritics(oRequest.term);
var rMatcher = new RegExp($.ui.autocomplete.escapeRegex(sTerm), 'i');
var asResults = [];
var asData = self.vars('lov-'+this.options.section);
$.each(asData, function(iDefId, oItem) {
var oTitleMatch = oItem.safe_title.match(rMatcher);
var oLabelMatch = oItem.safe_label.match(rMatcher);
if(oTitleMatch) {
oItem.index = parseInt(oTitleMatch.index, 10);
oItem.size = oTitleMatch[0].length;
oItem.field = 'title';
asResults.push(oItem);
}
else if(oLabelMatch) {
oItem.index = parseInt(oLabelMatch.index, 10);
oItem.size = oLabelMatch[0].length;
oItem.field = 'label';
asResults.push(oItem);
}
oItem.id = iDefId;
});
$('#add_def')
.toggleClass('btn-outline-primary', (asResults.length > 0))
.toggleClass('btn-primary', (asResults.length == 0));
fResponse(asResults);
}
}
)
.data("ui-autocomplete")._renderItem = function(ul, item) {
var fGetHighLightedContent = function(sContent, iIndex, iSize){
return $('<span>')
.append(sContent.substr(0, iIndex))
.append($('<span>', {'class':'highlight text-secondary'}).text(sContent.substr(iIndex, iSize)))
.append(sContent.substr(iIndex + iSize));
};
var $Title = $('<div>', {'class':'title text-break text-capitalize font-weight-bold text-primary'});
var $Desc = $('<div>', {'class':'desc text-break'});
if(item.field=='title') {
$Title.append(fGetHighLightedContent(item.title, item.index, item.size));
$Desc.text(item.label);
}
else {
$Title.text(item.title);
$Desc.append(fGetHighLightedContent(item.label, item.index, item.size));
}
return $('<li>', {'class':'list-group-item shadow'})
.css('width', $('#search').outerWidth())
.data("item.autocomplete", item)
.append($('<div>', {'class':'row'})
.append($('<div>', {'class':'col'})
.append($Title)
.append($Desc)
)
.append($('<div>', {'class':'col-auto d-flex align-items-center'}).append($('<button>', {'class':'btn btn-outline-secondary'})
.data('id', item.id)
.attr('data-toggle', 'modal')
.attr('data-target', '#add-def')
.appendIcon('edit')
))
)
.appendTo(ul);
};
$($(this).data("ui-autocomplete").classesElementLookup['ui-front']).addClass('list-group');
}
$.prototype.appendIcon = function(sIcon, bFull) {
return $(this).append(Tools.getIcon(sIcon, bFull));
};
+3
View File
@@ -1,6 +1,9 @@
/* jQuery UI - v1.12.1+CommonJS - https://github.com/blueimp/jQuery-File-Upload/blob/master/js/vendor/jquery.ui.widget.js - MIT license */
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?t(require("jquery")):t(jQuery)}(function(t){t.ui=t.ui||{};t.ui.version="1.12.1";var e,i=0,s=Array.prototype.slice;t.cleanData=(e=t.cleanData,function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{(s=t._data(n,"events"))&&s.remove&&t(n).triggerHandler("remove")}catch(t){}e(i)}),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0],u=l+"-"+(e=e.split(".")[1]);return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][u.toLowerCase()]=function(e){return!!t.data(e,u)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){if(!this._createWidget)return new o(t,e);arguments.length&&this._createWidget(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),(a=new i).options=t.widget.extend({},a.options),t.each(s,function(e,s){t.isFunction(s)?r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}():r[e]=s}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n&&a.widgetEventPrefix||e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:u}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;a<r;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(t.isPlainObject(n)?e[i]=t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):e[i]=n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r))!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0:t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;o<s.length-1;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this.Line truncated
/* jQuery UI - v1.12.1 - core.js widget.js position.js autocomplete.js menu.js - MIT license */
!function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,n){return!!e.data(t,n[3])}})}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.fn.extend({disableSelection:(t="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(t+".ui-disableSelection",function(e){e.preventDefault()})}),enableSelection:function(){return this.off(".ui-disableSelection")}});var t}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.focusable=function(t,i){var n,s,o,u,r,l=t.nodeName.toLowerCase();return"area"===l?(s=(n=t.parentNode).name,!(!t.href||!s||"map"!==n.nodeName.toLowerCase())&&((o=e("img[usemap='#"+s+"']")).length>0&&o.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(l)?(u=!t.disabled)&&(r=e(t).closest("fieldset")[0])&&(u=!r.disabled):u="a"===l&&t.href||i,u&&e(t).is(":visible")&&function(e){var t=e.css("visibility");for(;"inherit"===t;)e=e.parent(),t=e.css("visibility");return"hidden"!==t}(e(t)))},e.extend(e.expr[":"],{focusable:function(t){return e.ui.focusable(t,null!=e.attr(t,"tabindex"))}}),e.ui.focusable}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):e(this[0].form)}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version","./escape-selector"],e):e(jQuery)}(function(e){return e.fn.labels=function(){var t,i,n,s,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(s=this.eq(0).parents("label"),(n=this.attr("id"))&&(o=(t=this.eq(0).parents().last()).add(t.length?t.siblings():this.siblings()),i="label[for='"+e.ui.escapeSelector(n)+"']",s=s.add(o.find(i).addBack(i))),this.pushStack(s))}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.plugin={add:function(t,i,n){var s,o=e.ui[t].prototype;for(s in n)o.plugins[s]=o.plugins[s]||[],o.plugins[s].push([i,n[s]])},call:function(e,t,i,n){var s,o=e.plugins[t];if(o&&(n||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(s=0;s<o.length;s++)e.options[o[s][0]]&&o[s][1].apply(e.element,i)}}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){"1.7"===e.fn.jquery.substring(0,3)&&(e.each(["Width","Height"],function(t,i){var n="Width"===i?["Left","Right"]:["Top","Bottom"],s=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};function u(t,i,s,o){return e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),o&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}e.fn["inner"+i]=function(t){return void 0===t?o["inner"+i].call(this):this.each(function(){e(this).css(s,u(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))})}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.plugin={add:function(t,i,n){var s,o=e.ui[t].prototype;for(s in n)o.plugins[s]=o.plugins[s]||[],o.plugins[s].push([i,n[s]])},call:function(e,t,i,n){var s,o=e.plugins[t];if(o&&(n||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(s=0;s<o.length;s++)e.options[o[s][0]]&&o[s][1].apply(e.element,i)}}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.safeActiveElement=function(e){var t;try{t=e.activeElement}catch(i){t=e.body}return t||(t=e.body),t.nodeName||(t=e.body),t}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.ui.safeBlur=function(t){t&&"body"!==t.nodeName.toLowerCase()&&e(t).trigger("blur")}}),function(e){"function"==typeof define&&define.amd?define(["jquery","./version"],e):e(jQuery)}(function(e){return e.fn.scrollParent=function(t){var i=this.css("position"),n="absolute"===i,s=t?/(auto|scroll|hidden)/:/(auto|scrollLine truncated
/* jQuery Iframe Transport Plugin - v10.2.0 - https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js - MIT license */
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery)}(function(e){"use strict";var t=0,r=e,n="parseJSON";"JSON"in window&&"parse"in JSON&&(r=JSON,n="parse"),e.ajaxTransport("iframe",function(r){if(r.async){var n,a,o,i=r.initialIframeSrc||"javascript:false;";return{send:function(p,m){(n=e('<form style="display:none;"></form>')).attr("accept-charset",r.formAcceptCharset),o=/\?/.test(r.url)?"&":"?","DELETE"===r.type?(r.url=r.url+o+"_method=DELETE",r.type="POST"):"PUT"===r.type?(r.url=r.url+o+"_method=PUT",r.type="POST"):"PATCH"===r.type&&(r.url=r.url+o+"_method=PATCH",r.type="POST"),a=e('<iframe src="'+i+'" name="iframe-transport-'+(t+=1)+'"></iframe>').bind("load",function(){var t,o=e.isArray(r.paramName)?r.paramName:[r.paramName];a.unbind("load").bind("load",function(){var t;try{if(!(t=a.contents()).length||!t[0].firstChild)throw new Error}catch(e){t=void 0}m(200,"success",{iframe:t}),e('<iframe src="'+i+'"></iframe>').appendTo(n),window.setTimeout(function(){n.remove()},0)}),n.prop("target",a.prop("name")).prop("action",r.url).prop("method",r.type),r.formData&&e.each(r.formData,function(t,r){e('<input type="hidden"/>').prop("name",r.name).val(r.value).appendTo(n)}),r.fileInput&&r.fileInput.length&&"POST"===r.type&&(t=r.fileInput.clone(),r.fileInput.after(function(e){return t[e]}),r.paramName&&r.fileInput.each(function(t){e(this).prop("name",o[t]||r.paramName)}),n.append(r.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),r.fileInput.removeAttr("form")),n.submit(),t&&t.length&&r.fileInput.each(function(r,n){var a=e(t[r]);e(n).prop("name",a.prop("name")).attr("form",a.attr("form")),a.replaceWith(n)})}),n.append(a).appendTo(document.body)},abort:function(){a&&a.unbind("load").prop("src",i),n&&n.remove()}}}}),e.ajaxSetup({converters:{"iframe text":function(t){return t&&e(t[0].body).text()},"iframe json":function(t){return t&&r[n](e(t[0].body).text())},"iframe html":function(t){return t&&e(t[0].body).html()},"iframe xml":function(t){var r=t&&t[0];return r&&e.isXMLDoc(r)?r:e.parseXML(r.XMLDocument&&r.XMLDocument.xml||e(r.body).html())},"iframe script":function(t){return t&&e.globalEval(e(t[0].body).text())}}})});