mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-10-17 05:22:23 +00:00
4fccb5fc2b
when a folder is selected by autocompletion, its id will be copied to the input field with the element id passed in attribute target
254 lines
7.3 KiB
JavaScript
254 lines
7.3 KiB
JavaScript
|
||
$(document).ready( function() {
|
||
$('body').on('hidden', '.modal', function () {
|
||
$(this).removeData('modal');
|
||
});
|
||
|
||
$('body').on('touchstart.dropdown', '.dropdown-menu', function (e) { e.stopPropagation(); });
|
||
|
||
$('#expirationdate, #fromdate, #todate, #createstartdate, #createenddate, #expirationstartdate, #expirationenddate')
|
||
.datepicker()
|
||
.on('changeDate', function(ev){
|
||
$(ev.currentTarget).datepicker('hide');
|
||
});
|
||
|
||
$(".chzn-select").chosen();
|
||
$(".chzn-select-deselect").chosen({allow_single_deselect:true});
|
||
|
||
$(".pwd").passStrength({
|
||
url: "../op/op.Ajax.php",
|
||
onChange: function(data, target) {
|
||
pwsp = 100*data.score;
|
||
$('#'+target+' div.bar').width(pwsp+'%');
|
||
if(data.ok) {
|
||
$('#'+target+' div.bar').removeClass('bar-danger');
|
||
$('#'+target+' div.bar').addClass('bar-success');
|
||
} else {
|
||
$('#'+target+' div.bar').removeClass('bar-success');
|
||
$('#'+target+' div.bar').addClass('bar-danger');
|
||
}
|
||
}
|
||
});
|
||
|
||
/* The typeahead functionality useѕ the rest api */
|
||
$("#searchfield").typeahead({
|
||
minLength: 3,
|
||
source: function(query, process) {
|
||
$.get('../restapi/index.php/search', { query: query, limit: 8, mode: 'typeahead' }, function(data) {
|
||
process(data);
|
||
});
|
||
},
|
||
/* updater is called when the item in the list is clicked. It is
|
||
* actually provided to update the input field, but here we use
|
||
* it to set the document location. */
|
||
updater: function (item) {
|
||
document.location = "../op/op.Search.php?query=" + encodeURIComponent(item.substring(1));
|
||
return item;
|
||
},
|
||
/* Set a matcher that allows any returned value */
|
||
matcher : function (item) {
|
||
return true;
|
||
},
|
||
highlighter : function (item) {
|
||
if(item.charAt(0) == 'D')
|
||
return '<i class="icon-file"></i> ' + item.substring(1);
|
||
else if(item.charAt(0) == 'F')
|
||
return '<i class="icon-folder-close-alt"></i> ' + item.substring(1);
|
||
else
|
||
return '<i class="icon-search"></i> ' + item.substring(1);
|
||
}
|
||
});
|
||
|
||
/* Document chooser */
|
||
$("[id^=choosedocsearch]").typeahead({
|
||
minLength: 3,
|
||
formname: 'form1',
|
||
source: function(query, process) {
|
||
// console.log(this.options);
|
||
$.get('../op/op.Ajax.php', { command: 'searchdocument', query: query, limit: 8 }, function(data) {
|
||
process(data);
|
||
});
|
||
},
|
||
/* updater is called when the item in the list is clicked. It is
|
||
* actually provided to update the input field where you type, but here
|
||
* we use it to update a second input field with the doc id. */
|
||
updater: function (item) {
|
||
strarr = item.split("#");
|
||
//console.log(this.options.formname);
|
||
$('#docid' + this.options.formname).attr('value', strarr[0]);
|
||
return strarr[1];
|
||
},
|
||
/* Set a matcher that allows any returned value */
|
||
matcher : function (item) {
|
||
return true;
|
||
},
|
||
highlighter : function (item) {
|
||
strarr = item.split("#");
|
||
return '<i class="icon-file"></i> ' + strarr[1];
|
||
}
|
||
});
|
||
|
||
/* Folder chooser */
|
||
$("[id^=choosefoldersearch]").typeahead({
|
||
minLength: 3,
|
||
formname: 'form1',
|
||
source: function(query, process) {
|
||
// console.log(this.options);
|
||
$.get('../op/op.Ajax.php', { command: 'searchfolder', query: query, limit: 8 }, function(data) {
|
||
process(data);
|
||
});
|
||
},
|
||
/* updater is called when the item in the list is clicked. It is
|
||
* actually provided to update the input field, but here we use
|
||
* it to set the document location. */
|
||
updater: function (item) {
|
||
strarr = item.split("#");
|
||
//console.log(this.options.formname);
|
||
// console.log(this.$element.attr('target'));
|
||
/* Attribute target has the field name storing the selected id */
|
||
$('#'+this.$element.attr('target')).attr('value', strarr[0]);
|
||
return strarr[1];
|
||
},
|
||
/* Set a matcher that allows any returned value */
|
||
matcher : function (item) {
|
||
return true;
|
||
},
|
||
highlighter : function (item) {
|
||
strarr = item.split("#");
|
||
return '<i class="icon-folder-close-alt"></i> ' + strarr[1];
|
||
}
|
||
});
|
||
|
||
$('a.addtoclipboard').click(function(ev){
|
||
ev.preventDefault();
|
||
attr_rel = $(ev.currentTarget).attr('rel');
|
||
attr_msg = $(ev.currentTarget).attr('msg');
|
||
type = attr_rel.substring(0, 1) == 'F' ? 'folder' : 'document';
|
||
id = attr_rel.substring(1);
|
||
$.get('../op/op.Ajax.php',
|
||
{ command: 'addtoclipboard', type: type, id: id },
|
||
function(data) {
|
||
console.log(data);
|
||
$('#menu-clipboard ul').remove();
|
||
$(data).appendTo('#menu-clipboard');
|
||
noty({
|
||
text: attr_msg,
|
||
type: 'success',
|
||
dismissQueue: true,
|
||
layout: 'topRight',
|
||
theme: 'defaultTheme',
|
||
timeout: 1500,
|
||
});
|
||
}
|
||
);
|
||
});
|
||
$('a.sendtestmail').click(function(ev){
|
||
ev.preventDefault();
|
||
$.ajax({url: '../op/op.Ajax.php',
|
||
type: 'GET',
|
||
dataType: "json",
|
||
data: {command: 'testmail'},
|
||
success: function(data) {
|
||
console.log(data);
|
||
noty({
|
||
text: data.msg,
|
||
type: (data.error) ? 'error' : 'success',
|
||
dismissQueue: true,
|
||
layout: 'topRight',
|
||
theme: 'defaultTheme',
|
||
timeout: 1500,
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
$('a.movefolder').click(function(ev){
|
||
ev.preventDefault();
|
||
attr_source = $(ev.currentTarget).attr('source');
|
||
attr_dest = $(ev.currentTarget).attr('dest');
|
||
attr_msg = $(ev.currentTarget).attr('msg');
|
||
$.get('../op/op.Ajax.php',
|
||
{ command: 'movefolder', folderid: attr_source, targetfolderid: attr_dest },
|
||
function(data) {
|
||
console.log(data);
|
||
noty({
|
||
text: data.msg,
|
||
type: data.success ? 'success' : 'error',
|
||
dismissQueue: true,
|
||
layout: 'topRight',
|
||
theme: 'defaultTheme',
|
||
timeout: 1500,
|
||
});
|
||
}
|
||
);
|
||
});
|
||
|
||
$('a.movedocument').click(function(ev){
|
||
ev.preventDefault();
|
||
attr_source = $(ev.currentTarget).attr('source');
|
||
attr_dest = $(ev.currentTarget).attr('dest');
|
||
attr_msg = $(ev.currentTarget).attr('msg');
|
||
$.get('../op/op.Ajax.php',
|
||
{ command: 'movedocument', docid: attr_source, targetfolderid: attr_dest },
|
||
function(data) {
|
||
console.log(data);
|
||
noty({
|
||
text: data.msg,
|
||
type: data.success ? 'success' : 'error',
|
||
dismissQueue: true,
|
||
layout: 'topRight',
|
||
theme: 'defaultTheme',
|
||
timeout: 1500,
|
||
});
|
||
}
|
||
);
|
||
});
|
||
|
||
});
|
||
|
||
function allowDrop(ev) {
|
||
ev.preventDefault();
|
||
return false;
|
||
}
|
||
|
||
function onDragStartDocument(ev) {
|
||
attr_rel = $(ev.target).attr('rel');
|
||
ev.dataTransfer.setData("id", attr_rel.split("_")[1]);
|
||
ev.dataTransfer.setData("type","document");
|
||
}
|
||
|
||
function onDragStartFolder(ev) {
|
||
attr_rel = $(ev.target).attr('rel');
|
||
ev.dataTransfer.setData("id", attr_rel.split("_")[1]);
|
||
ev.dataTransfer.setData("type","folder");
|
||
}
|
||
|
||
function onDrop(ev) {
|
||
ev.preventDefault();
|
||
ev.stopPropagation();
|
||
attr_rel = $(ev.currentTarget).attr('rel');
|
||
target_type = attr_rel.split("_")[0];
|
||
target_id = attr_rel.split("_")[1];
|
||
source_type = ev.dataTransfer.getData("type");
|
||
source_id = ev.dataTransfer.getData("id");
|
||
if(source_type == 'document') {
|
||
url = "../out/out.MoveDocument.php?documentid="+source_id+"&targetid="+target_id;
|
||
document.location = url;
|
||
} else if(source_type == 'folder') {
|
||
url = "../out/out.MoveFolder.php?folderid="+source_id+"&targetid="+target_id;
|
||
document.location = url;
|
||
}
|
||
// console.log(attr_rel);
|
||
// console.log(ev.dataTransfer.getData("type") + ev.dataTransfer.getData("id"));
|
||
}
|
||
|
||
function onAddClipboard(ev) {
|
||
ev.preventDefault();
|
||
source_type = ev.dataTransfer.getData("type");
|
||
source_id = ev.dataTransfer.getData("id");
|
||
if(source_type == 'document' || source_type == 'folder') {
|
||
url = "../op/op.AddToClipboard.php?id="+source_id+"&type="+source_type;
|
||
document.location = url;
|
||
}
|
||
}
|