ovirt-engine通过UI Plugin自定义页面

news2024/11/18 15:24:58

官方API:点击打开

1 新增一个菜单项

1.1 创建引导html

首先你的这个页面是作为一个功能插件存在的,所以先给他起个名字,我这里的页面主要是用作用户创建,所以我的这个插件的名字就叫user
接着就创建这个插件的 引导html ,我命名其为user-bootstrap.html
在这里插入图片描述
因为这个html文件是作为引导文件存在的,所以它的body不用写什么,写了也不会显示出来,我们是要在这个html文件里写js代码,或者引入.js文件。要写的js代码主要内容是通过plugin ui的接口把插件注册到ovirt引擎,这样才能显示在管理平台上。

参考官方文档的插件初始化基本步骤:

// 第一步,获取api对象
var api = parent.pluginApi('ExamplePlugin');
// 第二步,获取配置对象
var cfg = api.configObject();
// 第三步,配置相应选项
api.options({ ... });
// 第四步 ,配置注册器
api.register({ ... });
// 第五步,完成
api.ready();

下面根据自己的插件信息,编写初始化js代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
	/** 获取名为 user 的 api 对象 */
    var api = parent.pluginApi('user');
	/** 初始化函数,设置api对象的初始化信息 */
    function init() {
    	// 添加主菜单项,指定(菜单名,提示信息,url,位置信息)
        api.addPrimaryMenuPlace('云桌面管理', 'yz-manager',
            'plugin/user/user.html',
            {
                priority: 7, // 菜单索引位置,就是菜单的排序位置,默认最顶部
                icon: 'fa-trophy' // 菜单的图标
            }
        );
    }
	/** 往api对象的注册器中传入上面定义好的初始化函数 */
    api.register({
        UiInit: function () {
            init();
        }
    });
	/** 准备工作完成,把api注册到引擎 */
    api.ready();
</script>
</body>
</html>

1.2 创建页面html

上面那个 引导html 主要做引导用,不做内容显示
现在就要创建需要显示用的html,这里命名为user.html
在这里插入图片描述
因为是测试用,所以就简单显示个文字test

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
	<span>test</span>
</body>
</html>

1.3 编写描述文档

创建一个xxx.json文件作为插件的 描述文档 ,这里命名为user.json
在这里插入图片描述

{
    "name": "user",
    "url": "plugin/user/user-bootstrap.html",
    "resourcePath": "user-resources",
    "config": { "band": "ZZ Top", "score": 10 }
}

属性说明:
name:插件名称,必须属性,唯一,不能为空,与描述文件名无关。
url引导html的路径,必须属性,注意要以plugin开头+/插件名+引导html
resourcePath:插件资源目录路径,必须属性
config:与插件相关的配置,可选属性

1.4 创建资源目录

创建 描述文档resourcePath指定的 资源目录 ,里面放入相关的.html.css.js等资源文件。
在这里插入图片描述
然后把 描述文档资源目录 都放入/usr/share/ovirt-engine-ui-extensions
在这里插入图片描述

1.5 创建软链接

把插件资源软连接到加载目录中

/usr/share/ovirt-engine-ui-extensions是存放插件资源的地方
/usr/share/ovirt-engine/ui-pluginsovirt引擎加载插件页面的目录

  1. 建立描述文档软连接
ln -s /usr/share/ovirt-engine-ui-extensions/user.json /usr/share/ovirt-engine/ui-plugins/user.json
  1. 建立资源目录软连接
ln -s /usr/share/ovirt-engine-ui-extensions/user-resources /usr/share/ovirt-engine/ui-plugins/user-resources

去到/usr/share/ovirt-engine/ui-plugins/目可以看到两个软连接
在这里插入图片描述

1.6 刷新管理页面

