背景

我一般都是在activity dashboard页看同事的提交记录,这样只要我有权限的项目有人提交了我就能够知道,虽然提交的具体代码压根不看.......但至少能够了解各个项目的开发情况(如果大家都认真写了commit message的话)。不过有个比较悲剧的情况是有一个我有权限的项目我只是看看并不参与开发,在activity dashboard我能看到同事对此项目的提交记录,而此项目的迭代速度比较快,所以看起来就像有一些commit狂魔在刷屏,经常出现对我并不是很重要的信息占据了大片屏幕位置,我要在N多的activity信息中寻找我真正关心的信息,这就比较扯了,所以我就在想,有没有什么办法能够在我打开activity dashboard页面的时候自动对信息做一个分级,让我一眼能够看到哪些是重要信息,哪些是次要的呢?想了一下,认为通过写一个Chrome插件能够解决这个问题,当打开activity dashboard页面的时候根据不同的项目名字对对应的activity项赋予不同的背景色,比如我不太关心的,就将背景色置为灰色,比较关心的,就置为比较醒目的颜色,这样能够满足所有的信息都能够获取到,并且能够优先处理关心度高的信息,此方案看上去可行。

实现

实现比较简单,通过content_scripts实现即可:

manifest.json:

{
"manifest_version": 2,
"name": "gitlab-activity-bg-color",
"version": "0.0.1",
"description": "gitlab-activity-bg-color.js",
"content_scripts":
[
{
"matches": ["*://xxx.xxx.xxx.xxxx/dashboard/activity"],
"js": ["./gitlab-activity-bg-color.js"],
"css": [],
"run_at": "document_end"
}
]
}

gitlab-activity-bg-color.js:

function giveActivityBgColor() {
const activityBgColor = {
"foo": "#DDDDDD",
"bar": "#66FF66"
};
const activityBoxes = document.getElementsByClassName("event-item");
for (let i = 0; i < activityBoxes.length; i++) {
try {
const projectName = activityBoxes[i].getElementsByClassName("project-name")[0].textContent;
if (projectName in activityBgColor) {
activityBoxes[i].style += "; background-color: " + activityBgColor[projectName];
}
} catch(e) {
console.error(e);
}
}
};
setInterval(giveActivityBgColor, 1000)

要设置为定时运行是因为gitlab的dashboard是滚动到页面底部加载新内容,有新内容到来时也需要能够处理到,简单起见就设置为一秒运行一次了。

然后在Chrome中选择插件所在目录打包安装即可。

.

Chrome插件:gitlab activity dashboard background-color的更多相关文章

  1. [chrome插件分享] gitlab-tree 更方便的浏览Gitlab上的代码

    说明 经常玩Github的人肯定都知道大名鼎鼎的octotree吧,这款chrome插件可以说是浏览代码的神器,利用左侧的树形菜单可以很方便的打开目录.浏览文件等,加上Github全站本身使用了pja ...

  2. 【干货】Chrome插件(扩展)开发全攻略(不点进来看看你肯定后悔)

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  3. 【干货】Chrome插件(扩展)开发全攻略

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  4. Chrome插件(扩展)

    [干货]Chrome插件(扩展)开发全攻略   写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均 ...

  5. 【干货】Chrome插件(扩展)开发全攻略(转)

    写在前面 我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo,写博客的辛苦大家懂的,所以转载务必保留出处.本文所有涉及到的大部分代码均在这个demo里面:https://github ...

  6. 动手做第一个Chrome插件

    Chrome插件是令人惊讶的简单,一旦你弄懂它的工作和实现原理.它是由一部分HTML,一部分Js,然后混合了一个叫做manifest.json的Json文件组合而成的整体.这意味着你可以使用你最擅长的 ...

  7. Chrome插件(Extensions)开发攻略

    本文将从个人经验出发,讲述为什么需要Chrome插件,如何开发,如何调试,到哪里找资料,会遇到怎样的问题以及如何解决等,同时给出一个个人认为的比较典型的例子——获取网页内容,和服务器交互,再把信息反馈 ...

  8. 利用chrome插件批量读取浏览器页面内容并写入数据库

    试想一下,如果每天要收集100页网页数据甚至更多.如果采用人工收集会吐血,用程序去收集也就成为一个不二的选择.首先肯定会想到说用java.php.C#等高级语言,但这偏偏又有个登陆和验证码,搞到无所适 ...

  9. chrome插件编写之新版hello world

    编写chrome插件之前,需要熟悉一下相应的chrome插件开发环境.从编写hello world开始,参考阅读官方的教程,是一个不错的选择.这里主要是基于chrome的官方教程,稍稍做了一些修改和扩 ...

随机推荐

  1. JSP JSTL知识结构图

    自行绘制,欢迎指正.

  2. mac osx 初次使用PHP环境搭建

    非常简单,一共2个步骤: Step1: 启动Apache mac osx 系统默认安装Apache服务. 首先打开terminal,输入: sudo apachectl start 如果需要输入密码, ...

  3. 【MOOC EXP】Linux内核分析实验四报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [使用库函数API和C代码中嵌入汇编代 ...

  4. YQCB冲刺第二周第七天

    今天的任务依旧为界面的美化. 遇到的问题为不熟悉css的使用. 站立会议 任务面板

  5. Leetcode——37.解数独 [##]

    @author: ZZQ @software: PyCharm @file: leetcode37_solveSudoku.py @time: 2018/11/20 16:41 思路:递归回溯 首先, ...

  6. Restful api 防止重复提交

    当前很多网站是前后分离的,前端(android,iso,h5)通过restful API 调用 后端服务器,这就存在一个问题,对于创建操作,比如购买某个商品,如果由于某种原因,手抖,控件bug,网络错 ...

  7. DevExpress15.2+VS2015 破解、汉化

    破解 下载有效的激活工具DEV15.X在VS2015 (亲测),地址 http://download.csdn.net/download/u011149525/9581176 解压后的注册说明: 感谢 ...

  8. java的属性只能在类里面 方法外面定义

    java的属性只能在类里面 方法外面定义 区别于python:python 既能在类里面(类属性) 又能在方法里面定义属性(实例属性)

  9. bzoj 4448 [Scoi2015]情报传递 (树链剖分+主席树)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4448 题面: Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络 ...

  10. Firefox download 乱码问题。

    import javax.mail.internet.MimeUtility; fileName = MimeUtility.encodeWord ( fileName ); response.add ...