66 lines
3.3 KiB
Smarty
66 lines
3.3 KiB
Smarty
{*
|
|
OnlyOfficeTemplates widget: template list, format (PDF/DOCX), Download / Save to Documents
|
|
*}
|
|
{if $CRM_TEMPLATES_EXIST eq 0}
|
|
<li class="dropdown-header">
|
|
<span class="fa fa-file-text-o"></span> {vtranslate('LBL_OOT_TEMPLATES','OnlyOfficeTemplates')}
|
|
</li>
|
|
<li class="oot-widget" data-record="{$ID}" data-module="{$MODULE}">
|
|
<div class="form-group">
|
|
<label class="control-label">{vtranslate('LBL_OOT_SELECT_TEMPLATE','OnlyOfficeTemplates')}</label>
|
|
<select class="oot-template-id form-control input-sm">
|
|
{foreach from=$CRM_TEMPLATES item=tpl}
|
|
<option value="{$tpl.id}">{$tpl.name}</option>
|
|
{/foreach}
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label">{vtranslate('LBL_OOT_FORMAT','OnlyOfficeTemplates')}</label>
|
|
<select class="oot-format form-control input-sm">
|
|
<option value="pdf">{vtranslate('LBL_OOT_FORMAT_PDF','OnlyOfficeTemplates')}</option>
|
|
<option value="docx">{vtranslate('LBL_OOT_FORMAT_DOCX','OnlyOfficeTemplates')}</option>
|
|
</select>
|
|
</div>
|
|
<div class="btn-group btn-group-justified">
|
|
<a href="javascript:;" class="oot-download"><i class="fa fa-download"></i> {vtranslate('LBL_OOT_DOWNLOAD','OnlyOfficeTemplates')}</a>
|
|
<a href="javascript:;" class="oot-save-to-docs"><i class="fa fa-save"></i> {vtranslate('LBL_OOT_SAVE_TO_DOCUMENTS','OnlyOfficeTemplates')}</a>
|
|
</div>
|
|
</li>
|
|
{else}
|
|
<li><span class="text-muted">{vtranslate('LBL_OOT_NO_TEMPLATES','OnlyOfficeTemplates')}</span></li>
|
|
{/if}
|
|
{if $CRM_TEMPLATES_EXIST eq 0}
|
|
<script type="text/javascript">
|
|
(function() {
|
|
var container = document.querySelector('.oot-widget');
|
|
if (!container) return;
|
|
container.addEventListener('click', function(e) {
|
|
var t = e.target.closest('.oot-download, .oot-save-to-docs');
|
|
if (!t) return;
|
|
e.preventDefault();
|
|
var record = container.getAttribute('data-record'), module = container.getAttribute('data-module');
|
|
var sel = container.querySelector('.oot-template-id'), fmt = container.querySelector('.oot-format');
|
|
var templateId = sel ? sel.value : '', format = fmt ? fmt.value : 'pdf';
|
|
var mode = t.classList.contains('oot-download') ? 'download' : 'save_to_documents';
|
|
var url = 'index.php?module=OnlyOfficeTemplates&action=CreateFromTemplate&record=' + encodeURIComponent(record) + '&source_module=' + encodeURIComponent(module) + '&template_id=' + encodeURIComponent(templateId) + '&format=' + encodeURIComponent(format) + '&mode=' + encodeURIComponent(mode);
|
|
if (mode === 'download') {
|
|
window.location.href = url;
|
|
} else {
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open('GET', url + '&ajax=1');
|
|
xhr.onload = function() {
|
|
var res = {};
|
|
try { res = JSON.parse(xhr.responseText); } catch (err) {}
|
|
if (res.success) {
|
|
alert(res.message || 'Сохранено в Документы');
|
|
} else {
|
|
alert(res.error || 'Ошибка');
|
|
}
|
|
};
|
|
xhr.send();
|
|
}
|
|
});
|
|
})();
|
|
</script>
|
|
{/if}
|