mirror of https://github.com/avecms/AVE.cms.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
667 lines
14 KiB
667 lines
14 KiB
var AveDocs = { |
|
|
|
initialized: false, |
|
|
|
init: function () { |
|
|
|
if (this.initialized) |
|
return; |
|
|
|
this.initialized = true; |
|
}, |
|
|
|
|
|
// |
|
list: function () { |
|
this.addDocument(); |
|
this.documentCopy(); |
|
this.selectAllDocuments(); |
|
this.documentAction(); |
|
this.documentPublish(); |
|
this.documentRecycle(); |
|
}, |
|
|
|
|
|
// |
|
edit: function () { |
|
this.revisionDelete(); |
|
this.revisionRecover(); |
|
this.revisionsDelete(); |
|
this.translitURL(); |
|
this.checkURLInput(); |
|
this.editDateTime(); |
|
this.linkSelect(); |
|
this.metaKeywords(); |
|
this.documentLanguage(); |
|
this.saveEditBtn(); |
|
this.editMousetrap(); |
|
this.windowOnLoadCKEditor(); |
|
}, |
|
|
|
|
|
// |
|
search: function () { |
|
this.searchDateTime(); |
|
this.searchCollapsible(); |
|
}, |
|
|
|
|
|
// |
|
addDocument: function () { |
|
$(".AddDocument").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let rubricId = $('#addDocRub #rubricId').fieldValue(); |
|
|
|
if (rubricId == '') { |
|
jAlert(add_doc_text, add_doc_title); |
|
} else { |
|
$.alerts._overlay('show'); |
|
$("#addDocRub").submit(); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
selectAllDocuments: function () { |
|
$('#selectAll').on('change', function (event) { |
|
event.preventDefault(); |
|
|
|
if ($('#selectAll').is(':checked')) { |
|
$('#docs .checkbox').attr('checked', 'checked').addClass('jqTransformChecked'); |
|
$("#docs a.jqTransformCheckbox").addClass("jqTransformChecked"); |
|
} else { |
|
$('#docs .checkbox').removeClass('jqTransformChecked').removeAttr('checked'); |
|
$("#docs a.jqTransformCheckbox").removeClass("jqTransformChecked"); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentPublish: function () { |
|
$(".documentPublish").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let link = $(this); |
|
let doc_id = link.data('id'); |
|
|
|
$.ajax({ |
|
type: 'POST', |
|
url: 'index.php?do=docs&action=publish&cp=' + sess, |
|
data: { |
|
'doc_id': doc_id |
|
}, |
|
dataType: 'JSON', |
|
beforeSend: function () { |
|
$.alerts._overlay('show'); |
|
}, |
|
success: function (data) { |
|
$.alerts._overlay('hide'); |
|
|
|
if (data.success) { |
|
|
|
(data.status != 1) |
|
? link.closest('tr').addClass('yellow') |
|
: link.closest('tr').removeClass('yellow'); |
|
|
|
(data.status != 1) |
|
? link.addClass('public') |
|
: link.removeClass('public'); |
|
|
|
link.attr('title', data.text); |
|
|
|
AveAdmin.tooltip(); |
|
} |
|
|
|
$.jGrowl(data['message'], { |
|
header: data['header'], |
|
theme: data['theme'] |
|
}); |
|
} |
|
}); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentRecycle: function () { |
|
$(".documentRecycle").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let link = $(this); |
|
let link_tr = link.closest('tr'); |
|
let link_publish = link_tr.find('.documentPublish'); |
|
let doc_id = link.data('id'); |
|
|
|
$.ajax({ |
|
type: 'POST', |
|
url: 'index.php?do=docs&action=recycle&cp=' + sess, |
|
data: { |
|
'doc_id': doc_id |
|
}, |
|
dataType: 'JSON', |
|
beforeSend: function () { |
|
$.alerts._overlay('show'); |
|
}, |
|
success: function (data) { |
|
$.alerts._overlay('hide'); |
|
|
|
if (data.success) { |
|
|
|
(data.status == 1) |
|
? link_tr.removeClass('yellow').addClass('red') |
|
: link_tr.removeClass('red'); |
|
|
|
(data.status == 1) |
|
? link.addClass('recylce') |
|
: link.removeClass('recylce'); |
|
|
|
(data.status == 1) |
|
? link_publish.addClass('hidden') |
|
: link_publish.removeClass('hidden'); |
|
|
|
if (data.status == 0 && link_publish.hasClass('public')) { |
|
link_tr.addClass('yellow') |
|
} |
|
|
|
link.attr('title', data.text); |
|
|
|
AveAdmin.tooltip(); |
|
} |
|
|
|
$.jGrowl(data['message'], { |
|
header: data['header'], |
|
theme: data['theme'] |
|
}); |
|
} |
|
}); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentCopy: function () { |
|
$(".documentCopy").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let href = $(this).attr('href'); |
|
|
|
jPrompt(copy_doc_text, '', copy_doc_title, function (data) { |
|
if (data) { |
|
$.alerts._overlay('show'); |
|
window.location = href + '&document_title=' + data; |
|
} else { |
|
$.jGrowl(copy_doc_no, {theme: 'error'}); |
|
} |
|
}); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentAction: function () { |
|
$(".docaction").hover( |
|
function () { $(this).children(".actions").show("fade", 10); }, |
|
function() { $(this).children(".actions").hide("fade", 10); } |
|
); |
|
}, |
|
|
|
|
|
// |
|
searchDateTime: function () { |
|
$('#document_published').datepicker({ |
|
changeMonth: true, |
|
changeYear: true, |
|
|
|
onClose: function (dateText, inst) { |
|
var endDateTextBox = $('#document_expire'); |
|
if (endDateTextBox.val() != '') { |
|
var testStartDate = new Date(dateText); |
|
var testEndDate = new Date(endDateTextBox.val()); |
|
if (testStartDate > testEndDate) |
|
endDateTextBox.val(dateText); |
|
} |
|
else { |
|
endDateTextBox.val(dateText); |
|
} |
|
}, |
|
onSelect: function (selectedDateTime) { |
|
var start = $(this).datetimepicker('getDate'); |
|
$('#document_expire').datetimepicker('option', 'minDate', new Date(start.getTime())); |
|
} |
|
}); |
|
|
|
$('#document_expire').datepicker({ |
|
changeMonth: true, |
|
changeYear: true, |
|
|
|
onClose: function (dateText, inst) { |
|
var startDateTextBox = $('#document_published'); |
|
if (startDateTextBox.val() != '') { |
|
var testStartDate = new Date(startDateTextBox.val()); |
|
var testEndDate = new Date(dateText); |
|
if (testStartDate > testEndDate) |
|
startDateTextBox.val(dateText); |
|
} |
|
else { |
|
startDateTextBox.val(dateText); |
|
} |
|
}, |
|
onSelect: function (selectedDateTime) { |
|
var end = $(this).datetimepicker('getDate'); |
|
$('#document_published').datetimepicker('option', 'maxDate', new Date(end.getTime())); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
searchCollapsible: function () { |
|
$('.collapsible').collapsible({ |
|
defaultOpen: 'opened', |
|
cssOpen: 'inactive', |
|
cssClose: 'normal', |
|
cookieName: 'collaps_doc', |
|
cookieOptions: { |
|
expires: 7, |
|
domain: '' |
|
}, |
|
speed: 5, |
|
loadOpen: function (elem, opts) { |
|
elem.next().show(); |
|
}, |
|
loadClose: function (elem, opts) { |
|
elem.next().hide(); |
|
} |
|
}); |
|
|
|
$('.collapsible').on('click', function () { |
|
setTimeout(function () { |
|
AveAdmin.sticky_panel_refresh(); |
|
AveAdmin.select_form(); |
|
}, 10); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
revisionRecover: function () { |
|
$(".recoverRevision").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let href = $(this).attr('href'), |
|
title = $(this).data('title'), |
|
confirm = $(this).data('confirm'); |
|
|
|
jConfirm( |
|
confirm, |
|
title, |
|
function (success) { |
|
if (success) { |
|
$.alerts._overlay('show'); |
|
window.location = href; |
|
} |
|
} |
|
); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
revisionDelete: function () { |
|
$(".deleteRevision").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let revission = $(this).data('rev'), |
|
href = $(this).attr('href'), |
|
title = $(this).data('title'), |
|
confirm = $(this).data('confirm'); |
|
|
|
jConfirm( |
|
confirm, |
|
title, |
|
function (success) { |
|
if (success) { |
|
$.alerts._overlay('hide'); |
|
$.alerts._overlay('show'); |
|
$.ajax({ |
|
url: ave_path + 'admin/' + href + '&ajax=run', |
|
type: 'POST', |
|
success: function (data) { |
|
$.alerts._overlay('hide'); |
|
|
|
$.jGrowl(revission, { theme: 'accept' }); |
|
|
|
$("#" + revission).remove(); |
|
} |
|
}); |
|
} |
|
} |
|
); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
revisionsDelete: function () { |
|
$(".deleteRevisions").on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
let href = $(this).attr('href'), |
|
title = $(this).data('title'), |
|
confirm = $(this).data('confirm'); |
|
|
|
jConfirm( |
|
confirm, |
|
title, |
|
function (success) { |
|
if (success) { |
|
$.alerts._overlay('hide'); |
|
$.alerts._overlay('show'); |
|
$.ajax({ |
|
url: ave_path + 'admin/' + href, |
|
type: 'POST', |
|
dataType: 'JSON', |
|
success: function (data) { |
|
$.alerts._overlay('hide'); |
|
|
|
$.jGrowl(data.message, { theme: 'accept' }); |
|
|
|
$('#tableRevisions').find('tbody').html(''); |
|
} |
|
}); |
|
} |
|
} |
|
); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
checkURL: function () { |
|
|
|
let alias = $("#document_alias").val(), |
|
doc_id = $('#formDoc').data('id'); |
|
|
|
$.ajax({ |
|
beforeSend: function () { |
|
}, |
|
url: 'index.php', |
|
data: ({ |
|
'action': 'checkurl', |
|
'do': 'docs', |
|
'check': false, |
|
'cp': sess, |
|
'id': doc_id, |
|
'alias': alias |
|
}), |
|
timeout: 3000, |
|
dataType: 'JSON', |
|
success: |
|
function (data) { |
|
$.jGrowl(data[0], {theme: data[1]}); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
translitURL: function () { |
|
$("#translit").on('click', function () { |
|
|
|
let alias = $("#document_alias").val(), |
|
title = $("#document_title").val(), |
|
prefix = $('#formDoc').data('prefix'); |
|
|
|
$.ajax({ |
|
beforeSend: function () { |
|
$("#checkResult").html(''); |
|
}, |
|
url: 'index.php', |
|
data: ({ |
|
'action': 'translit', |
|
'do': 'docs', |
|
'cp': sess, |
|
'alias': alias, |
|
'title': title, |
|
'prefix': prefix |
|
}), |
|
timeout: 3000, |
|
success: function (data) { |
|
$("#document_alias").val(data); |
|
AveDocs.checkURL(); |
|
} |
|
}); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
checkURLInput: function () { |
|
$("#document_alias").on('change', function () { |
|
if ($(this).val() != '') |
|
AveDocs.checkURL(); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
editDateTime: function () { |
|
$('#document_published').datetimepicker({ |
|
changeMonth: true, |
|
changeYear: true, |
|
stepHour: 1, |
|
stepMinute: 1, |
|
|
|
onClose: function (dateText, inst) { |
|
var endDateTextBox = $('#document_expire'); |
|
if (endDateTextBox.val() != '') { |
|
var testStartDate = new Date(dateText); |
|
var testEndDate = new Date(endDateTextBox.val()); |
|
if (testStartDate > testEndDate) |
|
endDateTextBox.val(dateText); |
|
} |
|
else { |
|
endDateTextBox.val(dateText); |
|
} |
|
} |
|
}); |
|
|
|
$('#document_expire').datetimepicker({ |
|
changeMonth: true, |
|
changeYear: true, |
|
|
|
stepHour: 1, |
|
stepMinute: 1, |
|
|
|
onClose: function (dateText, inst) { |
|
var startDateTextBox = $('#document_published'); |
|
if (startDateTextBox.val() != '') { |
|
var testStartDate = new Date(startDateTextBox.val()); |
|
var testEndDate = new Date(dateText); |
|
if (testStartDate > testEndDate) |
|
startDateTextBox.val(dateText); |
|
} |
|
else { |
|
startDateTextBox.val(dateText); |
|
} |
|
}, |
|
onSelect: function (selectedDateTime) { |
|
var end = $(this).datetimepicker('getDate'); |
|
$('#document_published').datetimepicker('option', 'maxDate', new Date(end.getTime())); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
linkSelect: function () { |
|
$(".linkSelect").on('change', function() { |
|
let link = $(this).val(), |
|
parent = $(this).find('option:selected').attr("data-id"), |
|
prefix = $('#formDoc').data('prefix'); |
|
|
|
if (prefix == '') { |
|
$("#document_alias").val(link); |
|
} else { |
|
$("#document_alias").val(link + '/' + prefix); |
|
} |
|
|
|
$("#document_parent").val(parent); |
|
|
|
return false; |
|
}); |
|
}, |
|
|
|
|
|
// |
|
metaKeywords: function () { |
|
$("#document_meta_keywords").autocomplete("index.php?do=docs&action=keywords&ajax=run&cp=" + sess, { |
|
max: 20, |
|
width: 300, |
|
highlight: false, |
|
multiple: true, |
|
multipleSeparator: ", ", |
|
autoFill: true, |
|
scroll: true, |
|
scrollHeight: 180 |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentLanguage: function () { |
|
$('#document_lang').on('change', function () { |
|
|
|
let lang = $('#document_lang option:selected').val(), |
|
alias = $('#document_alias').val().split('/'), |
|
languages = []; |
|
|
|
$('#document_lang option').each(function () { |
|
languages.push($(this).attr('value')); |
|
}); |
|
|
|
if ($.inArray(alias[0], languages) > -1) { |
|
alias.splice(0, 1); |
|
} |
|
|
|
if ((lang == defaultLang) || (lang == noneLanguage)) { |
|
$('#document_alias').val(alias.join('/')); |
|
} else { |
|
if (alias[0] != "") { |
|
$('#document_alias').val(lang + '/' + alias.join('/')); |
|
} else { |
|
$('#document_alias').val(lang); |
|
} |
|
} |
|
}); |
|
|
|
$('#lang_block').hide(); |
|
|
|
$('#show_lang').on('click', function (event) { |
|
event.preventDefault(); |
|
|
|
$('#lang_block').show(); |
|
$('#show_lang').hide(); |
|
}); |
|
}, |
|
|
|
|
|
// |
|
documentSaveFunction: function () { |
|
let form = $('#formDoc'); |
|
|
|
form.ajaxSubmit({ |
|
url: form.attr('action'), |
|
dataType: 'JSON', |
|
beforeSubmit: function () { |
|
$.alerts._overlay('show'); |
|
}, |
|
success: function (data) { |
|
$.alerts._overlay('hide'); |
|
|
|
$.jGrowl(data['message'], { |
|
header: data['header'], |
|
theme: data['theme'] |
|
}); |
|
} |
|
}); |
|
}, |
|
|
|
|
|
// |
|
saveDocument: function () { |
|
let form = $('#formDoc'); |
|
|
|
if (window.CKEDITOR) |
|
for (var instanceName in CKEDITOR.instances) |
|
CKEDITOR.instances[instanceName].updateElement(); |
|
|
|
if (form.data('id') > 0) { |
|
AveDocs.documentSaveFunction(); |
|
} else { |
|
form.submit(); |
|
} |
|
}, |
|
|
|
|
|
// |
|
documentSee: function () { |
|
let form = $('#formDoc'), |
|
doc_id = form.data('id'); |
|
|
|
if (doc_id > 0) { |
|
window.open('/index.php?id=' + doc_id, '_blank'); |
|
} else { |
|
jAlert(alert_none_id, alert_none_id_t); |
|
} |
|
}, |
|
|
|
|
|
// |
|
saveEditBtn: function () { |
|
$('.SaveEdit').on('click', function (event) { |
|
event.preventDefault(); |
|
if (window.CKEDITOR) |
|
for (var instanceName in CKEDITOR.instances) |
|
CKEDITOR.instances[instanceName].updateElement(); |
|
|
|
AveDocs.saveDocument(); |
|
return false; |
|
}); |
|
}, |
|
|
|
|
|
// |
|
editMousetrap: function () { |
|
Mousetrap.bind(['ctrl+s', 'command+s'], function (event) { |
|
event.preventDefault(); |
|
if (window.CKEDITOR) |
|
for (var instanceName in CKEDITOR.instances) |
|
CKEDITOR.instances[instanceName].updateElement(); |
|
|
|
AveDocs.saveDocument(); |
|
return false; |
|
}); |
|
|
|
Mousetrap.bind(['ctrl+o', 'command+o'], function (event) { |
|
event.preventDefault(); |
|
AveDocs.documentSee(); |
|
return false; |
|
}); |
|
}, |
|
|
|
|
|
// |
|
windowOnLoadCKEditor: function () { |
|
window.onload = function () { |
|
if (window.CKEDITOR) { |
|
CKEDITOR.on('instanceReady', function (event) { |
|
event.editor.setKeystroke(CKEDITOR.CTRL + 83 /*S*/, 'savedoc'); |
|
}); |
|
} |
|
} |
|
} |
|
}; |