啥也不用干,直接刷新页面即可看到菜单栏出现了一个新的菜单项,点击就进入了引导htmljs注册时指定的页面user.html
在这里插入图片描述
后续还有很多的API用法需要探究,待续!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多级式多传感器信息融合中的状态估计(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

新能源车提车、上牌流程

漫长等待四个多月&#xff0c;终于2022年10月27日&#xff0c;笔者圆梦&#xff0c;喜提人生第一辆车。从选车、提车、上牌全程一人&#xff0c;用文记录下经历&#xff0c;以供参考。 一、提车流程 1.1 提车时间 若分到车&#xff0c;4S店销售会提前联系确定时间。 提示&…

【自然语言处理】【实体匹配】CollaborER:使用多特征协作的自监督实体匹配框架

CollaborER&#xff1a;使用多特征协作的自监督实体匹配框架《CollaborER: A Self-supervised Entity Resolution Framework Using Multi-features Collaboration》论文地址&#xff1a;https://arxiv.org/pdf/2108.08090.pdf 相关博客&#xff1a; 【自然语言处理】【实体匹配…

最大似然估计(机器学习)

目录 最大似然估计算法 最大似然估计例子 最大似然估计算法存在的问题 最大似然估计算法 EM算法是一种最大似然估计(Max imum Likel ihood Est imation)算法&#xff0c;传统的最大似然估计算法是根据已知的观察数据来评估模型参数 最大似然估计的一般步骤如下&#xff1a; …

HTML小游戏10 —— 休闲类游戏《解救海盗船长》(附完整源码)

&#x1f482; 网站推荐:【神级源码资源网】【摸鱼小游戏】&#x1f91f; 风趣幽默的前端学习课程&#xff1a;&#x1f449;28个案例趣学前端&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且实用的计算机相关知…

kingbase之集群部署之集群规划和安装

一、kingbase简介 KingbaseES是一款面向大规模并发交易处理的企业级关系型数据库。该产品支持严格的ACID特性、结合多核架构的极致性能、行业最高的安全标准&#xff0c;以及完备的高可用方案&#xff0c;并提供可覆盖迁移、开发及运维管理全使用周期的智能便捷工具。在早先的博…

zsh: command not found: adb问题分析

问题描述 Mac上使用 adb 调试Android设备时&#xff0c;出现了 zsh: command not found: adb 的报错提示。 出现上述错误代表 adb 无法在挡枪 的shell 中使用&#xff0c;而当前的 shell 为 zsh 。 zsh 介绍 zsh 也是一种 shell &#xff0c;Unix 衍生系统的默认 的shell 都…

如何使用组件切换器做话题导航

highlight: atelier-cave-dark 使用组件切换器实现一个标签导航 效果展示 前置准备 背景素材 话题图标素材 具体步骤 制作背景 制作话题导航 制作话题导航结果列表 设置组件切换器关联内容 创建切换组件行为触发器 创建点击行为触发器 步骤分解 制作背景 将背景素材添加到 …

Vue使用axios进行get请求拼接参数的两种方式

前言 本文主要介绍如何在Vue使用axios进行get请求拼接参数的两种方式 我们就以github上的一个开源接口举例&#xff1a; https://api.github.com/search/users?qxxx 这是github给开发人员提供的一个接口&#xff0c;是get请求。我们可以直接通过浏览器访问 很明显&#xff…

[附源码]java毕业设计网易云音乐推荐系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

FL Studio21傻瓜式编曲音乐编辑器FL水果软件

在我看来软件只是工具.不管哪个都可以做任何风格的音乐,区别只是软件操作相对而言fl studio更容易上手,在国内也很受欢迎,弱项应该是混音上如果你做电音的话 还是FL更好一些 ,因为他就是为舞曲而生的!flstudio内配置音源、插件、录音软件、混音效果!而FLStudio则更偏向于电子音…

[附源码]SSM计算机毕业设计二手车况在线评估JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

分库分表-分片算法运用

分库分表-分片算法运用 ShardingSphere 分片算法 用于将数据分片的算法&#xff0c;支持 、>、<、>、<、BETWEEN 和 IN 进行分片。分片算法可由开发者自行 实现&#xff0c;也可使用 Apache ShardingSphere 内置的分片算法语法糖&#xff0c;灵活度非常高。原理简…

uploads_labs前9题

upload-labs详解1.代码使用的函数详解2.uploads_labs1.Pass-012.Pass-023.Pass-034.Pass-045.Pass-056.Pass-067.Pass-078.Pass-089.Pass-091.代码使用的函数详解 2.uploads_labs 1.Pass-01 function checkFile() {var file document.getElementsByName(upload_file)[0].va…

一年前端面试打怪升级之路

Promise是什么? Promise 是异步编程的一种解决方案&#xff1a;从语法上讲&#xff0c;promise是一个对象&#xff0c;从它可以获取异步操作的消息&#xff1b;从本意上讲&#xff0c;它是承诺&#xff0c;承诺它过一段时间会给你一个结果。promise有三种状态&#xff1a; pe…

基于android平台下的猎聘校园系统的设计与实现

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1选题背景及意义 1 1.2研究现状 1 1.3 研究内容 3 第2章 系统开发环境及相关技术 4 2.1开发环境 4 2.2 Java SDK 4 2.3 Eclipse 5 2.4 ADT 6 2.5 Android SDK 6 3.6 Android开发平台搭建 10 第3章 系统分析 12 3.1 研究目标 12 3.2 需…

矿井水深度除总氮有什么好工艺?硝酸根离子交换柱

煤矿矿井水是指在采煤过程中&#xff0c;所有渗入井下采掘空间的水&#xff0c;矿井水的排放是煤炭工业具有行业特点的污染源之一&#xff0c;量大面广&#xff0c;我国煤炭开发每年矿井的涌水量为20多亿立方米&#xff0c;其特性取决于成煤的地质环境和煤系地层的矿物化学成分…

智慧城市可视化(一)

✍️ 作者简介: 前端博主&#xff1b;CSDN博客专家&#xff1b;51CTO特邀专家博主&#xff0c;全网粉丝2W左右 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多web可视化介绍】 &#x1f947;联系作者&#xff1a;【私信&#xff1a;技术交流 | 信息分享 | 商务合作…

新Token经济模型: 解决当下GameFi困境的「新范式」

介绍&#xff1a; 当你每天打开 StepN&#xff0c;奔跑在回本的道路上&#xff0c;却发现&#xff0c;原来路可以越跑越长&#xff0c;回本成了可望而不可即的幻想&#xff0c;你是否感到些许无奈&#xff1f; 当你充满激情&#xff0c;怀揣致富的梦想&#xff0c;去寻找下一…

【Lua基础 第3章】变量、赋值语句、索引、lua中的循环、循环控制语句

文章目录&#x1f4a8;更多相关知识&#x1f447;一、变量二、赋值语句&#x1f31f;特点2演示&#x1f31f;特点3.1演示&#x1f31f;特点3.2演示三、索引四、lua的循环&#x1f538;while循环&#x1f31f;代码演示&#x1f538;for循环&#x1f31f;代码演示&#x1f538;re…