背景

我一般都是在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. Daily Scrum NO.5

    工作概况 符美潇 昨日完成的工作 1.Daily Scrum.日常会议及日常工作的分配和查收. 2.变更集461代码签入,主要与视频链接爬取有关. 今日工作 1.Daily Scrum.日常会议及日常 ...

  2. 2013337朱荟潼 Linux&深入理解计算机系统第七章读书笔记——链接

    第七章--链接 0.总结 链接编译时可以采用静态链接或动态链接. 连接器主要任务:符号解析和重定位. 多个目标文件可定义相同的符号,可以被连接到一个单独的静态库. 链接器可以生成部分链接的可执行文件 ...

  3. 这家伙好像还不错 ZH奶酪-张贺

    http://www.cnblogs.com/CheeseZH/archive/2012/11/23/2783846.html

  4. Win7(及以后版本) 高级搜索 AND OR NOT 正则

    http://www.cnblogs.com/include/archive/2011/08/23/2150594.html TIP:语法容易混淆,容易误用用C系列语法 & | !等,其实是S ...

  5. CAS单点登录的时候出现票根'ST-xxxxxx-cas'不符合目标服务

    CAS单点登录遇到问题:票根'ST-xxxxxx-cas'不符合目标服务,原因出在linux 时间未同步,差了3分钟 .

  6. Java反射的用法

    Class类 在Java中,每个class都有一个相应的Class对象.也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息. 反射 ...

  7. 【设计模式】—— 备忘录模式Memento

    前言:[模式总览]——————————by xingoo 模式意图 这个模式主要是想通过一个对象来记录对象的某种状态,这样有利于在其他需要的场合进行恢复. 该模式还有跟多可以扩展的地方,比如可以记录多 ...

  8. 【Mysql】根据时间去除重复数据

    SELECT a.project_id,a.user_id,a.app_version,a.src_system,a.channel,a.thedate FROM rpt_innoreport_luc ...

  9. python_面向对象魔法方法指南

    原文: http://www.rafekettler.com/magicmethods.html 原作者: Rafe Kettler 翻译: hit9 原版(英文版) Repo: https://gi ...

  10. tomcat Failed creating java C:\Program Files\Java\jre6\bin\client\jvm.dll %1 不是有效的 Win32 应用程序。

    jdk版本搞的鬼 请下载64位的jdkj进行安装