mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
325 lines
16 KiB
HTML
325 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-Hans-CN" data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
|
|
data-a11y-animated-images="system">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<link rel="dns-prefetch" href="https://github.githubassets.com" />
|
|
<link rel="dns-prefetch" href="https://avatars.githubusercontent.com" />
|
|
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com" />
|
|
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/" />
|
|
<link rel="preconnect" href="https://github.githubassets.com" crossorigin />
|
|
<link rel="preconnect" href="https://avatars.githubusercontent.com" />
|
|
|
|
<link crossorigin="anonymous" media="all" rel="stylesheet"
|
|
href="https://github.githubassets.com/assets/light-0eace2597ca3.css" />
|
|
<link crossorigin="anonymous" media="all" rel="stylesheet"
|
|
href="https://github.githubassets.com/assets/dark-a167e256da9c.css" />
|
|
|
|
<link crossorigin="anonymous" media="all" rel="stylesheet"
|
|
href="https://github.githubassets.com/assets/primer-711f412bb361.css" />
|
|
<link crossorigin="anonymous" media="all" rel="stylesheet"
|
|
href="https://github.githubassets.com/assets/global-78704364aaba.css" />
|
|
<style>
|
|
select,
|
|
.input-style {
|
|
width: 100%;
|
|
}
|
|
|
|
.textarea-style {
|
|
width: 100%;
|
|
}
|
|
</style>
|
|
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
|
|
<script src="https://polyfill.io/v3/polyfill.min.js"></script>
|
|
<!-- <script src="https://fastly.jsdelivr.net/npm/marked/marked.min.js"></script> -->
|
|
<script type="application/javascript">
|
|
|
|
var repo = "RROrg/rr"
|
|
|
|
function httpGetAsync(theUrl, callback) {
|
|
let xmlHttpReq = new XMLHttpRequest();
|
|
xmlHttpReq.onreadystatechange = function () {
|
|
if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200)
|
|
callback(xmlHttpReq.responseText);
|
|
};
|
|
xmlHttpReq.open("GET", theUrl, true); // true for asynchronous
|
|
xmlHttpReq.send(null);
|
|
}
|
|
|
|
window.onload = function () {
|
|
init();
|
|
}
|
|
|
|
function init() {
|
|
httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/models.json", function (result) {
|
|
_models = JSON.parse(result);
|
|
httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/addons.json", function (result) {
|
|
_addons = JSON.parse(result);
|
|
httpGetAsync("https://raw.githubusercontent.com/RROrg/rr/main/docs/modules.json", function (result) {
|
|
_modules = JSON.parse(result);
|
|
$("#model").on("change", changeModel);
|
|
$("#version").on("change", changeVersion);
|
|
$("#language").on("change", changeVersion);
|
|
setModels();
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function setModels() {
|
|
var models = Object.keys(_models).sort();
|
|
$("#model")[0].options.length = 0;
|
|
for (var i = 0; i < models.length; i++) {
|
|
var model = models[i];
|
|
$("#model").append(`<option value="${model}">${model}</option>`);
|
|
}
|
|
changeModel();
|
|
}
|
|
function changeModel() {
|
|
model = $("#model").val();
|
|
var versions = Object.keys(_models[model]["productvers"]).reverse();
|
|
$("#version")[0].options.length = 0;
|
|
for (var i = 0; i < versions.length; i++) {
|
|
var version = versions[i];
|
|
$("#version").append(`<option value="${version}">${version}</option>`);
|
|
}
|
|
changeproductsimage();
|
|
changeVersion();
|
|
}
|
|
|
|
function changeproductsimage() {
|
|
//var model = $("#model").val().replace("#","").replace("+","plus");
|
|
//$('#products').html(`<img src="https://www.synology.cn/img/products/detail/${model}/heading.png" width="20%">`);
|
|
var model = $("#model").val().replace("#", "").replace("+", "%2B");
|
|
$('#products').html(`<img src="https://www.synology.com/api/products/getPhoto?product=${model}&type=img_s&sort=0" width="20%">`);
|
|
}
|
|
|
|
function changeVersion() {
|
|
createAddonsBtn();
|
|
createModulesBtn();
|
|
}
|
|
function createAddonsBtn() {
|
|
var language = $("#language").val();
|
|
var extstr = $('#addons').val().split(",");
|
|
var idx = 1;
|
|
var html = `<div class="form-group-body" id="addons_btns">`;
|
|
for (var ext in _addons) {
|
|
var dispar = "";
|
|
if (_addons[ext]["system"] == true) {
|
|
dispar = "disabled";
|
|
}
|
|
var par = "";
|
|
if (extstr.includes(ext)) {
|
|
par = "btn-danger";
|
|
}
|
|
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} ${dispar} onclick="return onclickext('addons', '${ext}')" autofocus="" title="${_addons[ext]["description"][language]}">${ext}</button> `;
|
|
//if (idx++ % 10 == 0) html += "<br />";
|
|
}
|
|
html += `</div>`;
|
|
$('#addons_btns').html(html);
|
|
}
|
|
|
|
function createModulesBtn() {
|
|
var model = $("#model").val();
|
|
var version = $("#version").val();
|
|
var platform = _models[model]["platform"] + "-" + _models[model]["productvers"][version];
|
|
var extstr = [];
|
|
var idx = 1;
|
|
var html = `<div class="form-group-body" id="modules_btns">`;
|
|
for (var ext in _modules[platform]) {
|
|
extstr.push(ext);
|
|
var par = "btn-danger";
|
|
html += `<button type="button" class="btn btn-primary btn-sm mt-2 ${par}" id="btn_${ext}" ${par} onclick="return onclickext('modules', '${ext}')" autofocus="" title="${_modules[platform][ext]["description"]}">${ext}</button> `;
|
|
//if (idx++ % 10 == 0) html += "<br />";
|
|
}
|
|
html += `</div>`;
|
|
$('#modules_btns').html(html);
|
|
if (extstr.length > 0) {
|
|
$('#modules').val(extstr.join(","));
|
|
}
|
|
}
|
|
function onclickext(type, ext) {
|
|
var btnobj = $("#btn_" + ext);
|
|
var extstr = $('#' + type).val().split(",");
|
|
if (btnobj.hasClass("btn-danger")) {
|
|
extstr.map((val, i) => {
|
|
if (val === ext) {
|
|
extstr.splice(i, 1);
|
|
}
|
|
});
|
|
btnobj.removeClass("btn-danger");
|
|
} else {
|
|
btnobj.addClass("btn-danger");
|
|
extstr.push(ext);
|
|
}
|
|
extstr.map((val, i) => {
|
|
if (val === "") {
|
|
extstr.splice(i, 1);
|
|
}
|
|
});
|
|
$('#' + type).val(extstr.join(","));
|
|
}
|
|
function createIssues() {
|
|
var form = document.getElementById("inputs");
|
|
let formData = new FormData(form);
|
|
var title = "custom";
|
|
var body = {};
|
|
var _parameters = ["title", "language", "model", "version", "addons", "modules"];
|
|
for (var key in _parameters) {
|
|
var name = _parameters[key];
|
|
if (name == "title") {
|
|
if ($("#" + name).val()) {
|
|
title += " " + $("#" + name).val();
|
|
} else {
|
|
title += " " + new Date().toISOString().substr(0, 10);
|
|
}
|
|
continue;
|
|
}
|
|
if ($("#" + name).val()) {
|
|
body[name] = $("#" + name).val();
|
|
}
|
|
}
|
|
|
|
body = JSON.stringify(body).replace(/\+/g, "%2b");
|
|
window.location.href = `https://github.com/${repo}/issues/new?title=${title}&body=${body}`;
|
|
|
|
}
|
|
</script>
|
|
|
|
<title>RR-CUSTOM</title>
|
|
</head>
|
|
|
|
<body class="logged-in env-production page-responsive" style="word-wrap: break-word">
|
|
<div class="application-main left-0 text-left p-3 mx-auto container-xl px-3 px-md-4 px-lg-5 mt-4">
|
|
<pre id="logo" style="
|
|
display: block;
|
|
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
|
|
Liberation Mono, monospace !important;
|
|
font-size: 12px !important;
|
|
line-height: 12px !important;
|
|
margin: 15px 10px;
|
|
color: red;
|
|
">
|
|
██████╗ ██████╗ ██████╗██╗ ██╗███████╗████████╗ ██████╗ ███╗ ███╗
|
|
██╔══██╗██╔══██╗ ██╔════╝██║ ██║██╔════╝╚══██╔══╝██╔═══██╗████╗ ████║
|
|
██████╔╝██████╔╝█████╗██║ ██║ ██║███████╗ ██║ ██║ ██║██╔████╔██║
|
|
██╔══██╗██╔══██╗╚════╝██║ ██║ ██║╚════██║ ██║ ██║ ██║██║╚██╔╝██║
|
|
██║ ██║██║ ██║ ╚██████╗╚██████╔╝███████║ ██║ ╚██████╔╝██║ ╚═╝ ██║
|
|
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
|
|
|
|
</pre>
|
|
<div class="image" id="products" style="height: 50px; margin-left: 100px;">
|
|
<img src="https://www.synology.cn/img/products/detail/SA6400/heading.png" width="20%">
|
|
</div>
|
|
<div class="flex-auto min-width-0 width-fit mr-3">
|
|
<div class="d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
|
|
<a id="titleA" href="https://github.com/RROrg/rr">
|
|
<img alt="GitHub Issues or Pull Requests by label"
|
|
src="https://img.shields.io/github/issues-closed-raw/rrorg/rr/custom?style=flat-square&label=custom">
|
|
</a>
|
|
</div>
|
|
<div class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto width-full">
|
|
<marquee id="content" direction="up" height="36" scrollamount="1" onMouseOut="this.start()"
|
|
onMouseOver="this.stop()">
|
|
</marquee>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Title:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<input class="form-control input-contrast input-sm" type="text" id="title" name="inputs[title]"
|
|
value="" />
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Language:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<select class="form-select form-control select-sm input-contrast" id="language" name="inputs[language]"
|
|
value="">
|
|
<option value="de_DE">de_DE</option>
|
|
<option selected="selected" value="en_US">en_US</option>
|
|
<option value="es_ES">es_ES</option>
|
|
<option value="fr_FR">fr_FR</option>
|
|
<option value="ja_JP">ja_JP</option>
|
|
<option value="ko_KR">ko_KR</option>
|
|
<option value="ru_RU">ru_RU</option>
|
|
<option value="uk_UA">uk_UA</option>
|
|
<option value="vi_VN">vi_VN</option>
|
|
<option value="zh_CN">zh_CN</option>
|
|
<option value="zh_HK">zh_HK</option>
|
|
<option value="zh_TW">zh_TW</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Model:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<select class="form-select form-control select-sm input-contrast" id="model" name="inputs[model]"
|
|
value="">
|
|
<option selected="selected" value="SA6400">SA6400</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Version:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<select class="form-select form-control select-sm input-contrast" id="version" name="inputs[version]"
|
|
value="">
|
|
<option selected="selected" value="7.2">7.2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Addons:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<textarea class="textarea-style input-contrast input-sm" type="text" id="addons"
|
|
name="inputs[addons]" disabled></textarea>
|
|
<div class="form-group-body" id="addons_btns">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group mt-1 mb-2 ">
|
|
<div class="form-group-header">
|
|
<label class="color-fg-default text-mono f6">Modules:</label>
|
|
</div>
|
|
<div class="form-group-body">
|
|
<textarea class="textarea-style input-contrast input-sm" type="text" id="modules"
|
|
name="inputs[modules]" disabled></textarea>
|
|
<div class="form-group-body" id="modules_btns">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div data-replace-remote-form-target="" class="workflow-dispatch">
|
|
<form id="inputs">
|
|
<button type="button" class="btn State--merged" onclick="return createIssues()" autofocus="">
|
|
Create
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<footer class="footer width-full container-xl mt-3 text-center color-fg-muted">
|
|
<a aria-label="RROrg" title="GitHub" class="footer-octicon mr-2" href="https://github.com/RROrg">
|
|
<img class="avatar rounded-2 avatar-user"
|
|
src="https://avatars.githubusercontent.com/u/151816514?s=88&v=4" width="40" height="40"
|
|
alt="@RROrg" />
|
|
</a>
|
|
<a aria-label="RROrg" title="GitHub" class="footer-octicon mr-2" href="https://github.com/wjz304">
|
|
<img class="avatar rounded-2 avatar-user" src="https://avatars.githubusercontent.com/u/5615843?s=88&v=4"
|
|
width="40" height="40" alt="@wjz304" />
|
|
</a>
|
|
<span> © 2022 RROrg, Ing, Inc. </span>
|
|
</footer>
|
|
</body>
|
|
|
|
</html> |