mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 15:32:13 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
ada2730636
|
@ -480,7 +480,7 @@ class SeedDMS_Core_DMS {
|
|||
$this->lasterror = '';
|
||||
$this->version = '@package_version@';
|
||||
if($this->version[0] == '@')
|
||||
$this->version = '6.0.16';
|
||||
$this->version = '6.0.17';
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2021-05-07</date>
|
||||
<date>2021-08-20</date>
|
||||
<time>13:44:55</time>
|
||||
<version>
|
||||
<release>6.0.16</release>
|
||||
<api>6.0.16</api>
|
||||
<release>6.0.17</release>
|
||||
<api>6.0.17</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
|
@ -24,19 +24,6 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- SeedDMS_Core_DMS::getTimeline() uses status log instead of document content
|
||||
- add methods SeedDMS_Core_DocumentContent::getReviewers() and SeedDMS_Core_DocumentContent::getApprovers()
|
||||
- add methods SeedDMS_Core_DocumentContent::getApproveLog() and SeedDMS_Core_DocumentContent::getReviewLog()
|
||||
- better handling of document with an empty workflow state
|
||||
- fix checking of email addresses by using filter_var instead of regex
|
||||
- add new method SeedDMS_Core_Document::hasCategory()
|
||||
- add new method SeedDMS_Core_DocumentContent::removeReview()
|
||||
- add new method SeedDMS_Core_DocumentContent::removeApproval()
|
||||
- add new method SeedDMS_Core_User::getFolders()
|
||||
- add new method SeedDMS_Core_User::getDocumentContents()
|
||||
- add new method SeedDMS_Core_User::getDocumentFiles()
|
||||
- add new method SeedDMS_Core_User::getDocumentLinks()
|
||||
- add new type 'foldersperuser' to method SeedDMS_Core_DMS::getStatisticalData()
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
@ -1899,7 +1886,7 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
|
|||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2021-05-07</date>
|
||||
<date>2021-08-19</date>
|
||||
<time>13:44:55</time>
|
||||
<version>
|
||||
<release>5.1.23</release>
|
||||
|
@ -1926,6 +1913,22 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
|
|||
- add new type 'foldersperuser' to method SeedDMS_Core_DMS::getStatisticalData()
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2021-08-20</date>
|
||||
<time>13:44:55</time>
|
||||
<version>
|
||||
<release>5.1.24</release>
|
||||
<api>5.1.24</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- in SeedDMS_Core_DocumentContent::removeWorkflow() remove records from tblWorklflowLog before tblDWorkflowDocumentContent
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2017-02-28</date>
|
||||
<time>06:34:50</time>
|
||||
|
@ -2228,5 +2231,20 @@ better error checking in SeedDMS_Core_Document::cancelCheckOut()
|
|||
days for list DueRevisions
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2021-05-07</date>
|
||||
<time>13:44:55</time>
|
||||
<version>
|
||||
<release>6.0.16</release>
|
||||
<api>6.0.16</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
class SeedDMS_Version { /* {{{ */
|
||||
|
||||
const _number = "6.0.16";
|
||||
const _number = "6.0.17";
|
||||
const _string = "SeedDMS";
|
||||
|
||||
function __construct() {
|
||||
|
|
|
@ -245,7 +245,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo "<table class=\"table table-condensed\">";
|
||||
echo "<tr><th>Key</th><th>engl. Text</th><th>Your translation</th></tr>\n";
|
||||
foreach($MISSING_LANG as $key=>$lang) {
|
||||
echo "<tr><td>".$key."</td><td>".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."</td><td><div class=\"input-append send-missing-translation\"><input name=\"missing-lang-key\" type=\"hidden\" value=\"".$key."\" /><input name=\"missing-lang-lang\" type=\"hidden\" value=\"".$lang."\" /><input type=\"text\" class=\"input-xxlarge\" name=\"missing-lang-translation\" placeholder=\"Your translation in '".$lang."'\"/><a class=\"btn\">Submit</a></div></td></tr>";
|
||||
echo "<tr><td>".htmlspecialchars($key)."</td><td>".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."</td><td><div class=\"input-append send-missing-translation\"><input name=\"missing-lang-key\" type=\"hidden\" value=\"".$key."\" /><input name=\"missing-lang-lang\" type=\"hidden\" value=\"".$lang."\" /><input type=\"text\" class=\"input-xxlarge\" name=\"missing-lang-translation\" placeholder=\"Your translation in '".$lang."'\"/><a class=\"btn\">Submit</a></div></td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
echo "<div class=\"splash\" data-type=\"error\" data-timeout=\"5500\"><b>There are missing translations on this page!</b><br />Please check the bottom of the page.</div>\n";
|
||||
|
@ -3487,7 +3487,7 @@ $(document).ready(function() {
|
|||
$accessop = $this->params['accessobject'];
|
||||
?>
|
||||
<legend><?php printMLText($type.'_log'); ?></legend>
|
||||
<table class="table condensed">
|
||||
<table class="table table-condensed">
|
||||
<tr><th><?php printMLText('name'); ?></th><th><?php printMLText('last_update'); ?>, <?php printMLText('comment'); ?></th><th><?php printMLText('status'); ?></th></tr>
|
||||
<?php
|
||||
switch($type) {
|
||||
|
|
|
@ -68,14 +68,14 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style {
|
|||
} else {
|
||||
$msg = getMLText('workflow_in_unknown_state');
|
||||
}
|
||||
$this->infoMsg($msg);
|
||||
|
||||
$this->contentContainerStart();
|
||||
//$this->contentContainerStart();
|
||||
// Display the Workflow form.
|
||||
$this->rowStart();
|
||||
$this->columnStart(4);
|
||||
$this->infoMsg($msg);
|
||||
|
||||
$this->warningMsg(getMLText('rm_workflow_warning'));
|
||||
?>
|
||||
<p><?php printMLText("rm_workflow_warning"); ?></p>
|
||||
<form method="post" action="../op/op.RemoveWorkflowFromDocument.php" name="form1">
|
||||
<?php echo createHiddenFieldWithKey('removeworkflowfromdocument'); ?>
|
||||
<input type='hidden' name='documentid' value='<?php echo $document->getId(); ?>'/>
|
||||
|
@ -91,11 +91,12 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style {
|
|||
</div>
|
||||
<?php
|
||||
$this->columnEnd();
|
||||
$this->contentContainerEnd();
|
||||
$this->rowEnd();
|
||||
//$this->contentContainerEnd();
|
||||
|
||||
if($wkflog) {
|
||||
$this->contentContainerStart();
|
||||
echo "<table class=\"table-condensed\">";
|
||||
$this->contentHeading(getMLText("workflow_log"));
|
||||
echo "<table class=\"table table-condensed table-sm\">";
|
||||
echo "<tr><th>".getMLText('action')."</th><th>Start state</th><th>End state</th><th>".getMLText('date')."</th><th>".getMLText('user')."</th><th>".getMLText('comment')."</th></tr>";
|
||||
foreach($wkflog as $entry) {
|
||||
echo "<tr>";
|
||||
|
@ -108,7 +109,6 @@ class SeedDMS_View_RemoveWorkflowFromDocument extends SeedDMS_Theme_Style {
|
|||
echo "</tr>";
|
||||
}
|
||||
echo "</table>\n";
|
||||
$this->contentContainerEnd();
|
||||
}
|
||||
|
||||
$this->rowEnd();
|
||||
|
|
|
@ -59,20 +59,22 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style {
|
|||
$enterts = makeTsFromLongDate($enterdate);
|
||||
}
|
||||
}
|
||||
if(!empty($enterdate)) {
|
||||
$msg .= "The state was entered at ".$enterdate." which was ";
|
||||
$msg .= getReadableDuration((time()-$enterts))." ago.<br />";
|
||||
}
|
||||
}
|
||||
$msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec.";
|
||||
} else {
|
||||
$msg = getMLText('workflow_in_unknown_state');
|
||||
}
|
||||
$this->infoMsg($msg);
|
||||
|
||||
// Display the Workflow form.
|
||||
$this->rowStart();
|
||||
$this->columnStart(4);
|
||||
$this->infoMsg($msg);
|
||||
$this->warningMsg(getMLText("rewind_workflow_warning"));
|
||||
?>
|
||||
<?php $this->warningMsg(getMLText("rewind_workflow_warning")); ?>
|
||||
<form method="post" action="../op/op.RewindWorkflow.php" name="form1">
|
||||
<?php echo createHiddenFieldWithKey('rewindworkflow'); ?>
|
||||
<input type='hidden' name='documentid' value='<?php echo $document->getId(); ?>'/>
|
||||
|
@ -84,23 +86,24 @@ class SeedDMS_View_RewindWorkflow extends SeedDMS_Theme_Style {
|
|||
$this->columnStart(8);
|
||||
?>
|
||||
<div id="workflowgraph">
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $workflow->getID(); ?>" width="100%" height="400" style="border: 1px solid #AAA;"></iframe>
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $workflow->getID(); ?>" width="100%" height="600" style="border: 1px solid #AAA;"></iframe>
|
||||
</div>
|
||||
<?php
|
||||
$this->columnEnd();
|
||||
$this->rowEnd();
|
||||
|
||||
if($wkflog) {
|
||||
$this->contentHeading(getMLText("workflow_log"));
|
||||
echo "<table class=\"table table-condensed table-sm\">";
|
||||
echo "<tr><th>".getMLText('action')."</th><th>Start state</th><th>End state</th><th>".getMLText('date')."</th><th>".getMLText('user')."</th><th>".getMLText('comment')."</th></tr>";
|
||||
foreach($wkflog as $entry) {
|
||||
echo "<tr>";
|
||||
echo "<td>".getMLText('action_'.$entry->getTransition()->getAction()->getName())."</td>";
|
||||
echo "<td>".$entry->getTransition()->getState()->getName()."</td>";
|
||||
echo "<td>".$entry->getTransition()->getNextState()->getName()."</td>";
|
||||
echo "<td>".htmlspecialchars(getMLText('action_'.$entry->getTransition()->getAction()->getName()))."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getState()->getName())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getNextState()->getName())."</td>";
|
||||
echo "<td>".$entry->getDate()."</td>";
|
||||
echo "<td>".$entry->getUser()->getFullname()."</td>";
|
||||
echo "<td>".$entry->getComment()."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getUser()->getFullname())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getComment())."</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</table>\n";
|
||||
|
|
|
@ -63,46 +63,46 @@ class SeedDMS_View_RunSubWorkflow extends SeedDMS_Theme_Style {
|
|||
$msg .= getReadableDuration((time()-$enterts))." ago.<br />";
|
||||
}
|
||||
$msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec.";
|
||||
$this->infoMsg($msg);
|
||||
|
||||
$this->contentContainerStart();
|
||||
//$this->contentContainerStart();
|
||||
// Display the Workflow form.
|
||||
$this->rowStart();
|
||||
$this->columnStart(4);
|
||||
$this->infoMsg($msg);
|
||||
?>
|
||||
<form method="POST" action="../op/op.RunSubWorkflow.php" name="form1">
|
||||
<?php echo createHiddenFieldWithKey('runsubworkflow'); ?>
|
||||
<table>
|
||||
<tr><td></td><td>
|
||||
<input type='hidden' name='documentid' value='<?php echo $document->getId(); ?>'/>
|
||||
<input type='hidden' name='version' value='<?php echo $latestContent->getVersion(); ?>'/>
|
||||
<input type='hidden' name='subworkflow' value='<?php echo $subworkflow->getID(); ?>'/>
|
||||
<input type='submit' class="btn btn-primary" value='<?php printMLText("run_subworkflow"); ?>'/>
|
||||
</td></tr></table>
|
||||
<?php
|
||||
echo createHiddenFieldWithKey('runsubworkflow');
|
||||
$this->formSubmit(getMLText("run_subworkflow"));
|
||||
?>
|
||||
</form>
|
||||
<?php
|
||||
$this->columnEnd();
|
||||
$this->columnStart(4);
|
||||
$this->columnStart(8);
|
||||
?>
|
||||
<div id="workflowgraph">
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $subworkflow->getID(); ?>" width="100%" height="400" style="border: 1px solid #AAA;"></iframe>
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $subworkflow->getID(); ?>" width="100%" height="600" style="border: 1px solid #AAA;"></iframe>
|
||||
</div>
|
||||
<?php
|
||||
$this->columnEnd();
|
||||
$this->rowEnd();
|
||||
$this->contentContainerEnd();
|
||||
//$this->contentContainerEnd();
|
||||
|
||||
if($wkflog) {
|
||||
$this->contentHeading(getMLText("workflow_log"));
|
||||
echo "<table class=\"table table-condensed table-sm\">";
|
||||
echo "<tr><th>".getMLText('action')."</th><th>Start state</th><th>End state</th><th>".getMLText('date')."</th><th>".getMLText('user')."</th><th>".getMLText('comment')."</th></tr>";
|
||||
foreach($wkflog as $entry) {
|
||||
echo "<tr>";
|
||||
echo "<td>".getMLText('action_'.$entry->getTransition()->getAction()->getName())."</td>";
|
||||
echo "<td>".$entry->getTransition()->getState()->getName()."</td>";
|
||||
echo "<td>".$entry->getTransition()->getNextState()->getName()."</td>";
|
||||
echo "<td>".htmlspecialchars(getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName()))."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getState()->getName())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getNextState()->getName())."</td>";
|
||||
echo "<td>".$entry->getDate()."</td>";
|
||||
echo "<td>".$entry->getUser()->getFullname()."</td>";
|
||||
echo "<td>".$entry->getComment()."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getUser()->getFullname())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getComment())."</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</table>\n";
|
||||
|
|
|
@ -91,16 +91,18 @@ $(document).ready(function() {
|
|||
$enterts = makeTsFromLongDate($enterdate);
|
||||
}
|
||||
}
|
||||
if(!empty($enterdate)) {
|
||||
$msg .= "The state was entered at ".$enterdate." which was ";
|
||||
$msg .= getReadableDuration((time()-$enterts))." ago.<br />";
|
||||
}
|
||||
}
|
||||
$msg .= "The document may stay in this state for ".$currentstate->getMaxTime()." sec.";
|
||||
$this->infoMsg($msg);
|
||||
|
||||
$this->contentContainerStart();
|
||||
//$this->contentContainerStart();
|
||||
// Display the Workflow form.
|
||||
$this->rowStart();
|
||||
$this->columnStart(4);
|
||||
$this->infoMsg($msg);
|
||||
?>
|
||||
<form class="form-horizontal" method="post" action="../op/op.TriggerWorkflow.php" id="form1" name="form1">
|
||||
<input type='hidden' name='documentid' value='<?php echo $document->getId(); ?>'/>
|
||||
|
@ -124,29 +126,28 @@ $(document).ready(function() {
|
|||
$this->columnStart(8);
|
||||
?>
|
||||
<div id="workflowgraph">
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $workflow->getID(); ?>&transitions[]=<?php echo $transition->getID(); ?>&documentid=<?php echo $document->getID(); ?>" width="100%" height="500" style="border: 1px solid #AAA;"></iframe>
|
||||
<iframe src="out.WorkflowGraph.php?workflow=<?php echo $workflow->getID(); ?>&transitions[]=<?php echo $transition->getID(); ?>&documentid=<?php echo $document->getID(); ?>" width="100%" height="600" style="border: 1px solid #AAA;"></iframe>
|
||||
</div>
|
||||
<?php
|
||||
$this->columnEnd();
|
||||
$this->rowEnd();
|
||||
$this->contentContainerEnd();
|
||||
//$this->contentContainerEnd();
|
||||
|
||||
if($wkflog) {
|
||||
$this->contentContainerStart();
|
||||
echo "<table class=\"table-condensed\">";
|
||||
$this->contentHeading(getMLText("workflow_log"));
|
||||
echo "<table class=\"table table-condensed table-sm\">";
|
||||
echo "<tr><th>".getMLText('action')."</th><th>Start state</th><th>End state</th><th>".getMLText('date')."</th><th>".getMLText('user')."</th><th>".getMLText('comment')."</th></tr>";
|
||||
foreach($wkflog as $entry) {
|
||||
echo "<tr>";
|
||||
echo "<td>".getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName())."</td>";
|
||||
echo "<td>".$entry->getTransition()->getState()->getName()."</td>";
|
||||
echo "<td>".$entry->getTransition()->getNextState()->getName()."</td>";
|
||||
echo "<td>".htmlspecialchars(getMLText('action_'.strtolower($entry->getTransition()->getAction()->getName()), array(), $entry->getTransition()->getAction()->getName()))."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getState()->getName())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getTransition()->getNextState()->getName())."</td>";
|
||||
echo "<td>".$entry->getDate()."</td>";
|
||||
echo "<td>".$entry->getUser()->getFullname()."</td>";
|
||||
echo "<td>".$entry->getComment()."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getUser()->getFullname())."</td>";
|
||||
echo "<td>".htmlspecialchars($entry->getComment())."</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</table>\n";
|
||||
$this->contentContainerEnd();
|
||||
}
|
||||
|
||||
$this->contentEnd();
|
||||
|
|
|
@ -1005,7 +1005,7 @@ $(document).ready( function() {
|
|||
|
||||
$wkflogs = $latestContent->getWorkflowLog();
|
||||
if($wkflogs) {
|
||||
$this->contentHeading(getMLText("workflow_summary"));
|
||||
$this->contentHeading(getMLText("workflow_log"));
|
||||
$this->contentContainerStart();
|
||||
foreach($wkflogs as $wkflogt) {
|
||||
echo "<table class=\"table table-condensed table-sm\"><thead>";
|
||||
|
@ -1015,7 +1015,7 @@ $(document).ready( function() {
|
|||
echo "<tr>";
|
||||
echo "<td>".htmlspecialchars($wkflog->getWorkflow()->getName())."</td>";
|
||||
echo "<td>".$wkflog->getDate()."</td>";
|
||||
echo "<td>".htmlspecialchars($wkflog->getTransition()->getAction()->getName())."</td>";
|
||||
echo "<td>".htmlspecialchars(getMLText('action_'.strtolower($wkflog->getTransition()->getAction()->getName()), array(), $wkflog->getTransition()->getAction()->getName()))."</td>";
|
||||
$loguser = $wkflog->getUser();
|
||||
echo "<td>".htmlspecialchars($loguser->getFullName())."</td>";
|
||||
echo "<td>".htmlspecialchars($wkflog->getComment())."</td>";
|
||||
|
|
|
@ -369,15 +369,15 @@ div.buttons button {margin: 3px; _float: right;}
|
|||
div.buttons #zoom {margin: 3px; _float: right;}
|
||||
#legend {display: inline-block; margin-left: 10px;}
|
||||
#preview {height: 122px; background: #f5f5f5; border-top: 1px solid #e3e3e3;}
|
||||
#preview img {float: left;border: 1px solid #bbb; background: #fff; min-height: 115px; height: 115px; _width: 100px; padding: 3px; margin: 3px;}
|
||||
#preview img {float: left;border: 1px solid #bbb; background: #fff; min-height: 18vh; height: 18vh; _width: 100px; padding: 3px; margin: 3px;}
|
||||
</style>
|
||||
', 'css');
|
||||
$this->htmlStartPage(getMLText("admin_tools"));
|
||||
// $this->contentContainerStart();
|
||||
|
||||
?>
|
||||
<div id="canvas" style="width: 100%; height:545px; _border: 1px solid #bbb;"></div>
|
||||
<div id="preview">
|
||||
<div id="canvas" style="width: 100%; height:78vh; _border: 1px solid #bbb;"></div>
|
||||
<div id="preview" style="height:21vh; padding-top: 5px; padding-left: 5px;">
|
||||
<img id="png" />
|
||||
<div id="legend">
|
||||
<i class="fa fa-circle initstate"></i> <?php printMLText("workflow_initstate"); ?><br />
|
||||
|
|
|
@ -245,7 +245,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
|
|||
echo "<table class=\"table table-sm\">";
|
||||
echo "<tr><th>Key</th><th>engl. Text</th><th>Your translation</th></tr>\n";
|
||||
foreach($MISSING_LANG as $key=>$lang) {
|
||||
echo "<tr><td>".$key."</td><td>".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."</td><td><div class=\"input-group send-missing-translation\"><input name=\"missing-lang-key\" type=\"hidden\" value=\"".$key."\" /><input name=\"missing-lang-lang\" type=\"hidden\" value=\"".$lang."\" /><input type=\"text\" class=\"form-control\" name=\"missing-lang-translation\" placeholder=\"Your translation in '".$lang."'\"/><div class=\"input-group-append\"><button class=\"btn btn-secondary\">Submit</button></div></div></td></tr>";
|
||||
echo "<tr><td>".htmlspecialchars($key)."</td><td>".(isset($LANG['en_GB'][$key]) ? $LANG['en_GB'][$key] : '')."</td><td><div class=\"input-group send-missing-translation\"><input name=\"missing-lang-key\" type=\"hidden\" value=\"".$key."\" /><input name=\"missing-lang-lang\" type=\"hidden\" value=\"".$lang."\" /><input type=\"text\" class=\"form-control\" name=\"missing-lang-translation\" placeholder=\"Your translation in '".$lang."'\"/><div class=\"input-group-append\"><button class=\"btn btn-secondary\">Submit</button></div></div></td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
echo "<div class=\"splash\" data-type=\"error\" data-timeout=\"5500\"><b>There are missing translations on this page!</b><br />Please check the bottom of the page.</div>\n";
|
||||
|
|
Loading…
Reference in New Issue
Block a user