修复bug
This commit is contained in:
@@ -754,15 +754,84 @@ Json archive_operations_schema() {
|
||||
const auto formats = Json::array({Json{{"label", "ZIP (.zip)"}, {"value", "zip"}, {"format", "zip"}, {"filter", ""}, {"extension", "zip"}}, Json{{"label", "TAR (.tar)"}, {"value", "tar"}, {"format", "pax"}, {"filter", ""}, {"extension", "tar"}}, Json{{"label", "TAR.GZ (.tar.gz)"}, {"value", "tar.gz"}, {"format", "pax"}, {"filter", "gzip"}, {"extension", "tar.gz"}}, Json{{"label", "TAR.XZ (.tar.xz)"}, {"value", "tar.xz"}, {"format", "pax"}, {"filter", "xz"}, {"extension", "tar.xz"}}, Json{{"label", "TAR.ZST (.tar.zst)"}, {"value", "tar.zst"}, {"format", "pax"}, {"filter", "zstd"}, {"extension", "tar.zst"}}, Json{{"label", "TAR.BZ2 (.tar.bz2)"}, {"value", "tar.bz2"}, {"format", "pax"}, {"filter", "bzip2"}, {"extension", "tar.bz2"}}, Json{{"label", "TAR.LZ4 (.tar.lz4)"}, {"value", "tar.lz4"}, {"format", "pax"}, {"filter", "lz4"}, {"extension", "tar.lz4"}}, Json{{"label", "7Z (.7z)"}, {"value", "7z"}, {"format", "7zip"}, {"filter", ""}, {"extension", "7z"}}});
|
||||
return Json{{"title", "导入导出"}, {"formats", std::move(formats)}, {"exports", Json::array({Json{{"name", "版本"}, {"api", "/api/export_version"}, {"allow_version_selection", true}}, Json{{"name", "日志"}, {"api", "/api/export_logs"}, {"allow_version_selection", false}}})}, {"import_api", "/api/import_version"}, {"import_accept", ".tar.zstd,.tar.zst,.tar.gz,.tgz,.tar.xz,.txz,.tar.bz2,.tbz2,.tar.lz4,.zip,.7z,.rar,.tar,.cpio,.iso,.xar"}};
|
||||
}
|
||||
Json data_source_descriptor() {
|
||||
auto descriptor = adminive::to_descriptor_json<Json, Data_Source_Row>();
|
||||
const auto tile_view_descriptor = adminive::to_descriptor_json<Json, Map_Tile_View_Config>();
|
||||
const auto map_view_descriptor = adminive::to_descriptor_json<Json, Map_View_Config>();
|
||||
const auto graphics_descriptor = adminive::to_descriptor_json<Json, Cesium_Graphics_Config_Data>();
|
||||
descriptor["sidebar"] = Json{
|
||||
{"title", "数据源配置"},
|
||||
{"common", Json{{"fields", Json::array({"update_form_gps", "base_station_has_valid_position", "keep_mode", "ignore_msg_time"})}}},
|
||||
{"position", Json{{"fields", Json::array({"lat", "lon", "alt"})}}},
|
||||
{"display", Json{
|
||||
{"map2d", Json{
|
||||
{"title", "2D显示配置"},
|
||||
{"object_path", "map_display.map2d"},
|
||||
{"fields", Json::array({"aircraft_show", "base_station_show", "show_icao", "show_call_sign", "show_fly_status", "aircraft_pixel_size", "base_station_pixel_size", "track_point_pixel_size", "color", "track_point_color", "base_station_color"})}
|
||||
}},
|
||||
{"map3d", Json{
|
||||
{"title", "3D显示配置"},
|
||||
{"object_path", "map_display.map3d"},
|
||||
{"fields", Json::array({"aircraft_show", "base_station_show", "constant_screen_size", "show_icao", "show_call_sign", "show_fly_status", "aircraft_scale", "base_station_scale", "track_point_pixel_size", "color", "track_point_color", "base_station_color"})}
|
||||
}}
|
||||
}},
|
||||
{"rules", Json::array({
|
||||
Json{{"field", "base_station_has_valid_position"}, {"disabled_when", Json{{"field", "update_form_gps"}, {"equals", true}}}},
|
||||
Json{{"field", "lat"}, {"disabled_when", Json{{"field", "update_form_gps"}, {"equals", true}}}},
|
||||
Json{{"field", "lon"}, {"disabled_when", Json{{"field", "update_form_gps"}, {"equals", true}}}},
|
||||
Json{{"field", "alt"}, {"disabled_when", Json{{"field", "update_form_gps"}, {"equals", true}}}}
|
||||
})},
|
||||
{"tiles", Json{
|
||||
{"title", "瓦片显示"},
|
||||
{"fields", Json::array({"tile_display_maximum_level"})},
|
||||
{"descriptor_fields", tile_view_descriptor.at("fields")}
|
||||
}},
|
||||
{"view3d", Json{
|
||||
{"graphics", Json{
|
||||
{"title", "辅助显示"},
|
||||
{"fields", Json::array({"surface_navigation_reference_visible", "view_axes_visible"})},
|
||||
{"descriptor_fields", graphics_descriptor.at("fields")}
|
||||
}},
|
||||
{"map_view", Json{
|
||||
{"title", "定位视图"},
|
||||
{"fields", Json::array({"base_station_fly_to_height_offset_meters"})},
|
||||
{"descriptor_fields", map_view_descriptor.at("fields")}
|
||||
}}
|
||||
}}
|
||||
};
|
||||
return descriptor;
|
||||
}
|
||||
Json cesium_models_schema(Global* global) {
|
||||
Json aircraft_types = Json::array();
|
||||
global->map_model_config.read([&](const auto& config) {
|
||||
for(const auto& [key, value] : config.aircraft_models) {
|
||||
static_cast<void>(value);
|
||||
aircraft_types.push_back(key);
|
||||
auto label = key;
|
||||
for(std::uint8_t raw = 1; raw <= 21; ++raw) {
|
||||
const auto type = static_cast<SSR::Vortex_Type>(raw);
|
||||
if(SSR::Vortex_Type_to_key(type) == key) {
|
||||
label = SSR::Vortex_Type_to_label(type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
aircraft_types.push_back(Json{{"key", key}, {"label", label}});
|
||||
}
|
||||
});
|
||||
return Json{{"title", "Cesium 模型设置"}, {"data_api", "/map/models"}, {"upload_accept", ".glb"}, {"aircraft_types", std::move(aircraft_types)}};
|
||||
const auto item_descriptor = adminive::to_descriptor_json<Json, Map_Model_Item_Config>();
|
||||
return Json{
|
||||
{"title", "Cesium 模型设置"},
|
||||
{"data_api", "/map/models"},
|
||||
{"upload_accept", ".glb"},
|
||||
{"item_descriptor", item_descriptor},
|
||||
{"groups", Json::array({
|
||||
Json{{"title", "默认飞机模型"}, {"path", "aircraft_model"}, {"upload", Json{{"model_type", "aircraft"}, {"label", "上传飞机模型"}, {"success_message", "默认飞机模型已更新"}}}},
|
||||
Json{{"title", "基站模型"}, {"path", "base_station_model"}, {"upload", Json{{"model_type", "base_station"}, {"label", "上传基站模型"}, {"success_message", "基站模型已更新"}}}},
|
||||
Json{{"title", "设备模型"}, {"path", "device_model"}, {"upload", Json{{"model_type", "device"}, {"label", "上传设备模型"}, {"success_message", "设备模型已更新"}}}}
|
||||
})},
|
||||
{"collections", Json::array({
|
||||
Json{{"title", "按涡流/目标类型选择飞机模型"}, {"path", "aircraft_models"}, {"upload_model_type", "aircraft_type"}, {"upload_label", "上传 GLB"}, {"upload_success_message", "分类飞机模型已更新"}, {"items", std::move(aircraft_types)}}
|
||||
})}
|
||||
};
|
||||
}
|
||||
Json system_actions_schema() {
|
||||
return Json{{"type", "panel"}, {"title", "设备操作"}, {"body", Json::array({Json{{"type", "button"}, {"label", "重启 FPGA 设备"}, {"level", "primary"}, {"actionType", "ajax"}, {"confirmText", "确定重启 FPGA 设备?"}, {"api", Json{{"method", "post"}, {"url", "/api/restart_device"}}}}})}};
|
||||
@@ -830,7 +899,7 @@ private:
|
||||
const auto patch = adminive::make_drogon_constraints(drogon::Patch, {});
|
||||
const auto remove = adminive::make_drogon_constraints(drogon::Delete, {});
|
||||
app.registerHandler(data_sources_path + "/descriptor", [](const drogon::HttpRequestPtr&, std::function<void(const drogon::HttpResponsePtr&)>&& callback) {
|
||||
callback(adminive::make_drogon_response(adminive::make_http_success<Json>(adminive::to_descriptor_json<Json, Data_Source_Row>())));
|
||||
callback(adminive::make_drogon_response(adminive::make_http_success<Json>(data_source_descriptor())));
|
||||
}, get);
|
||||
app.registerHandler(data_sources_path + "/view", [](const drogon::HttpRequestPtr&, std::function<void(const drogon::HttpResponsePtr&)>&& callback) {
|
||||
callback(adminive::make_drogon_response(adminive::make_http_success<Json>(adminive::to_view_json<Json, Data_Source_Row>(adminive::describe_table_view<Data_Source_Row>()))));
|
||||
|
||||
Reference in New Issue
Block a user