Greasy Fork is available in English.

Jenkins Config XML File Viewer

Add a link to view the job's XML configuration file from the job's page. This link is titled "View Config XML File."

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Jenkins Config XML File Viewer
// @namespace    http://budw.in/
// @version      0.2
// @description  Add a link to view the job's XML configuration file from the job's page.  This link is titled "View Config XML File."
// @author       Drew Budwin
// @match        http*://*/job/*
// @require      https://code.jquery.com/jquery-2.2.1.js
// @require      https://greasyfork.org/scripts/6250-waitforkeyelements/code/waitForKeyElements.js?version=23756
// ==/UserScript==
/* jshint -W097 */
/* globals $:false */
/* global waitForKeyElements */
'use strict';

waitForKeyElements(".icon-folder.icon-xlg", addConfigXMLFileLinkWithImage);

function addConfigXMLFileLinkWithImage()
{
    $('table').each(function()
    {
    	var tableToPrependRowTo = $(this);
    
        if (tableToPrependRowTo.children().is(':contains("Workspace")'))
        {
            var rowToPrepend = getRowWithLinkAndImage();
            tableToPrependRowTo.prepend(rowToPrepend);
        }
    });
}

function getRowWithLinkAndImage()
{
	return '<tr><td>' + getConfigXMLFileLinkWithImage() + '</td><td style="vertical-align:middle">' + getConfigXMLFileLink() + '</td></tr>';
}

function getConfigXMLFileLinkWithImage()
{
    return '<a href="' + getConfigXMLFileUrl() + '"><img src="' + getSettingIconUrl() + '"></a>';
}

function getConfigXMLFileLink()
{
    return '<a href="' + getConfigXMLFileUrl() + '">View Config XML File</a>';
}

function getConfigXMLFileUrl()
{
    return window.location.href + 'config.xml';
}

function getSettingIconUrl()
{
    var baseUrl = window.location.protocol + '//' + window.location.host;
    var resourceLocation = $('head').attr('resURL') + '/';
    var settingsIconName = 'images/48x48/setting.png';
    var imageUrl = baseUrl + resourceLocation + settingsIconName;
    
    return imageUrl;
}