|
@@ -0,0 +1,247 @@
|
|
|
+<?PHP
|
|
|
+# Setup page variables
|
|
|
+$appname="ewft.minidlna";
|
|
|
+$displayname="MiniDLNA";
|
|
|
+$appexecutable="usr/sbin/minidlnad";
|
|
|
+$appconfigfile="settings.json";
|
|
|
+$plglogfile="/var/log/minidlnad/{$appname}.log";
|
|
|
+$arrayState=trim(shell_exec( "grep fsState /var/local/emhttp/var.ini | sed -n 's!fsState=\"\(.*\)\"!\\1!p'" ));
|
|
|
+$ver60check=trim(shell_exec( "grep version /etc/unraid-version | sed -n 's!version=\"\(.*\)\"!\\1!p'" ));
|
|
|
+
|
|
|
+
|
|
|
+# Sets the loader background to match the theme based on unRaid version sicne 6 has a dark theme
|
|
|
+$machine_type = trim(shell_exec( "uname -m" ));
|
|
|
+if ($machine_type == "x86_64") {
|
|
|
+ $loaderbgcolor = "html";
|
|
|
+ $prefix = "";
|
|
|
+ if (substr($ver60check, 0, 3) === "6.0") {
|
|
|
+ $prefix = "/usr/local/emhttp";
|
|
|
+ }
|
|
|
+} else {
|
|
|
+ $loaderbgcolor = ".Container";
|
|
|
+ $prefix = "/usr/local/emhttp";
|
|
|
+}
|
|
|
+?>
|
|
|
+
|
|
|
+<!-- ========================================================================= -->
|
|
|
+<!-- Page load animation and text -->
|
|
|
+<!-- ========================================================================= -->
|
|
|
+
|
|
|
+<!-- # Add jquery library, show loader, fade out when loaded -->
|
|
|
+<script type="text/javascript">
|
|
|
+ if(typeof jQuery == 'undefined'){
|
|
|
+ var oScriptElem = document.createElement("script");
|
|
|
+ oScriptElem.type = "text/javascript";
|
|
|
+ oScriptElem.src = "/plugins/<?=$appname;?>/scripts/jquery.min.js";
|
|
|
+ document.head.insertBefore(oScriptElem, document.getElementsByTagName("script")[0])
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<div id="loading">
|
|
|
+ <img id="loading-image" src='/plugins/<?=$appname;?>/icons/loader.gif' alt="Loading..." />
|
|
|
+ <p id="loading-text">LOADING PLUGIN</p>
|
|
|
+</div>
|
|
|
+<script language="javascript" type="text/javascript">
|
|
|
+ $("#loading").css("background-color",$("<?=$loaderbgcolor;?>").css("background-color"));
|
|
|
+ $("#loading").show();
|
|
|
+</script>
|
|
|
+<script language="javascript" type="text/javascript">
|
|
|
+ $(window).load(function() {$("#loading").fadeOut("slow");});
|
|
|
+</script>
|
|
|
+
|
|
|
+<!-- ========================================================================= -->
|
|
|
+<!-- Load current config file and check if program is installed already -->
|
|
|
+<!-- ========================================================================= -->
|
|
|
+
|
|
|
+<?PHP
|
|
|
+
|
|
|
+# This will clean any ^M characters caused by windows from the config file before use
|
|
|
+if (file_exists("/boot/config/plugins/{$appname}/{$appname}.cfg"))
|
|
|
+ shell_exec("sed -i 's!\r!!g' \"/boot/config/plugins/{$appname}/{$appname}.cfg\"");
|
|
|
+if (file_exists("/usr/local/emhttp/plugins/{$appname}/scripts/rc.{$appname}"))
|
|
|
+ shell_exec("sed -i 's!\r!!g' \"/usr/local/emhttp/plugins/{$appname}/scripts/rc.{$appname}\"");
|
|
|
+
|
|
|
+# Check existence of files and make startfile if missing
|
|
|
+$app_cfg = parse_ini_file( "/boot/config/plugins/{$appname}/{$appname}.cfg" );
|
|
|
+$app_installed = file_exists("/{$appexecutable}" ) ? "yes" : "no";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# =========================================================================
|
|
|
+## Collect local variables from config files and verify data as best as possible
|
|
|
+# =========================================================================
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# Set readonly status if array is offline
|
|
|
+if ($arrayState == "Started") {
|
|
|
+ $app_readonly = "";
|
|
|
+ $app_disabled = "";
|
|
|
+} else {
|
|
|
+ $app_readonly = 'readonly="readonly"';
|
|
|
+ $app_disabled = 'disabled="disabled"';
|
|
|
+}
|
|
|
+
|
|
|
+# Plugin Current Version Variable
|
|
|
+if (file_exists("/boot/config/plugins/{$appname}.plg")) {
|
|
|
+ $app_plgver = trim(shell_exec ( "grep 'ENTITY version' /boot/config/plugins/{$appname}.plg | sed -n 's!.*\s\"\(.*\)\".*!\\1!p'" ));
|
|
|
+ if ($app_plgver == "") {
|
|
|
+ $app_plgver = "Unknown plugin version";
|
|
|
+ }
|
|
|
+} else {
|
|
|
+ $app_plgver = "(Plugin File Missing)";
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# Service Status Variable
|
|
|
+if (isset($app_cfg['SERVICE']) && ($app_cfg['SERVICE'] == "enable" || $app_cfg['SERVICE'] == "disable"))
|
|
|
+ $app_service = $app_cfg['SERVICE'];
|
|
|
+else
|
|
|
+ $app_service = "disable";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# =========================================================================
|
|
|
+## Check is program is installed and running to get extra information
|
|
|
+# =========================================================================
|
|
|
+
|
|
|
+# Get current installed version of the program
|
|
|
+if ($arrayState=="Started") {
|
|
|
+ $app_curversion = trim(shell_exec ( "/usr/local/emhttp/plugins/{$appname}/scripts/rc.{$appname} currentversion" ));
|
|
|
+ if ($app_curversion == "")
|
|
|
+ $app_curversion = "UNKNOWN";
|
|
|
+}
|
|
|
+
|
|
|
+if ($app_installed=="yes" && $arrayState=="Started") {
|
|
|
+ $app_running = trim(shell_exec( "[ -f /proc/`cat /var/run/minidlna/minidlna.pid 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ));
|
|
|
+ if ($app_running == "yes")
|
|
|
+ $app_updatestatus = "Running";
|
|
|
+ else
|
|
|
+ $app_updatestatus = "Stopped";
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+echo "<script>document.getElementById('loading-text').innerHTML = \"DONE\";</script>";
|
|
|
+?>
|
|
|
+
|
|
|
+<!-- ========================================================================= -->
|
|
|
+<!-- Create the HTML code used to display the settings GUI -->
|
|
|
+<!-- ========================================================================= -->
|
|
|
+
|
|
|
+<div id="PANELALL"><div id="PANELLEFT">
|
|
|
+ <div class="TITLEBARLEFT title" id="title">
|
|
|
+ <span class="left"><img id="IMGICON" src="/plugins/<?=$appname;?>/icons/device_status.png"> Status:
|
|
|
+ <?if ($app_installed=="yes" && $arrayState=="Started"):?>
|
|
|
+ <?if ($app_running=="yes"):?>
|
|
|
+ <span class="green"><b>RUNNING</b></span>
|
|
|
+ <?else:?>
|
|
|
+ <span class="red"><b>STOPPED</b></span>
|
|
|
+ <?endif;?>
|
|
|
+ <?else:?>
|
|
|
+ <span class="red"><b>NOT READY</b></span>
|
|
|
+ <?endif;?>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div id="DIVLEFT">
|
|
|
+ <div id="T50LM">
|
|
|
+ <?if ($arrayState == "Started"):?>
|
|
|
+ <p id="PLINE">Array State:<b><span class="green">ONLINE</span></b></p>
|
|
|
+ <?if ($app_curversion == "NOT INSTALLED" || $app_curversion == "UNKNOWN"):?>
|
|
|
+ <p id="PLINE">Installed Version:<b><span class="red"><?=$app_curversion;?></span></b></p>
|
|
|
+ <?else:?>
|
|
|
+ <p id="PLINE" class="longver">Installed Version:<b><span class="green" title="<?=$app_curversion;?>"><?=$app_curversion;?></span></b></p>
|
|
|
+ <?endif;?>
|
|
|
+ <?else:?>
|
|
|
+ <p id="PLINE">Array State:<b><span class="red">OFFLINE</span></b></p>
|
|
|
+ <?endif;?>
|
|
|
+ </div>
|
|
|
+ <?if ($app_installed=="yes"):?>
|
|
|
+ <?if ($app_running=="yes"):?>
|
|
|
+ <div id="T25RM">
|
|
|
+ <form name="app_stop" method="POST" action="/update.htm" target="progressFrame">
|
|
|
+ <input type="hidden" name="cmd" value="<?=$prefix;?>/plugins/ewft.minidlna/scripts/rc.ewft.minidlna"/>
|
|
|
+ <input type="hidden" name="arg1" value="stop"/>
|
|
|
+ <input <?=$app_disabled;?> type="submit" name="runCmd" id="STDSMBUTTONR" value="Stop"/>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <div id="T25LM">
|
|
|
+ <form name="app_restart" method="POST" action="/update.htm" target="progressFrame">
|
|
|
+ <input type="hidden" name="cmd" value="<?=$prefix;?>/plugins/ewft.minidlna/scripts/rc.ewft.minidlna"/>
|
|
|
+ <input type="hidden" name="arg1" value="restart"/>
|
|
|
+ <input <?=$app_disabled;?> type="submit" name="runCmd" id="STDSMBUTTONL" value="Restart"/>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <?else:?>
|
|
|
+ <div id="T50CM">
|
|
|
+ <form name="app_start" method="POST" action="/update.htm" target="progressFrame">
|
|
|
+ <input type="hidden" name="cmd" value="<?=$prefix;?>/plugins/ewft.minidlna/scripts/rc.ewft.minidlna"/>
|
|
|
+ <input type="hidden" name="arg1" value="start"/>
|
|
|
+ <input <?=$app_disabled;?> type="submit" name="runCmd" id="STDSMBUTTON" value="Start"/>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <?endif;?>
|
|
|
+ <?else:?>
|
|
|
+ <div id="T50CM">
|
|
|
+ <form name="app_install" method="POST" action="/update.htm" target="progressFrame">
|
|
|
+ <input type="hidden" name="cmd" value="<?=$prefix;?>/plugins/ewft.minidlna/scripts/rc.ewft.minidlna"/>
|
|
|
+ <input type="hidden" name="arg1" value="install"/>
|
|
|
+ <input <?=$app_disabled;?> type="submit" name="runCmd" id="STDSMBUTTON" value="Install"/>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <?endif;?>
|
|
|
+ </div>
|
|
|
+ <? if ($app_installed=="yes" && $arrayState=="Started"): ?>
|
|
|
+ <?if ($app_canupdate=="yes"):?>
|
|
|
+ <div id="DIVLEFT">
|
|
|
+ <div id="T50LM">
|
|
|
+ <p id="PLINE"></p>
|
|
|
+ </div>
|
|
|
+ <div id="T50CM">
|
|
|
+ <form name="app_updateapp" method="POST" action="/update.htm" target="progressFrame">
|
|
|
+ <input type="hidden" name="cmd" value="<?=$prefix;?>/plugins/ewft.minidlna/scripts/rc.ewft.minidlna"/>
|
|
|
+ <input type="hidden" name="arg1" value="update"/>
|
|
|
+ <input type="hidden" name="arg3" value="<?=$app_updatestatus;?>"/>
|
|
|
+ <input id="UPDATEBUTTON" type="submit" name="runCmd" value="Update <?=$displayname;?>"/>
|
|
|
+ </form>
|
|
|
+ <p id="VERSION" class="longver" title="<?=$app_newversion;?>"><b>New Version: <?=$app_newversion;?></b></p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <?endif;?>
|
|
|
+ <? endif; ?>
|
|
|
+ <div class="TITLEBARLEFT title" id="title">
|
|
|
+ <span class="left"><img id="IMGICON" src="/plugins/<?=$appname;?>/icons/information.png"> Information:</span>
|
|
|
+ </div>
|
|
|
+ <div id="DIVLEFT">
|
|
|
+ <div id="T50LM">
|
|
|
+ <p id="PLINE"><b>Plugin Version: <?=$app_plgver;?></b></p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div id="DIVLEFT">
|
|
|
+ <div id="T50LT">
|
|
|
+ <p id="PLINE"><a title="<?=$appname;?> Activity Log - <?=$plglogfile;?>" href="#" target="_blank" id="ACTIVITYLINK" onclick="openLog();return false;">View Activity Log</a></p>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+
|
|
|
+<script type="text/javascript">
|
|
|
+
|
|
|
+function openLog() {
|
|
|
+ var machine_type = "<?=$machine_type;?>";
|
|
|
+ var title="<?=$appname;?> Activity Log";
|
|
|
+ if (machine_type == "x86_64") {
|
|
|
+ <?if (substr($ver60check, 0, 3) === "6.0"):?>
|
|
|
+ var url="/usr/bin/tail -n 42 -f <?=$plglogfile;?>";
|
|
|
+ openWindow( url, title,600,900);
|
|
|
+ <?else:?>
|
|
|
+ var url="<?=$prefix;?>/plugins/<?=$appname;?>/scripts/tail_log&arg1=<?=$appname;?>.log";
|
|
|
+ openWindow( url, title,600,900);
|
|
|
+ <?endif;?>
|
|
|
+ } else {
|
|
|
+ var url="/logging.htm?title=" + title + "&cmd=/usr/bin/tail -n 42 -f <?=$plglogfile;?>&forkCmd=Start";
|
|
|
+ openWindow( url, title.replace(/ /g, "_"),600,900);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+</script>
|
|
|
+
|