Browse Source

switch to DSM7_unibuild

1.2.x_release
geimist 3 months ago
parent
commit
77ebf554a5
  1. 6
      APP/application.cfg
  2. 2
      APP/bin/synOCR-cli
  3. 1
      APP/etc/placeholder
  4. 58
      APP/includes/check_privilege.inc.php
  5. 52
      APP/includes/functions.sh
  6. 11
      APP/includes/token.php
  7. 227
      APP/index.cgi
  8. 0
      APP/ui/bin/pdfinfo
  9. 0
      APP/ui/bin/yq
  10. 0
      APP/ui/bin_aarch64/pdfinfo
  11. 0
      APP/ui/bin_aarch64/pdfseparate
  12. 0
      APP/ui/bin_aarch64/yq
  13. 0
      APP/ui/config_DSM6
  14. 20
      APP/ui/config_DSM7
  15. 42
      APP/ui/edit.sh
  16. 0
      APP/ui/footer.sh
  17. 45
      APP/ui/help.sh
  18. 0
      APP/ui/images_DSM6/calendar_delete@geimist.svg
  19. 0
      APP/ui/images_DSM6/calendar_grey3@geimist.svg
  20. 0
      APP/ui/images_DSM6/calendar_new@geimist.svg
  21. 0
      APP/ui/images_DSM6/calendar_white@geimist.svg
  22. 0
      APP/ui/images_DSM6/checkbox_checked@geimist.svg
  23. 0
      APP/ui/images_DSM6/checkbox_disable@geimist.svg
  24. 0
      APP/ui/images_DSM6/checkbox_unchecked@geimist.svg
  25. 0
      APP/ui/images_DSM6/fieldset_expand1@geimist.svg
  26. 0
      APP/ui/images_DSM6/fieldset_expand2@geimist.svg
  27. 0
      APP/ui/images_DSM6/help_grey3@geimist.svg
  28. 0
      APP/ui/images_DSM6/help_white@geimist.svg
  29. 0
      APP/ui/images_DSM6/home_grey3@geimist.svg
  30. 0
      APP/ui/images_DSM6/home_white@geimist.svg
  31. 0
      APP/ui/images_DSM6/icon_information_mini@geimist.svg
  32. 0
      APP/ui/images_DSM6/paypal.png
  33. 0
      APP/ui/images_DSM6/sanduhr_blue@geimist.svg
  34. 0
      APP/ui/images_DSM6/settings_grey3@geimist.svg
  35. 0
      APP/ui/images_DSM6/settings_white@geimist.svg
  36. 0
      APP/ui/images_DSM6/status_error@geimist.svg
  37. 0
      APP/ui/images_DSM6/status_green@geimist.svg
  38. 0
      APP/ui/images_DSM6/status_grey3@geimist.svg
  39. 0
      APP/ui/images_DSM6/status_loading.gif
  40. 0
      APP/ui/images_DSM6/status_white@geimist.svg
  41. 0
      APP/ui/images_DSM6/synOCR-LOGO.svg
  42. 0
      APP/ui/images_DSM6/synOCR_120.png
  43. 0
      APP/ui/images_DSM6/synOCR_128.png
  44. 0
      APP/ui/images_DSM6/synOCR_16.png
  45. 0
      APP/ui/images_DSM6/synOCR_24.png
  46. 0
      APP/ui/images_DSM6/synOCR_256.png
  47. 0
      APP/ui/images_DSM6/synOCR_32.png
  48. 0
      APP/ui/images_DSM6/synOCR_48.png
  49. 0
      APP/ui/images_DSM6/synOCR_512.png
  50. 0
      APP/ui/images_DSM6/synOCR_64.png
  51. 0
      APP/ui/images_DSM6/synOCR_72.png
  52. 0
      APP/ui/images_DSM6/synOCR_90.png
  53. 1
      APP/ui/images_DSM7/calendar_delete@geimist.svg
  54. 9
      APP/ui/images_DSM7/calendar_grey3@geimist.svg
  55. 1
      APP/ui/images_DSM7/calendar_new@geimist.svg
  56. 1
      APP/ui/images_DSM7/calendar_white@geimist.svg
  57. 25
      APP/ui/images_DSM7/checkbox_checked@geimist.svg
  58. 18
      APP/ui/images_DSM7/checkbox_disable@geimist.svg
  59. 24
      APP/ui/images_DSM7/checkbox_unchecked@geimist.svg
  60. 1
      APP/ui/images_DSM7/fieldset_expand1@geimist.svg
  61. 1
      APP/ui/images_DSM7/fieldset_expand2@geimist.svg
  62. 7
      APP/ui/images_DSM7/help_grey3@geimist.svg
  63. 1
      APP/ui/images_DSM7/help_white@geimist.svg
  64. 7
      APP/ui/images_DSM7/home_grey3@geimist.svg
  65. 1
      APP/ui/images_DSM7/home_white@geimist.svg
  66. 24
      APP/ui/images_DSM7/icon_information_mini@geimist.svg
  67. BIN
      APP/ui/images_DSM7/paypal.png
  68. 16
      APP/ui/images_DSM7/sanduhr_blue@geimist.svg
  69. 11
      APP/ui/images_DSM7/settings_grey3@geimist.svg
  70. 1
      APP/ui/images_DSM7/settings_white@geimist.svg
  71. 5
      APP/ui/images_DSM7/status_error@geimist.svg
  72. 7
      APP/ui/images_DSM7/status_green@geimist.svg
  73. 9
      APP/ui/images_DSM7/status_grey3@geimist.svg
  74. BIN
      APP/ui/images_DSM7/status_loading.gif
  75. 1
      APP/ui/images_DSM7/status_white@geimist.svg
  76. 1
      APP/ui/images_DSM7/synOCR-LOGO.svg
  77. BIN
      APP/ui/images_DSM7/synOCR_120.png
  78. BIN
      APP/ui/images_DSM7/synOCR_128.png
  79. BIN
      APP/ui/images_DSM7/synOCR_16.png
  80. BIN
      APP/ui/images_DSM7/synOCR_24.png
  81. BIN
      APP/ui/images_DSM7/synOCR_256.png
  82. BIN
      APP/ui/images_DSM7/synOCR_32.png
  83. BIN
      APP/ui/images_DSM7/synOCR_48.png
  84. BIN
      APP/ui/images_DSM7/synOCR_512.png
  85. BIN
      APP/ui/images_DSM7/synOCR_64.png
  86. BIN
      APP/ui/images_DSM7/synOCR_72.png
  87. BIN
      APP/ui/images_DSM7/synOCR_90.png
  88. 3
      APP/ui/includes/decode.sed
  89. 3
      APP/ui/includes/encode.sed
  90. 93
      APP/ui/includes/functions.sh
  91. 0
      APP/ui/includes/synocr_1.1.0.css
  92. BIN
      APP/ui/includes/synowebapi_aarch64
  93. BIN
      APP/ui/includes/synowebapi_x86_64
  94. 301
      APP/ui/index.cgi
  95. 17
      APP/ui/lang/lang_enu.txt
  96. 17
      APP/ui/lang/lang_ger.txt
  97. 51
      APP/ui/main.sh
  98. 26
      APP/ui/synOCR-start.sh
  99. 10
      APP/ui/synOCR.sh
  100. 1
      APP/ui/texts/enu/strings

6
APP/application.cfg

@ -1,6 +0,0 @@
text = synOCR
description = synOCR
icon_16 = images/synOCR_16.png
icon_32 = images/synOCR_32.png
type = embedded
path = /webman/3rdparty/synOCR/index.cgi

2
APP/bin/synOCR-cli

@ -0,0 +1,2 @@
#!/bin/sh
/var/packages/synOCR/scripts/start-stop-status "$@"

1
APP/etc/placeholder

@ -1 +0,0 @@

58
APP/includes/check_privilege.inc.php

@ -1,58 +0,0 @@
<?PHP
//***********************************************************************//
// check_appprivilege.inc.php //
// Description: Script to query the active user permission for the //
// called application. //
// This will allow control of the permissions for //
// 3rdparty apps via Control Panel - Permissions //
// Now with query from SynoToken (DSM 4.x and onward) //
// Author: QTip from the german Synology support forum //
// Copyright: 2014-2016 by QTip //
// License: GNU GPLv3 (see LICENSE) //
// Thanks to MrSandman (German Synology support forum) for the nudge in //
// the right direction //
// ------------------------------------------------------------------- //
// Version: 0.31 - 18/09/2016 //
//***********************************************************************//
function check_privilege($appname) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$clientIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_X_REAL_IP'])){
$clientIP = $_SERVER['HTTP_X_REAL_IP'];
} else {
$clientIP = $_SERVER['REMOTE_ADDR'];
}
putenv('HTTP_COOKIE='.$_SERVER['HTTP_COOKIE']);
putenv('REMOTE_ADDR='.$clientIP);
$login = shell_exec("/usr/syno/synoman/webman/login.cgi");
preg_match('/\"SynoToken\"\s*?:\s*?\"(.*)\"/',$login,$synotoken);
$synotoken = trim($synotoken[1]);
// backup the current state of QUERY_STRING
$tmpenv = getenv('QUERY_STRING');
putenv('QUERY_STRING=SynoToken='.$synotoken);
$synouser = shell_exec("/usr/syno/synoman/webman/modules/authenticate.cgi");
if ($synouser == '') return array('','',0);
// get dsm build
$dsmbuild = shell_exec("/bin/get_key_value /etc.defaults/VERSION buildnumber");
if ($dsmbuild >= 7307) {
$raw_data = shell_exec("/usr/syno/bin/synowebapi --exec api=SYNO.Core.Desktop.Initdata method=get version=1 runner=".$synouser);
$initdata = json_decode(trim($raw_data),true);
$appprivilege = (array_key_exists($appname, $initdata['data']['AppPrivilege']) && $initdata['data']['AppPrivilege'][$appname]) ? 1 : 0;
$is_admin = (array_key_exists('is_admin', $initdata['data']['Session']) && $initdata['data']['Session']['is_admin'] == 1) ? 1 : 0;
} else {
$raw_data = shell_exec("/usr/syno/synoman/webman/initdata.cgi");
$raw_data = substr($raw_data,strpos($raw_data,"{")-1);
$initdata = json_decode(trim($raw_data),true);
$appprivilege = (array_key_exists($appname, $initdata['AppPrivilege']) && $initdata['AppPrivilege'][$appname]) ? 1 : 0;
$is_admin = (array_key_exists('is_admin', $initdata['Session']) && $initdata['Session']['is_admin'] == 1) ? 1 : 0;
}
// print $synotoken." - ".$synouser." - ".$is_admin;
// if application not found or user not admin, return empty string
// restore the old state of QUERY_STRING
putenv('QUERY_STRING='.$tmpenv);
if (!$appprivilege && !$is_admin) return array('','',0);
return array($synotoken,$synouser,$is_admin);
}
?>

