Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company;
|
||||
|
||||
use Xentral\Core\DependencyInjection\ContainerInterface;
|
||||
use Xentral\Modules\Company\Service\DocumentCustomizationService;
|
||||
use Xentral\Modules\Company\Service\DocumentCustomizationBlockParser;
|
||||
|
||||
final class Bootstrap
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function registerServices()
|
||||
{
|
||||
return [
|
||||
'DocumentCustomizationService' => 'onInitDocumentCustomizationService',
|
||||
'DocumentCustomizationBlockParser' => 'onInitDocumentCustomizationBlockParser',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return DocumentCustomizationService
|
||||
*/
|
||||
public static function onInitDocumentCustomizationService(ContainerInterface $container)
|
||||
{
|
||||
return new DocumentCustomizationService(
|
||||
$container->get('Database'),
|
||||
$container->get('DocumentCustomizationBlockParser')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContainerInterface $container
|
||||
*
|
||||
* @return DocumentCustomizationBlockParser
|
||||
*/
|
||||
public static function onInitDocumentCustomizationBlockParser(ContainerInterface $container)
|
||||
{
|
||||
$erp = $container->get('LegacyApplication')->erp;
|
||||
return new DocumentCustomizationBlockParser($erp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company\Exception;
|
||||
|
||||
use Xentral\Core\Exception\ModuleExceptionInterface;
|
||||
|
||||
interface DocumentCustomizationExceptionInterface extends ModuleExceptionInterface
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company\Exception;
|
||||
|
||||
use InvalidArgumentException as SplInvalidArgumentException;
|
||||
|
||||
class InvalidArgumentException extends SplInvalidArgumentException implements DocumentCustomizationExceptionInterface
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company\Exception;
|
||||
|
||||
use RuntimeException as SplRuntimeException;
|
||||
|
||||
class RuntimeException extends SplRuntimeException implements DocumentCustomizationExceptionInterface
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company\Service;
|
||||
|
||||
final class DocumentCustomizationBlockParser
|
||||
{
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
private $erp;
|
||||
|
||||
/**
|
||||
* @param \erpAPI $erp
|
||||
*/
|
||||
public function __construct($erp)
|
||||
{
|
||||
$this->erp = $erp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $content
|
||||
* @param array $variables
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function parse($content, $variables)
|
||||
{
|
||||
$elements = explode("\n", str_replace("\r", '', trim($content)));
|
||||
|
||||
foreach ($elements as $key => $el) {
|
||||
if ($el === '') {
|
||||
$elements[$key] = '|';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($elements as $key => $el) {
|
||||
$el = trim($el);
|
||||
$elements[$key] = $el;
|
||||
foreach ($variables as $prevKey => $preVal) {
|
||||
if (strpos($el, '{' . $prevKey . '}') !== false) {
|
||||
$elements[$key] = trim(str_replace('{' . $prevKey . '}', $preVal, $el));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$content = $this->erp->ParseIfVars(implode("\n", $elements));
|
||||
|
||||
return $this->erp->RemoveUnusedParsevars($content);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,343 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Modules\Company\Service;
|
||||
|
||||
use Xentral\Components\Database\Database;
|
||||
use Xentral\Modules\Company\Exception\InvalidArgumentException;
|
||||
|
||||
final class DocumentCustomizationService
|
||||
{
|
||||
/** @var Database */
|
||||
private $db;
|
||||
|
||||
/** @var DocumentCustomizationBlockParser */
|
||||
private $parser;
|
||||
|
||||
/**
|
||||
* DocumentCustomizationService constructor.
|
||||
*
|
||||
* @param Database $db
|
||||
* @param DocumentCustomizationBlockParser $parser
|
||||
*/
|
||||
public function __construct(Database $db, DocumentCustomizationBlockParser $parser)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->parser = $parser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param string $content
|
||||
* @param string $fontStyle
|
||||
* @param bool $active
|
||||
* @param string $alignment
|
||||
*/
|
||||
public function createBlock($keyword, $doctype, $content, $fontStyle, $projecId, $active, $alignment)
|
||||
{
|
||||
$this->db->perform(
|
||||
'INSERT INTO document_customization_infoblock
|
||||
(keyword, doctype, fontstyle, content, active, project_id, alignment)
|
||||
VALUES (:keyword, :doctype, :fontstyle, :content, :active, :project_id, :alignment)',
|
||||
[
|
||||
'keyword' => $keyword,
|
||||
'doctype' => $doctype,
|
||||
'fontstyle' => $fontStyle,
|
||||
'content' => $content,
|
||||
'active' => (int)$active,
|
||||
'project_id' => $projecId,
|
||||
'alignment' => $alignment
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $documentCustomizationInfoBlockId
|
||||
* @param string $doctype
|
||||
* @param string $content
|
||||
* @param string $fontStyle
|
||||
* @param int $projectId
|
||||
* @param bool $active
|
||||
* @param string $alignment
|
||||
*/
|
||||
public function updateInfoBlock(
|
||||
$documentCustomizationInfoBlockId,
|
||||
$doctype,
|
||||
$content,
|
||||
$fontStyle,
|
||||
$projectId,
|
||||
$active,
|
||||
$alignment
|
||||
) {
|
||||
$documentCustomizationBlockId = $this->getBlock($documentCustomizationInfoBlockId);
|
||||
if ($documentCustomizationBlockId === false) {
|
||||
throw new InvalidArgumentException('id not found: ' . $documentCustomizationInfoBlockId);
|
||||
}
|
||||
$this->db->perform(
|
||||
'UPDATE document_customization_infoblock
|
||||
SET content = :content, fontstyle = :fontstyle, active = :active, project_id = :project_id,
|
||||
doctype = :doctype, alignment = :alignment
|
||||
WHERE id = :id',
|
||||
[
|
||||
'content' => $content,
|
||||
'fontstyle' => $fontStyle,
|
||||
'project_id' => (int)$projectId,
|
||||
'doctype' => $doctype,
|
||||
'active' => (int)$active,
|
||||
'id' => (int)$documentCustomizationInfoBlockId,
|
||||
'alignment' => $alignment
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $languageCode
|
||||
* @param int $documentCustomizationBlockId
|
||||
* @param string $content
|
||||
* @param bool $active
|
||||
* @param string $fontstyle
|
||||
* @param string $alignment
|
||||
*/
|
||||
public function saveTranslation($documentCustomizationBlockId, $languageCode, $content, $active, $fontstyle, $alignment)
|
||||
{
|
||||
if ($documentCustomizationBlockId === false) {
|
||||
throw new $documentCustomizationBlockId('block not found');
|
||||
}
|
||||
$documentCustomizationInfoBlockTranslationId = $this->getTranslationBlock(
|
||||
$documentCustomizationBlockId,
|
||||
$languageCode
|
||||
);
|
||||
|
||||
if ($documentCustomizationInfoBlockTranslationId === false) {
|
||||
$this->db->perform(
|
||||
'INSERT INTO document_customization_infoblock_translation
|
||||
(document_customization_infoblock_id, language_code, content, active, fontstyle, alignment)
|
||||
VALUES (:document_customization_infoblock_id, :language_code, :content, :active, :fontstyle, :alignment)',
|
||||
[
|
||||
'document_customization_infoblock_id' => (int)$documentCustomizationBlockId,
|
||||
'language_code' => $languageCode,
|
||||
'content' => $content,
|
||||
'active' => (int)$active,
|
||||
'fontstyle' => $fontstyle,
|
||||
'alignment' => $alignment
|
||||
]
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->db->perform(
|
||||
'UPDATE document_customization_infoblock_translation
|
||||
SET content = :content, active = :active, fontstyle = :fontstyle, alignment = :alignment
|
||||
WHERE id = :id',
|
||||
[
|
||||
'id' => (int)$documentCustomizationInfoBlockTranslationId,
|
||||
'content' => $content,
|
||||
'active' => (int)$active,
|
||||
'fontstyle' => $fontstyle,
|
||||
'alignment' => $alignment
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $documentCustomizationInfoBlockId
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function delete($documentCustomizationInfoBlockId)
|
||||
{
|
||||
if (!$this->getBlock($documentCustomizationInfoBlockId)) {
|
||||
throw new InvalidArgumentException('customaziationblock not found id ' . $documentCustomizationInfoBlockId);
|
||||
}
|
||||
|
||||
$this->db->perform(
|
||||
'DELETE FROM document_customization_infoblock_translation WHERE document_customization_infoblock_id = :id',
|
||||
['id' => (int)$documentCustomizationInfoBlockId]
|
||||
);
|
||||
|
||||
$this->db->perform(
|
||||
'DELETE FROM document_customization_infoblock WHERE id = :id',
|
||||
['id' => (int)$documentCustomizationInfoBlockId]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $documentCustomizationInfoBlockId
|
||||
*/
|
||||
public function copy($documentCustomizationInfoBlockId)
|
||||
{
|
||||
if (!$this->getBlock($documentCustomizationInfoBlockId)) {
|
||||
throw new InvalidArgumentException('customaziationblock not found id ' . $documentCustomizationInfoBlockId);
|
||||
}
|
||||
|
||||
$this->db->perform(
|
||||
'INSERT INTO document_customization_infoblock (keyword, doctype, fontstyle, content, active, project_id, alignment)
|
||||
SELECT keyword, doctype, fontstyle, content, active, project_id, alignment FROM document_customization_infoblock
|
||||
WHERE id = :id',
|
||||
['id' => (int)$documentCustomizationInfoBlockId]
|
||||
);
|
||||
|
||||
$newDocumentCustomizationInfoBlockId = $this->db->lastInsertId();
|
||||
|
||||
$this->db->perform('INSERT INTO document_customization_infoblock_translation
|
||||
(language_code, content, active, document_customization_infoblock_id, alignment, fontstyle)
|
||||
SELECT language_code, content, active, :new_id , alignment, fontstyle
|
||||
FROM document_customization_infoblock_translation WHERE document_customization_infoblock_id = :id',
|
||||
[
|
||||
'new_id' => (int)$newDocumentCustomizationInfoBlockId,
|
||||
'id' => (int)$documentCustomizationInfoBlockId,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $documentCustomizationInfoBlockId
|
||||
*
|
||||
* @return false|array
|
||||
*/
|
||||
public function getBlock($documentCustomizationInfoBlockId)
|
||||
{
|
||||
return $this->db->fetchRow(
|
||||
'SELECT id, keyword, doctype, fontstyle, content, active, project_id, alignment
|
||||
FROM document_customization_infoblock
|
||||
WHERE id = :id',
|
||||
['id' => (int)$documentCustomizationInfoBlockId]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $languageCode
|
||||
* @param int $documentCustomizationBlockId
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getTranslationByCustomizationInfoBlockId($languageCode, $documentCustomizationBlockId)
|
||||
{
|
||||
return $this->db->fetchRow(
|
||||
'SELECT id, content, active, language_code, document_customization_infoblock_id, fontstyle, alignment
|
||||
FROM document_customization_infoblock_translation
|
||||
WHERE document_customization_infoblock_id = :blockid AND language_code = :language_code',
|
||||
['blockid' => (int)$documentCustomizationBlockId, 'language_code' => $languageCode]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $languageCode
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param array $variables
|
||||
* @param int $projectId
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function parseBlock($languageCode, $keyword, $doctype, $variables, $projectId = 0)
|
||||
{
|
||||
$block = $this->findTranslation($languageCode, $keyword, $doctype, $projectId);
|
||||
if (empty($block)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return $this->parser->parse($block['content'], $variables);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $languageCode
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param int $projectId
|
||||
*
|
||||
* @return array|bool
|
||||
*/
|
||||
public function findTranslation($languageCode, $keyword, $doctype, $projectId = 0)
|
||||
{
|
||||
$block = $this->findActiveBlock($keyword, $doctype, $projectId);
|
||||
if (empty($block)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$translation = $this->db->fetchRow(
|
||||
'SELECT * FROM document_customization_infoblock_translation
|
||||
WHERE document_customization_infoblock_id = :block_id AND language_code = :language_code',
|
||||
['block_id' => $block['id'], 'language_code' => $languageCode]
|
||||
);
|
||||
if (!empty($translation)) {
|
||||
return $translation;
|
||||
}
|
||||
|
||||
return $block;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $languageCode
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param array $variables
|
||||
* @param int $projectId
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function parseBlockAsArray($languageCode, $keyword, $doctype, $variables, $projectId = 0)
|
||||
{
|
||||
$string = $this->parseBlock($languageCode, $keyword, $doctype, $variables, $projectId);
|
||||
$sCD = [];
|
||||
$elements = explode("\n", $string);
|
||||
foreach ($elements as $key => $el) {
|
||||
if (!empty($elements[$key])) {
|
||||
$row = explode('|', $elements[$key], 2);
|
||||
$sCD[trim(rtrim(trim($row[0]), ':'))] = !empty($row[1]) ? $row[1] : '';
|
||||
}
|
||||
}
|
||||
|
||||
return $sCD;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param string $projectId
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isBlockActive($keyword, $doctype, $projectId = 0)
|
||||
{
|
||||
$infoBlocks = $this->findActiveBlock($keyword, $doctype, $projectId);
|
||||
|
||||
return !empty($infoBlocks);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keyword
|
||||
* @param string $doctype
|
||||
* @param string $projectId
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function findActiveBlock($keyword, $doctype, $projectId)
|
||||
{
|
||||
return $this->db->fetchRow(
|
||||
'SELECT *
|
||||
FROM document_customization_infoblock
|
||||
WHERE active = 1 AND keyword = :keyword AND doctype = :doctype
|
||||
AND (project_id = 0 OR project_id = :project_id)
|
||||
LIMIT 1',
|
||||
['keyword' => $keyword, 'doctype' => $doctype, 'project_id' => $projectId]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $blockId
|
||||
* @param string $languageCode
|
||||
*
|
||||
* @return false|int
|
||||
*/
|
||||
private function getTranslationBlock($blockId, $languageCode)
|
||||
{
|
||||
return $this->db->fetchValue(
|
||||
'SELECT id
|
||||
FROM document_customization_infoblock_translation
|
||||
WHERE document_customization_infoblock_id = :blockid AND language_code = :language_code',
|
||||
['blockid' => (int)$blockId, 'language_code' => $languageCode]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
{namespace key='company_data'}
|
||||
{block name="document_settings_list"}
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-sm-12 col-md-10 col-md-height">
|
||||
<div class="inside-white inside-full-height">
|
||||
{$datatable}
|
||||
<fieldset>
|
||||
<legend>{translate key='infobox_stack'}Stapelverarbeitung{/translate}</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" id="selectall" /> <label for="selectall">{translate key='select_all'}Alle markieren{/translate}</label>
|
||||
</td>
|
||||
<td>
|
||||
<label for="actionselection">Aktion:</label>
|
||||
</td>
|
||||
<td>
|
||||
<select id="actionselection">
|
||||
<option value="">bitte wählen...</option>
|
||||
<option value="activate">aktivieren</option>
|
||||
<option value="deactivate">deaktiveren</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="button" id="doaction" value="ausführen" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-2 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{translate key='action'}Aktionen{/translate}</legend>
|
||||
<input type="button" class="edit btnGreenNew" data-id="0" value="{translate key='newbutton'}✚ Neuer Eintrag{/translate}" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="document_popup"}
|
||||
<div id="document_popup">
|
||||
<fieldset>
|
||||
<legend>{translate key='infobox'}Infobox{/translate}</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="document_doctype">{translate key='format'}Dokument{/translate}:</label></td>
|
||||
<td>
|
||||
<select id="document_doctype">
|
||||
{foreach from=$doctypearr key=doctypekey item=doctypeval}
|
||||
<option value="{$doctypekey}">{$doctypeval}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_project">{translate key='format'}Projekt{/translate}:</label></td>
|
||||
<td><input type="text" id="document_project" name="document_project" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_alignment">{translate key='format'}Ausrichtung{/translate}:</label></td>
|
||||
<td>
|
||||
<select name="document_alignment" id="document_alignment">
|
||||
{foreach from=$alignments key=alignkey item=alignoption}
|
||||
<option value="{$alignkey}">{$alignoption}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_fontstyle">{translate key='format'}Format{/translate}:</label></td>
|
||||
<td>
|
||||
<select name="document_fontstyle" id="document_fontstyle">
|
||||
{foreach from=$fontoptions key=fontkey item=fontoption}
|
||||
<option value="{$fontkey}" {if $fontkey==$documentarr.fontstyle} selected="selected" {/if}>{$fontoption}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_active">{translate key='format'}Aktiv{/translate}:</label></td>
|
||||
<td>
|
||||
<input type="hidden" id="document_id" />
|
||||
<input type="checkbox" value="1" name="document_active" id="document_active" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_content">{translate key='elements'}Elemente{/translate}:</label></td>
|
||||
<td><textarea cols="35" rows="15" name="document_content" id="document_content">{$documentarr.content}</textarea></td>
|
||||
<td><button class="button button-primary getelements" alt="{translate key='getelement'}Übernehmen{/translate}"><</button></td>
|
||||
<td rowspan="3">
|
||||
<select multiple size="15" id="document_preview">
|
||||
{foreach from=$documentarr.preview key=prevkey item=prevval}
|
||||
<option class="{foreach from=$prevval.doc_types key=dockey item=docval}doctype-{$docval} {/foreach}" value="{$prevval.value}">{$prevval.label}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td style="vertical-align:top"><img src="./themes/new/images/globe.svg" id="opentranslation" class="translate" alt="globe" /></td>
|
||||
</table>
|
||||
<br />
|
||||
Bitte beachten Sie, dass nicht alle Variablen in allen Belegen verfügbar sind!
|
||||
</fieldset>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="translation_popup"}
|
||||
<div id="translation_popup">
|
||||
<fieldset>
|
||||
<legend>{translate key='settings'}Infobox Übersetzung{/translate}</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label for="language">{translate key='language'}Sprache{/translate}:</label></td>
|
||||
<td>
|
||||
<select id="language">
|
||||
{foreach from=$languages key=langkey item=langoption}
|
||||
<option value="{$langkey}">{$langoption}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_translation_alignment">{translate key='format'}Ausrichtung{/translate}:</label></td>
|
||||
<td>
|
||||
<select name="document_translation_alignment" id="document_translation_alignment">
|
||||
{foreach from=$alignments key=alignkey item=alignoption}
|
||||
<option value="{$alignkey}">{$alignoption}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="document_translation_fontstyle">{translate key='format'}Format{/translate}:</label></td>
|
||||
<td>
|
||||
<select name="document_translation_fontstyle" id="document_translation_fontstyle">
|
||||
{foreach from=$fontoptions key=fontkey item=fontoption}
|
||||
<option value="{$fontkey}" {if $fontkey==$documentarr.fontstyle} selected="selected" {/if}>{$fontoption}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="active">{translate key='active'}Aktiv{/translate}:</label></td>
|
||||
<td><input type="hidden" id="doctype" /><input type="checkbox" value="1" id="active" /></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="translationcontent">{translate key='translation'}Übersetzung{/translate}:</label></td>
|
||||
<td><textarea id="translationcontent" cols="35" rows="15" ></textarea></td>
|
||||
<td><button class="button button-primary gettranslationelements" alt="{translate key='getelement'}Übernehmen{/translate}"><</button></td>
|
||||
<td>
|
||||
<select multiple size="15" id="document_translation_preview">
|
||||
{foreach from=$documentarr.preview key=prevkey item=prevval}
|
||||
<option class="{foreach from=$prevval.doc_types key=dockey item=docval}doctype-{$docval} {/foreach}" value="{$prevval.value}">{$prevval.label}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
Bitte beachten Sie, dass nicht alle Variablen in allen Belegen verfügbar sind!
|
||||
</fieldset>
|
||||
</div>
|
||||
{/block}
|
||||
@@ -0,0 +1,532 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||
xmlns:v="urn:schemas-microsoft-com:vml" lang="de">
|
||||
<head>
|
||||
|
||||
<meta name="x-apple-disable-message-reformatting">
|
||||
<meta http-equiv="Content-Type" content="text/html; ">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
||||
<meta name="x-apple-disable-message-reformatting">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<!--[if gte mso 9]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:AllowPNG/>
|
||||
<o:PixelsPerInch>96</o:PixelsPerInch>
|
||||
</o:OfficeDocumentSettings>
|
||||
</xml>
|
||||
|
||||
<style>
|
||||
ul > li {
|
||||
text-indent: -1em;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, td {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
<!--[if !((mso)|(IE))]>
|
||||
<style type="text/css">[owa] .hse-column-container {
|
||||
max-width: 600px !important;
|
||||
width: 600px !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-full-width .hse-column-container {
|
||||
max-width: 100% !important;
|
||||
width: 100% !important
|
||||
}
|
||||
|
||||
[owa] .hse-column {
|
||||
display: table-cell;
|
||||
vertical-align: top
|
||||
}
|
||||
|
||||
[owa] .hse-section-1-col .hse-column {
|
||||
max-width: 600px !important;
|
||||
width: 600px !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-full-width.hse-section .hse-column {
|
||||
max-width: 100% !important;
|
||||
width: 100% !important;
|
||||
display: block !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-2-col .hse-wide {
|
||||
max-width: 400px !important;
|
||||
width: 400px !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-2-col .hse-narrow {
|
||||
max-width: 200px !important;
|
||||
width: 200px !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-2-col .hse-column {
|
||||
max-width: 300px;
|
||||
width: 300px
|
||||
}
|
||||
|
||||
[owa] .hse-section-3-col .hse-column {
|
||||
max-width: 200px !important;
|
||||
width: 200px !important
|
||||
}
|
||||
|
||||
[owa] .hse-section-4-col .hse-column {
|
||||
max-width: 150px !important;
|
||||
width: 150px !important
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 640px) {
|
||||
.hse-section-full-width.hse-section .hse-column-container {
|
||||
max-width: 100% !important;
|
||||
width: 100% !important
|
||||
}
|
||||
|
||||
.hse-section-full-width.hse-section .hse-column {
|
||||
max-width: 100% !important;
|
||||
width: 100% !important;
|
||||
display: block !important
|
||||
}
|
||||
|
||||
.hse-column-container {
|
||||
max-width: 600px !important;
|
||||
width: 600px !important
|
||||
}
|
||||
|
||||
.hse-column {
|
||||
display: table-cell;
|
||||
vertical-align: top
|
||||
}
|
||||
|
||||
.hse-section-1-col .hse-column {
|
||||
max-width: 600px !important;
|
||||
width: 600px !important
|
||||
}
|
||||
|
||||
.hse-section-2-col .hse-column {
|
||||
max-width: 300px !important;
|
||||
width: 300px !important
|
||||
}
|
||||
|
||||
.hse-section-2-col .hse-wide {
|
||||
max-width: 400px !important;
|
||||
width: 400px !important
|
||||
}
|
||||
|
||||
.hse-section-2-col .hse-narrow {
|
||||
max-width: 200px !important;
|
||||
width: 200px !important
|
||||
}
|
||||
|
||||
.hse-section-3-col .hse-column {
|
||||
max-width: 200px !important;
|
||||
width: 200px !important
|
||||
}
|
||||
|
||||
.hse-section-4-col .hse-column {
|
||||
max-width: 150px !important;
|
||||
width: 150px !important
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 639px) {
|
||||
img.stretch-on-mobile, .hs_rss_email_entries_table img {
|
||||
height: auto !important;
|
||||
width: 100% !important
|
||||
}
|
||||
|
||||
.display_block_on_small_screens {
|
||||
display: block
|
||||
}
|
||||
}</style><!--<![endif]-->
|
||||
<style type="text/css">a[x-apple-data-detectors] {
|
||||
color: inherit !important;
|
||||
text-decoration: none !important;
|
||||
font-size: inherit !important;
|
||||
font-family: inherit !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important
|
||||
}
|
||||
|
||||
#outlook a {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.yshortcuts a {
|
||||
border-bottom: none !important
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
.ExternalClass {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.ExternalClass, .ExternalClass p, .ExternalClass td, .ExternalClass div, .ExternalClass span, .ExternalClass font {
|
||||
line-height: 100%
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
body {
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
moz-osx-font-smoothing: grayscale
|
||||
}</style>
|
||||
</head>
|
||||
<body bgcolor="#FAFAFA"
|
||||
style="margin:0 !important; padding:0 !important; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word">
|
||||
|
||||
<div id="preview_text"
|
||||
style="display:none!important;font-size:1px;color:#FAFAFA;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;"></div>
|
||||
|
||||
<!--[if gte mso 9]>
|
||||
<v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
|
||||
|
||||
<v:fill type="tile" src="" color="#FAFAFA"/>
|
||||
|
||||
</v:background>
|
||||
<![endif]-->
|
||||
<div class="hse-body-background" style="background-color:#fafafa" bgcolor="#fafafa">
|
||||
<table role="presentation" class="hse-body-wrapper-table" cellpadding="0" cellspacing="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; margin:0; padding:0; width:100% !important; min-width:320px !important; height:100% !important"
|
||||
width="100%" height="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="hse-body-wrapper-td" valign="top"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word">
|
||||
<div id="hs_cos_wrapper_main" class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_email_flex_area"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;" data-hs-cos-general-type="widget"
|
||||
data-hs-cos-type="email_flex_area">
|
||||
<div id="section_1586263502194" class="hse-section hse-section-3-col hse-section-first"
|
||||
style="padding-left:10px; padding-right:10px; padding-top:20px">
|
||||
|
||||
|
||||
<!--[if !((mso)|(IE))]><!-- -->
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px; max-width:600px; width:100%; Margin-left:auto; Margin-right:auto; border-collapse:collapse; border-spacing:0; background-color:#ffffff; padding-top:7px"
|
||||
bgcolor="#ffffff">
|
||||
<!--<![endif]-->
|
||||
|
||||
<!--[if (mso)|(IE)]>
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px;max-width:600px;width:100%;Margin-left:auto;Margin-right:auto;border-collapse:collapse;border-spacing:0;">
|
||||
<table align="center"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px;"
|
||||
cellpadding="0" cellspacing="0" role="presentation" width="600" bgcolor="#ffffff">
|
||||
<tr style="background-color:#ffffff;">
|
||||
<![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:200px;padding-top:7px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="200" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:200px">
|
||||
<![endif]-->
|
||||
<div id="column_1586263502194_0" class="hse-column">
|
||||
<div id="hs_cos_wrapper_module_15862634608982"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;" data-hs-cos-general-type="widget"
|
||||
data-hs-cos-type="module">
|
||||
|
||||
<table class="hse-image-wrapper" role="presentation" width="100%" cellpadding="0" cellspacing="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="hs_padded" align="left" valign="top"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; color:#23496d; word-break:break-word; text-align:left; padding:10px 20px; font-size:0px">
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:200px;padding-top:7px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="200" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:200px">
|
||||
<![endif]-->
|
||||
<div id="column_1586263502194_1" class="hse-column">
|
||||
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:200px;padding-top:7px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="200" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:200px">
|
||||
<![endif]-->
|
||||
<div id="column_1586263502194_2" class="hse-column">
|
||||
<div id="hs_cos_wrapper_module_15862636107297"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;" data-hs-cos-general-type="widget"
|
||||
data-hs-cos-type="module">
|
||||
|
||||
<table class="hse-image-wrapper" role="presentation" width="100%" cellpadding="0" cellspacing="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; color:#23496d; word-break:break-word; text-align:center; padding:0px; font-size:0px">
|
||||
|
||||
<img alt="Xentral_Logo_quadratisch_RGB_300_300"
|
||||
src="{SERVER}/themes/new/images/Xentral_ERP_Logo-200.png"
|
||||
style="outline:none; text-decoration:none; -ms-interpolation-mode:bicubic; max-width:100%; font-size:16px"
|
||||
width="81" align="middle" sizes="(max-width: 81px) 100vw, 81px">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]></tr></table><![endif]-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="builtin_section-2" class="hse-section hse-section-1-col"
|
||||
style="padding-left:10px; padding-right:10px">
|
||||
|
||||
|
||||
<!--[if !((mso)|(IE))]><!-- -->
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px; max-width:600px; width:100%; Margin-left:auto; Margin-right:auto; border-collapse:collapse; border-spacing:0; background-color:#ffffff; padding-top:10px"
|
||||
bgcolor="#ffffff">
|
||||
<!--<![endif]-->
|
||||
|
||||
<!--[if (mso)|(IE)]>
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px;max-width:600px;width:100%;Margin-left:auto;Margin-right:auto;border-collapse:collapse;border-spacing:0;">
|
||||
<table align="center"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px;"
|
||||
cellpadding="0" cellspacing="0" role="presentation" width="600" bgcolor="#ffffff">
|
||||
<tr style="background-color:#ffffff;">
|
||||
<![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:600px;padding-top:10px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="600" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px">
|
||||
<![endif]-->
|
||||
<div id="builtin_column_2-0" class="hse-column">
|
||||
<div id="hs_cos_wrapper_module_15862631325331"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;" data-hs-cos-general-type="widget"
|
||||
data-hs-cos-type="module">
|
||||
<!--[if gte mso 9]>
|
||||
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false"
|
||||
style="width:600px; height:5px;" fillcolor="none">
|
||||
<v:fill type="tile"/>
|
||||
<v:textbox inset="0,0,0,0">
|
||||
<div>
|
||||
<![endif]-->
|
||||
<table role="presentation" width="100%" align="left" border="0"
|
||||
style="position:relative; top:-1px; min-width:20px; width:100%; max-width:100%; border-spacing:0; mso-table-lspace:0pt; mso-table-rspace:0pt; border-collapse:collapse; font-size:1px">
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
|
||||
<td width="100%" valign="middle"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word; line-height:0; border:transparent; border-bottom:5px solid #e66dcb; mso-border-bottom-alt:5px solid #e66dcb; border-bottom-width:5px">
|
||||
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<!--[if gte mso 9]></div></v:textbox></v:rect><![endif]-->
|
||||
</div>
|
||||
<table role="presentation" cellpadding="0" cellspacing="0" width="100%"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word; padding:10px 20px">
|
||||
<div id="hs_cos_wrapper_builtin_module_2_0_0"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;"
|
||||
data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||||
<div id="hs_cos_wrapper_builtin_module_2_0_0_"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_rich_text"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;"
|
||||
data-hs-cos-general-type="widget" data-hs-cos-type="rich_text"><p
|
||||
style="mso-line-height-rule:exactly; font-size:18px; line-height:150%; text-align:left"
|
||||
align="left"> </p>
|
||||
|
||||
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]></tr></table><![endif]-->
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="section_1583351264074" class="hse-section hse-section-1-col"
|
||||
style="padding-left:10px; padding-right:10px">
|
||||
|
||||
|
||||
<!--[if !((mso)|(IE))]><!-- -->
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px; max-width:600px; width:100%; Margin-left:auto; Margin-right:auto; border-collapse:collapse; border-spacing:0; background-color:#ffffff; padding-bottom:35px"
|
||||
bgcolor="#ffffff">
|
||||
<!--<![endif]-->
|
||||
|
||||
<!--[if (mso)|(IE)]>
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px;max-width:600px;width:100%;Margin-left:auto;Margin-right:auto;border-collapse:collapse;border-spacing:0;">
|
||||
<table align="center"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px;"
|
||||
cellpadding="0" cellspacing="0" role="presentation" width="600" bgcolor="#ffffff">
|
||||
<tr style="background-color:#ffffff;">
|
||||
<![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:600px;padding-bottom:35px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="600" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px">
|
||||
<![endif]-->
|
||||
<div id="column_1583351264075_0" class="hse-column">
|
||||
<table role="presentation" cellpadding="0" cellspacing="0" width="100%"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word; padding:10px 20px">
|
||||
<div id="hs_cos_wrapper_module_15863499554321"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;"
|
||||
data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||||
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="auto"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word; width:auto; display:block">
|
||||
<table border="0" cellspacing="0" cellpadding="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt">
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td align="left"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word">
|
||||
{CONTENT}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]></tr></table><![endif]-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="builtin_section-7" class="hse-section hse-section-1-col hse-section-last"
|
||||
style="padding-left:10px; padding-right:10px; padding-bottom:20px">
|
||||
|
||||
|
||||
<!--[if !((mso)|(IE))]><!-- -->
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px; max-width:600px; width:100%; Margin-left:auto; Margin-right:auto; border-collapse:collapse; border-spacing:0; background-color:#FFFFFF; padding-bottom:10px; padding-top:31px"
|
||||
bgcolor="#FFFFFF">
|
||||
<!--<![endif]-->
|
||||
|
||||
<!--[if (mso)|(IE)]>
|
||||
<div class="hse-column-container"
|
||||
style="min-width:280px;max-width:600px;width:100%;Margin-left:auto;Margin-right:auto;border-collapse:collapse;border-spacing:0;">
|
||||
<table align="center"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px;"
|
||||
cellpadding="0" cellspacing="0" role="presentation" width="600" bgcolor="#FFFFFF">
|
||||
<tr style="background-color:#FFFFFF;">
|
||||
<![endif]-->
|
||||
<!--[if (mso)|(IE)]>
|
||||
<td valign="top" style="width:600px;padding-bottom:10px; padding-top:31px;">
|
||||
<![endif]-->
|
||||
<!--[if gte mso 9]>
|
||||
<table role="presentation" width="600" cellpadding="0" cellspacing="0"
|
||||
style="border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;width:600px">
|
||||
<![endif]-->
|
||||
<div id="builtin_column_7-0" class="hse-column">
|
||||
<div id="hs_cos_wrapper_builtin_module_7_0_0"
|
||||
class="hs_cos_wrapper hs_cos_wrapper_widget hs_cos_wrapper_type_module"
|
||||
style="color: inherit; font-size: inherit; line-height: inherit;"
|
||||
data-hs-cos-general-type="widget" data-hs-cos-type="module">
|
||||
|
||||
|
||||
<table role="presentation" class="hse-footer hse-secondary" width="100%" cellpadding="0"
|
||||
cellspacing="0"
|
||||
style="border-spacing:0 !important; border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; text-align:center; font-family:Arial, sans-serif; font-size:12px; line-height:135%; color:#23496d; margin-bottom:0; padding:0"
|
||||
align="center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" valign="top"
|
||||
style="border-collapse:collapse; mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:10px; color:#23496d; word-break:break-word; text-align:left; margin-bottom:0; line-height:135%; padding:10px 20px">
|
||||
<p style="mso-line-height-rule:exactly; font-family:Verdana, sans-serif; font-size:11px; font-weight:normal; text-decoration:none; font-style:normal; color:#999999">
|
||||
xentral ERP Software GmbH, Fuggerstraße 11, Augsburg, Bayern 86150, Deutschland |
|
||||
<span style="white-space: nowrap">Geschäftsführung: Dipl.-Inf.(FH) Benedikt Sauter M.Sc.</span> | <span style="white-space: nowrap">UStIdNr. DE263136143,</span><span style="white-space: nowrap"> +49 821 268
|
||||
41 0 40</span>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--[if gte mso 9]></table><![endif]-->
|
||||
<!--[if (mso)|(IE)]></td><![endif]-->
|
||||
<!--[if (mso)|(IE)]></tr></table><![endif]-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
span.grey{
|
||||
color:grey;
|
||||
}
|
||||
@@ -0,0 +1,304 @@
|
||||
var CompanyData = (function ($) {
|
||||
var me = {
|
||||
|
||||
storage: {},
|
||||
|
||||
init: function () {
|
||||
$('#document_popup').dialog(
|
||||
{
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
minWidth: 800,
|
||||
title:'',
|
||||
buttons: {
|
||||
'ABBRECHEN': function() {
|
||||
$(this).dialog('close');
|
||||
},
|
||||
'SPEICHERN': function()
|
||||
{
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=savedocument',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: $('#document_id').val(),
|
||||
doctype: $('#document_doctype').val(),
|
||||
content:$('#document_content').val(),
|
||||
active:$('#document_active').prop('checked')?1:0,
|
||||
project:$('#document_project').val(),
|
||||
fontstyle:$('#document_fontstyle').val(),
|
||||
alignment:$('#document_alignment').val()
|
||||
},
|
||||
success: function(data) {
|
||||
if(typeof data.status != 'undefined' && data.status == 1) {
|
||||
$('#company_document_setting').DataTable( ).ajax.reload();
|
||||
$('#document_popup').dialog('close');
|
||||
}else{
|
||||
alert(data.statusText);
|
||||
}
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
close: function(event, ui){
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
me.registerEvents();
|
||||
|
||||
$('#translation_popup').dialog(
|
||||
{
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
minWidth: 800,
|
||||
title:'',
|
||||
buttons: {
|
||||
'ABBRECHEN': function() {
|
||||
$(this).dialog('close');
|
||||
},
|
||||
'SPEICHERN': function()
|
||||
{
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=savetranslation',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
parent_id: $('#document_id').val(),
|
||||
language: $('#language').val(),
|
||||
doctype: $('#document_doctype').val(),
|
||||
content:$('#translationcontent').val(),
|
||||
active:$('#active').prop('checked')?1:0,
|
||||
fontstyle:$('#document_translation_fontstyle').val(),
|
||||
alignment:$('#document_translation_alignment').val()
|
||||
},
|
||||
success: function(data) {
|
||||
$('#translation_popup').dialog('close');
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
close: function(event, ui){
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
$('#language').on('change',function() {
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=loadtranslation',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
language: $(this).val(),
|
||||
parent_id: $('#document_id').val()
|
||||
},
|
||||
success: function(data) {
|
||||
if(typeof data.id != 'undefined' && data.id != '0') {
|
||||
$('#active').prop('checked', data.active);
|
||||
$('#translationcontent').val(data.content);
|
||||
$('#document_translation_fontstyle').val(data.fontstyle);
|
||||
$('#document_translation_alignment').val(data.alignment);
|
||||
}
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('button.getelements').on('click',function(){
|
||||
$($('#document_preview option:selected')).each(function(){
|
||||
var $elements = $('#document_content');
|
||||
if(($($elements).val()+'').indexOf('{'+$(this).val()+'}') < 0)
|
||||
{
|
||||
$($elements).val($($elements).val()+($($elements).val()+'' ===''?'':"\n")+$(this).text()+':|{'+$(this).val()+'}');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('button.gettranslationelements').on('click',function(){
|
||||
$($('#document_translation_preview option:selected')).each(function(){
|
||||
var $elements = $('#translationcontent');
|
||||
if(($($elements).val()+'').indexOf('{'+$(this).val()+'}') < 0)
|
||||
{
|
||||
$($elements).val($($elements).val()+($($elements).val()+'' ===''?'':"\n")+$(this).text()+':|{'+$(this).val()+'}');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('img.translate').on('click', function(){
|
||||
me.openTranslation($(this).data('document'));
|
||||
});
|
||||
|
||||
|
||||
$('input.edit').on('click', function(){
|
||||
me.openDocument($(this).data('id'));
|
||||
});
|
||||
|
||||
$('input#selectall').on('change', function(){
|
||||
$('#company_document_setting input:checkbox').prop('checked', $(this).prop('checked'));
|
||||
});
|
||||
|
||||
$('#doaction').on('click', function(){
|
||||
if($('#actionselection').val() !== '' && $('#company_document_setting :checked').length) {
|
||||
var ids = [];
|
||||
$('#company_document_setting :checked').each(function(){
|
||||
ids.push($(this).val());
|
||||
});
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=changestatus',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: $('#actionselection').val(),
|
||||
ids: ids
|
||||
},
|
||||
success: function(data) {
|
||||
$('#company_document_setting').DataTable( ).ajax.reload();
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#document_doctype').on('change', function(){
|
||||
$('#document_preview option').each(function() {
|
||||
if ($(this).hasClass('doctype-'+$('#document_doctype').val())) {
|
||||
$(this).show();
|
||||
}else{
|
||||
$(this).hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
registerEvents: function () {
|
||||
|
||||
$(document).on('click', '.companydocument-edit', function (e) {
|
||||
e.preventDefault();
|
||||
var fieldId = $(this).data('companydocumentId');
|
||||
me.openDocument(fieldId);
|
||||
});
|
||||
|
||||
$(document).on('click', '.companydocument-copy', function (e) {
|
||||
e.preventDefault();
|
||||
var fieldId = $(this).data('companydocumentId');
|
||||
me.copyInfoBlock(fieldId);
|
||||
});
|
||||
|
||||
$(document).on('click', '.companydocument-delete', function (e) {
|
||||
e.preventDefault();
|
||||
var fieldId = $(this).data('companydocumentId');
|
||||
me.deleteInfoBlock(fieldId);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
openTranslation: function(doctype) {
|
||||
$('#doctype').val(doctype);
|
||||
$('#language').trigger('change');
|
||||
$('#translation_popup').dialog('open');
|
||||
},
|
||||
deleteInfoBlock: function(id) {
|
||||
if(id && confirm('Wirklich löschen?') )
|
||||
{
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=deleteinfoblock',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id:id
|
||||
},
|
||||
success: function(data) {
|
||||
$('#company_document_setting').DataTable( ).ajax.reload();
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
copyInfoBlock: function(id) {
|
||||
if(id && confirm('Wirklich kopieren?') )
|
||||
{
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=copyinfoblock',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: id
|
||||
},
|
||||
success: function(data) {
|
||||
$('#company_document_setting').DataTable( ).ajax.reload();
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
openDocument: function(id) {
|
||||
$('#document_id').val(id);
|
||||
if(id) {
|
||||
$('img#opentranlation').show();
|
||||
}
|
||||
else {
|
||||
$('img#opentranlation').hide();
|
||||
}
|
||||
$.ajax({
|
||||
url: 'index.php?module=firmendaten&action=documentsettings&cmd=loaddocument',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
id: id,
|
||||
},
|
||||
success: function(data) {
|
||||
$('#document_active').prop('checked',data.active);
|
||||
$('#document_doctype').val(data.doctype);
|
||||
$('#document_content').val(data.content);
|
||||
$('#document_project').val(data.project);
|
||||
$('#document_fontstyle').val(data.fontstyle);
|
||||
$('#document_alignment').val(data.alignment);
|
||||
|
||||
$('#document_preview option').each(function() {
|
||||
if($('#document_doctype').val() === null || $('#document_doctype').val == ''){
|
||||
$(this).show();
|
||||
}else{
|
||||
if ($(this).hasClass('doctype-'+$('#document_doctype').val())) {
|
||||
$(this).show();
|
||||
}else{
|
||||
$(this).hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$('#document_popup').dialog('open');
|
||||
},
|
||||
beforeSend: function() {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
init: me.init
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
CompanyData.init();
|
||||
});
|
||||
Reference in New Issue
Block a user