mirror of
				https://github.com/j-a-n/raspberrymatic-addon-rmupdate.git
				synced 2023-10-10 11:37:40 +00:00 
			
		
		
		
	Remove the RaspberryMatic specific firmware-section if the rmupdate addon is installed on a CCU3
This commit is contained in:
		| @@ -116,7 +116,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 					return true; | 					return true; | ||||||
| 				} | 				} | ||||||
| 			}) | 			}) | ||||||
| 					.modal('show'); | 			.modal('show'); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		function show_shutdown_dialog() { | 		function show_shutdown_dialog() { | ||||||
| @@ -131,7 +131,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 					return true; | 					return true; | ||||||
| 				} | 				} | ||||||
| 			}) | 			}) | ||||||
| 					.modal('show'); | 			.modal('show'); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		function disable_buttons() { | 		function disable_buttons() { | ||||||
| @@ -228,10 +228,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 		 | 		 | ||||||
| 		function delete_firmware_image(version) { | 		function delete_firmware_image(version) { | ||||||
| 			rest("POST", "/delete_firmware_image", {"version":version}, | 			rest("POST", "/delete_firmware_image", {"version":version}, | ||||||
| 					function(data) { | 				function(data) { | ||||||
| 						display_message('success', i18next.t('delete_firmware_img_success', {'version': version}), 5000); | 					display_message('success', i18next.t('delete_firmware_img_success', {'version': version}), 5000); | ||||||
| 						get_firmware_info(); | 					get_firmware_info(); | ||||||
| 					} | 				} | ||||||
| 			); | 			); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| @@ -252,14 +252,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 				if (!download_url) download_url = ""; | 				if (!download_url) download_url = ""; | ||||||
| 				if (!version) version = ""; | 				if (!version) version = ""; | ||||||
| 				rest("POST", "/start_install_firmware", {"download_url": download_url, "version":version, "language": language, "reboot":reboot, "dryrun":dryrun, "keep_download": keep_download}, | 				rest("POST", "/start_install_firmware", {"download_url": download_url, "version":version, "language": language, "reboot":reboot, "dryrun":dryrun, "keep_download": keep_download}, | ||||||
| 						function(data) { | 					function(data) { | ||||||
| 							// We are not expecting a response | 						// We are not expecting a response | ||||||
| 						}, | 					}, | ||||||
| 						function(xhr, ajaxOptions, thrownError) { | 					function(xhr, ajaxOptions, thrownError) { | ||||||
| 							console.error("Firmware installation error: " + thrownError + ": " + xhr.responseText); | 						console.error("Firmware installation error: " + thrownError + ": " + xhr.responseText); | ||||||
| 							//$('#modal-log').modal('hide'); | 						//$('#modal-log').modal('hide'); | ||||||
| 							set_running_installation("", thrownError + ": " + xhr.responseText); | 						set_running_installation("", thrownError + ": " + xhr.responseText); | ||||||
| 						} | 					} | ||||||
| 				); | 				); | ||||||
| 			} | 			} | ||||||
| 			setTimeout(update_install_log, 1000); | 			setTimeout(update_install_log, 1000); | ||||||
| @@ -313,11 +313,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 					if (fw.installed) cls = ' class="warning"'; | 					if (fw.installed) cls = ' class="warning"'; | ||||||
| 					if (fw.latest) cls = ' class="positive"'; | 					if (fw.latest) cls = ' class="positive"'; | ||||||
| 					$("#firmware-info tbody").append($('<tr' + cls + '>').append( | 					$("#firmware-info tbody").append($('<tr' + cls + '>').append( | ||||||
| 							$('<td>').append($('<a>', {text: fw.version, title: i18next.t('open_release_info'), href: fw.info_url, target: "_blank"})), | 						$('<td>').append($('<a>', {text: fw.version, title: i18next.t('open_release_info'), href: fw.info_url, target: "_blank"})), | ||||||
| 							$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+available+'>'),$('<label></label>'))), | 						$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+available+'>'),$('<label></label>'))), | ||||||
| 							$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+supported+'>'),$('<label></label>'))), | 						$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+supported+'>'),$('<label></label>'))), | ||||||
| 							$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+downloaded+'>'),$('<label></label>'))), | 						$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" '+downloaded+'>'),$('<label></label>'))), | ||||||
| 							$('<td class="center aligned">').append(bdelete, binstall) | 						$('<td class="center aligned">').append(bdelete, binstall) | ||||||
| 					)); | 					)); | ||||||
| 				}); | 				}); | ||||||
| 				var color = "#d01919"; | 				var color = "#d01919"; | ||||||
| @@ -326,12 +326,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 				} | 				} | ||||||
| 				$("#firmware-summary").empty(); | 				$("#firmware-summary").empty(); | ||||||
| 				$("#firmware-summary").append( | 				$("#firmware-summary").append( | ||||||
| 						$('<div class="ui item">').html(i18next.t('current_installed_version') + ': <span style="color:'+ color +'">' + current_firmware + '</span>'), | 					$('<div class="ui item">').html(i18next.t('current_installed_version') + ': <span style="color:'+ color +'">' + current_firmware + '</span>'), | ||||||
| 						$('<div class="ui item">').html(i18next.t('latest_available_version') + ': ' + latest_firmware) | 					$('<div class="ui item">').html(i18next.t('latest_available_version') + ': ' + latest_firmware) | ||||||
| 				); | 				); | ||||||
| 				if (latest_firmware_supported && current_firmware != latest_firmware) { | 				if (latest_firmware_supported && current_firmware != latest_firmware) { | ||||||
| 					$("#firmware-summary").append( | 					$("#firmware-summary").append( | ||||||
| 							$('<div id="install-latest-firmware-button" class="ui green basic button" style="margin-top:20px; margin-bottom:20px;">').click(install_latest_firmware).append($('<i class="sign in icon">'), i18next.t('install_latest_firmware')) | 						$('<div id="install-latest-firmware-button" class="ui green basic button" style="margin-top:20px; margin-bottom:20px;">').click(install_latest_firmware).append($('<i class="sign in icon">'), i18next.t('install_latest_firmware')) | ||||||
| 					); | 					); | ||||||
| 				} | 				} | ||||||
| 				 | 				 | ||||||
| @@ -346,8 +346,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 			rest("GET", "/get_system_info", null, function(data) { | 			rest("GET", "/get_system_info", null, function(data) { | ||||||
| 				$("#system-info").empty(); | 				$("#system-info").empty(); | ||||||
| 				$("#system-info").append( | 				$("#system-info").append( | ||||||
| 						$('<div class="item">').html(i18next.t('system_type', {'system_type': data.system_type})), | 					$('<div class="item">').html(i18next.t('system_type', {'system_type': data.system_type})), | ||||||
| 						$('<div class="item">').html(i18next.t('uptime', {'uptime': data.uptime})) | 					$('<div class="item">').html(i18next.t('uptime', {'uptime': data.uptime})) | ||||||
| 				); | 				); | ||||||
| 			}); | 			}); | ||||||
| 		} | 		} | ||||||
| @@ -426,21 +426,21 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 										display_message('warning', i18next.t('moving_userfs'), 300000); | 										display_message('warning', i18next.t('moving_userfs'), 300000); | ||||||
| 										if (!moving_userfs_to_device) { | 										if (!moving_userfs_to_device) { | ||||||
| 											rest('POST', '/move_userfs_to_device', {"target_device":target_device}, | 											rest('POST', '/move_userfs_to_device', {"target_device":target_device}, | ||||||
| 													function(data) { | 												function(data) { | ||||||
| 														moving_userfs_to_device = false; | 													moving_userfs_to_device = false; | ||||||
| 														display_message('success', i18next.t('userfs_moved'), 120000); | 													display_message('success', i18next.t('userfs_moved'), 120000); | ||||||
| 														rest('POST', '/system_reboot'); | 													rest('POST', '/system_reboot'); | ||||||
| 													}, | 												}, | ||||||
| 													function(xhr, ajaxOptions, thrownError) { | 												function(xhr, ajaxOptions, thrownError) { | ||||||
| 														moving_userfs_to_device = false; | 													moving_userfs_to_device = false; | ||||||
| 														default_error_callback(xhr, ajaxOptions, thrownError); | 													default_error_callback(xhr, ajaxOptions, thrownError); | ||||||
| 													} | 												} | ||||||
| 											); | 											); | ||||||
| 										} | 										} | ||||||
| 										moving_userfs_to_device = true; | 										moving_userfs_to_device = true; | ||||||
| 									} | 									} | ||||||
| 								}) | 								}) | ||||||
| 										.modal('show'); | 								.modal('show'); | ||||||
| 							})); | 							})); | ||||||
| 							 | 							 | ||||||
| 							if (partition.partition == 0) { | 							if (partition.partition == 0) { | ||||||
| @@ -452,41 +452,41 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 										}, | 										}, | ||||||
| 										onApprove: function() { | 										onApprove: function() { | ||||||
| 											rest('POST', '/delete_partition_table', {"device":device}, | 											rest('POST', '/delete_partition_table', {"device":device}, | ||||||
| 													function(data) { | 												function(data) { | ||||||
| 														display_message('success', i18next.t('partiton_table_deleted'), 120000); | 													display_message('success', i18next.t('partiton_table_deleted'), 120000); | ||||||
| 														get_partitions(); | 													get_partitions(); | ||||||
| 													}, | 												}, | ||||||
| 													function(xhr, ajaxOptions, thrownError) { | 												function(xhr, ajaxOptions, thrownError) { | ||||||
| 														default_error_callback(xhr, ajaxOptions, thrownError); | 													default_error_callback(xhr, ajaxOptions, thrownError); | ||||||
| 														get_partitions(); | 													get_partitions(); | ||||||
| 													} | 												} | ||||||
| 											); | 											); | ||||||
| 										} | 										} | ||||||
| 									}) | 									}) | ||||||
| 											.modal('show'); | 									.modal('show'); | ||||||
| 								})); | 								})); | ||||||
| 							} | 							} | ||||||
| 						} | 						} | ||||||
| 						var menu = null; | 						var menu = null; | ||||||
| 						if (menu_items.length > 0) { | 						if (menu_items.length > 0) { | ||||||
| 							menu = $('<div class="ui compact menu" style="min-height:28px; max-height:28px;">').append( | 							menu = $('<div class="ui compact menu" style="min-height:28px; max-height:28px;">').append( | ||||||
| 									$('<div class="ui floating dropdown top right item">').append( | 								$('<div class="ui floating dropdown top right item">').append( | ||||||
| 											i18next.t('action'), | 									i18next.t('action'), | ||||||
| 											$('<i class="dropdown icon">'), | 									$('<i class="dropdown icon">'), | ||||||
| 											$('<div class="menu">').append(menu_items) | 									$('<div class="menu">').append(menu_items) | ||||||
| 									) | 								) | ||||||
| 							) | 							) | ||||||
| 						} | 						} | ||||||
| 						 | 						 | ||||||
| 						if (partition.partition == 0) { | 						if (partition.partition == 0) { | ||||||
| 							var st = "border:none; border-top: 2px solid #aaafaf"; | 							var st = "border:none; border-top: 2px solid #aaafaf"; | ||||||
| 							$("#volume-info tbody").append($('<tr style="background: #f8ffff;">').append( | 							$("#volume-info tbody").append($('<tr style="background: #f8ffff;">').append( | ||||||
| 									$('<td style="'+st+'" class="top aligned" rowspan="' + parts.length + '">') | 								$('<td style="'+st+'" class="top aligned" rowspan="' + parts.length + '">') | ||||||
| 											.append($('<label>' + partition.model + '</label><br /><strong>' + partition.disk_device + '</strong>')), | 									.append($('<label>' + partition.model + '</label><br /><strong>' + partition.disk_device + '</strong>')), | ||||||
| 									$('<td style="'+st+'" class="center aligned" colspan="4">'), | 								$('<td style="'+st+'" class="center aligned" colspan="4">'), | ||||||
| 									$('<td class="right aligned" style="'+st+'">').append($('<label>' + format_size(partition.size) + '</label>')), | 								$('<td class="right aligned" style="'+st+'">').append($('<label>' + format_size(partition.size) + '</label>')), | ||||||
| 									$('<td style="'+st+'" colspan="2">'), | 								$('<td style="'+st+'" colspan="2">'), | ||||||
| 									$('<td style="'+st+'" class="center aligned">').append(menu) | 								$('<td style="'+st+'" class="center aligned">').append(menu) | ||||||
| 							)); | 							)); | ||||||
| 						} else { | 						} else { | ||||||
| 							var usage = ''; | 							var usage = ''; | ||||||
| @@ -497,14 +497,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 							var used = (partition.filesystem_used == -1) ? '' : format_size(partition.filesystem_used); | 							var used = (partition.filesystem_used == -1) ? '' : format_size(partition.filesystem_used); | ||||||
| 							var free = (partition.filesystem_used == -1) ? '' : format_size(partition.size-partition.filesystem_used); | 							var free = (partition.filesystem_used == -1) ? '' : format_size(partition.size-partition.filesystem_used); | ||||||
| 							$("#volume-info tbody").append($('<tr>').append( | 							$("#volume-info tbody").append($('<tr>').append( | ||||||
| 									$('<td style="border-left: 1px solid rgba(34,36,38,.1)">').append($('<label>' + partition.partition + '</label>')), | 								$('<td style="border-left: 1px solid rgba(34,36,38,.1)">').append($('<label>' + partition.partition + '</label>')), | ||||||
| 									$('<td>').append($('<label>' + partition.filesystem_type + '</label>')), | 								$('<td>').append($('<label>' + partition.filesystem_type + '</label>')), | ||||||
| 									$('<td>').append($('<label '+st+'>' + partition.filesystem_label + '</label>')), | 								$('<td>').append($('<label '+st+'>' + partition.filesystem_label + '</label>')), | ||||||
| 									$('<td>').append($('<label '+st+'>' + partition.mountpoint + '</label>')), | 								$('<td>').append($('<label '+st+'>' + partition.mountpoint + '</label>')), | ||||||
| 									$('<td class="right aligned">').append($('<label>' + format_size(partition.size) + '</label>')), | 								$('<td class="right aligned">').append($('<label>' + format_size(partition.size) + '</label>')), | ||||||
| 									$('<td class="right aligned">').append($('<label>' + used + '</label>')), | 								$('<td class="right aligned">').append($('<label>' + used + '</label>')), | ||||||
| 									$('<td class="right aligned">').append($('<label>' + free + '</label>')), | 								$('<td class="right aligned">').append($('<label>' + free + '</label>')), | ||||||
| 									$('<td class="center aligned">').append(menu) | 								$('<td class="center aligned">').append(menu) | ||||||
| 							)); | 							)); | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| @@ -571,7 +571,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 				} | 				} | ||||||
| 				else { | 				else { | ||||||
| 					rest("POST", "/install_addon", {"addon_id":addon_id, "download_url":download_url}, | 					rest("POST", "/install_addon", {"addon_id":addon_id, "download_url":download_url}, | ||||||
| 							success_callback, error_callback | 						success_callback, error_callback | ||||||
| 					); | 					); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| @@ -583,17 +583,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 				disable_buttons(); | 				disable_buttons(); | ||||||
| 				$('[data-uninstall-addon-id="' + addon_id + '"]').addClass('loading'); | 				$('[data-uninstall-addon-id="' + addon_id + '"]').addClass('loading'); | ||||||
| 				rest("POST", "/uninstall_addon", {"addon_id":addon_id}, | 				rest("POST", "/uninstall_addon", {"addon_id":addon_id}, | ||||||
| 						function(data) { | 					function(data) { | ||||||
| 							//console.info(data); | 						//console.info(data); | ||||||
| 							display_message('success', data, 5000); | 						display_message('success', data, 5000); | ||||||
| 							reset_buttons(); | 						reset_buttons(); | ||||||
| 							$('#tr-' + addon_id).remove(); | 						$('#tr-' + addon_id).remove(); | ||||||
| 						}, | 					}, | ||||||
| 						function(xhr, ajaxOptions, thrownError) { | 					function(xhr, ajaxOptions, thrownError) { | ||||||
| 							console.error("Addon installation error: " + thrownError + ": " + xhr.responseText); | 						console.error("Addon installation error: " + thrownError + ": " + xhr.responseText); | ||||||
| 							reset_buttons(); | 						reset_buttons(); | ||||||
| 							default_error_callback(xhr, ajaxOptions, thrownError); | 						default_error_callback(xhr, ajaxOptions, thrownError); | ||||||
| 						} | 					} | ||||||
| 				); | 				); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @@ -608,7 +608,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 					 | 					 | ||||||
| 					var disabled = ((addon.available_version && addon.download_url) ? '' : 'disabled'); | 					var disabled = ((addon.available_version && addon.download_url) ? '' : 'disabled'); | ||||||
| 					var bupdate = $('<div class="ui '+ color +' basic '+ disabled +' button" id="button-update-' + addon.id + '">') | 					var bupdate = $('<div class="ui '+ color +' basic '+ disabled +' button" id="button-update-' + addon.id + '">') | ||||||
| 							.append($('<i class="sign in icon">'), (addon.version == addon.available_version) ? i18next.t('reinstall') : i18next.t('update')); | 						.append($('<i class="sign in icon">'), (addon.version == addon.available_version) ? i18next.t('reinstall') : i18next.t('update')); | ||||||
| 					if (!disabled) { | 					if (!disabled) { | ||||||
| 						bupdate.attr('data-update-addon-id', addon.id).attr('data-update-addon-available-version', addon.available_version) | 						bupdate.attr('data-update-addon-id', addon.id).attr('data-update-addon-available-version', addon.available_version) | ||||||
| 					} | 					} | ||||||
| @@ -618,16 +618,16 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 					 | 					 | ||||||
| 					disabled = ((addon.config_url) ? '' : 'disabled'); | 					disabled = ((addon.config_url) ? '' : 'disabled'); | ||||||
| 					var bconfig = $('<div class="ui blue basic '+ disabled +' button">') | 					var bconfig = $('<div class="ui blue basic '+ disabled +' button">') | ||||||
| 							.attr('data-addon-config-url', addon.config_url) | 						.attr('data-addon-config-url', addon.config_url) | ||||||
| 							.append($('<i class="setting icon">'), i18next.t('open_config')); | 						.append($('<i class="setting icon">'), i18next.t('open_config')); | ||||||
| 					bconfig.click(function() { | 					bconfig.click(function() { | ||||||
| 						var win = window.open(this.getAttribute('data-addon-config-url') + window.location.search, '_blank'); | 						var win = window.open(this.getAttribute('data-addon-config-url') + window.location.search, '_blank'); | ||||||
| 						win.focus(); | 						win.focus(); | ||||||
| 					}); | 					}); | ||||||
| 					 | 					 | ||||||
| 					var buninstall = $('<div class="ui orange basic button">') | 					var buninstall = $('<div class="ui orange basic button">') | ||||||
| 							.attr('data-uninstall-addon-id', addon.id) | 						.attr('data-uninstall-addon-id', addon.id) | ||||||
| 							.append($('<i class="remove icon">'), i18next.t('uninstall')); | 						.append($('<i class="remove icon">'), i18next.t('uninstall')); | ||||||
| 					buninstall.click(function() { | 					buninstall.click(function() { | ||||||
| 						var addon_id = this.getAttribute('data-uninstall-addon-id'); | 						var addon_id = this.getAttribute('data-uninstall-addon-id'); | ||||||
| 						$('#modal-uninstall-addon').modal({ | 						$('#modal-uninstall-addon').modal({ | ||||||
| @@ -639,16 +639,16 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 								return true; | 								return true; | ||||||
| 							} | 							} | ||||||
| 						}) | 						}) | ||||||
| 								.modal('show'); | 						.modal('show'); | ||||||
| 					}); | 					}); | ||||||
| 					 | 					 | ||||||
| 					var cls = (((!addon.available_version) || (addon.version == addon.available_version)) ? "positive" : "warning"); | 					var cls = (((!addon.available_version) || (addon.version == addon.available_version)) ? "positive" : "warning"); | ||||||
| 					var available_version = ((addon.available_version) ? addon.available_version : "?"); | 					var available_version = ((addon.available_version) ? addon.available_version : "?"); | ||||||
| 					$("#addon-info tbody").append($('<tr class="' + cls + '" id="tr-' + addon.id + '">').append( | 					$("#addon-info tbody").append($('<tr class="' + cls + '" id="tr-' + addon.id + '">').append( | ||||||
| 							$('<td>').append($('<label>' + addon.name + '</label>')), | 						$('<td>').append($('<label>' + addon.name + '</label>')), | ||||||
| 							$('<td>').append($('<label id="label-version-' + addon.id + '">' + addon.version + '</label>')), | 						$('<td>').append($('<label id="label-version-' + addon.id + '">' + addon.version + '</label>')), | ||||||
| 							$('<td>').append($('<label id="label-available-version-' + addon.id + '">' + available_version + '</label>')), | 						$('<td>').append($('<label id="label-available-version-' + addon.id + '">' + available_version + '</label>')), | ||||||
| 							$('<td class="center aligned">').append(bupdate, bconfig, buninstall) | 						$('<td class="center aligned">').append(bupdate, bconfig, buninstall) | ||||||
| 					)); | 					)); | ||||||
| 				}); | 				}); | ||||||
| 				$('#dimmer-addon-info').removeClass('active'); | 				$('#dimmer-addon-info').removeClass('active'); | ||||||
| @@ -664,40 +664,40 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 				return; | 				return; | ||||||
| 			} | 			} | ||||||
| 			rest("GET", "/wlan_scan", null, function(data) { | 			rest("GET", "/wlan_scan", null, function(data) { | ||||||
| 						$('#wlan-list tbody').empty(); | 				$('#wlan-list tbody').empty(); | ||||||
| 						data.forEach(function(wlan) { | 				data.forEach(function(wlan) { | ||||||
| 							var cls = (wlan.connected == "1") ? "disabled" : ""; | 					var cls = (wlan.connected == "1") ? "disabled" : ""; | ||||||
| 							var bconnect = $('<div class="ui green basic button ' + cls + '">') | 					var bconnect = $('<div class="ui green basic button ' + cls + '">') | ||||||
| 									.attr('data-ssid', wlan.ssid) | 						.attr('data-ssid', wlan.ssid) | ||||||
| 									.append($('<i class="sign in icon">'), i18next.t('connect')); | 						.append($('<i class="sign in icon">'), i18next.t('connect')); | ||||||
| 							bconnect.click(function() { | 					bconnect.click(function() { | ||||||
| 								$('#form-connect-wlan').form('clear'); | 						$('#form-connect-wlan').form('clear'); | ||||||
| 								$('#form-connect-wlan').attr('data-ssid', this.getAttribute('data-ssid')); | 						$('#form-connect-wlan').attr('data-ssid', this.getAttribute('data-ssid')); | ||||||
| 								$('#modal-connect-wlan').modal('show'); | 						$('#modal-connect-wlan').modal('show'); | ||||||
| 							}); |  | ||||||
|  |  | ||||||
| 							cls = (wlan.connected == "1") ? "" : "disabled"; |  | ||||||
| 							var bdisconnect = $('<div class="ui orange basic button ' + cls + '">') |  | ||||||
| 									.attr('data-ssid', wlan.ssid) |  | ||||||
| 									.append($('<i class="delete icon">'), i18next.t('disconnect')); |  | ||||||
| 							bdisconnect.click(function() { |  | ||||||
| 								$('.button[data-ssid]').addClass('loading'); |  | ||||||
| 								rest("POST", "/wlan_disconnect"); |  | ||||||
| 							}); |  | ||||||
| 							var connected_checked = ((wlan.connected == "1") ? 'checked=""' : '') |  | ||||||
| 							cls = (wlan.connected == "1") ? "positive" : ""; |  | ||||||
| 							$("#wlan-list tbody").append($('<tr class="' + cls + '">').append( |  | ||||||
| 									$('<td>').append($('<label>' + wlan.ssid + '</label>')), |  | ||||||
| 									$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" ' + connected_checked + '>'),$('<label></label>'))), |  | ||||||
| 									$('<td>').append($('<label>' + wlan.signal + '</label>')), |  | ||||||
| 									$('<td class="center aligned">').append(bconnect, bdisconnect) |  | ||||||
| 							)); |  | ||||||
| 						}); |  | ||||||
| 						wlanScanTimer = setTimeout(function(){ wlan_scan(); }, 5000); |  | ||||||
| 					}, |  | ||||||
| 					function(xhr, ajaxOptions, thrownError) { |  | ||||||
| 						wlanScanTimer = setTimeout(function(){ wlan_scan(); }, 5000); |  | ||||||
| 					}); | 					}); | ||||||
|  | 					 | ||||||
|  | 					cls = (wlan.connected == "1") ? "" : "disabled"; | ||||||
|  | 					var bdisconnect = $('<div class="ui orange basic button ' + cls + '">') | ||||||
|  | 						.attr('data-ssid', wlan.ssid) | ||||||
|  | 						.append($('<i class="delete icon">'), i18next.t('disconnect')); | ||||||
|  | 					bdisconnect.click(function() { | ||||||
|  | 						$('.button[data-ssid]').addClass('loading'); | ||||||
|  | 						rest("POST", "/wlan_disconnect"); | ||||||
|  | 					}); | ||||||
|  | 					var connected_checked = ((wlan.connected == "1") ? 'checked=""' : '') | ||||||
|  | 					cls = (wlan.connected == "1") ? "positive" : ""; | ||||||
|  | 					$("#wlan-list tbody").append($('<tr class="' + cls + '">').append( | ||||||
|  | 						$('<td>').append($('<label>' + wlan.ssid + '</label>')), | ||||||
|  | 						$('<td class="center aligned">').append($('<div class="ui disabled checkbox">').append($('<input type="checkbox" disabled="disabled" ' + connected_checked + '>'),$('<label></label>'))), | ||||||
|  | 						$('<td>').append($('<label>' + wlan.signal + '</label>')), | ||||||
|  | 						$('<td class="center aligned">').append(bconnect, bdisconnect) | ||||||
|  | 					)); | ||||||
|  | 				}); | ||||||
|  | 				wlanScanTimer = setTimeout(function(){ wlan_scan(); }, 5000); | ||||||
|  | 			}, | ||||||
|  | 			function(xhr, ajaxOptions, thrownError) { | ||||||
|  | 				wlanScanTimer = setTimeout(function(){ wlan_scan(); }, 5000); | ||||||
|  | 			}); | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		function init() { | 		function init() { | ||||||
| @@ -933,340 +933,340 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| 			$('#content').dimmer('show'); | 			$('#content').dimmer('show'); | ||||||
| 			sid = get_url_var('sid'); | 			sid = get_url_var('sid'); | ||||||
| 			rest("GET", "/get_session", null, | 			rest("GET", "/get_session", null, | ||||||
| 					function(data) { | 				function(data) { | ||||||
| 						init(); | 					init(); | ||||||
| 					}, | 				}, | ||||||
| 					function(xhr, ajaxOptions, thrownError) { | 				function(xhr, ajaxOptions, thrownError) { | ||||||
| 						if (xhr.status == 401) { | 					if (xhr.status == 401) { | ||||||
| 							var form_config = { | 						var form_config = { | ||||||
| 								on: 'blur', | 							on: 'blur', | ||||||
| 								fields: { | 							fields: { | ||||||
| 									username: { | 								username: { | ||||||
| 										identifier: 'username' | 									identifier: 'username' | ||||||
| 									}, |  | ||||||
| 									password: { |  | ||||||
| 										identifier: 'password' |  | ||||||
| 									} |  | ||||||
| 								}, | 								}, | ||||||
| 								onSuccess: function(event, fields) { | 								password: { | ||||||
| 									event.preventDefault(); | 									identifier: 'password' | ||||||
| 									var username = $(event.currentTarget).form('get value', 'username'); |  | ||||||
| 									var password = $(event.currentTarget).form('get value', 'password'); |  | ||||||
| 									rest("POST", "/login", {"username": username, "password": password}, |  | ||||||
| 											function(data) { |  | ||||||
| 												window.location.href = window.location.href.replace(/\?.*/, '') + '?sid=@' + data + '@'; |  | ||||||
| 											}, |  | ||||||
| 											function(xhr, ajaxOptions, thrownError) { |  | ||||||
| 												default_error_callback(xhr, ajaxOptions, thrownError); |  | ||||||
| 											} |  | ||||||
| 									); |  | ||||||
| 								} | 								} | ||||||
| 							}; | 							}, | ||||||
| 							$('#form-login').form(form_config); | 							onSuccess: function(event, fields) { | ||||||
| 							$('#modal-login').modal('show'); | 								event.preventDefault(); | ||||||
| 						} | 								var username = $(event.currentTarget).form('get value', 'username'); | ||||||
| 						else { | 								var password = $(event.currentTarget).form('get value', 'password'); | ||||||
| 							default_error_callback(xhr, ajaxOptions, thrownError); | 								rest("POST", "/login", {"username": username, "password": password}, | ||||||
| 						} | 									function(data) { | ||||||
|  | 										window.location.href = window.location.href.replace(/\?.*/, '') + '?sid=@' + data + '@'; | ||||||
|  | 									}, | ||||||
|  | 									function(xhr, ajaxOptions, thrownError) { | ||||||
|  | 										default_error_callback(xhr, ajaxOptions, thrownError); | ||||||
|  | 									} | ||||||
|  | 								); | ||||||
|  | 							} | ||||||
|  | 						}; | ||||||
|  | 						$('#form-login').form(form_config); | ||||||
|  | 						$('#modal-login').modal('show'); | ||||||
| 					} | 					} | ||||||
|  | 					else { | ||||||
|  | 						default_error_callback(xhr, ajaxOptions, thrownError); | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
| 			); | 			); | ||||||
| 		}); | 		}); | ||||||
| 		 | 		 | ||||||
| 	</script> | 	</script> | ||||||
| </head> | </head> | ||||||
| <body> | <body> | ||||||
| <div style="position: fixed; left: 50%; top: 2vh; z-index: 2000"> | 	<div style="position: fixed; left: 50%; top: 2vh; z-index: 2000"> | ||||||
| 	<div style="position: relative; left: -50%;"> | 		<div style="position: relative; left: -50%;"> | ||||||
| 		<div class="ui container"> | 			<div class="ui container"> | ||||||
| 			<div id="message" class="ui message hidden" style="margin-left: 100px; margin-right: 100px; min-height: 50px; min-width: 340px"> | 				<div id="message" class="ui message hidden" style="margin-left: 100px; margin-right: 100px; min-height: 50px; min-width: 340px"> | ||||||
| 				<i class="close icon" onclick="clear_message();"></i> | 					<i class="close icon" onclick="clear_message();"></i> | ||||||
|  | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> |  | ||||||
| 	 | 	 | ||||||
| <div id="content" style="padding: 0; margin: 0; width: 100%"> | 	<div id="content" style="padding: 0; margin: 0; width: 100%"> | ||||||
| 	<div style="padding-top: 5vw; padding-bottom: 5vw" class="ui container"> | 		<div style="padding-top: 5vw; padding-bottom: 5vw" class="ui container"> | ||||||
| 		<h1 class="ui center aligned dividing header" data-i18n="title"></h1> | 			<h1 class="ui center aligned dividing header" data-i18n="title"></h1> | ||||||
| 		 | 		 | ||||||
| 		<h2 class="ui header"> | 			<h2 class="ui header"> | ||||||
| 			<i class="info icon"></i> | 				<i class="info icon"></i> | ||||||
| 			<div data-i18n="system_info" class="content"> | 				<div data-i18n="system_info" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div class="ui list" id="system-info"> | ||||||
| 			</div> | 			</div> | ||||||
| 		</h2> | 			<div class="ui orange basic button" data-i18n="reboot_system" onclick="show_reboot_dialog();"></div> | ||||||
| 		<div class="ui list" id="system-info"> | 			<div class="ui red basic button" data-i18n="shutdown_system" onclick="show_shutdown_dialog();"></div> | ||||||
| 		</div> |  | ||||||
| 		<div class="ui orange basic button" data-i18n="reboot_system" onclick="show_reboot_dialog();"></div> |  | ||||||
| 		<div class="ui red basic button" data-i18n="shutdown_system" onclick="show_shutdown_dialog();"></div> |  | ||||||
| 			 | 			 | ||||||
| 		<h2 class="ui header"> | 			<h2 class="ui header"> | ||||||
| 			<i class="hdd outline icon"></i> | 				<i class="hdd outline icon"></i> | ||||||
| 			<div data-i18n="volumes" class="content"> | 				<div data-i18n="volumes" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div class="dimmable"> | ||||||
|  | 				<div id="dimmer-volume-info" class="ui active inverted dimmer"> | ||||||
|  | 					<div class="ui loader" data-i18n="loading"></div> | ||||||
|  | 				</div> | ||||||
|  | 				<table id="volume-info" class="ui celled stackable table"> | ||||||
|  | 					<thead> | ||||||
|  | 						<tr> | ||||||
|  | 							<th data-i18n="device"></th> | ||||||
|  | 							<th data-i18n="partition_number"></th> | ||||||
|  | 							<th data-i18n="filesystem_type"></th> | ||||||
|  | 							<th data-i18n="filesystem_label"></th> | ||||||
|  | 							<th data-i18n="mountpoint"></th> | ||||||
|  | 							<th class="right aligned" data-i18n="size"></th> | ||||||
|  | 							<th class="right aligned" data-i18n="used"></th> | ||||||
|  | 							<th class="right aligned" data-i18n="free"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="action"></th> | ||||||
|  | 						</tr> | ||||||
|  | 					</thead> | ||||||
|  | 					<tbody> | ||||||
|  | 					</tbody> | ||||||
|  | 				</table> | ||||||
| 			</div> | 			</div> | ||||||
| 		</h2> |  | ||||||
| 		<div class="dimmable"> |  | ||||||
| 			<div id="dimmer-volume-info" class="ui active inverted dimmer"> |  | ||||||
| 				<div class="ui loader" data-i18n="loading"></div> |  | ||||||
| 			</div> |  | ||||||
| 			<table id="volume-info" class="ui celled stackable table"> |  | ||||||
| 				<thead> |  | ||||||
| 				<tr> |  | ||||||
| 					<th data-i18n="device"></th> |  | ||||||
| 					<th data-i18n="partition_number"></th> |  | ||||||
| 					<th data-i18n="filesystem_type"></th> |  | ||||||
| 					<th data-i18n="filesystem_label"></th> |  | ||||||
| 					<th data-i18n="mountpoint"></th> |  | ||||||
| 					<th class="right aligned" data-i18n="size"></th> |  | ||||||
| 					<th class="right aligned" data-i18n="used"></th> |  | ||||||
| 					<th class="right aligned" data-i18n="free"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="action"></th> |  | ||||||
| 				</tr> |  | ||||||
| 				</thead> |  | ||||||
| 				<tbody> |  | ||||||
| 				</tbody> |  | ||||||
| 			</table> |  | ||||||
| 		</div> |  | ||||||
| 			 | 			 | ||||||
| 		<h2 id="firmware_header" class="ui header"> | 			<h2 class="ui header"> | ||||||
| 			<i class="settings icon"></i> | 				<i class="settings icon"></i> | ||||||
| 			<div data-i18n="firmwares" class="content"> | 				<div data-i18n="firmwares" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div class="ui list" id="firmware-summary"> | ||||||
| 			</div> | 			</div> | ||||||
| 		</h2> |  | ||||||
| 		<div id="firmware_summary" class="ui list" id="firmware-summary"> |  | ||||||
| 		</div> |  | ||||||
| 			 | 			 | ||||||
| 		<div id="firmware_list" class="dimmable"> | 			<div class="dimmable"> | ||||||
| 			<div id="dimmer-firmware-info" class="ui active inverted dimmer"> | 				<div id="dimmer-firmware-info" class="ui active inverted dimmer"> | ||||||
| 				<div class="ui loader" data-i18n="loading"></div> | 					<div class="ui loader" data-i18n="loading"></div> | ||||||
|  | 				</div> | ||||||
|  | 				<div style="width: 100%" class="ui action input"> | ||||||
|  | 					<input id="install-firmware-url-input" type="text" placeholder="http://.../RaspberryMatic.zip"/> | ||||||
|  | 					<button id="install-firmware-url-button" class="ui green right labeled icon button" onclick="install_firmware($('#install-firmware-url-input').val());"> | ||||||
|  | 						<i class="sign in icon"></i> | ||||||
|  | 						install | ||||||
|  | 					</button> | ||||||
|  | 				</div> | ||||||
|  | 				<table id="firmware-info" class="ui celled stackable table"> | ||||||
|  | 					<thead> | ||||||
|  | 						<tr> | ||||||
|  | 							<th data-i18n="version"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="available"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="supported"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="downloaded"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="action"></th> | ||||||
|  | 						</tr> | ||||||
|  | 					</thead> | ||||||
|  | 					<tbody> | ||||||
|  | 					</tbody> | ||||||
|  | 				</table> | ||||||
|  | 				<div class="ui checkbox"> | ||||||
|  | 					<input id="dryrun" type="checkbox"> | ||||||
|  | 					<label data-i18n="perform_trial_run"></label> | ||||||
|  | 				</div> | ||||||
|  | 				<br /> | ||||||
|  | 				<div class="ui checkbox"> | ||||||
|  | 					<input id="delete-download-after-install" type="checkbox" checked="checked"> | ||||||
|  | 					<label data-i18n="delete_download_after_install"></label> | ||||||
|  | 				</div> | ||||||
|  | 				<br /> | ||||||
|  | 				<div class="ui checkbox"> | ||||||
|  | 					<input id="reboot-after-install" type="checkbox" checked="checked"> | ||||||
|  | 					<label data-i18n="reboot_after_install"></label> | ||||||
|  | 				</div> | ||||||
| 			</div> | 			</div> | ||||||
|  | 			 | ||||||
|  | 			<h2 class="ui header"> | ||||||
|  | 				<i class="plug icon"></i> | ||||||
|  | 				<div data-i18n="addons" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div class="dimmable"> | ||||||
|  | 				<div id="dimmer-addon-info" class="ui active inverted dimmer"> | ||||||
|  | 					<div class="ui loader" data-i18n="loading"></div> | ||||||
|  | 				</div> | ||||||
|  | 				<table id="addon-info" class="ui celled stackable table"> | ||||||
|  | 					<thead> | ||||||
|  | 						<tr> | ||||||
|  | 							<th data-i18n="addon_name"></th> | ||||||
|  | 							<th data-i18n="installed_version"></th> | ||||||
|  | 							<th data-i18n="available_version"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="action"></th> | ||||||
|  | 						</tr> | ||||||
|  | 					</thead> | ||||||
|  | 					<tbody> | ||||||
|  | 					</tbody> | ||||||
|  | 				</table> | ||||||
|  | 			</div> | ||||||
|  | 			 | ||||||
|  | 			<h2 class="ui header"> | ||||||
|  | 				<i class="cloud download icon"></i> | ||||||
|  | 				<div data-i18n="install_addon_from_url" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
| 			<div style="width: 100%" class="ui action input"> | 			<div style="width: 100%" class="ui action input"> | ||||||
| 				<input id="install-firmware-url-input" type="text" placeholder="http://.../RaspberryMatic.zip"/> | 				<input id="install-addon-url-input" type="text" placeholder="http://.../addon.tar.gz"/> | ||||||
| 				<button id="install-firmware-url-button" class="ui green right labeled icon button" onclick="install_firmware($('#install-firmware-url-input').val());"> | 				<button id="install-addon-url-button" class="ui green right labeled icon button" onclick="install_addon(null, $('#install-addon-url-input').val());"> | ||||||
| 					<i class="sign in icon"></i> | 					<i class="sign in icon"></i> | ||||||
| 					install | 					install | ||||||
| 				</button> | 				</button> | ||||||
| 			</div> | 			</div> | ||||||
| 			<table id="firmware-info" class="ui celled stackable table"> |  | ||||||
| 				<thead> |  | ||||||
| 				<tr> |  | ||||||
| 					<th data-i18n="version"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="available"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="supported"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="downloaded"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="action"></th> |  | ||||||
| 				</tr> |  | ||||||
| 				</thead> |  | ||||||
| 				<tbody> |  | ||||||
| 				</tbody> |  | ||||||
| 			</table> |  | ||||||
| 			<div class="ui checkbox"> |  | ||||||
| 				<input id="dryrun" type="checkbox"> |  | ||||||
| 				<label data-i18n="perform_trial_run"></label> |  | ||||||
| 			</div> |  | ||||||
| 			<br /> |  | ||||||
| 			<div class="ui checkbox"> |  | ||||||
| 				<input id="delete-download-after-install" type="checkbox" checked="checked"> |  | ||||||
| 				<label data-i18n="delete_download_after_install"></label> |  | ||||||
| 			</div> |  | ||||||
| 			<br /> |  | ||||||
| 			<div class="ui checkbox"> |  | ||||||
| 				<input id="reboot-after-install" type="checkbox" checked="checked"> |  | ||||||
| 				<label data-i18n="reboot_after_install"></label> |  | ||||||
| 			</div> |  | ||||||
| 		</div> |  | ||||||
| 			 | 			 | ||||||
| 		<h2 class="ui header"> | 			<h2 class="ui header"> | ||||||
| 			<i class="plug icon"></i> | 				<i class="upload icon"></i> | ||||||
| 			<div data-i18n="addons" class="content"> | 				<div data-i18n="install_addon_from_file" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div style="width: 100%" class="ui action input"> | ||||||
|  | 				<input class="inputfile" id="install-addon-file-input" type="file" onchange="install_addon(null, null, this);" style="display: none;"/> | ||||||
|  | 				<label id="install-addon-file-button" for="install-addon-file-input" class="ui green button"> | ||||||
|  | 					<i class="ui file archive outline icon"></i> | ||||||
|  | 					choose_addon_file | ||||||
|  | 				</label> | ||||||
| 			</div> | 			</div> | ||||||
| 		</h2> |  | ||||||
| 		<div class="dimmable"> |  | ||||||
| 			<div id="dimmer-addon-info" class="ui active inverted dimmer"> |  | ||||||
| 				<div class="ui loader" data-i18n="loading"></div> |  | ||||||
| 			</div> |  | ||||||
| 			<table id="addon-info" class="ui celled stackable table"> |  | ||||||
| 				<thead> |  | ||||||
| 				<tr> |  | ||||||
| 					<th data-i18n="addon_name"></th> |  | ||||||
| 					<th data-i18n="installed_version"></th> |  | ||||||
| 					<th data-i18n="available_version"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="action"></th> |  | ||||||
| 				</tr> |  | ||||||
| 				</thead> |  | ||||||
| 				<tbody> |  | ||||||
| 				</tbody> |  | ||||||
| 			</table> |  | ||||||
| 		</div> |  | ||||||
| 			 | 			 | ||||||
| 		<h2 class="ui header"> | 			<h2 class="ui header"> | ||||||
| 			<i class="cloud download icon"></i> | 				<i class="wifi icon"></i> | ||||||
| 			<div data-i18n="install_addon_from_url" class="content"> | 				<div data-i18n="wlan" class="content"> | ||||||
|  | 				</div> | ||||||
|  | 			</h2> | ||||||
|  | 			<div> | ||||||
|  | 				<div class="ui toggle checkbox"> | ||||||
|  | 					<input type="checkbox" id="wlan-scan-checkbox" onclick="wlan_scan();"> | ||||||
|  | 					<label data-i18n="wlan_scanning"></label> | ||||||
|  | 				</div> | ||||||
|  | 				<table id="wlan-list" class="ui celled stackable table"> | ||||||
|  | 					<thead> | ||||||
|  | 						<tr> | ||||||
|  | 							<th data-i18n="wlan_ssid"></th> | ||||||
|  | 							<th data-i18n="wlan_connected"></th> | ||||||
|  | 							<th data-i18n="wlan_signal"></th> | ||||||
|  | 							<th class="center aligned" data-i18n="action"></th> | ||||||
|  | 						</tr> | ||||||
|  | 					</thead> | ||||||
|  | 					<tbody> | ||||||
|  | 					</tbody> | ||||||
|  | 				</table> | ||||||
| 			</div> | 			</div> | ||||||
| 		</h2> |  | ||||||
| 		<div style="width: 100%" class="ui action input"> |  | ||||||
| 			<input id="install-addon-url-input" type="text" placeholder="http://.../addon.tar.gz"/> |  | ||||||
| 			<button id="install-addon-url-button" class="ui green right labeled icon button" onclick="install_addon(null, $('#install-addon-url-input').val());"> |  | ||||||
| 				<i class="sign in icon"></i> |  | ||||||
| 				install |  | ||||||
| 			</button> |  | ||||||
| 		</div> |  | ||||||
|  |  | ||||||
| 		<h2 class="ui header"> |  | ||||||
| 			<i class="upload icon"></i> |  | ||||||
| 			<div data-i18n="install_addon_from_file" class="content"> |  | ||||||
| 			</div> |  | ||||||
| 		</h2> |  | ||||||
| 		<div style="width: 100%" class="ui action input"> |  | ||||||
| 			<input class="inputfile" id="install-addon-file-input" type="file" onchange="install_addon(null, null, this);" style="display: none;"/> |  | ||||||
| 			<label id="install-addon-file-button" for="install-addon-file-input" class="ui green button"> |  | ||||||
| 				<i class="ui file archive outline icon"></i> |  | ||||||
| 				choose_addon_file |  | ||||||
| 			</label> |  | ||||||
| 		</div> |  | ||||||
|  |  | ||||||
| 		<h2 class="ui header"> |  | ||||||
| 			<i class="wifi icon"></i> |  | ||||||
| 			<div data-i18n="wlan" class="content"> |  | ||||||
| 			</div> |  | ||||||
| 		</h2> |  | ||||||
| 		<div> |  | ||||||
| 			<div class="ui toggle checkbox"> |  | ||||||
| 				<input type="checkbox" id="wlan-scan-checkbox" onclick="wlan_scan();"> |  | ||||||
| 				<label data-i18n="wlan_scanning"></label> |  | ||||||
| 			</div> |  | ||||||
| 			<table id="wlan-list" class="ui celled stackable table"> |  | ||||||
| 				<thead> |  | ||||||
| 				<tr> |  | ||||||
| 					<th data-i18n="wlan_ssid"></th> |  | ||||||
| 					<th data-i18n="wlan_connected"></th> |  | ||||||
| 					<th data-i18n="wlan_signal"></th> |  | ||||||
| 					<th class="center aligned" data-i18n="action"></th> |  | ||||||
| 				</tr> |  | ||||||
| 				</thead> |  | ||||||
| 				<tbody> |  | ||||||
| 				</tbody> |  | ||||||
| 			</table> |  | ||||||
| 		</div> | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> |  | ||||||
| 	 | 	 | ||||||
| <div style="height:60vh;" id="modal-log" class="ui modal"> | 	<div style="height:60vh;" id="modal-log" class="ui modal"> | ||||||
| 	<i class="close icon"></i> | 		<i class="close icon"></i> | ||||||
| 	<div class="header" data-i18n="installation_log"> | 		<div class="header" data-i18n="installation_log"> | ||||||
| 	</div> | 		</div> | ||||||
| 	<div class="ui bottom attached progress" data-value="0" data-total="25" id="install-progress"> | 		<div class="ui bottom attached progress" data-value="0" data-total="25" id="install-progress"> | ||||||
| 		<div class="bar"></div> | 			<div class="bar"></div> | ||||||
| 	</div> | 		</div> | ||||||
| 	<div class="content"> | 		<div class="content"> | ||||||
| 			<pre style="height:40vh; overflow-x:hidden; overflow-y:auto; white-space: pre-wrap;" id="log-content"> | 			<pre style="height:40vh; overflow-x:hidden; overflow-y:auto; white-space: pre-wrap;" id="log-content"> | ||||||
| 			</pre> | 			</pre> | ||||||
|  | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> |  | ||||||
| 	 | 	 | ||||||
| <div id="modal-uninstall-addon" class="ui small basic modal transition scrolling"> | 	<div id="modal-uninstall-addon" class="ui small basic modal transition scrolling"> | ||||||
| 	<div data-i18n="uninstall_addon" class="header"></div> | 		<div data-i18n="uninstall_addon" class="header"></div> | ||||||
| 	<div class="content"> | 		<div class="content"> | ||||||
| 		<p data-i18n="sure_to_uninstall_addon"></p> | 			<p data-i18n="sure_to_uninstall_addon"></p> | ||||||
| 	</div> |  | ||||||
| 	<div class="actions"> |  | ||||||
| 		<div data-i18n="cancel" class="ui gray basic cancel inverted button"> |  | ||||||
| 		</div> | 		</div> | ||||||
| 		<div data-i18n="uninstall" class="ui red approve inverted button"> | 		<div class="actions"> | ||||||
| 		</div> | 			<div data-i18n="cancel" class="ui gray basic cancel inverted button"> | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <div id="modal-reboot" class="ui small basic modal transition scrolling"> |  | ||||||
| 	<div data-i18n="reboot_system" class="header"></div> |  | ||||||
| 	<div class="content"> |  | ||||||
| 		<p data-i18n="sure_to_reboot_system"></p> |  | ||||||
| 	</div> |  | ||||||
| 	<div class="actions"> |  | ||||||
| 		<div data-i18n="cancel" class="ui gray basic cancel inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 		<div data-i18n="reboot" class="ui red approve inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <div id="modal-shutdown" class="ui small basic modal transition scrolling"> |  | ||||||
| 	<div data-i18n="shutdown_system" class="header"></div> |  | ||||||
| 	<div class="content"> |  | ||||||
| 		<p data-i18n="sure_to_shutdown_system"></p> |  | ||||||
| 	</div> |  | ||||||
| 	<div class="actions"> |  | ||||||
| 		<div data-i18n="cancel" class="ui gray basic cancel inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 		<div data-i18n="shutdown" class="ui red approve inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <div id="modal-move-userfs" class="ui small basic modal transition scrolling"> |  | ||||||
| 	<div data-i18n="move_userfs" class="header"></div> |  | ||||||
| 	<div class="content"> |  | ||||||
| 		<p data-i18n="sure_to_move_userfs"></p> |  | ||||||
| 	</div> |  | ||||||
| 	<div class="actions"> |  | ||||||
| 		<div data-i18n="cancel" class="ui gray basic cancel inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 		<div data-i18n="move" class="ui red approve inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <div id="modal-delete-partition-table" class="ui small basic modal transition scrolling"> |  | ||||||
| 	<div data-i18n="delete_partition_table" class="header"></div> |  | ||||||
| 	<div class="content"> |  | ||||||
| 		<p data-i18n="sure_to_delete_partition_table"></p> |  | ||||||
| 	</div> |  | ||||||
| 	<div class="actions"> |  | ||||||
| 		<div data-i18n="cancel" class="ui gray basic cancel inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 		<div data-i18n="delete" class="ui red approve inverted button"> |  | ||||||
| 		</div> |  | ||||||
| 	</div> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <div id="modal-connect-wlan" class="ui modal"> |  | ||||||
| 	<i class="close icon"></i> |  | ||||||
| 	<div class="header" data-i18n="connect_to_wlan"> |  | ||||||
| 	</div> |  | ||||||
| 	<div class="content"> |  | ||||||
| 		<form id="form-connect-wlan" class="ui form"> |  | ||||||
| 			<div class="field"> |  | ||||||
| 				<label data-i18n="password"></label> |  | ||||||
| 				<input type="password" name="password"> |  | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="ui error message"></div> | 			<div data-i18n="uninstall" class="ui red approve inverted button"> | ||||||
| 			<div class="ui button" onclick="$('#modal-connect-wlan').modal('hide');" data-i18n="cancel"></div> | 			</div> | ||||||
| 			<div id="submit-connect-wlan" class="ui primary submit button" data-i18n="connect"></div> | 		</div> | ||||||
| 		</form> |  | ||||||
| 	</div> | 	</div> | ||||||
| </div> |  | ||||||
| 	 | 	 | ||||||
| <div id="modal-login" class="ui modal"> | 	<div id="modal-reboot" class="ui small basic modal transition scrolling"> | ||||||
| 	<i class="close icon"></i> | 		<div data-i18n="reboot_system" class="header"></div> | ||||||
| 	<div class="header" data-i18n="login"> | 		<div class="content"> | ||||||
| 	</div> | 			<p data-i18n="sure_to_reboot_system"></p> | ||||||
| 	<div class="content"> | 		</div> | ||||||
| 		<form id="form-login" class="ui form"> | 		<div class="actions"> | ||||||
| 			<div class="field"> | 			<div data-i18n="cancel" class="ui gray basic cancel inverted button"> | ||||||
| 				<label data-i18n="username"></label> |  | ||||||
| 				<input type="text" name="username" value="Admin"> |  | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="field"> | 			<div data-i18n="reboot" class="ui red approve inverted button"> | ||||||
| 				<label data-i18n="password"></label> |  | ||||||
| 				<input type="password" name="password"> |  | ||||||
| 			</div> | 			</div> | ||||||
| 			<div class="ui error message"></div> | 		</div> | ||||||
| 			<!-- | 	</div> | ||||||
|             <div class="ui button" onclick="$('#modal-login').modal('hide');" data-i18n="cancel"></div> | 	 | ||||||
|             --> | 	<div id="modal-shutdown" class="ui small basic modal transition scrolling"> | ||||||
| 			<div id="submit-login" class="ui primary submit button" data-i18n="login"></div> | 		<div data-i18n="shutdown_system" class="header"></div> | ||||||
| 		</form> | 		<div class="content"> | ||||||
|  | 			<p data-i18n="sure_to_shutdown_system"></p> | ||||||
|  | 		</div> | ||||||
|  | 		<div class="actions"> | ||||||
|  | 			<div data-i18n="cancel" class="ui gray basic cancel inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 			<div data-i18n="shutdown" class="ui red approve inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	 | ||||||
|  | 	<div id="modal-move-userfs" class="ui small basic modal transition scrolling"> | ||||||
|  | 		<div data-i18n="move_userfs" class="header"></div> | ||||||
|  | 		<div class="content"> | ||||||
|  | 			<p data-i18n="sure_to_move_userfs"></p> | ||||||
|  | 		</div> | ||||||
|  | 		<div class="actions"> | ||||||
|  | 			<div data-i18n="cancel" class="ui gray basic cancel inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 			<div data-i18n="move" class="ui red approve inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	 | ||||||
|  | 	<div id="modal-delete-partition-table" class="ui small basic modal transition scrolling"> | ||||||
|  | 		<div data-i18n="delete_partition_table" class="header"></div> | ||||||
|  | 		<div class="content"> | ||||||
|  | 			<p data-i18n="sure_to_delete_partition_table"></p> | ||||||
|  | 		</div> | ||||||
|  | 		<div class="actions"> | ||||||
|  | 			<div data-i18n="cancel" class="ui gray basic cancel inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 			<div data-i18n="delete" class="ui red approve inverted button"> | ||||||
|  | 			</div> | ||||||
|  | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	 | ||||||
|  | 	<div id="modal-connect-wlan" class="ui modal"> | ||||||
|  | 		<i class="close icon"></i> | ||||||
|  | 		<div class="header" data-i18n="connect_to_wlan"> | ||||||
|  | 		</div> | ||||||
|  | 		<div class="content"> | ||||||
|  | 			<form id="form-connect-wlan" class="ui form"> | ||||||
|  | 				<div class="field"> | ||||||
|  | 					<label data-i18n="password"></label> | ||||||
|  | 					<input type="password" name="password"> | ||||||
|  | 				</div> | ||||||
|  | 				<div class="ui error message"></div> | ||||||
|  | 				<div class="ui button" onclick="$('#modal-connect-wlan').modal('hide');" data-i18n="cancel"></div> | ||||||
|  | 				<div id="submit-connect-wlan" class="ui primary submit button" data-i18n="connect"></div> | ||||||
|  | 			</form> | ||||||
|  | 		</div> | ||||||
|  | 	</div> | ||||||
|  | 	 | ||||||
|  | 	<div id="modal-login" class="ui modal"> | ||||||
|  | 		<i class="close icon"></i> | ||||||
|  | 		<div class="header" data-i18n="login"> | ||||||
|  | 		</div> | ||||||
|  | 		<div class="content"> | ||||||
|  | 			<form id="form-login" class="ui form"> | ||||||
|  | 				<div class="field"> | ||||||
|  | 					<label data-i18n="username"></label> | ||||||
|  | 					<input type="text" name="username" value="Admin"> | ||||||
|  | 				</div> | ||||||
|  | 				<div class="field"> | ||||||
|  | 					<label data-i18n="password"></label> | ||||||
|  | 					<input type="password" name="password"> | ||||||
|  | 				</div> | ||||||
|  | 				<div class="ui error message"></div> | ||||||
|  | 				<!-- | ||||||
|  | 				<div class="ui button" onclick="$('#modal-login').modal('hide');" data-i18n="cancel"></div> | ||||||
|  | 				--> | ||||||
|  | 				<div id="submit-login" class="ui primary submit button" data-i18n="login"></div> | ||||||
|  | 			</form> | ||||||
|  | 		</div> | ||||||
| 	</div> | 	</div> | ||||||
| </div> |  | ||||||
| 	 | 	 | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user