52
APP/includes/functions.sh

@ -1,52 +0,0 @@
#!/bin/sh
# Sprachvariablen laden (function by Ultimate Backup)
function language()
{
# Englische Sprachdatei laden
source "lang/lang_enu.txt"
# Sprachdateien konfigurieren
# Funktion zur Ermittlung der eingestellten Sprache
# - DSM Sprache ermitteln (aus synoinfo.conf)
# - Browser Sprache ermitteln (aus ${HTTP_ACCEPT_LANGUAGE})
# - wenn DSM Sprache = default, dann benutze Browser Sprache
# - Persönliche DSM Sprache ermitteln (aus usersettings)
# - falls Persönliche DSM Sprache = default, dann benutze weiterhin die zuvor
# ermittelte Sprache, ansonsten benutze die ermittelte Persönliche DSM Sprache
# - ist DSM Sprache und Persönliche DSM Sprache = "def" und Browser Sprache nicht gesetzt, dann benutze Standard Sprache (DEFLANG)
# Prioritäten: 1. Persönliche DSM Sprache =2. DSM Sprache =3. Browser Sprache =4. Standard Sprache
#
# Übersetzungstabelle deklarieren
declare -A ISO2SYNO
ISO2SYNO=( ["de"]="ger" ["en"]="enu" ["zh"]="chs" ["cs"]="csy" ["jp"]="jpn" ["ko"]="krn" ["da"]="dan" ["fr"]="fre" ["it"]="ita" ["nl"]="nld" ["no"]="nor" ["pl"]="plk" ["ru"]="rus" ["sp"]="spn" ["sv"]="sve" ["hu"]="hun" ["tr"]="trk" ["pt"]="ptg" )
# DSM Sprache ermitteln
deflang="ger"
lang=$(cat /etc/synoinfo.conf | grep language | sed 's/language=//;s/\"//g' | egrep -o "^.{3}")
if [[ "${lang}" == "def" ]] ; then
# Browsersprache ermitteln
if [ -n "${HTTP_ACCEPT_LANGUAGE}" ] ; then
bl=$(echo ${HTTP_ACCEPT_LANGUAGE} | cut -d "," -f1)
bl=${bl:0:2}
lang=${ISO2SYNO[${bl}]}
else
lang=${deflang}
fi
fi
# Persönliche DSM Sprache ermitteln
usersettingsfile=/usr/syno/etc/preference/${login_user}/usersettings
if [ -f ${usersettingsfile} ] ; then
userlanguage=$(jq -r ".Personal.lang" ${usersettingsfile})
if [ -n "${userlanguage}" -a "${userlanguage}" != "def" -a "${userlanguage}" != "null" ] ; then
lang=${userlanguage}
fi
fi
# Sprachdatei laden
if [ -f "lang/lang_${lang}.txt" ] && [[ "$lang" != "enu" ]]; then
source "lang/lang_${lang}.txt"
fi
}

11
APP/includes/token.php

@ -1,11 +0,0 @@
<?php require('includes/check_privilege.inc.php'); list($synotoken,
$synouser, $is_admin) =
check_privilege('SYNO.SDS.synOCR.Application'); if ($synouser == '')
{
echo "0";
}
else
{
echo "token: $synotoken user: $synouser admin: $is_admin";
}
?>

227
APP/index.cgi

