diff --git a/Documentation/images-ext/Build Log.png b/Documentation/images-ext/Build Log.png new file mode 100644 index 0000000..c5dc9ad Binary files /dev/null and b/Documentation/images-ext/Build Log.png differ diff --git a/Documentation/images-ext/Build Report.png b/Documentation/images-ext/Build Report.png new file mode 100644 index 0000000..b80ed44 Binary files /dev/null and b/Documentation/images-ext/Build Report.png differ diff --git a/Documentation/images-ext/Console Output.png b/Documentation/images-ext/Console Output.png new file mode 100644 index 0000000..b333158 Binary files /dev/null and b/Documentation/images-ext/Console Output.png differ diff --git a/Documentation/images-ext/FxCopReport.png b/Documentation/images-ext/FxCopReport.png new file mode 100644 index 0000000..5229896 Binary files /dev/null and b/Documentation/images-ext/FxCopReport.png differ diff --git a/Documentation/images-ext/MSBuild Log.png b/Documentation/images-ext/MSBuild Log.png new file mode 100644 index 0000000..2484918 Binary files /dev/null and b/Documentation/images-ext/MSBuild Log.png differ diff --git a/Documentation/images-ext/MSpec Report.png b/Documentation/images-ext/MSpec Report.png new file mode 100644 index 0000000..54a6e1d Binary files /dev/null and b/Documentation/images-ext/MSpec Report.png differ diff --git a/Documentation/images-ext/MSpec-Failed.png b/Documentation/images-ext/MSpec-Failed.png new file mode 100644 index 0000000..11a5884 Binary files /dev/null and b/Documentation/images-ext/MSpec-Failed.png differ diff --git a/Documentation/images-ext/Parameters View.png b/Documentation/images-ext/Parameters View.png new file mode 100644 index 0000000..b362fce Binary files /dev/null and b/Documentation/images-ext/Parameters View.png differ diff --git a/Documentation/images-ext/Project View.png b/Documentation/images-ext/Project View.png new file mode 100644 index 0000000..44fc80a Binary files /dev/null and b/Documentation/images-ext/Project View.png differ diff --git a/Documentation/images-ext/StyleCop Report.png b/Documentation/images-ext/StyleCop Report.png new file mode 100644 index 0000000..2f95d5f Binary files /dev/null and b/Documentation/images-ext/StyleCop Report.png differ diff --git a/Package/7za.exe b/Package/7za.exe new file mode 100644 index 0000000..7f6bf86 Binary files /dev/null and b/Package/7za.exe differ diff --git a/Package/CCNet.Plugins.CreatePackage.exe b/Package/CCNet.Plugins.CreatePackage.exe new file mode 100644 index 0000000..32a16d3 Binary files /dev/null and b/Package/CCNet.Plugins.CreatePackage.exe differ diff --git a/Package/build_package.bat b/Package/build_package.bat new file mode 100644 index 0000000..d4032e4 --- /dev/null +++ b/Package/build_package.bat @@ -0,0 +1,14 @@ +@echo :: +@echo :: Creating Keizen theme package +@echo :: + +echo -- Creating manifest +CCNet.Plugins.CreatePackage.exe "..\Source\Kaizen" Kaizen + +@echo -- Creating zip package +7za.exe a -tzip KaizenTheme.zip "..\Source\Kaizen\*" +7za.exe u KaizenTheme.zip package.xml + + +@echo Package created. +pause \ No newline at end of file diff --git a/Source/Kaizen/css/base.styles.css b/Source/Kaizen/css/base.styles.css index 7fb3990..e2a0bbc 100644 --- a/Source/Kaizen/css/base.styles.css +++ b/Source/Kaizen/css/base.styles.css @@ -1,194 +1,194 @@ -/* Base -----------------------------------*/ -BODY { margin: 0px; padding: 0px; background-color: #FFF; font-family: helvetica; font-size: 12px; } -/* Firefox alignment hack */ -BODY { text-align: -moz-center; } -TABLE { width: 100%; background: #FFF url("../images/menu_links_bg.png"); } -THEAD, .strong { font-weight: bold; } - -.data, .label { overflow: hidden; } - -BR { display: none; } -A { text-decoration: none; cursor: hand; cursor: pointer; } -.dialog, .hidden { display: none; } - -.clear { clear: both; } -.invisible { margin: 0px; padding: 0px; } -.show-line-breaks BR { display: block; } - -/* Columns -----------------------------------*/ -.even-columns-2 { width: 50%; } -.even-columns-3 { width: 33%; } -.even-columns-4 { width: 25%; } -.even-columns-5 { width: 20%; } - -/* Icons -----------------------------------*/ -.icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; background-image: url('../images/icons.png'); } - -.icon-rss { width: 30px; height: 30px; background-position: 0px 0px; } -.icon-refresh { width: 30px; height: 30px; background-position: -30px 0px; } -.icon-reload { width: 30px; height: 30px; background-position: -30px 0px; } -.icon-large-logout { width: 30px; height: 30px; background-position: -60px 0px; } - -.icon-show-sections { width: 24px; height: 24px; background-position: 0px -30px; } -.icon-hide-sections { width: 24px; height: 24px; background-position: -24px -30px; } -.icon-show-errors { width: 24px; height: 24px; background-position: -48px -30px; } - -.icon-change-password { width: 19px; height: 19px; background-position: 0px -54px; } -.icon-logout { width: 19px; height: 19px; background-position: -19px -54px; } -.icon-login { width: 19px; height: 19px; background-position: -38px -54px; } - -.icon-large-up-arrow { width: 13px; height: 30px; background-position: 0px -73px; } -.icon-large-down-arrow { width: 13px; height: 30px; background-position: -13px -73px; } - -.icon-small-up-arrow { width: 7px; height: 10px; background-position: 0px -103px; } -.icon-small-down-arrow { width: 7px; height: 10px; background-position: -10px -103px; } - -/* Forms -----------------------------------*/ -FORM { display: inline; margin: 0px; padding: 0px; border: none; vertical-align: baseline; } -INPUT { padding: 3px; border: none; background-color: #3b3a3a; color: #ededed; } -INPUT[type="submit"], INPUT[type="button"] { font-weight: bold; cursor: hand; cursor: pointer; } -INPUT[type="hidden"] { display: none; } -INPUT.invalid { background-color: #ce2a1b; } - -/* Messaging -----------------------------------*/ -.message { position: absolute; top: 0px; left: 0px; width: 100%; height: 40px; margin: 0px; color: #ededed; font-weight: bold; font-size: 20px; text-align: center; cursor: hand; cursor: pointer; } -.message SPAN { display: inline-block; margin-top: 5px; } -.message A { color: #FFFFFF; text-decoration: underline; } -.message INPUT[type="submit"], .message INPUT[type="button"] { margin: 6px; float: right; border: 1px solid #ededed; background-color: transparent; color: #ededed; font-weight: bold; cursor: hand; cursor: pointer; } - -/* Dialogs -----------------------------------*/ -.dialog OL { text-align: left; } - -/* Selectbox -----------------------------------*/ -.selection { float: left; width: 100%; padding: 0px; background-color: #3b3a3a; border-top: 1px dashed #FFF; } -.selection-data { width: 100%; list-style-type: none; } -.selection-data LI { display: inline-block; width: 33%; float: left; } -.selection-data A, .selection-data SPAN { color: #FFF; font-size: 14px; font-weight: bold; text-decoration: none; } -.selection-link-hide { clear: both; float: right; margin: 3px; } - -/* Alignment -----------------------------------*/ -.left { padding-left: 0.5em; text-align: left; } -.right { padding-right: 0.5em; text-align: right; } -.center { text-align: center; } - -/* Background -----------------------------------*/ -.exception { background-color: #ce2a1b !important; } -.success, #content UL LI.build-passed-link { background-color: #4e800c !important; } -.failed, #content UL LI.build-failed-link { background-color: #ce2a1b !important; } -.warning { background-color: #f0b440 !important; } -.success-light { background-color: #639f27 !important; } -.failed-light { background-color: #c94b3e !important; } -.warning-light { background-color: #f1c775 !important; } - -/* Text -----------------------------------*/ -.success-text { color: #4e800c !important; } -.failed-text { color: #ce2a1b !important; } -.warning-text { color: #f0b440 !important; } -.failed-underline { border-bottom: dotted 2px #ce2a1b; } - -/* Layout -----------------------------------*/ -#header, #main, #footer { width: 1000px; margin: 0 auto; padding: 0px; text-align: left; } -#header { margin-top: 10px !important; height: 65px; border-bottom: solid 2px #3b3a3a; vertical-align: top; } -#menu { float: left; width: 200px; margin: 20px 10px 20px 0px; padding: 0px; } -#content { float: right; clear: right; width: 790px; margin-top: 20px; } -#footer { margin-bottom: 20px !important; border-top: solid 2px #3b3a3a; } - -/* Header -----------------------------------*/ -.header-logo { float: left; color: #3b3a3a; } -.heading { float: left; font: 30px times new roman; letter-spacing: 2px; } -.subheading { float: left; clear: both; margin-top: -7px; margin-left: 30px; color: #3b3a3a; font: 12px trebuchet ms; } - -.header-login, .header-navigation { display: block; float: right; } - -.header-login { padding: 5px; margin-top: -10px; clear: right; background-color: #f0b440; } -.header-login A { float: left; margin: 2px; } - -.header-navigation { clear: both; } -.header-navigation UL { display: block; margin: 0px; list-style-type: none; } -.route { float: left; padding-left: 13px; background: url("../images/separator.png") no-repeat 0px 3px; color: #919EA9; font-weight: bold; } -.route A { color: #3b3a3a; text-decoration: none; } -.route-dashboard { padding-left: 0px !important; background-image: none !important; } - -/* Menu -----------------------------------*/ -#menu H2 { display: block; width: 100%; height: 35px; margin: 0px 0px 2px 0px; padding: 0px; background-color: #3b3a3a; color: #ededed; font: normal 15px trebuchet ms; vertical-align: middle; cursor: pointer; cursor: hand; } -#menu H2 SPAN { display: inline-block; margin: 6px 10px 6px 10px; } - -#menu UL { display: block; margin: 0px; padding: 0px; list-style-type: none; } - -#menu .section UL { width: 100%; } -#menu .section LI { display: block; width: 100%; height: 30px; margin: 0px 0px 1px 0px; padding: 0px; border-top: solid 1px #c9c5c5; border-bottom: solid 1px #c9c5c5; background-image: url("../images/menu_links_bg.png"); font-size: 12px; vertical-align: middle; } -#menu .section LI SPAN { display: block; margin: 7px; } -#menu A { color: #615e5c; font-weight: bold; } - -#menu .build-passed-link { background: url("../images/build_passed_link_bg.png") !important; } -#menu .build-failed-link { background: url("../images/build_failed_link_bg.png") !important; } - -.build-views { display: block; height: 25px; margin: 0px 0px 3px 0px; } -.build-views UL { float: right; height: 100%; margin-bottom: 3px !important; } -.build-views LI { float: left; width: 24px; height: 24px; margin: 1px; cursor: pointer; cursor: hand; } -.build-views LI SPAN { display: none; } - -.colors { float: left !important; margin-left: -1px !important; } - -#searchbox { width: 130px; margin: -4px 0px 0px 2px; background-color: #3b3a3a; color: #ededed; font: normal 15px trebuchet ms; vertical-align: middle; border-bottom: 1px solid #c9c5c5; } - -/* Content -----------------------------------*/ -#content .section { margin: 0px; margin-bottom: 5px !important; } -#content .section-content { width: 770px; margin: 0px; padding: 10px; background: #EEE; color: #3b3a3a !important; font-size: 12px; overflow: hidden; } - -H1.title, #content .build { display: block; width: 100%; height: 60px; margin: 0px; padding: 0px; background-color: #3b3a3a; font-size: 24px; vertical-align: middle; } -H1.title, H1.title A, #content .build A { color: #ededed; font-family: trebuchet ms; cursor: pointer; cursor: hand; } - -H1.title SPAN, #content .build SPAN { float: left; margin-left: 10px !important; margin-top: 15px; } -H1.title SPAN, H1.title A, #content .build SPAN, #content .build A { display: inline-block; } - -.title-data { float: right !important; margin-right: 10px !important; } -.title-data .icon { margin: 0.1em; background-color: #FFF; } -.title-data .icon SPAN, .title-data .icon INPUT { display: none; } -.title-data SPAN { margin: 0px !important; } -.button-rss, .title-data .icon-large-down-arrow { background-color: Transparent !important; } - -#content .build { margin-bottom: 4px !important; } - -.log, PRE { overflow: auto; white-space: pre-wrap; } - -.section-content A { color: #000000; text-decoration: underline; } -.report-link { color: #FFFFFF !important; text-decoration: none !important; } - -/* Footer -----------------------------------*/ -.version { float: left; color: #3b3a3a; font-size: 10px; } -.authors { float: right; margin-top: 2px; } -.authors A { display: block; float: right; margin-left: 5px; } -.authors A.thought-works { width: 129px; height: 30px; background-image: url('../images/thoughtworks.png'); } -.authors A.saiku { width: 34px; height: 25px; background-image: url('../images/saiku.png'); } -.authors SPAN { display: none; } - -/* ------------------------------------- */ -/* Extensions -/* ------------------------------------- */ - -/* jQuery XPH Tooltip -----------------------------------*/ -.tooltip, .tooltip-fixed { color: #3b3a3a; border: 1px solid #3b3a3a; background: #ffffee; text-align: left; } -.tooltip-fixed { width: 400px; } -.tooltip .title { display: none; } -.tooltip .text, .tooltip .url { padding: 5px; font-size: x-small; } -.tooltip .url { font-weight: bold; } -.tooltip .shortcut { font-style: italic; font-weight: bold; } -.tooltip P, .tooltip-fixed P { margin: 2px; padding: 0px; } +/* Base +----------------------------------*/ +BODY { margin: 0px; padding: 0px; background-color: #FFF; font-family: verdana; font-size: 11px; } +/* Firefox alignment hack */ +BODY { text-align: -moz-center; } +TABLE { width: 100%; background: #FFF url("../images/menu_links_bg.png"); } +THEAD, .strong { font-weight: bold; } + +.data, .label { overflow: hidden; } + +/*BR { display: none; } */ +A { text-decoration: none; cursor: hand; cursor: pointer; } +.dialog, .hidden { display: none; } + +.clear { clear: both; } +.invisible { margin: 0px; padding: 0px; } +.show-line-breaks BR { display: block; } + +/* Columns +----------------------------------*/ +.even-columns-2 { width: 50%; } +.even-columns-3 { width: 33%; } +.even-columns-4 { width: 25%; } +.even-columns-5 { width: 20%; } + +/* Icons +----------------------------------*/ +.icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; background-image: url('../images/icons.png'); } + +.icon-rss { width: 30px; height: 30px; background-position: 0px 0px; } +.icon-refresh { width: 30px; height: 30px; background-position: -30px 0px; } +.icon-reload { width: 30px; height: 30px; background-position: -30px 0px; } +.icon-large-logout { width: 30px; height: 30px; background-position: -60px 0px; } + +.icon-show-sections { width: 24px; height: 24px; background-position: 0px -30px; } +.icon-hide-sections { width: 24px; height: 24px; background-position: -24px -30px; } +.icon-show-errors { width: 24px; height: 24px; background-position: -48px -30px; } + +.icon-change-password { width: 19px; height: 19px; background-position: 0px -54px; } +.icon-logout { width: 19px; height: 19px; background-position: -19px -54px; } +.icon-login { width: 19px; height: 19px; background-position: -38px -54px; } + +.icon-large-up-arrow { width: 13px; height: 30px; background-position: 0px -73px; } +.icon-large-down-arrow { width: 13px; height: 30px; background-position: -13px -73px; } + +.icon-small-up-arrow { width: 7px; height: 10px; background-position: 0px -103px; } +.icon-small-down-arrow { width: 7px; height: 10px; background-position: -10px -103px; } + +/* Forms +----------------------------------*/ +FORM { display: inline; margin: 0px; padding: 0px; border: none; vertical-align: baseline; } +INPUT { padding: 3px; border: none; background-color: #3b3a3a; color: #ededed; } +INPUT[type="submit"], INPUT[type="button"] { font-weight: bold; cursor: hand; cursor: pointer; } +INPUT[type="hidden"] { display: none; } +INPUT.invalid { background-color: #ce2a1b; } + +/* Messaging +----------------------------------*/ +.message { position: absolute; top: 0px; left: 0px; width: 100%; height: 40px; margin: 0px; color: #ededed; font-weight: bold; font-size: 20px; text-align: center; cursor: hand; cursor: pointer; } +.message SPAN { display: inline-block; margin-top: 5px; } +.message A { color: #FFFFFF; text-decoration: underline; } +.message INPUT[type="submit"], .message INPUT[type="button"] { margin: 6px; float: right; border: 1px solid #ededed; background-color: transparent; color: #ededed; font-weight: bold; cursor: hand; cursor: pointer; } + +/* Dialogs +----------------------------------*/ +.dialog OL { text-align: left; } + +/* Selectbox +----------------------------------*/ +.selection { float: left; width: 100%; padding: 0px; background-color: #3b3a3a; border-top: 1px dashed #FFF; } +.selection-data { width: 100%; list-style-type: none; } +.selection-data LI { display: inline-block; width: 33%; float: left; } +.selection-data A, .selection-data SPAN { color: #FFF; font-size: 14px; font-weight: bold; text-decoration: none; } +.selection-link-hide { clear: both; float: right; margin: 3px; } + +/* Alignment +----------------------------------*/ +.left { padding-left: 0.5em; text-align: left; } +.right { padding-right: 0.5em; text-align: right; } +.center { text-align: center; } + +/* Background +----------------------------------*/ +.exception { background-color: #ce2a1b !important; } +.success, #content UL LI.build-passed-link { background-color: #4e800c !important; } +.failed, #content UL LI.build-failed-link { background-color: #ce2a1b !important; } +.warning { background-color: #f0b440 !important; } +.success-light { background-color: #639f27 !important; } +.failed-light { background-color: #c94b3e !important; } +.warning-light { background-color: #f1c775 !important; } + +/* Text +----------------------------------*/ +.success-text { color: #4e800c !important; } +.failed-text { color: #ce2a1b !important; } +.warning-text { color: #B77F12 !important; } +.failed-underline { border-bottom: dotted 2px #ce2a1b; } + +/* Layout +----------------------------------*/ +#header, #main, #footer { width: 1000px; margin: 0 auto; padding: 0px; text-align: left; } +#header { margin-top: 10px !important; height: 65px; border-bottom: solid 2px #3b3a3a; vertical-align: top; } +#menu { float: left; width: 200px; margin: 20px 10px 20px 0px; padding: 0px; } +#content { float: right; clear: right; width: 790px; margin-top: 20px; } +#footer { margin-bottom: 20px !important; border-top: solid 2px #3b3a3a; } + +/* Header +----------------------------------*/ +.header-logo { float: left; color: #3b3a3a; } +.heading { float: left; font: 30px times new roman; letter-spacing: 2px; } +.subheading { float: left; clear: both; margin-top: -7px; margin-left: 30px; color: #3b3a3a; font: 12px trebuchet ms; } + +.header-login, .header-navigation { display: block; float: right; } + +.header-login { padding: 5px; margin-top: -10px; clear: right; background-color: #f0b440; } +.header-login A { float: left; margin: 2px; } + +.header-navigation { clear: both; } +.header-navigation UL { display: block; margin: 0px; list-style-type: none; } +.route { float: left; padding-left: 13px; background: url("../images/separator.png") no-repeat 0px 3px; color: #919EA9; font-weight: bold; } +.route A { color: #3b3a3a; text-decoration: none; } +.route-dashboard { padding-left: 0px !important; background-image: none !important; } + +/* Menu +----------------------------------*/ +#menu H2 { display: block; width: 100%; height: 35px; margin: 0px 0px 2px 0px; padding: 0px; background-color: #3b3a3a; color: #ededed; font: normal 15px trebuchet ms; vertical-align: middle; cursor: pointer; cursor: hand; } +#menu H2 SPAN { display: inline-block; margin: 6px 10px 6px 10px; } + +#menu UL { display: block; margin: 0px; padding: 0px; list-style-type: none; } + +#menu .section UL { width: 100%; } +#menu .section LI { display: block; width: 100%; height: 30px; margin: 0px 0px 1px 0px; padding: 0px; border-top: solid 1px #c9c5c5; border-bottom: solid 1px #c9c5c5; background-image: url("../images/menu_links_bg.png"); font-size: 12px; vertical-align: middle; } +#menu .section LI SPAN { display: block; margin: 7px; } +#menu A { color: #615e5c; font-weight: bold; } + +#menu .build-passed-link { background: url("../images/build_passed_link_bg.png") !important; } +#menu .build-failed-link { background: url("../images/build_failed_link_bg.png") !important; } + +.build-views { display: block; height: 25px; margin: 0px 0px 3px 0px; } +.build-views UL { float: right; height: 100%; margin-bottom: 3px !important; } +.build-views LI { float: left; width: 24px; height: 24px; margin: 1px; cursor: pointer; cursor: hand; } +.build-views LI SPAN { display: none; } + +.colors { float: left !important; margin-left: -1px !important; } + +#searchbox { width: 130px; margin: -4px 0px 0px 2px; background-color: #3b3a3a; color: #ededed; font: normal 15px trebuchet ms; vertical-align: middle; border-bottom: 1px solid #c9c5c5; } + +/* Content +----------------------------------*/ +#content .section { margin: 0px; margin-bottom: 5px !important; } +#content .section-content { width: 770px; margin: 0px; padding: 10px; background: #EEE; color: #3b3a3a !important; font-size: 12px; overflow: hidden; } + +H1.title, #content .build { display: block; width: 100%; height: 60px; margin: 0px; padding: 0px; background-color: #3b3a3a; font-size: 24px; vertical-align: middle; } +H1.title, H1.title A, #content .build A { color: #ededed; font-family: trebuchet ms; cursor: pointer; cursor: hand; } + +H1.title SPAN, #content .build SPAN { float: left; margin-left: 10px !important; margin-top: 15px; } +H1.title SPAN, H1.title A, #content .build SPAN, #content .build A { display: inline-block; } + +.title-data { float: right !important; margin-right: 10px !important; } +.title-data .icon { margin: 0.1em; background-color: #FFF; } +.title-data .icon SPAN, .title-data .icon INPUT { display: none; } +.title-data SPAN { margin: 0px !important; } +.button-rss, .title-data .icon-large-down-arrow { background-color: Transparent !important; } + +#content .build { margin-bottom: 4px !important; } + +.log, PRE { overflow: auto; white-space: pre-wrap; } + +.section-content A { color: #000000; text-decoration: underline; } +.report-link { color: #FFFFFF !important; text-decoration: none !important; } + +/* Footer +----------------------------------*/ +.version { float: left; color: #3b3a3a; font-size: 10px; } +.authors { float: right; margin-top: 2px; } +.authors A { display: block; float: right; margin-left: 5px; } +.authors A.thought-works { width: 129px; height: 30px; background-image: url('../images/thoughtworks.png'); } +.authors A.saiku { width: 34px; height: 25px; background-image: url('../images/saiku.png'); } +.authors SPAN { display: none; } + +/* ------------------------------------- */ +/* Extensions +/* ------------------------------------- */ + +/* jQuery XPH Tooltip +----------------------------------*/ +.tooltip, .tooltip-fixed { color: #3b3a3a; border: 1px solid #3b3a3a; background: #ffffee; text-align: left; } +.tooltip-fixed { width: 400px; } +.tooltip .title { display: none; } +.tooltip .text, .tooltip .url { padding: 5px; font-size: x-small; } +.tooltip .url { font-weight: bold; } +.tooltip .shortcut { font-style: italic; font-weight: bold; } +.tooltip P, .tooltip-fixed P { margin: 2px; padding: 0px; } .tooltip-fixed .text { font-size: small; } \ No newline at end of file diff --git a/Source/Kaizen/css/ext.styles.css b/Source/Kaizen/css/ext.styles.css new file mode 100644 index 0000000..5c0e363 --- /dev/null +++ b/Source/Kaizen/css/ext.styles.css @@ -0,0 +1,183 @@ +/* +Styles version 1.0 +by sinnerinc + +History: +# 2012-02-14: + Initial version +*/ + +/* General +----------------------------------*/ +.leftBlock { + float: left; + display: block; +} + +.rightBlock { + float: right; + display: block; +} + +/* Main template overrides +-----------------------------------*/ +#menu .section LI { height: auto; } +.route a:hover { color: gray; } +#header, #footer { border-color: #E7E3E3; } + +/* Alternate rows +-----------------------------------*/ +.evenRow { background: #FFF url("../images/ext/menu_links_bg_alter.png"); } +.inner-rule-description { background: #FFF url("../images/ext/menu_links_bg_contrast.png"); color: #787373; } + +/* Icons +------------------------------------*/ +.expandRule { + display: block; + width: 24px; + height: 22px; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + background-image: url('../images/ext/Expand20.png'); + float: right; +} + +/* Header +------------------------------------*/ +.title-data img{ margin-top:3px; } +.title-data div{ float: left; } + +/* Misc +------------------------------------*/ +.fxcopUsageCategory { font-style: italic; color: #a7a1a1; } + +div.fxcop-breaking-reason { /* actually ugly hack, otherwise FF or Chrome won't break line in long file names.... */ + word-break:break-all; + word-wrap: break-word; + font-weight: bold; + width: 650px; +} + +a.regularHover { text-decoration: none; } +a.regularHover:hover { text-decoration: underline; } +table.inner-rule-description span.NonBreaking { color: #5A9D5B; font-size: 80%; } +table.inner-rule-description span.Breaking { color: #770606; font-size: 80%; } + +td.stylecop-filename-report { + background: #FFF url("../images/ext/menu_links_bg_red.png"); + color: #770606; + font-size: 110%; + padding: 3px; + overflow: hidden; + word-break: break-all; +} + +tr.msbuild-summary-success td, tr.msbuild-summary-failure td { + font-weight: bold; + padding: 3px; + vertical-align: top; +} + +.table-container { table-layout: fixed; } +.table-container tr{} +.table-container tr td {} +.table-container tr td span.long-text { + text-overflow: ellipsis; + overflow: hidden; + width: 760px; + display: block; +} + +/*.table-container tr td span:hover { + overflow: visible; +}*/ + +tr.msbuild-summary-success td { background: #FFF url("../images/ext/menu_links_bg_green.png"); } +tr.msbuild-summary-failure td { background: #FFF url("../images/ext/menu_links_bg_red.png"); } +tr.msbuild-project td, tr.msbuild-target td { font-weight: bold; } +tr.msbuild-message-normal td, tr.msbuild-message-low td, tr.msbuild-message-high td { word-break: break-all; } +tr.msbuild-message-normal td { color: #887B72; } +tr.msbuild-message-low td { color: #ADA39D; } +tr.msbuild-message-high td { color: #554A43; font-style: italic; } +tr.msbuild-warning td { color: #D26117; } + +div.section a.msbuildMessagesOn, div.section a.msbuildMessagesOff { + display: block; text-indent: -99999px; overflow: hidden; width: 32px; height: 32px; + background-repeat: no-repeat; background-image: url('../images/ext/MessagesSprint32.png'); + float: left; +} +div.section a.msbuildMessagesOn { background-position: 0px 0px; } +div.section a.msbuildMessagesOff { background-position: 0px -32px; } + +.buildLogIcon {width: 12px; height: 12px; margin-right: 4px; } +.certaintyCell { width: 70px; } +.lineNumberCell { width: 60px; } +.innerWrapper {display: none; } +.forceThin { font-weight: normal; color: #ADA39D; } +.mspec-context-name { font-size: 110%; font-style: italic; } +.stacktrace { font-size: 90%; font-style: italic; } + +/* Modifications section in report */ +.data-modification-user img { + width: 48px; +} + +.data-modification-comment { + font-style: italic; +} + +.data-modification-filename { + font-weight: bold; +} + +.data-modification-date { + text-align: right; + color: #ADA39D; + font-style: italic; +} + +.data img.filestate { + width: 16px; + margin-right: 4px; +} + +/* Project report view */ +td.data a.report, +td.data a.externalLink { + display: block; + background-repeat: no-repeat; + padding: 0 5px 0 36px; + height:32px; + float: left; + text-decoration: none; + font-size: 150%; + line-height: 32px; + color: #9D9999; +} + +td.data a.report:hover, +td.data a.externalLink:hover { + color: #000000; +} + +td.data a.report { + background-image: url('../images/ext/report.ReportLink32.png'); +} + +td.data a.externalLink { + background-image: url('../images/ext/report.ExternalLink32.png'); +} + +/* Tree +----------------------------------------*/ +.indent-tree { padding-left: 15px; } + +/* Log +----------------------------------------*/ +.log-warning { color: #ff7f00; } +.log-error { color: #CC0000; font-weight: bold; } +.log-target { font-style: italic; } +.log-project { font-weight: bold; } +.log-message { color: #7f7f7f; } + diff --git a/Source/Kaizen/images/ext/ArrowRight22.png b/Source/Kaizen/images/ext/ArrowRight22.png new file mode 100644 index 0000000..1ee5a29 Binary files /dev/null and b/Source/Kaizen/images/ext/ArrowRight22.png differ diff --git a/Source/Kaizen/images/ext/CriticalError.png b/Source/Kaizen/images/ext/CriticalError.png new file mode 100644 index 0000000..6d65902 Binary files /dev/null and b/Source/Kaizen/images/ext/CriticalError.png differ diff --git a/Source/Kaizen/images/ext/CriticalWarning.png b/Source/Kaizen/images/ext/CriticalWarning.png new file mode 100644 index 0000000..0cf424e Binary files /dev/null and b/Source/Kaizen/images/ext/CriticalWarning.png differ diff --git a/Source/Kaizen/images/ext/Error.png b/Source/Kaizen/images/ext/Error.png new file mode 100644 index 0000000..ae8612a Binary files /dev/null and b/Source/Kaizen/images/ext/Error.png differ diff --git a/Source/Kaizen/images/ext/Expand.png b/Source/Kaizen/images/ext/Expand.png new file mode 100644 index 0000000..897b1d0 Binary files /dev/null and b/Source/Kaizen/images/ext/Expand.png differ diff --git a/Source/Kaizen/images/ext/Expand20.png b/Source/Kaizen/images/ext/Expand20.png new file mode 100644 index 0000000..2c26ca7 Binary files /dev/null and b/Source/Kaizen/images/ext/Expand20.png differ diff --git a/Source/Kaizen/images/ext/MessagesSprint24.png b/Source/Kaizen/images/ext/MessagesSprint24.png new file mode 100644 index 0000000..f7dc53e Binary files /dev/null and b/Source/Kaizen/images/ext/MessagesSprint24.png differ diff --git a/Source/Kaizen/images/ext/MessagesSprint32.png b/Source/Kaizen/images/ext/MessagesSprint32.png new file mode 100644 index 0000000..4c558b9 Binary files /dev/null and b/Source/Kaizen/images/ext/MessagesSprint32.png differ diff --git a/Source/Kaizen/images/ext/Package48.png b/Source/Kaizen/images/ext/Package48.png new file mode 100644 index 0000000..3569d9f Binary files /dev/null and b/Source/Kaizen/images/ext/Package48.png differ diff --git a/Source/Kaizen/images/ext/SuccessFalse.png b/Source/Kaizen/images/ext/SuccessFalse.png new file mode 100644 index 0000000..ae8612a Binary files /dev/null and b/Source/Kaizen/images/ext/SuccessFalse.png differ diff --git a/Source/Kaizen/images/ext/SuccessTrue.png b/Source/Kaizen/images/ext/SuccessTrue.png new file mode 100644 index 0000000..73d9761 Binary files /dev/null and b/Source/Kaizen/images/ext/SuccessTrue.png differ diff --git a/Source/Kaizen/images/ext/Warning.png b/Source/Kaizen/images/ext/Warning.png new file mode 100644 index 0000000..02a1c87 Binary files /dev/null and b/Source/Kaizen/images/ext/Warning.png differ diff --git a/Source/Kaizen/images/ext/ccnetlogo.gif b/Source/Kaizen/images/ext/ccnetlogo.gif new file mode 100644 index 0000000..1e405a2 Binary files /dev/null and b/Source/Kaizen/images/ext/ccnetlogo.gif differ diff --git a/Source/Kaizen/images/ext/fplogo.gif b/Source/Kaizen/images/ext/fplogo.gif new file mode 100644 index 0000000..d22f0b6 Binary files /dev/null and b/Source/Kaizen/images/ext/fplogo.gif differ diff --git a/Source/Kaizen/images/ext/logo.gif b/Source/Kaizen/images/ext/logo.gif new file mode 100644 index 0000000..a4b78a6 Binary files /dev/null and b/Source/Kaizen/images/ext/logo.gif differ diff --git a/Source/Kaizen/images/ext/menu_links_bg_alter.png b/Source/Kaizen/images/ext/menu_links_bg_alter.png new file mode 100644 index 0000000..b9e9842 Binary files /dev/null and b/Source/Kaizen/images/ext/menu_links_bg_alter.png differ diff --git a/Source/Kaizen/images/ext/menu_links_bg_contrast.png b/Source/Kaizen/images/ext/menu_links_bg_contrast.png new file mode 100644 index 0000000..efde728 Binary files /dev/null and b/Source/Kaizen/images/ext/menu_links_bg_contrast.png differ diff --git a/Source/Kaizen/images/ext/menu_links_bg_green.png b/Source/Kaizen/images/ext/menu_links_bg_green.png new file mode 100644 index 0000000..77b612d Binary files /dev/null and b/Source/Kaizen/images/ext/menu_links_bg_green.png differ diff --git a/Source/Kaizen/images/ext/menu_links_bg_red.png b/Source/Kaizen/images/ext/menu_links_bg_red.png new file mode 100644 index 0000000..65bc764 Binary files /dev/null and b/Source/Kaizen/images/ext/menu_links_bg_red.png differ diff --git a/Source/Kaizen/images/ext/report.ExternalLink32.png b/Source/Kaizen/images/ext/report.ExternalLink32.png new file mode 100644 index 0000000..be4e0b4 Binary files /dev/null and b/Source/Kaizen/images/ext/report.ExternalLink32.png differ diff --git a/Source/Kaizen/images/ext/report.ReportLink128.png b/Source/Kaizen/images/ext/report.ReportLink128.png new file mode 100644 index 0000000..98b7f76 Binary files /dev/null and b/Source/Kaizen/images/ext/report.ReportLink128.png differ diff --git a/Source/Kaizen/images/ext/report.ReportLink32.png b/Source/Kaizen/images/ext/report.ReportLink32.png new file mode 100644 index 0000000..5d41212 Binary files /dev/null and b/Source/Kaizen/images/ext/report.ReportLink32.png differ diff --git a/Source/Kaizen/images/ext/report.ReportLink64.png b/Source/Kaizen/images/ext/report.ReportLink64.png new file mode 100644 index 0000000..b197ef9 Binary files /dev/null and b/Source/Kaizen/images/ext/report.ReportLink64.png differ diff --git a/Source/Kaizen/images/ext/scm.Added.png b/Source/Kaizen/images/ext/scm.Added.png new file mode 100644 index 0000000..1aed5c7 Binary files /dev/null and b/Source/Kaizen/images/ext/scm.Added.png differ diff --git a/Source/Kaizen/images/ext/scm.Deleted.png b/Source/Kaizen/images/ext/scm.Deleted.png new file mode 100644 index 0000000..ae8612a Binary files /dev/null and b/Source/Kaizen/images/ext/scm.Deleted.png differ diff --git a/Source/Kaizen/images/ext/scm.Modified.png b/Source/Kaizen/images/ext/scm.Modified.png new file mode 100644 index 0000000..aead054 Binary files /dev/null and b/Source/Kaizen/images/ext/scm.Modified.png differ diff --git a/Source/Kaizen/js/ccnet.js b/Source/Kaizen/js/ccnet.js new file mode 100644 index 0000000..4f34d05 --- /dev/null +++ b/Source/Kaizen/js/ccnet.js @@ -0,0 +1,20 @@ +function checkForParams(buttonEl,checkUrl) +{ + $('#parameterEditor').replaceWith('
Loading parameters, please wait...
'); + $('#parameterCheck').dialog('open'); + + jQuery.get(checkUrl,function(data){ + if(data=='NONE'){ + + $('#parameterCheck').dialog('close'); + + var button=$(buttonEl); + button.after(''); + buttonEl.parentNode.submit(); + + } + else{ + $('#parameterEditor').replaceWith('
'+data+'
'); + } + }); +} \ No newline at end of file diff --git a/Source/Kaizen/js/ext_additional.js b/Source/Kaizen/js/ext_additional.js new file mode 100644 index 0000000..568b9c1 --- /dev/null +++ b/Source/Kaizen/js/ext_additional.js @@ -0,0 +1,51 @@ +/* Startup +----------------------------------*/ +$(document).ready(function() { + BindFxCopSlidings(); + BindMsBuildLogActions(); +}); + +function BindFxCopSlidings() { + $('a.expandRule').click(function () { + var msgid = $(this).attr('ref'); + $(this).closest('tr').next().find('td.contentCell div#' + msgid).slideToggle('fast'); + return false; + }); + + $('a.expandAllRules').click(function () { + + var msgs = $(this).closest('div.section').children('div.section-content').find('div.innerWrapper'); + + var switchIcon = $(this).children('img'); + if(switchIcon.hasClass('collapsed')) + { + msgs.slideDown('fast'); + } + else + { + msgs.slideUp('fast'); + } + switchIcon.toggleClass('collapsed'); + return false; + }); +} + +function BindMsBuildLogActions() +{ + $('div.section a.msbuildHeaderIcon').click(function(e) { + var collection = $(this).closest('div.section').children('div.section-content').find('tr[class ^= msbuild-message]'); + + if( $(this).hasClass('msbuildMessagesOn') ) { + collection.hide(); + $(this).removeClass('msbuildMessagesOn') + $(this).addClass('msbuildMessagesOff') + } + else { + collection.show(); + $(this).removeClass('msbuildMessagesOff') + $(this).addClass('msbuildMessagesOn') + } + e.preventDefault(); + }); +} + diff --git a/Source/Kaizen/js/jquery.gravatar.js b/Source/Kaizen/js/jquery.gravatar.js new file mode 100644 index 0000000..67e2714 --- /dev/null +++ b/Source/Kaizen/js/jquery.gravatar.js @@ -0,0 +1,46 @@ +/* + * jQuery.gravatar 1.0.1 (2009-01-08) + * + * Written by Zach Leatherman + * http://zachleat.com + * + * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/) + * + * Requires jQuery http://jquery.com (1.2.6 at time of release) + * Requires http://pajhome.org.uk/crypt/md5/md5.js + */ + +(function($) +{ + $.gravatar = function(emailAddress, overrides) + { + var options = $.extend({ + // Defaults are not hardcoded here in case gravatar changes them on their end. + // integer size: between 1 and 512, default 80 (in pixels) + size: '', + // rating: g (default), pg, r, x + rating: '', + // url to define a default image (can also be one of: identicon, monsterid, wavatar) + image: '', + // secure + secure: false + }, overrides); + + var baseUrl = options.secure ? 'https://secure.gravatar.com/avatar/' : 'http://www.gravatar.com/avatar/'; + + // Change this here, if you are given only username for example + var emailMod = emailAddress + '@example.com'; + + + return $('').bind('error', function() + { + $(this).remove(); + }); + }; +})(jQuery); diff --git a/Source/Kaizen/js/md5.js b/Source/Kaizen/js/md5.js new file mode 100644 index 0000000..46d2aab --- /dev/null +++ b/Source/Kaizen/js/md5.js @@ -0,0 +1,256 @@ +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + * They take string arguments and return either hex or base-64 encoded strings + */ +function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} +function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} +function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} +function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } +function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } +function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md5_vm_test() +{ + return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; +} + +/* + * Calculate the MD5 of an array of little-endian words, and a bit length + */ +function core_md5(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function md5_cmn(q, a, b, x, s, t) +{ + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); +} +function md5_ff(a, b, c, d, x, s, t) +{ + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5_gg(a, b, c, d, x, s, t) +{ + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5_hh(a, b, c, d, x, s, t) +{ + return md5_cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5_ii(a, b, c, d, x, s, t) +{ + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +/* + * Calculate the HMAC-MD5, of a key and some data + */ +function core_hmac_md5(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md5(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} diff --git a/Source/Kaizen/templates/AdministerDashboard.vm b/Source/Kaizen/templates/AdministerDashboard.vm index c8bc76f..10c38dd 100644 --- a/Source/Kaizen/templates/AdministerDashboard.vm +++ b/Source/Kaizen/templates/AdministerDashboard.vm @@ -1,251 +1,251 @@ - - - -
-
- - - - - - - - -
- - - -
- -
-
-
-
-
    - #foreach ($Event in $Events) -
  1. $Event.Message
  2. - #end -
-
-
-
- - - - - - - - - - -
Are you sure you want to delete the server 'Name'?
 
- - - - -
-
-
-
-
- - - - - - - - - - - - -
- - - Name -
- - - Description -
- - - - -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - -
 
- - -
- - -
- - - - -
-
-
- -#if ($Result.Length > 0) -
- $Result - #if ($Events) - - #end - #if ($InstallPackage.Length > 0) -
- - -
- #end -
-#end -#if ($Error != "") -
- $Error - #if ($Events) - (View Log) - #end -
-#end - -
-

- Administration Dashboard - -
- - -
-
- - -
-
-

-
- -
-

- Remote Servers -

-
- - - - - - #foreach ($Server in $Servers) - - - - - #end - - - -
NameLink
- - $Server.Name - - - #if ($Server.AllowForceBuild) - - #else - - #end - - #if ($Server.AllowStartStopBuild) - - #else - - #end - - - $Server.Url - -
-
- -
-
-
-
-
-

- Packages -

-
- - - - - - - #foreach ($Package in $Packages) - - - - - - #end - - - -
NameDescriptionStatus
- - $Package.Name - - - $Package.Description - #if ($Package.IsInstalled) - [Installed] - #else - [Not installed] - #end -
-
- -
-
-
-
+ + + +
+
+ + + + + + + + +
+ + + +
+ +
+
+
+
+
    + #foreach ($Event in $Events) +
  1. $Event.Message
  2. + #end +
+
+
+
+ + + + + + + + + + +
Are you sure you want to delete the server 'Name'?
 
+ + + + +
+
+
+
+
+ + + + + + + + + + + + +
+ + + Name +
+ + + Description +
+ + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + +
 
+ + +
+ + +
+ + + + +
+
+
+ +#if ($Result.Length > 0) +
+ $Result + #if ($Events) + + #end + #if ($InstallPackage.Length > 0) +
+ + +
+ #end +
+#end +#if ($Error != "") +
+ $Error + #if ($Events) + (View Log) + #end +
+#end + +
+

+ Administration Dashboard + +
+ + +
+
+ + +
+
+

+
+ +
+

+ Remote Servers +

+
+ + + + + + #foreach ($Server in $Servers) + + + + + #end + + + +
NameLink
+ + $Server.Name + + + #if ($Server.AllowForceBuild) + + #else + + #end + + #if ($Server.AllowStartStopBuild) + + #else + + #end + + + $Server.Url + +
+
+ +
+
+
+
+
+

+ Packages +

+
+ + + + + + + #foreach ($Package in $Packages) + + + + + + #end + + + +
NameDescriptionStatus
+ + $Package.Name + + + $Package.Description + #if ($Package.IsInstalled) + [Installed] + #else + [Not installed] + #end +
+
+ +
+
+
+
\ No newline at end of file diff --git a/Source/Kaizen/templates/BuildLog.vm b/Source/Kaizen/templates/BuildLog.vm index 58e55bc..5d0663b 100644 --- a/Source/Kaizen/templates/BuildLog.vm +++ b/Source/Kaizen/templates/BuildLog.vm @@ -1,13 +1,21 @@ + +

Build Log

- Click here to open log in its own page + Click here to open log in its own page

-
$log
+
$log
+ +
+ + diff --git a/Source/Kaizen/templates/ProjectGrid.vm b/Source/Kaizen/templates/ProjectGrid.vm index d274db5..9144044 100644 --- a/Source/Kaizen/templates/ProjectGrid.vm +++ b/Source/Kaizen/templates/ProjectGrid.vm @@ -1,4 +1,23 @@ + + + #if ($forceBuildMessage.Length > 0)
$forceBuildMessage @@ -99,7 +118,7 @@ #if ($projectGridRow.allowForceBuild) - + #end #if ($projectGridRow.AllowStartStopBuild) diff --git a/Source/Kaizen/templates/ProjectReport.vm b/Source/Kaizen/templates/ProjectReport.vm index 41c9092..4b37d44 100644 --- a/Source/Kaizen/templates/ProjectReport.vm +++ b/Source/Kaizen/templates/ProjectReport.vm @@ -1,160 +1,186 @@ - -#if ($StatusMessage.Length > 0) -
- $StatusMessage -
-#end - -
- #if ($status.BuildStatus == "Failure") -

- #elseif ($status.BuildStatus == "Success") -

- #elseif ($status.BuildStatus == "Exception") -

- #elseif ($status.BuildStatus == "Unknown") -

- #else -

- #end - $projectName - #if ($rssDataPresent) - - - RSS - - - #end -

- #if ($externalLinks.Length > 0) -
- - #foreach ($externalLink in $externalLinks) - - - - #end -
- $externalLink.Name -
-
- #end -
-
-

- Status -

-
- - - - - - - - - - - - - - - - - - - - -
Last Build Status$status.BuildStatus
Last Build Label$status.LastBuildLabel
CCNet Status$status.Status
Activity$status.Activity
-
- #if ($server.AllowForceBuild) - - #end - #if ($server.AllowStartStopBuild) - - #end -
-
-
-
-
-

- Build -

-
- - #if ($noLogsAvailable) - - - - #else - #if ($pluginInfo) - - - - - - - #end - - - - #end -
- There are currently no build logs available for this project - make sure your Build Server configuration is correct and that this Project's build is not throwing any exceptions -
Most Recent Build Results
$pluginInfo
Click here for the full build report.
-
-
-#if ($highestAmountPerDay > 0) - #set($highestViewPerDay= $highestAmountPerDay / $dateMultiPlier) -
-

- Build Overview -

-
- - - - - - - - - - - -
$OKPercent%
- - #foreach ($dayBuildCounter in [1..$highestViewPerDay]) - - #foreach ($currentDayInfo in $graphDayInfo) - #foreach ($multi in [1..$dateMultiPlier]) - #set ($cellIndex = (($highestViewPerDay - $dayBuildCounter) * $dateMultiPlier) + $multi) - #if ( $cellIndex <= $currentDayInfo.AmountOfBuilds) - #set ($buildIndex = $cellIndex - 1 ) - #if ($currentDayInfo.Build($buildIndex).IsSuccesFull) - #set($color = "success") - #else - #set($color ="failed") - #end - - #else - - #end - #end - #end - - #end - - #foreach ($currentDayInfo in $graphDayInfo) - - #end - -
- $cellIndex -
$currentDayInfo.BuildDateFormatted
-
-
-
-#end + + +
+
$translations.Translate("Loading parameters, please wait...")
+
+ + +#if ($StatusMessage.Length > 0) +
+ $StatusMessage +
+#end + +
+ #if ($status.BuildStatus == "Failure") +

+ #elseif ($status.BuildStatus == "Success") +

+ #elseif ($status.BuildStatus == "Exception") +

+ #elseif ($status.BuildStatus == "Unknown") +

+ #else +

+ #end + $projectName + #if ($rssDataPresent) + + + RSS + + + #end +

+ +
+ + #if ($noLogsAvailable) + + + + #else + #if ($pluginInfo) + + + + + + + #end + + + + #end +
+ There are currently no build logs available for this project - make sure your Build Server configuration is correct and that this Project's build is not throwing any exceptions +
Most Recent Build Results
$pluginInfo
+ Full build report +
+
+ + + +
+
+

+ Status +

+
+ + + + + + + + + + + + + + + + + + + + +
Last Build Status$status.BuildStatus
Last Build Label$status.LastBuildLabel
CCNet Status$status.Status
Activity$status.Activity
+
+ #if ($server.AllowForceBuild) + + #end + #if ($server.AllowStartStopBuild) + + #end +
+
+
+
+
+

+ Related links +

+
+ + + + +
+ #if ($externalLinks.Length > 0) + #foreach ($externalLink in $externalLinks) + $externalLink.Name + #end + #end +
+
+
+#if ($highestAmountPerDay > 0) + #set($highestViewPerDay= $highestAmountPerDay / $dateMultiPlier) +
+

+ Build Overview +

+
+ + + + + + + + + + + +
$OKPercent%
+ + #foreach ($dayBuildCounter in [1..$highestViewPerDay]) + + #foreach ($currentDayInfo in $graphDayInfo) + #foreach ($multi in [1..$dateMultiPlier]) + #set ($cellIndex = (($highestViewPerDay - $dayBuildCounter) * $dateMultiPlier) + $multi) + #if ( $cellIndex <= $currentDayInfo.AmountOfBuilds) + #set ($buildIndex = $cellIndex - 1 ) + #if ($currentDayInfo.Build($buildIndex).IsSuccesFull) + #set($color = "success") + #else + #set($color ="failed") + #end + + #else + + #end + #end + #end + + #end + + #foreach ($currentDayInfo in $graphDayInfo) + + #end + +
+ $cellIndex +
$currentDayInfo.BuildDateFormatted
+
+
+
+#end \ No newline at end of file diff --git a/Source/Kaizen/templates/SiteTemplate.vm b/Source/Kaizen/templates/SiteTemplate.vm index dd9b4c6..4276de5 100644 --- a/Source/Kaizen/templates/SiteTemplate.vm +++ b/Source/Kaizen/templates/SiteTemplate.vm @@ -1,154 +1,170 @@ - - - - - Continuous Integration - CruiseControl.NET - - - - - - - - - - - - - - -
- -
$mainContent
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescription
DNavigate to dashboard
QExpands all sections
WCollapses all sections
EExpands sections with errors and warnings
GShows/hides green sections
YShows/hides yellow sections
RShows/hides red sections
1..9Navigates to project (dashboard); Navigates to menu link
FFind project
LNavigates to project last build
ZNavigates to previous build
XNavigates to next build
BExpands/collapses recent builds
HExpands/collapses help
-
- + + + + + Continuous Integration - CruiseControl.NET + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
$mainContent
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyDescription
DNavigate to dashboard
QExpands all sections
WCollapses all sections
EExpands sections with errors and warnings
GShows/hides green sections
YShows/hides yellow sections
RShows/hides red sections
1..9Navigates to project (dashboard); Navigates to menu link
FFind project
LNavigates to project last build
ZNavigates to previous build
XNavigates to next build
BExpands/collapses recent builds
HExpands/collapses help
+
+ \ No newline at end of file diff --git a/Source/Kaizen/xsl/Design.xsl b/Source/Kaizen/xsl/Design.xsl index 7e6c198..6791259 100644 --- a/Source/Kaizen/xsl/Design.xsl +++ b/Source/Kaizen/xsl/Design.xsl @@ -22,7 +22,7 @@ - + diff --git a/Source/Kaizen/xsl/DesignAnalysisSummary-FxCop.xsl b/Source/Kaizen/xsl/DesignAnalysisSummary-FxCop.xsl index 0f82a67..b656dcf 100644 --- a/Source/Kaizen/xsl/DesignAnalysisSummary-FxCop.xsl +++ b/Source/Kaizen/xsl/DesignAnalysisSummary-FxCop.xsl @@ -26,7 +26,7 @@ - + diff --git a/Source/Kaizen/xsl/ModificationsSummary.xsl b/Source/Kaizen/xsl/ModificationsSummary.xsl index 79e9c3d..c00516a 100644 --- a/Source/Kaizen/xsl/ModificationsSummary.xsl +++ b/Source/Kaizen/xsl/ModificationsSummary.xsl @@ -1,94 +1,118 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - - - -
-
-
-
- - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + + +
+
+
+
+ + + + + + + + + +
+
+ + + + +
+ + + + + + + +
+ + + + + + + + /Themes/Kaizen/images/ext/scm..png + + + +
+ + + + + + +
+
\ No newline at end of file diff --git a/Source/Kaizen/xsl/compile-msbuild.xsl b/Source/Kaizen/xsl/compile-msbuild.xsl new file mode 100644 index 0000000..b642803 --- /dev/null +++ b/Source/Kaizen/xsl/compile-msbuild.xsl @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + +
+ Errors () +
+ +
+
+ + + + + + + + +
+ Warnings () +
+ +
+
+
+ + +
+ + (,): + + error: +
+
+ + +
+ + (,): + + warning : +
+
+
diff --git a/Source/Kaizen/xsl/ext_ConsoleOutput.xsl b/Source/Kaizen/xsl/ext_ConsoleOutput.xsl new file mode 100644 index 0000000..f3e0c9c --- /dev/null +++ b/Source/Kaizen/xsl/ext_ConsoleOutput.xsl @@ -0,0 +1,59 @@ + + + + + + + +

+ Console output +

+ +
+ + + + + + + + +
+
+ +
+
+ +
+
+ +
Target:  (took: )
+
+ + + +
Building project:  (took: )
+
+
+ + + +
+
+ +
+
+ + + +
+
+ +
\ No newline at end of file diff --git a/Source/Kaizen/xsl/ext_FxCopReport.xsl b/Source/Kaizen/xsl/ext_FxCopReport.xsl new file mode 100644 index 0000000..23e60d7 --- /dev/null +++ b/Source/Kaizen/xsl/ext_FxCopReport.xsl @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ + + + +
+
+
+ + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + evenRow + + + + + + + /Themes/Kaizen/images/ext/.png + + + + + + + + + + +
+ - +
+ + + : + + () + + + + + + + (%) + + + + + + + + + oddRow + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
+ Found at: + + + \ at line + +
+ Resolution:
+ + + + + + + +
+ +
+ Description: + + +
+ Rule File: + + Version: +
+
+ + +
+ +
\ No newline at end of file diff --git a/Source/Kaizen/xsl/ext_MSBuildLog.xsl b/Source/Kaizen/xsl/ext_MSBuildLog.xsl new file mode 100644 index 0000000..c2772c1 --- /dev/null +++ b/Source/Kaizen/xsl/ext_MSBuildLog.xsl @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + Executing target + + () + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Building project + + + + + + + + + + () + + + + + +
diff --git a/Source/Kaizen/xsl/ext_MSBuildSummary.xsl b/Source/Kaizen/xsl/ext_MSBuildSummary.xsl new file mode 100644 index 0000000..8f165b7 --- /dev/null +++ b/Source/Kaizen/xsl/ext_MSBuildSummary.xsl @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + MSBuild summary + + + +
+ + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + +
MSBuild tasks count: + + + (including failed) + +
+
+ + + + + + + + + + msbuild-summary-failure + + + + + + 1 + + + + + + + + + + + + /Themes/Kaizen/images/ext/SuccessFalse.png + + + /Themes/Kaizen/images/ext/Warning.png + + + /Themes/Kaizen/images/ext/SuccessTrue.png + + + + + + Build succeeded: + + + + + + + + + + + + + + + + + + + + + + + + + () + + + + + + + + + + + + +
diff --git a/Source/Kaizen/xsl/ext_MSpecReport.xsl b/Source/Kaizen/xsl/ext_MSpecReport.xsl new file mode 100644 index 0000000..f1d6f4a --- /dev/null +++ b/Source/Kaizen/xsl/ext_MSpecReport.xsl @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Concern: + + + + + + + + + + +

+ + +

+ + + + +
+ + + + + + + + + msbuild-summary-failure + + + + + msbuild-summary-success + + + + + + + + + + /Themes/Kaizen/images/ext/Error.png + + + /Themes/Kaizen/images/ext/Warning.png + + + /Themes/Kaizen/images/ext/SuccessTrue.png + + + + + + + it + + + + + + + + + + + +
+

+

+ +

+
+ + +
+
+
diff --git a/Source/Kaizen/xsl/ext_MSpecSummary.xsl b/Source/Kaizen/xsl/ext_MSpecSummary.xsl new file mode 100644 index 0000000..aaf14ef --- /dev/null +++ b/Source/Kaizen/xsl/ext_MSpecSummary.xsl @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + MSpec summary + + + +
+ + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + /Themes/Kaizen/images/ext/Error.png + + + /Themes/Kaizen/images/ext/Warning.png + + + /Themes/Kaizen/images/ext/SuccessTrue.png + + + + + +
+ Concerns + + +
+ Contexts + + +
+ Specifications + + +
+ Passed + + +
+ Failed + + +
+ Not implemented + + +
+
+
diff --git a/Source/Kaizen/xsl/ext_StyleCopReport.xsl b/Source/Kaizen/xsl/ext_StyleCopReport.xsl new file mode 100644 index 0000000..ffe109b --- /dev/null +++ b/Source/Kaizen/xsl/ext_StyleCopReport.xsl @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +
+ + +
+ + + +
+
+ +
+ section-content failed-light + + + + + + +
+
+
+
+
+
+ + + + + + + + Warnings for: + + + + + + + + + + + + + + + + evenRow + + + + + + + + + + + + + () + + + + + + + oddRow + + + +
+ + + + + + + +
Rule:
Rule ID: + http://stylecop.soyuz5.com/.html + _blank + +
Rule Namespace:
Section:
+
+ + +
+
+ +
+
\ No newline at end of file diff --git a/Source/Kaizen/xsl/ext_StyleCopSummary.xsl b/Source/Kaizen/xsl/ext_StyleCopSummary.xsl new file mode 100644 index 0000000..156b88b --- /dev/null +++ b/Source/Kaizen/xsl/ext_StyleCopSummary.xsl @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + +
Warnings + + + + + + + + +
Base path + +
Files with warnings + + + + + + + + +
+
+
\ No newline at end of file diff --git a/Source/Kaizen/xsl/ext_Utils.xsl b/Source/Kaizen/xsl/ext_Utils.xsl new file mode 100644 index 0000000..537e0f6 --- /dev/null +++ b/Source/Kaizen/xsl/ext_Utils.xsl @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Kaizen/xsl/msbuild.xsl b/Source/Kaizen/xsl/msbuild.xsl new file mode 100644 index 0000000..ef95177 --- /dev/null +++ b/Source/Kaizen/xsl/msbuild.xsl @@ -0,0 +1,174 @@ + + + + + + + + + + + +

Log does not contain any XML output from MSBuild.

+

+ Please make sure that MSBuild is executed using the XmlLogger + (use the argument: /logger:Kobush.Build.Logging.XmlLogger,Kobush.Build.dll). +

+
+
+
+ + + + + + + + + + + + + + + +
+ Build started +
+ +
+ + + Build FAILED + + + Build succeeded + + +
+ + + + + +
+ Error(s) +
+
+ Warning(s) +
+
+ Time elapsed +
+
+ + +
+ Project "" + + + ( target(s)): + + + (default targets): + + +
+ + +
+ Done building project " + + + + " -- FAILED. +
+
+
+ + + + + + + + + + + + + + + + + + +
+ Target "": +
+ +
+ +
+
+ +
+ Done building target "" -- FAILED. +
+
+
+ + +
+ Task "": +
+ +
+ +
+
+
+ Done executing task "" + -- FAILED. +
+
+ + + + + +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+ + +
+ +  (,):  + + error  +
+
+ + +
+ +  (,):  + + warning  +
+
+