@ -1,227 +0,0 @@
#!/bin/bash
# /usr/syno/synoman/webman/3rdparty/synOCR/index.cgi
# adjust PATH:
machinetyp=$(uname --machine)
if [ $machinetyp = "x86_64" ]; then
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/opt/usr/bin:/usr/syno/synoman/webman/3rdparty/synOCR/bin
elif [ $machinetyp = "aarch64" ]; then
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/opt/usr/bin:/usr/syno/synoman/webman/3rdparty/synOCR/bin_aarch64
fi
# Check access authorizations of the DSM (Syno-Token)
login=$(php -f /volume*/@appstore/synOCR/includes/token.php) || exit
login_user=$(echo $login | sed "s/.*user: //;s/ admin:.*//") || exit
login_admin=$(echo $login | sed -e 's/.*admin: //') || exit
if [ -n "$login" ]; then
if [[ "$login" != "0" ]] && [[ "$login_user" != "0" ]]; then
access="yes"
fi
fi
# Exit script if access not granted
if [ -z "$access" ]; then
exit
else
# Initiate user folder
dir=$(echo /volume*/@appstore/synOCR) || exit
get_var=$(which get_key_value) || exit
set_var=$(which synosetkeyvalue) || exit
usersettings="$dir/usersettings" # ToDo: move to "$dir/etc"
if [ ! -d "$usersettings" ]; then
mkdir "$usersettings"
fi
var="$dir/usersettings/var.txt"
# var="$usersettings/var.txt"
# stop="$usersettings/stop.txt"
stop="$dir/usersettings/stop.txt"
black="color: #000000"
green="color: #00B10D"
red="color: #DF0101"
synotrred="color: #BD0010"
synocrred="color: #BD0010"
blue="color: #2A588C"
orange="color: #FFA500"
grey="color: #424242"
grey1="color: #53657D"
grey2="color: #374355"
# Load configuration:
# source $dir/app/etc/Konfiguration.txt
# read MAC-adress (only to hide DEV pages)
read MAC </sys/class/net/eth0/address
sysID=`echo $MAC | cksum | awk '{print $1}'`; sysID="$(printf '%010d' $sysID)" #echo "Prüfsumme der MAC-Adresse als Hardware-ID: $sysID" 10-stellig
fi
source $dir/includes/functions.sh
# Load language variables:
language
if [ -z "$backifs" ]; then
backifs="$IFS"
readonly backifs
fi
IFS="&"
set -- $QUERY_STRING
IFS='
'
# Initiate environment parameters:
for i in "$@"; do
IFS="$backifs"
variable=${i%%=*}
encode_value=${i##*=}
decode_value=$(echo "$encode_value" | sed -f $dir/includes/decode.sed)
"$set_var" "$var" "$variable" "$decode_value"
"$set_var" "$var" "encode_$variable" "$encode_value"
done
if [ -f "$var" ]; then
source "$var"
fi
mainpage=${page%%-*}
site=${page##*-}
sitemore=$(( $site + 1 ))
siteless=$(( $site - 1 ))
if [[ "$mainpage" == "start" ]]; then
[ -f "$var" ] && rm "$var"
[ -f "$stop" ] && rm "$stop"
[ -f "$usersettings/stop2.txt" ] && rm "$usersettings/stop2.txt"
mainpage="main"
fi
# Layout - Define Home Page:
if [ -z "$page" ]; then
mainpage="main"
fi
"$set_var" "$var" "page" ""
# Layout - Open basic framework incl. navigation -
echo "Content-type: text/html"
echo
echo '
<!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">
<head>
<title>synOCR</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/svg+xml" href="images/synOCR-LOGO.svg" sizes="any">
<!-- <link rel="shortcut icon" href="images/uh_32.png" type="image/x-icon" /> -->
<link rel="stylesheet" type="text/css" href="includes/synocr_1.1.0.css" />
<!--Load the AJAX API-->
<!--<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>-->
<script type="text/javascript" src="js/chartsloader.js"></script>
</head>
<body>'
echo '<div id="wrapper">'
echo '
<div id="navleft">
<div id="navleftinbox">
<ul class="li_blank">'
# old main-Page:
if [[ "$mainpage" == "main" ]]; then
echo '
<li><a class="navitemselc" href="index.cgi?page=main"><img class="svg" src="images/home_white@geimist.svg" height="25" width="25"/>'$lang_page1'</a></li>'
else
echo '
<li><a class="navitem" href="index.cgi?page=main"><img class="svg" src="images/home_grey3@geimist.svg" height="25" width="25"/>'$lang_page1'</a></li>'
fi
if [[ "$mainpage" == "edit" ]]; then
echo '
<li><a class="navitemselc" href="index.cgi?page=edit"><img class="svg" src="images/settings_white@geimist.svg" height="25" width="25"/>'$lang_page2'</a></li>'
else
echo '
<li><a class="navitem" href="index.cgi?page=edit"><img class="svg" src="images/settings_grey3@geimist.svg" height="25" width="25"/>'$lang_page2'</a></li>'
fi
if [[ "$mainpage" == "timer" ]] && [[ $(synogetkeyvalue /etc.defaults/VERSION majorversion) -lt 7 ]]; then
echo '
<li><a class="navitemselc" href="index.cgi?page=timer"><img class="svg" src="images/calendar_white@geimist.svg" height="25" width="25"/>'$lang_page3'</a></li>'
elif [[ $(synogetkeyvalue /etc.defaults/VERSION majorversion) -lt 7 ]]; then
echo '
<li><a class="navitem" href="index.cgi?page=timer"><img class="svg" src="images/calendar_grey3@geimist.svg" height="25" width="25"/>'$lang_page3'</a></li>'
fi
if [[ "$mainpage" == "help" ]]; then
echo '
<li><a class="navitemselc" href="index.cgi?page=help"><img class="svg" src="images/help_white@geimist.svg" height="25" width="25"/>'$lang_page4'</a></li>'
else
echo '
<li><a class="navitem" href="index.cgi?page=help"><img class="svg" src="images/help_grey3@geimist.svg" height="25" width="25"/>'$lang_page4'</a></li>'
fi
echo '</ul>
</div>
</div>'
echo '
<p style="padding: 15px;">
<div class="clear"></div>'
# Layout - Dynamic page exchange:
echo '
<form action="index.cgi" method="get" autocomplete="on">'
if [ -z "$mainpage" ]; then
echo 'The page could not be found!'
else
script="$mainpage.sh"
if [ -f "$script" ]; then
. ./"$script"
else
. ./main.sh
fi
fi
# Error output:
if [ -f "$usersettings/stop2.txt" ]; then
#<div id="Content_1Col">
echo '
<div class="Content_1Col_full">
<div class="warning">
<p class="center">'
IFS='
'
for i in $(< "$usersettings/stop2.txt"); do
IFS="$backifs"
echo ''$i''
done
[ -f "$stop" ] && rm "$stop"
[ -f "$usersettings/stop2.txt" ] && rm "$usersettings/stop2.txt"
echo '
</p>
</div>
<div id="lastLine"></div>
</div><div class="clear"></div>'
#</div>
fi
if [ -f "$stop" ]; then
cp "$stop" "$usersettings/stop2.txt"
echo '<meta http-equiv="refresh" content="0; url=index.cgi?page='$(echo "$page" | sed 's/[[:digit:]]*$//')''$siteless'#lastLine">'
fi
# Footer
if [ -f "footer.sh" ] && [ ! -f "$stop" ]; then
. ./footer.sh
fi
# Layout - Close base frame -
echo '
</form>
</div>
</body>
</html>'

0
APP/bin/pdfinfo → APP/ui/bin/pdfinfo

0
APP/bin/yq → APP/ui/bin/yq

0
APP/bin_aarch64/pdfinfo → APP/ui/bin_aarch64/pdfinfo

0
APP/bin_aarch64/pdfseparate → APP/ui/bin_aarch64/pdfseparate

0
APP/bin_aarch64/yq → APP/ui/bin_aarch64/yq

0
APP/config → APP/ui/config_DSM6

20
APP/ui/config_DSM7

@ -0,0 +1,20 @@
{
".url": {
"SYNO.SDS.ThirdParty.App.synOCR": {
"type": "legacy",
"title": "synOCR",
"desc": "synOCR",
"allUsers": false,
"allowMultiInstance": false,
"grantPrivilege": "all",
"advanceGrantPrivilege": true,
"configablePrivilege": true,
"icon": "images/synOCR_{0}.png",
"appWindow": "SYNO.SDS.ThirdParty.App.synOCR",
"texts": "texts",
"width": 992,
"height": 560,
"url": "/webman/3rdparty/synOCR/index.cgi"
}
}
}

42
APP/edit.sh → APP/ui/edit.sh

@ -161,6 +161,7 @@ echo "
#sampletagrulename1:
# tagname: target_tag
# targetfolder: \"/<path>/\"
# tagname_RegEx: \"HUK[[:digit:]]{2}\"
# condition: all
# subrules:
# - searchstring: foundme
@ -731,19 +732,19 @@ if [[ "$page" == "edit" ]]; then
</p>'
# Document split pattern
echo '
<p>
<label>'$lang_edit_set2_documentSplitPattern_title'</label>'
if [ -n "$documentSplitPattern" ]; then
echo '<input type="text" name="documentSplitPattern" value="'$documentSplitPattern'" />'
else
echo '<input type="text" name="documentSplitPattern" value="" />'
fi
echo '
<a class="helpbox" href="#HELP">
<img src="images/icon_information_mini@geimist.svg" height="25" width="25"/>
<span>'$lang_edit_set2_documentSplitPattern_help1'</span></a>
</p>'
# echo '
# <p>
# <label>'$lang_edit_set2_documentSplitPattern_title'</label>'
# if [ -n "$documentSplitPattern" ]; then
# echo '<input type="text" name="documentSplitPattern" value="'$documentSplitPattern'" />'
# else
# echo '<input type="text" name="documentSplitPattern" value="" />'
# fi
# echo '
# <a class="helpbox" href="#HELP">
# <img src="images/icon_information_mini@geimist.svg" height="25" width="25"/>
# <span>'$lang_edit_set2_documentSplitPattern_help1'</span></a>
# </p>'
# Taglist
echo '
@ -752,10 +753,8 @@ if [[ "$page" == "edit" ]]; then
# YAML convert button:
# ("taglist" does not refer to an external file OR refers to an external file and has max. one line) AND input directory is a valid path
if ( [[ ! -f "$taglist" ]] || $([[ -f "$taglist" ]] && [[ $( cat "$taglist" | wc -l ) -le 1 ]]) ) && [ -d "$INPUTDIR" ] ; then
# href="#HELP" style="float: left;"
# ToDo: correct button position (http://jsfiddle.net/HJf8q/2/)
echo '<a class="helpbox" >
<br><br><button name="page" value="edit-convert2YAML" class="blue_button">'$lang_edit_yamlsample_button'</button>&nbsp;<span>
<br><br><label><button name="page" value="edit-convert2YAML" class="blue_button">'$lang_edit_yamlsample_button'</button></label>&nbsp;<span>
<strong>'$lang_edit_yamlsample_button_help_headline'</strong><br><br>
'$lang_edit_yamlsample_button_help_01'<br>
'$lang_edit_yamlsample_button_help_02'<br>
@ -856,26 +855,29 @@ if [[ "$page" == "edit" ]]; then
'$lang_edit_set2_renamesyntax_help3':<br>
<b>§docr</b> ('$lang_edit_set2_renamesyntax_help4')<br>
<b>§mocr</b> ('$lang_edit_set2_renamesyntax_help5')<br>
<b>§yocr</b> ('$lang_edit_set2_renamesyntax_help6')<br>
<b>§yocr2</b> ('$lang_edit_set2_renamesyntax_help6a')<br>
<b>§yocr4</b> ('$lang_edit_set2_renamesyntax_help6b')<br>
<b>§ssnow</b> ('$lang_edit_set2_renamesyntax_help22')<br>
<b>§mmnow</b> ('$lang_edit_set2_renamesyntax_help23')<br>
<b>§hhnow</b> ('$lang_edit_set2_renamesyntax_help24')<br>
<b>§dnow</b> ('$lang_edit_set2_renamesyntax_help7')<br>
<b>§mnow</b> ('$lang_edit_set2_renamesyntax_help8')<br>
<b>§ynow</b> ('$lang_edit_set2_renamesyntax_help9')<br>
<b>§ynow2</b> ('$lang_edit_set2_renamesyntax_help9a')<br>
<b>§ynow4</b> ('$lang_edit_set2_renamesyntax_help9b')<br>
<b>§sssource</b> ('$lang_edit_set2_renamesyntax_help25')<br>
<b>§mmsource</b> ('$lang_edit_set2_renamesyntax_help26')<br>
<b>§hhsource</b> ('$lang_edit_set2_renamesyntax_help27')<br>
<b>§dsource</b> ('$lang_edit_set2_renamesyntax_help10')<br>
<b>§msource</b> ('$lang_edit_set2_renamesyntax_help11')<br>
<b>§ysource</b> ('$lang_edit_set2_renamesyntax_help12')<br>
<b>§ysource2</b> ('$lang_edit_set2_renamesyntax_help12a')<br>
<b>§ysource4</b> ('$lang_edit_set2_renamesyntax_help12b')<br>
<b>§tag</b> ('$lang_edit_set2_renamesyntax_help13')<br>
<b>§tit</b> ('$lang_edit_set2_renamesyntax_help14')<br>
<b>§pagecounttotal</b> ('$lang_edit_set2_renamesyntax_help18')<br>
<b>§filecounttotal</b> ('$lang_edit_set2_renamesyntax_help19')<br>
<b>§pagecountprofile</b> ('$lang_edit_set2_renamesyntax_help20')<br>
<b>§filecountprofile</b> ('$lang_edit_set2_renamesyntax_help21')<br><br>
>><b>§yocr-§mocr-§docr_§tag_§tit</b><< '$lang_edit_set2_renamesyntax_help15'<br>
>><b>§yocr4-§mocr-§docr_§tag_§tit</b><< '$lang_edit_set2_renamesyntax_help15'<br>
'$lang_edit_set2_renamesyntax_help16' >><b>2018-12-09_#Rechnung_00376.pdf</b><<<br>
<br>'$lang_edit_set2_renamesyntax_help17'<br><br><br><br><br></span></a>
</p>'

0
APP/footer.sh → APP/ui/footer.sh

45
APP/help.sh → APP/ui/help.sh

@ -1,31 +1,24 @@
#!/bin/bash
# /usr/syno/synoman/webman/3rdparty/synOCR/help.sh
echo '
<div id="Content_1Col">
<div class="Content_1Col_full">
<div class="title">
synOCR '$lang_page4'
</div>'
# Aufklappbar:
<div id="Content_1Col">
<div class="Content_1Col_full">
<div class="title">synOCR '$lang_page4'</div>'
# Expandable:
echo '<fieldset>
<hr style="border-style: dashed; size: 1px;">
<br />
<details><p>
<summary>
<span class="detailsitem">'$lang_help_title_QS'</span>
</summary></p><p>' # ab hier steht der Text, der auf- und zugeklappt werden soll.
echo '<ol style="list-style:decimal">
</summary></p><p>' # from here is the text to be expanded and collapsed.
# -> Section configuration:
echo '<ol style="list-style:decimal">
<li>'$lang_help_QS_1_beforelink' <a href="index.cgi?page=edit" style="'$synocrred';">'$lang_page2'</a> '$lang_help_QS_1_afterlink'</li>
<p><li>'$lang_help_QS_2'<div class="tab"><br>
'$lang_help_QS_3'<br>
'$lang_help_QS_4_beforelink' <a href="index.cgi?page=timer" style="'$synocrred';">'$lang_page3'</a> '$lang_help_QS_4_afterlink'<br><br>
'$lang_help_QS_5'</p><hr><p>
'$lang_help_QS_6'</p>
<p style="margin-left: 40px;"><code>/usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh</code></p>
<h3>'$lang_help_QS_sub1_tit'</h3>
<ul class="li_standard">
<li>'$lang_help_QS_sub1_1'</li>
@ -49,13 +42,10 @@ echo '
<code><span style="background-color:#cccccc;font-hight:1.1em;">/usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh</span></code>
</ul><br>
</ol>'
echo '</details></fieldset></p>'
# -> Abschnitt FAQ:
echo '<fieldset><hr style="border-style: dashed; size: 1px;"><br /><details><p><summary><span class="detailsitem">'$lang_help_title_FAQ'</span></summary></p>'
# -> Abschnitt OCRmyPDF:
# -> Section FAQ:
echo '<fieldset><hr style="border-style: dashed; size: 1px;"><br /><details><p><summary><span class="detailsitem">'$lang_help_title_FAQ'</span></summary></p>'
echo '<fieldset>
<details><p><summary><span class="detailsitem">'$lang_help_FAQ_sub1_tit'</span></summary></p>
<ul class="li_standard"><li>'
@ -82,10 +72,9 @@ echo '<fieldset><hr style="border-style: dashed; size: 1px;"><br /><details><p><
<details><p><summary><span class="detailsitem">'$lang_help_FAQ_sub5_tit'</span></summary></p><ul class="li_standard">'
echo '<li>'$lang_help_FAQ_sub5_beforelink' <a href="https://www.synology-forum.de/showthread.html?99647-synOCR-GUI-f%C3%BCr-OCRmyPDF" onclick="window.open(this.href); return false;" style="'$synocrred';">'$lang_help_FAQ_sub5_linktitle'</a>'$lang_help_FAQ_sub5_afterlink'</li></ul>'
echo '</details></fieldset>'
echo '</details></fieldset></p>'
# -> Abschnitt sonstiges:
# -> Section other:
echo '<fieldset>
<hr style="border-style: dashed; size: 1px;"><br />
<details><p>
@ -93,14 +82,10 @@ echo '<fieldset>
<span class="detailsitem">'$lang_help_about_title'</span>
</summary></p>
<p>'
echo '<p>'$lang_help_about_1'<br>'$lang_help_about_2'<br><a href="https://www.paypal.me/geimist" onclick="window.open(this.href); return false;">
<img src="images/paypal.png" alt="PayPal" style="float:right;padding:10px" height="60" width="200"/></a><br>'$lang_help_about_3'</p>'
echo '</details><br><hr style="border-style: dashed; size: 1px;"></fieldset></p>'
echo '</details><br><hr style="border-style: dashed; size: 1px;"></fieldset></p>'
echo '
</div>
</div><div class="clear"></div>'
echo '</div></div><div class="clear"></div>'

0
APP/images/calendar_delete@geimist.svg → APP/ui/images_DSM6/calendar_delete@geimist.svg

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
APP/images/calendar_grey3@geimist.svg → APP/ui/images_DSM6/calendar_grey3@geimist.svg

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
APP/images/calendar_new@geimist.svg → APP/ui/images_DSM6/calendar_new@geimist.svg

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
APP/images/calendar_white@geimist.svg → APP/ui/images_DSM6/calendar_white@geimist.svg

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
APP/images/checkbox_checked@geimist.svg → APP/ui/images_DSM6/checkbox_checked@geimist.svg

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

0
APP/images/checkbox_disable@geimist.svg → APP/ui/images_DSM6/checkbox_disable@geimist.svg

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

0
APP/images/checkbox_unchecked@geimist.svg → APP/ui/images_DSM6/checkbox_unchecked@geimist.svg

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

0
APP/images/fieldset_expand1@geimist.svg → APP/ui/images_DSM6/fieldset_expand1@geimist.svg

Before

Width:  |  Height:  |  Size: 857 B

After

Width:  |  Height:  |  Size: 857 B

0
APP/images/fieldset_expand2@geimist.svg → APP/ui/images_DSM6/fieldset_expand2@geimist.svg

Before

Width:  |  Height:  |  Size: 855 B

After

Width:  |  Height:  |  Size: 855 B

0
APP/images/help_grey3@geimist.svg → APP/ui/images_DSM6/help_grey3@geimist.svg

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
APP/images/help_white@geimist.svg → APP/ui/images_DSM6/help_white@geimist.svg

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
APP/images/home_grey3@geimist.svg → APP/ui/images_DSM6/home_grey3@geimist.svg

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 676 B

0
APP/images/home_white@geimist.svg → APP/ui/images_DSM6/home_white@geimist.svg

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 591 B

0
APP/images/icon_information_mini@geimist.svg → APP/ui/images_DSM6/icon_information_mini@geimist.svg

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
APP/images/paypal.png → APP/ui/images_DSM6/paypal.png

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
APP/images/sanduhr_blue@geimist.svg → APP/ui/images_DSM6/sanduhr_blue@geimist.svg

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

0
APP/images/settings_grey3@geimist.svg → APP/ui/images_DSM6/settings_grey3@geimist.svg

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

0
APP/images/settings_white@geimist.svg → APP/ui/images_DSM6/settings_white@geimist.svg

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
APP/images/status_error@geimist.svg → APP/ui/images_DSM6/status_error@geimist.svg

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
APP/images/status_green@geimist.svg → APP/ui/images_DSM6/status_green@geimist.svg

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
APP/images/status_grey3@geimist.svg → APP/ui/images_DSM6/status_grey3@geimist.svg

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
APP/images/status_loading.gif → APP/ui/images_DSM6/status_loading.gif

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
APP/images/status_white@geimist.svg → APP/ui/images_DSM6/status_white@geimist.svg

Before

Width:  |  Height:  |  Size: 953 B

After

Width:  |  Height:  |  Size: 953 B

0
APP/images/synOCR-LOGO.svg → APP/ui/images_DSM6/synOCR-LOGO.svg

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

0
APP/images/synOCR_120.png → APP/ui/images_DSM6/synOCR_120.png

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

0
APP/images/synOCR_128.png → APP/ui/images_DSM6/synOCR_128.png

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

0
APP/images/synOCR_16.png → APP/ui/images_DSM6/synOCR_16.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
APP/images/synOCR_24.png → APP/ui/images_DSM6/synOCR_24.png

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
APP/images/synOCR_256.png → APP/ui/images_DSM6/synOCR_256.png

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

0
APP/images/synOCR_32.png → APP/ui/images_DSM6/synOCR_32.png

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
APP/images/synOCR_48.png → APP/ui/images_DSM6/synOCR_48.png

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

0
APP/images/synOCR_512.png → APP/ui/images_DSM6/synOCR_512.png

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

0
APP/images/synOCR_64.png → APP/ui/images_DSM6/synOCR_64.png

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

0
APP/images/synOCR_72.png → APP/ui/images_DSM6/synOCR_72.png

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

0
APP/images/synOCR_90.png → APP/ui/images_DSM6/synOCR_90.png

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

1
APP/ui/images_DSM7/calendar_delete@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="Close-Circle-Icon" serif:id="Close Circle Icon" d="M399.1,510.794c-62.351,0 -112.896,-50.543 -112.896,-112.895c0,-62.35 50.545,-112.899 112.896,-112.899c62.351,0 112.897,50.549 112.897,112.899c0,62.352 -50.546,112.895 -112.897,112.895Zm39.951,-153.024c-5.475,-5.473 -14.353,-5.473 -19.829,0l-20.213,20.213l-20.214,-20.213c-5.475,-5.473 -14.352,-5.473 -19.827,0c-5.476,5.479 -5.476,14.353 0,19.824l20.214,20.218l-20.214,20.215c-5.476,5.47 -5.476,14.35 0,19.829c5.475,5.475 14.352,5.475 19.827,0l20.214,-20.216l20.213,20.216c5.476,5.475 14.354,5.475 19.828,0c5.476,-5.479 5.476,-14.359 0,-19.829l-20.214,-20.215l20.214,-20.218c5.476,-5.471 5.476,-14.345 0.001,-19.824Z" style="fill:#bd0010;"/><path d="M256,436.5l-205.845,0c-27.681,0 -50.155,-22.474 -50.155,-50.155l0,-240.062c0,-27.681 22.474,-50.155 50.155,-50.155l22.873,0c0,7.789 0.012,15.578 0.037,23.367c0.081,8.503 3.691,16.737 9.806,22.499c7.819,7.366 19.582,10.238 29.911,7.301c12.939,-3.678 22.526,-16.371 22.653,-29.8c0.025,-7.789 0.038,-15.578 0.038,-23.367l185.26,0c0,7.789 0.012,15.579 0.037,23.368c0.082,8.503 3.701,16.746 9.807,22.498c7.819,7.366 19.582,10.238 29.91,7.301c12.939,-3.678 22.528,-16.383 22.654,-29.8c0.025,-7.789 0.037,-15.578 0.037,-23.367l22.873,0c27.681,0 50.155,22.474 50.155,50.155l0,109.717l-37.423,0l0,-83.244l-381.36,0l0,226.321l218.577,0l0,37.423Zm-8.588,-51.37l-38.617,0c-10.665,0 -19.31,-8.646 -19.31,-19.313l0,-38.615c0,-10.66 8.645,-19.31 19.31,-19.31l38.617,0c10.664,0 19.309,8.65 19.309,19.31l0,38.615c0,10.665 -8.642,19.311 -19.309,19.313Zm-115.855,0l-38.617,0c-10.663,0 -19.309,-8.646 -19.309,-19.313l0,-38.615c0,-10.66 8.646,-19.31 19.309,-19.31l38.617,0c10.665,0 19.31,8.65 19.31,19.31l0,38.615c0,10.665 -8.642,19.311 -19.31,19.313Zm231.709,-115.854l-38.618,0c-10.664,0 -19.308,-8.646 -19.308,-19.313l0,-38.616c0,-10.666 8.644,-19.309 19.308,-19.309l38.618,0c10.664,0 19.309,8.643 19.309,19.309l0,38.616c0,10.665 -8.643,19.311 -19.309,19.313Zm-115.854,0l-38.617,0c-10.665,0 -19.31,-8.646 -19.31,-19.313l0,-38.616c0,-10.666 8.645,-19.309 19.31,-19.309l38.617,0c10.664,0 19.309,8.643 19.309,19.309l0,38.616c0,10.665 -8.642,19.311 -19.309,19.313Zm-115.855,0l-38.617,0c-10.663,0 -19.309,-8.646 -19.309,-19.313l0,-38.616c0,-10.666 8.646,-19.309 19.309,-19.309l38.617,0c10.665,0 19.31,8.643 19.31,19.309l0,38.616c0,10.665 -8.642,19.311 -19.31,19.313Zm-4.922,-173.148c0,7.771 -0.036,15.537 -0.11,23.304c-0.072,11.943 -9.564,21.671 -21.414,22.122c-0.286,0.011 -0.573,0.016 -0.861,0.016c-12.198,0 -22.119,-9.826 -22.274,-21.988c0,0 -0.001,-0.143 -0.001,-0.143l0,-0.012c-0.073,-7.766 -0.086,-15.533 -0.073,-23.299l0.072,0l0,-23.167c0,-12.294 9.982,-22.275 22.276,-22.275c12.294,0 22.276,9.981 22.276,22.275l0,23.167l0.109,0Zm247.706,0c0,7.771 -0.037,15.537 -0.11,23.304c-0.074,12.231 -10.027,22.138 -22.275,22.138c-12.251,0 -22.204,-9.91 -22.276,-22.143c-0.073,-7.766 -0.085,-15.533 -0.073,-23.299l0.073,0l0,-23.167c0,-12.294 9.981,-22.275 22.276,-22.275c12.294,0 22.275,9.981 22.275,22.275l0,23.167l0.11,0Z"/></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

9
APP/ui/images_DSM7/calendar_grey3@geimist.svg

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(2,0,0,2,0,0)">
<g id="Calendar">
<path id="Calendar-groß" serif:id="Calendar groß" d="M455.711,462L56.289,462C25.222,462 0,436.778 0,405.711L0,136.289C0,105.223 25.222,80 56.289,80L81.959,80C81.959,88.742 81.973,97.483 82.001,106.225C82.091,115.768 86.143,125.008 93.006,131.475C101.782,139.743 114.983,142.965 126.575,139.67C141.096,135.542 151.856,121.296 151.999,106.225C152.027,97.483 152.041,88.742 152.041,80L359.959,80C359.959,88.742 359.973,97.484 360.001,106.226C360.093,115.769 364.154,125.02 371.007,131.475C379.783,139.743 392.983,142.965 404.575,139.67C419.096,135.542 429.858,121.283 429.999,106.225C430.027,97.483 430.041,88.742 430.041,80L455.711,80C486.778,80 512,105.223 512,136.289L512,405.711C512,436.776 486.78,461.997 455.711,462ZM470,166L42,166L42,420L470,420L470,166ZM401.25,396.876L359.75,396.876C348.29,396.876 339,387.584 339,376.122L339,334.624C339,323.17 348.29,313.874 359.75,313.874L401.25,313.874C412.709,313.874 421.999,323.17 421.999,334.624L421.999,376.122C421.999,387.583 412.71,396.875 401.25,396.876ZM276.75,396.876L235.251,396.876C223.79,396.876 214.5,387.584 214.5,376.122L214.5,334.624C214.5,323.17 223.79,313.874 235.251,313.874L276.75,313.874C288.21,313.874 297.5,323.17 297.5,334.624L297.5,376.122C297.5,387.583 288.211,396.875 276.75,396.876ZM152.25,396.876L110.75,396.876C99.292,396.876 90.001,387.584 90.001,376.122L90.001,334.624C90.001,323.17 99.292,313.874 110.75,313.874L152.25,313.874C163.711,313.874 173.001,323.17 173.001,334.624L173.001,376.122C173.001,387.583 163.712,396.875 152.25,396.876ZM401.25,272.377L359.75,272.377C348.29,272.377 339,263.085 339,251.622L339,210.125C339,198.663 348.29,189.374 359.75,189.374L401.25,189.374C412.709,189.374 421.999,198.663 421.999,210.125L421.999,251.622C421.999,263.084 412.71,272.376 401.25,272.377ZM276.75,272.377L235.251,272.377C223.79,272.377 214.5,263.085 214.5,251.622L214.5,210.125C214.5,198.663 223.79,189.374 235.251,189.374L276.75,189.374C288.21,189.374 297.5,198.663 297.5,210.125L297.5,251.622C297.5,263.084 288.211,272.376 276.75,272.377ZM152.25,272.377L110.75,272.377C99.292,272.377 90.001,263.085 90.001,251.622L90.001,210.125C90.001,198.663 99.292,189.374 110.75,189.374L152.25,189.374C163.711,189.374 173.001,198.663 173.001,210.125L173.001,251.622C173.001,263.084 163.712,272.376 152.25,272.377ZM142.123,80C142.123,88.719 142.082,97.437 141.999,106.154C141.919,119.558 131.266,130.475 117.966,130.982C117.645,130.994 117.323,131 117,131C103.31,131 92.175,119.972 92.002,106.323C92.002,106.323 92,106.162 92,106.162L92,106.148C91.918,97.432 91.905,88.716 91.918,80L92,80L92,54C92,40.202 103.202,29 117,29C130.798,29 142,40.202 142,54L142,80L142.123,80ZM420.123,80C420.123,88.719 420.082,97.437 420,106.154C419.917,119.881 408.747,131 395,131C381.252,131 370.08,119.878 370.001,106.148C369.918,97.432 369.905,88.716 369.918,80L370,80L370,54C370,40.202 381.202,29 395,29C408.798,29 420,40.202 420,54L420,80L420.123,80Z" style="fill:rgb(113,123,132);"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

1
APP/ui/images_DSM7/calendar_new@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="Time-Icon" serif:id="Time Icon" d="M399.101,510.794c-62.351,0 -112.897,-50.544 -112.897,-112.899c0,-62.351 50.546,-112.895 112.897,-112.895c62.352,0 112.899,50.544 112.899,112.895c0,62.355 -50.547,112.899 -112.899,112.899Zm0,-196.341c-46.086,0 -83.447,37.358 -83.447,83.442c0,46.086 37.361,83.45 83.447,83.45c46.086,0 83.445,-37.364 83.445,-83.45c0,-46.084 -37.359,-83.442 -83.445,-83.442Zm49.086,98.17l-49.086,0c-8.133,0 -14.726,-6.591 -14.726,-14.728l0,-49.083c0,-8.132 6.593,-14.726 14.726,-14.726c8.133,0 14.726,6.594 14.726,14.726l0,34.359l34.36,0c8.132,0 14.725,6.594 14.725,14.724c0,8.137 -6.593,14.728 -14.725,14.728Z" style="fill:#00b10d;"/><path d="M256,436.5l-205.845,0c-27.681,0 -50.155,-22.474 -50.155,-50.155l0,-240.062c0,-27.681 22.474,-50.155 50.155,-50.155l22.873,0c0,7.789 0.012,15.578 0.037,23.367c0.081,8.503 3.691,16.737 9.806,22.499c7.819,7.366 19.582,10.238 29.911,7.301c12.939,-3.678 22.526,-16.371 22.653,-29.8c0.025,-7.789 0.038,-15.578 0.038,-23.367l185.26,0c0,7.789 0.012,15.579 0.037,23.368c0.082,8.503 3.701,16.746 9.807,22.498c7.819,7.366 19.582,10.238 29.91,7.301c12.939,-3.678 22.528,-16.383 22.654,-29.8c0.025,-7.789 0.037,-15.578 0.037,-23.367l22.873,0c27.681,0 50.155,22.474 50.155,50.155l0,109.717l-37.423,0l0,-83.244l-381.36,0l0,226.321l218.577,0l0,37.423Zm-8.588,-51.37l-38.617,0c-10.665,0 -19.31,-8.646 -19.31,-19.313l0,-38.615c0,-10.66 8.645,-19.31 19.31,-19.31l38.617,0c10.664,0 19.309,8.65 19.309,19.31l0,38.615c0,10.665 -8.642,19.311 -19.309,19.313Zm-115.855,0l-38.617,0c-10.663,0 -19.309,-8.646 -19.309,-19.313l0,-38.615c0,-10.66 8.646,-19.31 19.309,-19.31l38.617,0c10.665,0 19.31,8.65 19.31,19.31l0,38.615c0,10.665 -8.642,19.311 -19.31,19.313Zm231.709,-115.854l-38.618,0c-10.664,0 -19.308,-8.646 -19.308,-19.313l0,-38.616c0,-10.666 8.644,-19.309 19.308,-19.309l38.618,0c10.664,0 19.309,8.643 19.309,19.309l0,38.616c0,10.665 -8.643,19.311 -19.309,19.313Zm-115.854,0l-38.617,0c-10.665,0 -19.31,-8.646 -19.31,-19.313l0,-38.616c0,-10.666 8.645,-19.309 19.31,-19.309l38.617,0c10.664,0 19.309,8.643 19.309,19.309l0,38.616c0,10.665 -8.642,19.311 -19.309,19.313Zm-115.855,0l-38.617,0c-10.663,0 -19.309,-8.646 -19.309,-19.313l0,-38.616c0,-10.666 8.646,-19.309 19.309,-19.309l38.617,0c10.665,0 19.31,8.643 19.31,19.309l0,38.616c0,10.665 -8.642,19.311 -19.31,19.313Zm-4.922,-173.148c0,7.771 -0.036,15.537 -0.11,23.304c-0.072,11.943 -9.564,21.671 -21.414,22.122c-0.286,0.011 -0.573,0.016 -0.861,0.016c-12.198,0 -22.119,-9.826 -22.274,-21.988c0,0 -0.001,-0.143 -0.001,-0.143l0,-0.012c-0.073,-7.766 -0.086,-15.533 -0.073,-23.299l0.072,0l0,-23.167c0,-12.294 9.982,-22.275 22.276,-22.275c12.294,0 22.276,9.981 22.276,22.275l0,23.167l0.109,0Zm247.706,0c0,7.771 -0.037,15.537 -0.11,23.304c-0.074,12.231 -10.027,22.138 -22.275,22.138c-12.251,0 -22.204,-9.91 -22.276,-22.143c-0.073,-7.766 -0.085,-15.533 -0.073,-23.299l0.073,0l0,-23.167c0,-12.294 9.981,-22.275 22.276,-22.275c12.294,0 22.275,9.981 22.275,22.275l0,23.167l0.11,0Z"/></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

1
APP/ui/images_DSM7/calendar_white@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path d="M455.711,462l-399.422,0c-31.067,0 -56.289,-25.222 -56.289,-56.289l0,-269.422c0,-31.066 25.222,-56.289 56.289,-56.289l25.67,0c0,8.742 0.014,17.483 0.042,26.225c0.09,9.543 4.142,18.783 11.005,25.25c8.776,8.268 21.977,11.49 33.569,8.195c14.521,-4.128 25.281,-18.374 25.424,-33.445c0.028,-8.742 0.042,-17.483 0.042,-26.225l207.918,0c0,8.742 0.014,17.484 0.042,26.226c0.092,9.543 4.153,18.794 11.006,25.249c8.776,8.268 21.976,11.49 33.568,8.195c14.521,-4.128 25.283,-18.387 25.424,-33.445c0.028,-8.742 0.042,-17.483 0.042,-26.225l25.67,0c31.067,0 56.289,25.223 56.289,56.289l0,269.422c0,31.065 -25.22,56.286 -56.289,56.289Zm14.289,-296l-428,0l0,254l428,0l0,-254Zm-68.75,230.876l-41.5,0c-11.46,0 -20.75,-9.292 -20.75,-20.754l0,-41.498c0,-11.454 9.29,-20.75 20.75,-20.75l41.5,0c11.459,0 20.749,9.296 20.749,20.75l0,41.498c0,11.461 -9.289,20.753 -20.749,20.754Zm-124.5,0l-41.499,0c-11.461,0 -20.751,-9.292 -20.751,-20.754l0,-41.498c0,-11.454 9.29,-20.75 20.751,-20.75l41.499,0c11.46,0 20.75,9.296 20.75,20.75l0,41.498c0,11.461 -9.289,20.753 -20.75,20.754Zm-124.5,0l-41.5,0c-11.458,0 -20.749,-9.292 -20.749,-20.754l0,-41.498c0,-11.454 9.291,-20.75 20.749,-20.75l41.5,0c11.461,0 20.751,9.296 20.751,20.75l0,41.498c0,11.461 -9.289,20.753 -20.751,20.754Zm249,-124.499l-41.5,0c-11.46,0 -20.75,-9.292 -20.75,-20.755l0,-41.497c0,-11.462 9.29,-20.751 20.75,-20.751l41.5,0c11.459,0 20.749,9.289 20.749,20.751l0,41.497c0,11.462 -9.289,20.754 -20.749,20.755Zm-124.5,0l-41.499,0c-11.461,0 -20.751,-9.292 -20.751,-20.755l0,-41.497c0,-11.462 9.29,-20.751 20.751,-20.751l41.499,0c11.46,0 20.75,9.289 20.75,20.751l0,41.497c0,11.462 -9.289,20.754 -20.75,20.755Zm-124.5,0l-41.5,0c-11.458,0 -20.749,-9.292 -20.749,-20.755l0,-41.497c0,-11.462 9.291,-20.751 20.749,-20.751l41.5,0c11.461,0 20.751,9.289 20.751,20.751l0,41.497c0,11.462 -9.289,20.754 -20.751,20.755Zm-10.127,-192.377c0,8.719 -0.041,17.437 -0.124,26.154c-0.08,13.404 -10.733,24.321 -24.033,24.828c-0.321,0.012 -0.643,0.018 -0.966,0.018c-13.69,0 -24.825,-11.028 -24.998,-24.677c0,0 -0.002,-0.161 -0.002,-0.161l0,-0.014c-0.082,-8.716 -0.095,-17.432 -0.082,-26.148l0.082,0l0,-26c0,-13.798 11.202,-25 25,-25c13.798,0 25,11.202 25,25l0,26l0.123,0Zm278,0c0,8.719 -0.041,17.437 -0.123,26.154c-0.083,13.727 -11.253,24.846 -25,24.846c-13.748,0 -24.92,-11.122 -24.999,-24.852c-0.083,-8.716 -0.096,-17.432 -0.083,-26.148l0.082,0l0,-26c0,-13.798 11.202,-25 25,-25c13.798,0 25,11.202 25,25l0,26l0.123,0Z" style="fill:#fff;"/></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

25
APP/ui/images_DSM7/checkbox_checked@geimist.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

18
APP/ui/images_DSM7/checkbox_disable@geimist.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.0 KiB

24
APP/ui/images_DSM7/checkbox_unchecked@geimist.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.3 KiB

1
APP/ui/images_DSM7/fieldset_expand1@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="Arrow-Down-Icon" serif:id="Arrow Down Icon" d="M416.423,143.239l-160.422,160.766l-160.429,-160.766c-12.027,-12.046 -31.523,-12.046 -43.55,0c-12.029,12.062 -12.03,31.597 0,43.648l181.561,181.933c6.177,6.189 14.319,9.148 22.418,8.968c8.092,0.18 16.24,-2.779 22.418,-8.968l181.561,-181.933c12.027,-12.051 12.027,-31.586 0,-43.648c-12.027,-12.046 -31.53,-12.046 -43.557,0Z" style="fill:#0086e5;"/></svg>

After

Width:  |  Height:  |  Size: 857 B

1
APP/ui/images_DSM7/fieldset_expand2@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="Arrow-Down-Icon" serif:id="Arrow Down Icon" d="M416.423,368.761l-160.422,-160.766l-160.429,160.766c-12.027,12.046 -31.523,12.046 -43.55,0c-12.029,-12.062 -12.03,-31.597 0,-43.648l181.561,-181.933c6.177,-6.189 14.319,-9.148 22.418,-8.968c8.092,-0.18 16.24,2.779 22.418,8.968l181.561,181.933c12.027,12.051 12.027,31.586 0,43.648c-12.027,12.046 -31.53,12.046 -43.557,0Z" style="fill:#0086e5;"/></svg>

After

Width:  |  Height:  |  Size: 855 B

7
APP/ui/images_DSM7/help_grey3@geimist.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(2,0,0,2,0,0)">
<path id="help" d="M426.746,503.793C387.975,510.252 342.383,511.973 256,511.973C169.623,511.973 124.025,510.252 85.257,503.793C30.958,494.751 0,475.388 0,442.861C0,399.89 55.294,339.963 132.174,305.283C163.245,352.394 207.117,383.987 256,383.987C304.882,383.987 348.755,352.394 379.826,305.283C456.704,339.963 512,399.89 512,442.861C512,475.388 481.044,494.751 426.746,503.793ZM256,341.317C185.135,341.317 128.002,247.248 128.002,150.589C128.002,60.589 181.435,0 256,0C330.565,0 384.003,60.589 384.003,150.589C384.003,247.248 326.865,341.317 256,341.317ZM253.712,309.734C245.957,309.734 239.188,307.344 233.404,302.563C227.62,297.782 224.728,291.095 224.728,282.501C224.728,274.876 227.525,268.461 233.118,263.257C238.712,258.052 245.576,255.45 253.712,255.45C261.72,255.45 268.458,258.052 273.924,263.257C279.39,268.461 282.123,274.876 282.123,282.501C282.123,290.974 279.263,297.631 273.543,302.472C267.822,307.314 261.212,309.734 253.712,309.734ZM160.66,110.752C160.66,99.254 164.537,87.604 172.291,75.803C180.046,64.003 191.359,54.229 206.232,46.483C221.105,38.736 238.457,34.863 258.288,34.863C276.721,34.863 292.992,38.101 307.102,44.576C321.213,51.052 332.113,59.857 339.804,70.992C347.495,82.128 351.34,94.231 351.34,107.303C351.34,117.591 349.147,126.608 344.762,134.354C340.376,142.101 335.164,148.788 329.126,154.416C323.088,160.044 312.251,169.515 296.615,182.829C292.293,186.581 288.829,189.879 286.223,192.724C283.617,195.568 281.678,198.17 280.407,200.53C279.136,202.891 278.151,205.251 277.452,207.611C276.752,209.971 275.704,214.117 274.305,220.047C271.89,232.635 264.326,238.929 251.614,238.929C245.004,238.929 239.443,236.871 234.93,232.756C230.417,228.641 228.161,222.529 228.161,214.419C228.161,204.252 229.813,195.447 233.118,188.003C236.423,180.56 240.809,174.024 246.275,168.395C251.741,162.767 259.114,156.08 268.394,148.334C276.53,141.556 282.409,136.442 286.032,132.993C289.655,129.543 292.706,125.7 295.185,121.464C297.664,117.228 298.903,112.628 298.903,107.666C298.903,97.983 295.121,89.813 287.558,83.156C279.994,76.499 270.237,73.171 258.288,73.171C244.305,73.171 234.008,76.53 227.398,83.247C220.788,89.965 215.194,99.859 210.618,112.931C206.296,126.608 198.097,133.447 186.02,133.447C178.901,133.447 172.895,131.056 168.001,126.275C163.107,121.494 160.66,116.32 160.66,110.752Z" style="fill:rgb(113,123,132);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

1
APP/ui/images_DSM7/help_white@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path d="M426.746,503.793c-38.771,6.459 -84.363,8.18 -170.746,8.18c-86.377,0 -131.975,-1.721 -170.743,-8.18c-54.299,-9.042 -85.257,-28.405 -85.257,-60.932c0,-42.971 55.294,-102.898 132.174,-137.578c31.071,47.111 74.943,78.704 123.826,78.704c48.882,0 92.755,-31.593 123.826,-78.704c76.878,34.68 132.174,94.607 132.174,137.578c0,32.527 -30.956,51.89 -85.254,60.932Zm-170.746,-162.476c-70.865,0 -127.998,-94.069 -127.998,-190.728c0,-90 53.433,-150.589 127.998,-150.589c74.565,0 128.003,60.589 128.003,150.589c0,96.659 -57.138,190.728 -128.003,190.728Zm-2.288,-31.583c-7.755,0 -14.524,-2.39 -20.308,-7.171c-5.784,-4.781 -8.676,-11.468 -8.676,-20.062c0,-7.625 2.797,-14.04 8.39,-19.244c5.594,-5.205 12.458,-7.807 20.594,-7.807c8.008,0 14.746,2.602 20.212,7.807c5.466,5.204 8.199,11.619 8.199,19.244c0,8.473 -2.86,15.13 -8.58,19.971c-5.721,4.842 -12.331,7.262 -19.831,7.262Zm-93.052,-198.982c0,-11.498 3.877,-23.148 11.631,-34.949c7.755,-11.8 19.068,-21.574 33.941,-29.32c14.873,-7.747 32.225,-11.62 52.056,-11.62c18.433,0 34.704,3.238 48.814,9.713c14.111,6.476 25.011,15.281 32.702,26.416c7.691,11.136 11.536,23.239 11.536,36.311c0,10.288 -2.193,19.305 -6.578,27.051c-4.386,7.747 -9.598,14.434 -15.636,20.062c-6.038,5.628 -16.875,15.099 -32.511,28.413c-4.322,3.752 -7.786,7.05 -10.392,9.895c-2.606,2.844 -4.545,5.446 -5.816,7.806c-1.271,2.361 -2.256,4.721 -2.955,7.081c-0.7,2.36 -1.748,6.506 -3.147,12.436c-2.415,12.588 -9.979,18.882 -22.691,18.882c-6.61,0 -12.171,-2.058 -16.684,-6.173c-4.513,-4.115 -6.769,-10.227 -6.769,-18.337c0,-10.167 1.652,-18.972 4.957,-26.416c3.305,-7.443 7.691,-13.979 13.157,-19.608c5.466,-5.628 12.839,-12.315 22.119,-20.061c8.136,-6.778 14.015,-11.892 17.638,-15.341c3.623,-3.45 6.674,-7.293 9.153,-11.529c2.479,-4.236 3.718,-8.836 3.718,-13.798c0,-9.683 -3.782,-17.853 -11.345,-24.51c-7.564,-6.657 -17.321,-9.985 -29.27,-9.985c-13.983,0 -24.28,3.359 -30.89,10.076c-6.61,6.718 -12.204,16.612 -16.78,29.684c-4.322,13.677 -12.521,20.516 -24.598,20.516c-7.119,0 -13.125,-2.391 -18.019,-7.172c-4.894,-4.781 -7.341,-9.955 -7.341,-15.523Z" style="fill:#fff;"/></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

7
APP/ui/images_DSM7/home_grey3@geimist.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(2,0,0,2,0,0)">
<path id="home" d="M178,512L30,512L30,271L0,271L0,256L256,0L512,256L512,271L482,271L482,512L334,512L334,305L178,305L178,512Z" style="fill:rgb(113,123,132);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 676 B

1
APP/ui/images_DSM7/home_white@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="home" d="M178,512l-148,0l0,-241l-30,0l0,-15l256,-256l256,256l0,15l-30,0l0,241l-148,0l0,-207l-156,0l0,207Z" style="fill:#fff;"/></svg>

After

Width:  |  Height:  |  Size: 591 B

24
APP/ui/images_DSM7/icon_information_mini@geimist.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

BIN
APP/ui/images_DSM7/paypal.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

16
APP/ui/images_DSM7/sanduhr_blue@geimist.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.4 KiB

11
APP/ui/images_DSM7/settings_grey3@geimist.svg

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(2,0,0,2,0,0)">
<g transform="matrix(21.3334,0,0,21.3334,-6229.37,-57941.7)">
<g id="settings">
<path id="Settings-Icon" serif:id="Settings Icon" d="M315,2730L312.749,2730C312.521,2731 312.113,2731.92 311.588,2732.76L313.192,2734.37C313.583,2734.76 313.583,2735.39 313.192,2735.78L311.778,2737.19C311.388,2737.58 310.755,2737.58 310.364,2737.19L308.769,2735.6C307.927,2736.13 307.002,2736.54 306,2736.77L306,2739C306,2739.55 305.552,2740 305,2740L303,2740C302.448,2740 302,2739.55 302,2739L302,2736.77C300.998,2736.54 300.073,2736.13 299.232,2735.6L297.636,2737.19C297.246,2737.58 296.612,2737.58 296.222,2737.19L294.808,2735.78C294.417,2735.39 294.417,2734.76 294.808,2734.37L296.412,2732.76C295.887,2731.92 295.479,2731 295.251,2730L293,2730C292.448,2730 292,2729.55 292,2729L292,2727C292,2726.45 292.448,2726 293,2726L295.251,2726C295.479,2725 295.887,2724.08 296.412,2723.24L294.808,2721.64C294.417,2721.25 294.417,2720.61 294.808,2720.22L296.222,2718.81C296.612,2718.42 297.246,2718.42 297.636,2718.81L299.232,2720.4C300.073,2719.87 300.998,2719.46 302,2719.23L302,2717C302,2716.45 302.448,2716 303,2716L305,2716C305.552,2716 306,2716.45 306,2717L306,2719.23C307.002,2719.46 307.927,2719.87 308.769,2720.4L310.364,2718.81C310.755,2718.42 311.388,2718.42 311.778,2718.81L313.192,2720.22C313.583,2720.61 313.583,2721.25 313.192,2721.64L311.588,2723.24C312.113,2724.08 312.521,2725 312.749,2726L315,2726C315.552,2726 316,2726.45 316,2727L316,2729C316,2729.55 315.552,2730 315,2730ZM304,2722C300.686,2722 298,2724.69 298,2728C298,2731.32 300.686,2734 304,2734C307.314,2734 310,2731.32 310,2728C310,2724.69 307.314,2722 304,2722ZM304,2731C302.343,2731 301,2729.66 301,2728C301,2726.34 302.343,2725 304,2725C305.657,2725 307,2726.34 307,2728C307,2729.66 305.657,2731 304,2731Z" style="fill:rgb(113,123,132);"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
APP/ui/images_DSM7/settings_white@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><g id="settings"><path id="Settings-Icon" serif:id="Settings Icon" d="M490.667,298.667l-48.023,0c-4.859,21.261 -13.56,40.937 -24.767,58.875l34.226,34.231c8.332,8.321 8.332,21.828 0,30.161l-30.169,30.168c-8.332,8.333 -21.838,8.333 -30.17,0l-34.037,-34.035c-17.95,11.355 -37.679,20.149 -59.064,25.016l0,47.591c0,11.769 -9.548,21.326 -21.332,21.326l-42.664,0c-11.782,0 -21.335,-9.557 -21.335,-21.326l0,-47.591c-21.386,-4.867 -41.109,-13.661 -59.059,-25.016l-34.037,34.035c-8.332,8.333 -21.843,8.333 -30.172,0l-30.169,-30.168c-8.334,-8.333 -8.334,-21.84 0,-30.161l34.226,-34.231c-11.21,-17.938 -19.908,-37.614 -24.765,-58.875l-48.028,0c-11.776,0 -21.33,-9.557 -21.33,-21.326l0,-42.676c0,-11.781 9.554,-21.326 21.33,-21.326l48.028,0c4.857,-21.261 13.555,-40.932 24.765,-58.869l-34.226,-34.231c-8.334,-8.339 -8.334,-21.84 0,-30.173l30.169,-30.174c8.329,-8.333 21.84,-8.333 30.172,0l34.037,34.035c17.95,-11.343 37.673,-20.137 59.059,-25.01l0,-47.579c0,-11.787 9.553,-21.338 21.335,-21.338l42.664,0c11.784,0 21.332,9.551 21.332,21.338l0,47.579c21.385,4.873 41.114,13.667 59.064,25.01l34.037,-34.035c8.332,-8.333 21.838,-8.333 30.17,0l30.169,30.174c8.332,8.333 8.332,21.834 0,30.173l-34.226,34.231c11.207,17.937 19.908,37.608 24.767,58.869l48.023,0c11.783,0 21.335,9.545 21.335,21.326l0,42.676c0,11.769 -9.552,21.326 -21.335,21.326Zm-234.669,-170.663c-70.694,0 -127.999,57.302 -127.999,127.987c0,70.709 57.305,128.01 127.999,128.01c70.695,0 128.003,-57.301 128.003,-128.01c0,-70.685 -57.308,-127.987 -128.003,-127.987Zm0,192.001c-35.344,0 -64.001,-28.665 -64.001,-64.014c0,-35.342 28.657,-63.996 64.001,-63.996c35.348,0 64,28.654 64,63.996c0,35.349 -28.652,64.014 -64,64.014Z" style="fill:#fff;"/></g></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

5
APP/ui/images_DSM7/status_error@geimist.svg

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path id="Cancel" d="M255.934,0.154C397.181,0.154 511.856,114.829 511.856,256.077C511.856,397.325 397.181,512 255.934,512C114.686,512 0.011,397.325 0.011,256.077C0.011,114.829 114.686,0.154 255.934,0.154ZM255.934,223.541L353.527,125.948C362.519,116.956 377.03,116.887 386.077,125.934C395.062,134.918 395.112,149.435 386.063,158.484L288.469,256.077L386.063,353.671C395.055,362.663 395.124,377.173 386.077,386.221C377.093,395.205 362.576,395.255 353.527,386.206L255.934,288.613L158.34,386.206C149.348,395.199 134.837,395.268 125.79,386.221C116.806,377.236 116.755,362.719 125.804,353.67L223.398,256.077L125.804,158.484C116.812,149.491 116.743,134.981 125.79,125.934C134.775,116.949 149.291,116.899 158.34,125.948L255.934,223.541Z" style="fill:rgb(255,0,0);"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

7
APP/ui/images_DSM7/status_green@geimist.svg

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g id="status" transform="matrix(22.2607,0,0,22.2607,-8926.53,-82498)">
<path d="M412.5,3729C406.149,3729 401,3723.85 401,3717.5C401,3711.15 406.149,3706 412.5,3706C418.851,3706 424,3711.15 424,3717.5C424,3723.85 418.851,3729 412.5,3729ZM418.557,3713.41C417.968,3712.85 417.014,3712.85 416.425,3713.41L411.064,3718.51L409.533,3717.08C408.944,3716.52 407.99,3716.52 407.401,3717.08C406.812,3717.65 406.812,3718.56 407.401,3719.13L409.998,3721.57C410.587,3722.14 411.541,3722.14 412.13,3721.57L418.557,3715.46C419.145,3714.89 419.145,3713.98 418.557,3713.41Z" style="fill:rgb(0,177,13);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

9
APP/ui/images_DSM7/status_grey3@geimist.svg

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<g transform="matrix(2,0,0,2,0,0)">
<g id="status" transform="matrix(22.2607,0,0,22.2607,-8926.53,-82498)">
<path d="M412.5,3729C406.149,3729 401,3723.85 401,3717.5C401,3711.15 406.149,3706 412.5,3706C418.851,3706 424,3711.15 424,3717.5C424,3723.85 418.851,3729 412.5,3729ZM418.557,3713.41C417.968,3712.85 417.014,3712.85 416.425,3713.41L411.064,3718.51L409.533,3717.08C408.944,3716.52 407.99,3716.52 407.401,3717.08C406.812,3717.65 406.812,3718.56 407.401,3719.13L409.998,3721.57C410.587,3722.14 411.541,3722.14 412.13,3721.57L418.557,3715.46C419.145,3714.89 419.145,3713.98 418.557,3713.41Z" style="fill:rgb(113,123,132);"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
APP/ui/images_DSM7/status_loading.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

1
APP/ui/images_DSM7/status_white@geimist.svg

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="status" d="M255.998,512c-141.384,0 -255.998,-114.61 -255.998,-255.997c0,-141.38 114.614,-256.003 255.998,-256.003c141.385,0 256,114.623 256,256.003c0,141.387 -114.615,255.997 -256,255.997Zm134.83,-346.959c-13.108,-12.571 -34.353,-12.571 -47.455,0l-119.337,113.332l-34.094,-31.713c-13.104,-12.552 -34.35,-12.552 -47.453,0c-13.104,12.595 -13.104,32.972 0,45.537l57.818,54.466c13.11,12.583 34.352,12.583 47.455,0l143.066,-136.079c13.099,-12.565 13.099,-32.967 0,-45.543Z" style="fill:#fff;"/></svg>

After

Width:  |  Height:  |  Size: 953 B

1
APP/ui/images_DSM7/synOCR-LOGO.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 566 KiB

BIN
APP/ui/images_DSM7/synOCR_120.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
APP/ui/images_DSM7/synOCR_128.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
APP/ui/images_DSM7/synOCR_16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
APP/ui/images_DSM7/synOCR_24.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
APP/ui/images_DSM7/synOCR_256.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
APP/ui/images_DSM7/synOCR_32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
APP/ui/images_DSM7/synOCR_48.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
APP/ui/images_DSM7/synOCR_512.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
APP/ui/images_DSM7/synOCR_64.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
APP/ui/images_DSM7/synOCR_72.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
APP/ui/images_DSM7/synOCR_90.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

3
APP/includes/decode.sed → APP/ui/includes/decode.sed

@ -4,6 +4,7 @@ s/%21/!/g
s/%23/#/g
s/%24/\$/g
s/%26/\&/g
s/%27/\'/g
s/%28/\(/g
s/%29/\)/g
s/%2B/+/g
@ -24,6 +25,8 @@ s/%C3%BC/ü/g
s/%C3%9C/Ü/g
s/%5B/[/g
s/%5D/]/g
s/%3C/</g
s/%3E/>/g
s/%C2%A7/§/g
s/\\\u00e4/ä/g
s/\\\u00f6/ö/g

3
APP/includes/encode.sed → APP/ui/includes/encode.sed

@ -2,6 +2,7 @@ s/!/%21/g
s/#/%23/g
s/\$/%24/g
s/\&/%26/g
s/\'/%27/g
s/(/%28/g
s/)/%29/g
s/+/%2B/g
@ -22,5 +23,7 @@ s/ü/%C3%BC/g
s/Ü/%C3%9C/g
s/\[/%5B/g
s/\]/%5D/g
s/</%3C/g
s/>/%3E/g
s/§/%C2%A7/g
s/ /+/g

93
APP/ui/includes/functions.sh

@ -0,0 +1,93 @@
#!/bin/bash
# ---------------------------------------------------------------------- #
# native URL encode & decode:
# https://gist.github.com/cdown/1163649
urlencode() {
# urlencode <string>
old_lc_collate=$LC_COLLATE
LC_COLLATE=C
local length="${#1}"
for (( i = 0; i < length; i++ )); do
local c="${1:$i:1}"
case $c in
[a-zA-Z0-9.~_-]) printf '%s' "$c" ;;
*) printf '%%%02X' "'$c" ;;
esac
done
LC_COLLATE=$old_lc_collate
}
urldecode() {
# urldecode <string>
local url_encoded="${1//+/ }"
printf '%b' "${url_encoded//%/\\x}"
}
# ---------------------------------------------------------------------- #
function language() {
# ---------------------------------------------------------------------- #
# Spracheinstellungen konfigurieren #
# ---------------------------------------------------------------------- #
# Englische Sprachdatei laden
source "lang/lang_enu.txt"
#********************************************************************#
# Description: Script get the current used dsm language #
# Author: QTip from the german Synology support forum #
# Copyright: 2016-2018 by QTip #
# License: GNU GPLv3 #
# ---------------------------------------------------------------- #
# Version: 0.15 - 11/06/2018 #
#********************************************************************#
# Sprachdateien konfigurieren
# Funktion zur Ermittlung der eingestellten Sprache
# - DSM Sprache ermitteln (aus synoinfo.conf)
# - Browser Sprache ermitteln (aus ${HTTP_ACCEPT_LANGUAGE})
# - wenn DSM Sprache = default, dann benutze Browser Sprache
# - Persönliche DSM Sprache ermitteln (aus usersettings)
# - falls Persönliche DSM Sprache = default, dann benutze weiterhin die zuvor
# ermittelte Sprache, ansonsten benutze die ermittelte Persönliche DSM Sprache
# - ist DSM Sprache und Persönliche DSM Sprache = "def" und Browser Sprache nicht gesetzt, dann benutze Standard Sprache (DEFLANG)
# Prioritäten: 1. Persönliche DSM Sprache =2. DSM Sprache =3. Browser Sprache =4. Standard Sprache
#
# Übersetzungstabelle deklarieren
declare -A ISO2SYNO
ISO2SYNO=( ["de"]="ger" ["en"]="enu" ["zh"]="chs" ["cs"]="csy" ["jp"]="jpn" ["ko"]="krn" ["da"]="dan" ["fr"]="fre" ["it"]="ita" ["nl"]="nld" ["no"]="nor" ["pl"]="plk" ["ru"]="rus" ["sp"]="spn" ["sv"]="sve" ["hu"]="hun" ["tr"]="trk" ["pt"]="ptg" )
# DSM Sprache ermitteln
deflang="ger"
lang=$(cat /etc/synoinfo.conf | grep language | sed 's/language=//;s/\"//g' | egrep -o "^.{3}")
#lang_mail=$(cat /etc/synoinfo.conf | grep maillang | sed 's/maillang=//;s/\"//g' | egrep -o "^.{3}")
#if [ "$lang" == "def" ]; then
# lang="$lang_mail"
#fi
if [[ "${lang}" == "def" ]] ; then
# Browsersprache ermitteln
if [ -n "${HTTP_ACCEPT_LANGUAGE}" ] ; then
bl=`echo ${HTTP_ACCEPT_LANGUAGE} | cut -d "," -f1`
bl=${bl:0:2}
lang=${ISO2SYNO[${bl}]}
else
lang=${deflang}
fi
fi
# Persönliche DSM Sprache ermitteln
usersettingsfile=/usr/syno/etc/preference/${login_user}/usersettings
if [ -f ${usersettingsfile} ] ; then
userlanguage=`jq -r ".Personal.lang" ${usersettingsfile}`
if [ -n "${userlanguage}" -a "${userlanguage}" != "def" -a "${userlanguage}" != "null" ] ; then
lang=${userlanguage}
fi
fi
# Sprachdatei laden
if [ -f "lang/lang_${lang}.txt" ] && [[ "$lang" != "enu" ]]; then
source "lang/lang_${lang}.txt"
fi
}

0
APP/includes/synocr_1.1.0.css → APP/ui/includes/synocr_1.1.0.css

BIN
APP/ui/includes/synowebapi_aarch64

Binary file not shown.

BIN
APP/ui/includes/synowebapi_x86_64

Binary file not shown.

301
APP/ui/index.cgi

@ -0,0 +1,301 @@
#!/bin/bash
# /usr/syno/synoman/webman/3rdparty/synOCR/index.cgi
# System initiieren
# ---------------------------------------------------------------------
machinetyp=$(uname --machine)
if [ $machinetyp = "x86_64" ]; then
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/opt/usr/bin:/usr/syno/synoman/webman/3rdparty/synOCR/bin
include_synowebapi=synowebapi_x86_64
elif [ $machinetyp = "aarch64" ]; then
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/opt/usr/bin:/usr/syno/synoman/webman/3rdparty/synOCR/bin_aarch64
include_synowebapi=synowebapi_aarch64
fi
app_name="synOCR"
app_home=$(echo /volume*/@appstore/${app_name}/ui)
[ ! -d "${app_home}" ] && exit
# Zurücksetzten möglicher Zugangsberechtigungen
unset syno_login syno_token syno_user user_exist is_admin is_privileged
# App Authentifizierung auswerten
# --------------------------------------------------------------
# Zum Auswerten des SynoToken, REQUEST_METHOD auf GET ändern
[[ "${REQUEST_METHOD}" == "POST" ]] && REQUEST_METHOD="GET" && OLD_REQUEST_METHOD="POST"
# Auslesen und prüfen der Login Berechtigung ( login.cgi )
# ----------------------------------------------------------
syno_login=$(/usr/syno/synoman/webman/login.cgi)
# SynoToken ( nur bei eingeschaltetem Schutz gegen Cross-Site Request Forgery Attacken )
if echo ${syno_login} | grep -q SynoToken ; then
syno_token=$(echo "${syno_login}" | grep SynoToken | cut -d ":" -f2 | cut -d '"' -f2)
fi
if [ -n "${syno_token}" ]; then
[ -z ${QUERY_STRING} ] && QUERY_STRING="SynoToken=${syno_token}" || QUERY_STRING="${QUERY_STRING}&SynoToken=${syno_token}"
fi
# Login Berechtigung ( result=success )
if echo ${syno_login} | grep -q result ; then
login_result=$(echo "${syno_login}" | grep result | cut -d ":" -f2 | cut -d '"' -f2)
fi
[[ ${login_result} != "success" ]] && { echo 'Access denied'; exit; }
# Login erfolgreich ( success=true )
if echo ${syno_login} | grep -q success ; then
login_success=$(echo "${syno_login}" | grep success | cut -d "," -f3 | grep success | cut -d ":" -f2 | cut -d " " -f2 )
fi
[[ ${login_success} != "true" ]] && { echo 'Access denied'; exit; }
# REQUEST_METHOD wieder zurück auf POST setzen
[[ "${OLD_REQUEST_METHOD}" == "POST" ]] && REQUEST_METHOD="POST" && unset OLD_REQUEST_METHOD
# Auslesen von Benutzer/Gruppe aus der authenticate.cgi
# ----------------------------------------------------------
syno_user=$(/usr/syno/synoman/webman/authenticate.cgi)
# Prüfen, ob der Benutzer existiert
user_exist=$(grep -o "^${syno_user}:" /etc/passwd)
[ -n "${user_exist}" ] && user_exist="yes" || exit
# Prüfen, ob der lokale Benutzer der Gruppe "administrators" angehört
if id -G "${syno_user}" | grep -q 101; then
is_admin="yes"
else
is_admin="no"
fi
# Authentifizierung auf Anwendungsebene auswerten
# ----------------------------------------------------------
# Zum auswerten der Authentifizierung muss die Datei /usr/syno/bin/synowebapi
# nach ${app_home}/modules/synowebapi kopiert, sowie die Besitzrechte
# auf ${app_name}:${app_name} angepasst werden.
if [ -f "${app_home}/includes/$include_synowebapi" ]; then
rar_data=$($app_home/includes/$include_synowebapi --exec api=SYNO.Core.Desktop.Initdata method=get version=1 runner="$syno_user" | jq '.data.AppPrivilege')
syno_privilege=$(echo "${rar_data}" | grep "SYNO.SDS.ThirdParty.App.${app_name}" | cut -d ":" -f2 | cut -d '"' -f2)
if echo "${syno_privilege}" | grep -q "true"; then
is_authenticated="yes"
else
is_authenticated="no"
fi
else
is_authenticated="no"
txtActivatePrivileg="<b>To enable app level authentication do...</b><br /><b>root@[local-machine]:~#</b> cp /usr/syno/bin/synowebapi /var/packages/${app_name}/target/ui/modules<br /><b>root@[local-machine]:~#</b> chown ${app_name}.${app_name} /var/packages/$MYPKG/target/ui/modules/synowebapi"
fi
# Variablen zum Schutz auf "readonly" setzen oder Inhalt leeren
# ----------------------------------------------------------
unset syno_login rar_data syno_privilege
readonly syno_token syno_user user_exist is_admin is_authenticated
# Spracheinstellungen aus der ../includes/functions.sh laden
[ -f "${app_home}/includes/functions.sh" ] && source "${app_home}/includes/functions.sh" || exit
language
# ---------------------------------------------------------------------
# Initiate user folder
get_var=$(which get_key_value) || exit
set_var=$(which synosetkeyvalue) || exit
usersettings="${app_home}/usersettings" # ToDo: move to "${app_home}/etc"
if [ ! -d "$usersettings" ]; then
mkdir "$usersettings"
fi
var="${app_home}/usersettings/var.txt"
# var="$usersettings/var.txt"
# stop="$usersettings/stop.txt"
stop="${app_home}/usersettings/stop.txt"
black="color: #000000"
green="color: #00B10D"
red="color: #DF0101"
synotrred="color: #BD0010"
synocrred="color: #BD0010"
blue="color: #2A588C"
orange="color: #FFA500"
grey="color: #424242"
grey1="color: #53657D"
grey2="color: #374355"
# read MAC-adress (only to hide DEV pages)
read MAC </sys/class/net/eth0/address
sysID=$(echo $MAC | cksum | awk '{print $1}'); sysID="$(printf '%010d' $sysID)" #echo "Prüfsumme der MAC-Adresse als Hardware-ID: $sysID" 10-stellig
if [ -z "$backifs" ]; then
backifs="$IFS"
readonly backifs
fi
IFS="&"
set -- $QUERY_STRING
IFS='
'
# Initiate environment parameters:
for i in "$@"; do
IFS="$backifs"
variable=${i%%=*}
encode_value=${i##*=}
decode_value=$(echo "$encode_value" | sed -f ${app_home}/includes/decode.sed)
"$set_var" "$var" "$variable" "$decode_value"
"$set_var" "$var" "encode_$variable" "$encode_value"
done
if [ -f "$var" ]; then
source "$var"
fi
mainpage=${page%%-*}
site=${page##*-}
sitemore=$(( $site + 1 ))
siteless=$(( $site - 1 ))
if [[ "$mainpage" == "start" ]]; then
[ -f "$var" ] && rm "$var"
[ -f "$stop" ] && rm "$stop"
[ -f "$usersettings/stop2.txt" ] && rm "$usersettings/stop2.txt"
mainpage="main"
fi
# Layout - Define Home Page:
if [ -z "$page" ]; then
mainpage="main"
fi
"$set_var" "$var" "page" ""
# Layout - Open basic framework incl. navigation -
echo "Content-type: text/html"
echo
echo '
<!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">