Merge pull request #231 from warpc/195-new_design_for_projects

[Refs #195] new design for projects
This commit is contained in:
Vladimir Sharshov 2012-02-29 09:54:42 -08:00
commit d9ca8ff8b6
180 changed files with 19508 additions and 642 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,4 +1,4 @@
function deleteAdminMember() { /*function deleteAdminMember() {
if (document.getElementById("niceCheckbox1-1").checked == true) { if (document.getElementById("niceCheckbox1-1").checked == true) {
$("#admin-table-members-row1").fadeOut("slow"); $("#admin-table-members-row1").fadeOut("slow");
} }
@ -11,4 +11,16 @@ function deleteAdminMember() {
if (document.getElementById("niceCheckbox4-1").checked == true) { if (document.getElementById("niceCheckbox4-1").checked == true) {
$("#admin-table-members-row4").fadeOut("slow"); $("#admin-table-members-row4").fadeOut("slow");
} }
}*/
function saveAdminMember() {
$('#_method').attr('value', 'post');
$('form#members_form').submit();
}
function deleteAdminMember() {
$('#_method').attr('value', 'delete');
var delete_url = $('form#members_form').attr('delete_url');
$('form#members_form').attr('action', delete_url);
$('form#members_form').submit();
} }

View File

@ -4,6 +4,7 @@
//= require autocomplete-rails //= require autocomplete-rails
//= require vendor //= require vendor
//= require_tree . //= require_tree .
//
// require_self // require_self
// function disableNotifierCbx(global_cbx) { // function disableNotifierCbx(global_cbx) {

View File

@ -1,38 +1,32 @@
function changeCheck(el) function changeCheck(el) {
var el = el, input = el.find('input[type="checkbox"]');
{ if(input.attr("checked")) {
var el = el, el.css('backgroundPosition', '0 0');
input = el.getElementsByTagName("input")[0]; input.removeAttr('checked');
} else {
el.css('backgroundPosition', '0 -18px');
input.attr('checked', true);
}
if(input.checked) return true;
{
el.style.backgroundPosition="0 0";
input.checked=false;
}
else
{
el.style.backgroundPosition="0 -18px";
input.checked=true;
}
return true;
}
function startChangeCheck(el)
{
var el = el,
input = el.getElementsByTagName("input")[0];
if(input.checked)
{
el.style.backgroundPosition="0 -18px";
}
return true;
} }
function startCheck() function startChangeCheck(el) {
{ var el = el, input = el.find('input[type="checkbox"]');
startChangeCheck(document.getElementById("niceCheckbox1")); if(input.attr('checked')) {
startChangeCheck(document.getElementById("niceCheckbox2")); el.css('backgroundPosition', '0 -18px');
startChangeCheck(document.getElementById("niceCheckbox3")); }
startChangeCheck(document.getElementById("niceCheckbox4"));
return true;
} }
$(document).ready(function(){
$('.niceCheck-main').each(function(i,el) {
startChangeCheck($(el));
});
$('.niceCheck-main').click(function() {
changeCheck($(this));
});
});

View File

@ -1,4 +1,6 @@
function changeCheck(el)
/*function changeCheck(el)
{ {
var el = el, var el = el,
@ -32,4 +34,4 @@ function startCheck()
{ {
startChangeCheck(document.getElementById("niceCheckbox1")); startChangeCheck(document.getElementById("niceCheckbox1"));
} }*/

View File

@ -1,11 +1,11 @@
jQuery(document).ready(function(){ jQuery(document).ready(function(){
var params = { //var params = {
changedEl: ".lineForm select", // changedEl: ".lineForm select",
visRows: 999999, // visRows: 999999,
scrollArrows: false // scrollArrows: false
} // }
//
cuSel(params); // cuSel(params);
}); });

View File

@ -1,16 +1,16 @@
$(document).ready(function() { $(document).ready(function() {
$("#myTable").tablesorter({ // $("#myTable").tablesorter({
headers: { // headers: {
1: { // 1: {
sorter: false // sorter: false
}, // },
3: { // 3: {
sorter: false // sorter: false
} // }
} // }
}); // });
}); });
function deleteRow(num) { function deleteRow(num) {
$("#Row"+num).fadeOut("slow"); // $("#Row"+num).fadeOut("slow");
} }

View File

@ -1,20 +1,20 @@
$(document).ready(function() { $(document).ready(function() {
$("#myTable").tablesorter({ // $("#myTable").tablesorter({
headers: { // headers: {
2: { // 2: {
sorter: false // sorter: false
} // }
} // }
//
}); // });
}); });
$(document).ready(function() { $(document).ready(function() {
$("a.files-see").click(function() { // $("a.files-see").click(function() {
$("#file1").fadeOut(0); // $("#file1").fadeOut(0);
$("#file2").fadeIn("slow"); // $("#file2").fadeIn("slow");
$("#file-name1").fadeOut(0); // $("#file-name1").fadeOut(0);
$("#file-name2").fadeIn("slow"); // $("#file-name2").fadeIn("slow");
$("#fork-and-edit").fadeIn("slow"); // $("#fork-and-edit").fadeIn("slow");
}); // });
}); });

View File

@ -1,120 +1,96 @@
jQuery(document).ready(function(){ $(document).ready(function(){
$(".niceRadio").each(function() {
jQuery(".niceRadio").each( changeRadioStart($(this));
});
function() {
changeRadioStart(jQuery(this));
}); });
function changeRadio(el) {
var el = el, input = el.find("input").eq(0);
var nm = input.attr("name");
}); $(".niceRadio input").each(
function() {
function changeRadio(el) if($(this).attr("name")==nm) {
$(this).parent().removeClass("radioChecked");
{ }
var el = el,
input = el.find("input").eq(0);
var nm=input.attr("name");
jQuery(".niceRadio input").each(
function() {
if(jQuery(this).attr("name")==nm)
{
jQuery(this).parent().removeClass("radioChecked");
}
});
if(el.attr("class").indexOf("niceRadioDisabled")==-1)
{
el.addClass("radioChecked");
input.attr("checked", true);
}
return true;
}
function changeVisualRadio(input)
{
var wrapInput = input.parent();
var nm=input.attr("name");
jQuery(".niceRadio input").each(
function() {
if(jQuery(this).attr("name")==nm)
{
jQuery(this).parent().removeClass("radioChecked");
}
});
if(input.attr("checked"))
{
wrapInput.addClass("radioChecked");
}
}
function changeRadioStart(el)
{
try
{
var el = el,
radioName = el.attr("name"),
radioId = el.attr("id"),
radioChecked = el.attr("checked"),
radioDisabled = el.attr("disabled"),
radioTab = el.attr("tabindex"),
radioValue = el.attr("value");
if(radioChecked)
el.after("<span class='niceRadio radioChecked'>"+
"<input type='radio'"+
"name='"+radioName+"'"+
"id='"+radioId+"'"+
"checked='"+radioChecked+"'"+
"tabindex='"+radioTab+"'"+
"value='"+radioValue+"' /></span>");
else
el.after("<span class='niceRadio'>"+
"<input type='radio'"+
"name='"+radioName+"'"+
"id='"+radioId+"'"+
"tabindex='"+radioTab+"'"+
"value='"+radioValue+"' /></span>");
if(radioDisabled)
{
el.next().addClass("niceRadioDisabled");
el.next().find("input").eq(0).attr("disabled","disabled");
}
el.next().bind("mousedown", function(e) {
changeRadio(jQuery(this));
$(this).find("input:radio").change();
}); });
if(jQuery.browser.msie) el.next().find("input").eq(0).bind("click", function(e) { changeVisualRadio(jQuery(this)) }); if(el.attr("class").indexOf("niceRadioDisabled")==-1) {
else el.next().find("input").eq(0).bind("change", function(e) { changeVisualRadio(jQuery(this)) }); el.addClass("radioChecked");
el.remove(); input.attr("checked", true);
} }
catch(e)
{
return true;
} }
return true; function changeVisualRadio(input) {
var wrapInput = input.parent();
var nm=input.attr("name");
$(".niceRadio input").each(function() {
if($(this).attr("name")==nm)
{
$(this).parent().removeClass("radioChecked");
}
});
if(input.attr("checked"))
{
wrapInput.addClass("radioChecked");
}
}
function changeRadioStart(el) {
try {
var el = el,
radioName = el.attr("name"),
radioId = el.attr("id"),
radioChecked = el.attr("checked"),
radioDisabled = el.attr("disabled"),
radioTab = el.attr("tabindex"),
radioValue = el.attr("value");
if(radioChecked) {
el.after("<span class='niceRadio radioChecked'>"+
"<input type='radio'"+
"name='"+radioName+"'"+
"id='"+radioId+"'"+
"checked='"+radioChecked+"'"+
"tabindex='"+radioTab+"'"+
"value='"+radioValue+"' /></span>");
} else {
el.after("<span class='niceRadio'>"+
"<input type='radio'"+
"name='"+radioName+"'"+
"id='"+radioId+"'"+
"tabindex='"+radioTab+"'"+
"value='"+radioValue+"' /></span>");
}
if(radioDisabled) {
el.next().addClass("niceRadioDisabled");
el.next().find("input").eq(0).attr("disabled","disabled");
}
el.next().bind("mousedown", function(e) {
changeRadio($(this))
});
if($.browser.msie) {
el.next().find("input").eq(0).bind("click", function(e) {
changeVisualRadio($(this))
});
} else {
el.next().find("input").eq(0).bind("change", function(e) {
changeVisualRadio($(this))
});
}
el.remove();
}
catch(e) { }
return true;
} }

View File

@ -0,0 +1,5 @@
$(document).ready(function() {
SyntaxHighlighter.defaults.toolbar = false;
SyntaxHighlighter.defaults.gutter = false;
SyntaxHighlighter.all();
});

View File

@ -1,3 +1,30 @@
@import "vendor"; @import "vendor";
@import "main"; @import "main";
@import "custom"; @import "custom";
@import "blue/style";
@import "hl/my";
@import "hl/shCore";
//@import "hl/shCoreDefault";
//@import "hl/shCoreDjango";
@import "hl/shCoreEclipse";
//@import "hl/shCoreEmacs";
//@import "hl/shCoreFadeToGrey";
//@import "hl/shCoreMDUltra";
//@import "hl/shCoreMidnight";
//@import "hl/shCoreRDark";
//@import "hl/shThemeDefault";
//@import "hl/shThemeDjango";
@import "hl/shThemeEclipse";
//@import "hl/shThemeEmacs";
//@import "hl/shThemeFadeToGrey";
//@import "hl/shThemeMDUltra";
//@import "hl/shThemeMidnight";
//@import "hl/shThemeRDark";
/*
*= require main
*= require blue/style
*= require_tree hl/
*= require vendor
*= require custom
*/

View File

@ -0,0 +1,113 @@
/* tables */
table.tablesorter {
font-family:arial;
margin:10px 0pt 15px;
font-size: 12px;
width: 100%;
text-align: left;
border: 1px solid #DDD;
border-bottom: none;
}
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
font-size: 12px;
margin: 0px;
}
table.tablesorter thead tr .header {
background-image: image-url("bg-sortable.png");
background-repeat: no-repeat;
background-position: center left;
cursor: pointer;
}
table.tablesorter tbody td {
color: #3D3D3D;
padding: 5px;
margin: 0px;
background-color: #FFF;
vertical-align: top;
}
table.tablesorter tbody tr.odd td {
background-color:#F0F0F6;
}
table.tablesorter thead tr .headerSortUp {
background-image: image-url("asc.png");
}
table.tablesorter thead tr .headerSortDown {
background-image: image-url("desc.png");
}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
}
table.tablesorter thead tr {
height: 38px;
background: #ededed;
-webkit-box-shadow: 0px 3px 3px -1px rgba(18, 86, 135, 0.2);
-moz-box-shadow: 0px 3px 3px -1px rgba(18, 86, 135, 0.2);
box-shadow: 0px 3px 3px -1px rgba(18, 86, 135, 0.2);
position: relative;
z-index: 99;
}
table.tablesorter thead tr th{
border-bottom: 1px solid #FFF;
}
table.tablesorter tr {
position: relative;
z-index: 70;
}
table.tablesorter tbody tr td {
border-bottom: 1px solid #DDD;
}
table.tablesorter thead th {
color: #575756;
font-weight: normal;
}
table.tablesorter tbody td {
color: #58595b;
padding-top: 8px;
padding-bottom: 8px;
}
table.tablesorter .th1 {
width: 180px;
padding-left: 17px;
}
table.tablesorter .th2 {
width: 390px;
}
table.tablesorter .th3 {
width: 110px;
padding-left: 17px;
}
table.tablesorter .td2 {
padding-right: 20px;
}
table.tablesorter .th4 {
width: 120px;
}
table.tablesorter .td5 {
text-align: center;
}
table.tablesorter .td5 img{
cursor: pointer;
}
.table-sort-left {
float: left;
width: 25px;
}
.table-sort-right {
float: left;
}

View File

@ -64,6 +64,14 @@ article div.activity .top div.text.imaged {
article div.activity .top div.text .name { article div.activity .top div.text .name {
font-weight: 700; font-weight: 700;
display: block;
float: left;
}
article div.activity .top .buttons {
display: block;
position: relative;
float: right;
} }
article div.activity .top div.text .date { article div.activity .top div.text .date {

View File

@ -0,0 +1,8 @@
td.gutter {
background: #ededed;
color: #575756;
}
div.syntaxhighlighter {
margin: 0;
}

View File

@ -0,0 +1,226 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}

View File

@ -0,0 +1,328 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: black !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #6ce26c !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: blue !important;
background: white !important;
border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #6ce26c !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: blue !important;
}
.syntaxhighlighter .keyword {
color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
color: gray !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #006699 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}

View File

@ -0,0 +1,331 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #233729 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #f8f8f8 !important;
}
.syntaxhighlighter .gutter {
color: #497958 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #41a83e !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #41a83e !important;
color: #0a2b1d !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #96dd3b !important;
background: black !important;
border: 1px solid #41a83e !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #96dd3b !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: white !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #41a83e !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #ffe862 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #f8f8f8 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #336442 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #9df39f !important;
}
.syntaxhighlighter .keyword {
color: #96dd3b !important;
}
.syntaxhighlighter .preprocessor {
color: #91bb9e !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #96dd3b !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #eb939a !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #91bb9e !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #edef7d !important;
}
.syntaxhighlighter .comments {
font-style: italic !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}

View File

@ -0,0 +1,348 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0;
/*padding-left: 5px;*/
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: auto;
margin: 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: auto;
}
.syntaxhighlighter table tr td{
padding: 10px 5px;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: auto;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: auto;
height: 100% !important;
border: none !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
}
.syntaxhighlighter .line.alt2 {
background-color: none;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #c3defe !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #565657 !important;
background: #ededed;
}
.syntaxhighlighter .gutter .line {
border-right: none !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #d4d0c8 !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3f5fbf !important;
background: white !important;
border: 1px solid #d4d0c8 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3f5fbf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #aa7700 !important;
}
.syntaxhighlighter .toolbar {
color: #a0a0a0 !important;
background: #d4d0c8 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #a0a0a0 !important;
}
.syntaxhighlighter .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #3f5fbf !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #2a00ff !important;
}
.syntaxhighlighter .keyword {
color: #7f0055 !important;
}
.syntaxhighlighter .preprocessor {
color: #646464 !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #7f0055 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
.syntaxhighlighter .xml .keyword {
color: #3f7f7f !important;
font-weight: normal !important;
}
.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a {
color: #7f007f !important;
}
.syntaxhighlighter .xml .string {
font-style: italic !important;
color: #2a00ff !important;
}

View File

@ -0,0 +1,324 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: black !important;
}
.syntaxhighlighter .line.alt1 {
background-color: black !important;
}
.syntaxhighlighter .line.alt2 {
background-color: black !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2a3133 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #990000 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #990000 !important;
color: black !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #ebdb8d !important;
background: black !important;
border: 1px solid #990000 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #ebdb8d !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #ff7d27 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #990000 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d3d3d3 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #ff7d27 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #ff9e7b !important;
}
.syntaxhighlighter .keyword {
color: aqua !important;
}
.syntaxhighlighter .preprocessor {
color: #aec4de !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #81cef9 !important;
}
.syntaxhighlighter .constants {
color: #ff9e7b !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: aqua !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ebdb8d !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff7d27 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #aec4de !important;
}

View File

@ -0,0 +1,328 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2c2c29 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: white !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #3185b9 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #3185b9 !important;
color: #121212 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3185b9 !important;
background: black !important;
border: 1px solid #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #d01d33 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #3185b9 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #96daff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: white !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #696854 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #e3e658 !important;
}
.syntaxhighlighter .keyword {
color: #d01d33 !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #898989 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #aaaaaa !important;
}
.syntaxhighlighter .constants {
color: #96daff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #d01d33 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ffc074 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #4a8cdb !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #96daff !important;
}
.syntaxhighlighter .functions {
font-weight: bold !important;
}

View File

@ -0,0 +1,324 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: lime !important;
}
.syntaxhighlighter .gutter {
color: #38566f !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #222222 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: lime !important;
}
.syntaxhighlighter .toolbar {
color: #aaaaff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #aaaaff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: lime !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: lime !important;
}
.syntaxhighlighter .keyword {
color: #aaaaff !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: aqua !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ff8000 !important;
}
.syntaxhighlighter .constants {
color: yellow !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #aaaaff !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: red !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: yellow !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

View File

@ -0,0 +1,324 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #38566f !important;
}
.syntaxhighlighter table caption {
color: #d1edff !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #0f192a !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #1dc116 !important;
}
.syntaxhighlighter .toolbar {
color: #d1edff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #d1edff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #8aa6c1 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d1edff !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #1dc116 !important;
}
.syntaxhighlighter .keyword {
color: #b43d3d !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #b43d3d !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #f8bb00 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

View File

@ -0,0 +1,324 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.1em !important;
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 0 !important;
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
font-weight: normal !important;
font-style: normal !important;
font-size: 1em !important;
min-height: inherit !important;
min-height: auto !important;
}
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
}
.syntaxhighlighter.source {
overflow: hidden !important;
}
.syntaxhighlighter .bold {
font-weight: bold !important;
}
.syntaxhighlighter .italic {
font-style: italic !important;
}
.syntaxhighlighter .line {
white-space: pre !important;
}
.syntaxhighlighter table {
width: 100% !important;
}
.syntaxhighlighter table caption {
text-align: left !important;
padding: .5em 0 0.5em 1em !important;
}
.syntaxhighlighter table td.code {
width: 100% !important;
}
.syntaxhighlighter table td.code .container {
position: relative !important;
}
.syntaxhighlighter table td.code .container textarea {
box-sizing: border-box !important;
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
height: 100% !important;
border: none !important;
background: white !important;
padding-left: 1em !important;
overflow: hidden !important;
white-space: pre !important;
}
.syntaxhighlighter table td.gutter .line {
text-align: right !important;
padding: 0 0.5em 0 1em !important;
}
.syntaxhighlighter table td.code .line {
padding: 0 1em !important;
}
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
padding-left: 0em !important;
}
.syntaxhighlighter.show {
display: block !important;
}
.syntaxhighlighter.collapsed table {
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar {
padding: 0.1em 0.8em 0em 0.8em !important;
font-size: 1em !important;
position: static !important;
width: auto !important;
height: auto !important;
}
.syntaxhighlighter.collapsed .toolbar span {
display: inline !important;
margin-right: 1em !important;
}
.syntaxhighlighter.collapsed .toolbar span a {
padding: 0 !important;
display: none !important;
}
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
display: inline !important;
}
.syntaxhighlighter .toolbar {
position: absolute !important;
right: 1px !important;
top: 1px !important;
width: 11px !important;
height: 11px !important;
font-size: 10px !important;
z-index: 10 !important;
}
.syntaxhighlighter .toolbar span.title {
display: inline !important;
}
.syntaxhighlighter .toolbar a {
display: block !important;
text-align: center !important;
text-decoration: none !important;
padding-top: 1px !important;
}
.syntaxhighlighter .toolbar a.expandSource {
display: none !important;
}
.syntaxhighlighter.ie {
font-size: .9em !important;
padding: 1px 0 1px 0 !important;
}
.syntaxhighlighter.ie .toolbar {
line-height: 8px !important;
}
.syntaxhighlighter.ie .toolbar a {
padding-top: 0px !important;
}
.syntaxhighlighter.printing .line.alt1 .content,
.syntaxhighlighter.printing .line.alt2 .content,
.syntaxhighlighter.printing .line.highlighted .number,
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
background: none !important;
}
.syntaxhighlighter.printing .line .number {
color: #bbbbbb !important;
}
.syntaxhighlighter.printing .line .content {
color: black !important;
}
.syntaxhighlighter.printing .toolbar {
display: none !important;
}
.syntaxhighlighter.printing a {
text-decoration: none !important;
}
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
color: black !important;
}
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
color: #008200 !important;
}
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
color: blue !important;
}
.syntaxhighlighter.printing .keyword {
color: #006699 !important;
font-weight: bold !important;
}
.syntaxhighlighter.printing .preprocessor {
color: gray !important;
}
.syntaxhighlighter.printing .variable {
color: #aa7700 !important;
}
.syntaxhighlighter.printing .value {
color: #009900 !important;
}
.syntaxhighlighter.printing .functions {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .constants {
color: #0066cc !important;
}
.syntaxhighlighter.printing .script {
font-weight: bold !important;
}
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
color: gray !important;
}
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
color: red !important;
}
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
color: black !important;
}
.syntaxhighlighter {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #323e41 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #b9bdb6 !important;
}
.syntaxhighlighter table caption {
color: #b9bdb6 !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #1b2426 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #5ba1cf !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #5ba1cf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #5ce638 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #e0e8ff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #b9bdb6 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #878a85 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #5ce638 !important;
}
.syntaxhighlighter .keyword {
color: #5ba1cf !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #5ba1cf !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #e0e8ff !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

View File

@ -0,0 +1,117 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
background-color: white !important;
}
.syntaxhighlighter .line.alt2 {
background-color: white !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #e0e0e0 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: black !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #6ce26c !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #6ce26c !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: blue !important;
background: white !important;
border: 1px solid #6ce26c !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: blue !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #6ce26c !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: black !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #008200 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: blue !important;
}
.syntaxhighlighter .keyword {
color: #006699 !important;
}
.syntaxhighlighter .preprocessor {
color: gray !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #006699 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}

View File

@ -0,0 +1,120 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0a2b1d !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #233729 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #f8f8f8 !important;
}
.syntaxhighlighter .gutter {
color: #497958 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #41a83e !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #41a83e !important;
color: #0a2b1d !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #96dd3b !important;
background: black !important;
border: 1px solid #41a83e !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #96dd3b !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: white !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #41a83e !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #ffe862 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #f8f8f8 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #336442 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #9df39f !important;
}
.syntaxhighlighter .keyword {
color: #96dd3b !important;
}
.syntaxhighlighter .preprocessor {
color: #91bb9e !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #96dd3b !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #eb939a !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #91bb9e !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #edef7d !important;
}
.syntaxhighlighter .comments {
font-style: italic !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}

View File

@ -0,0 +1,128 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: white !important;
}
.syntaxhighlighter .line.alt1 {
}
.syntaxhighlighter .line.alt2 {
background-color: none !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #c3defe !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: black !important;
}
.syntaxhighlighter .gutter {
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #ededed !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #d4d0c8 !important;
color: white !important;
}
.syntaxhighlighter.printing .line .content {
border: 3px solid #ededed !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3f5fbf !important;
background: white !important;
border: 1px solid #d4d0c8 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3f5fbf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #aa7700 !important;
}
.syntaxhighlighter .toolbar {
color: #a0a0a0 !important;
background: #d4d0c8 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #a0a0a0 !important;
}
.syntaxhighlighter .toolbar a:hover {
color: red !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: black !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #3f5fbf !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #2a00ff !important;
}
.syntaxhighlighter .keyword {
color: #7f0055 !important;
}
.syntaxhighlighter .preprocessor {
color: #646464 !important;
}
.syntaxhighlighter .variable {
color: #aa7700 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ff1493 !important;
}
.syntaxhighlighter .constants {
color: #0066cc !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #7f0055 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: gray !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff1493 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: red !important;
}
.syntaxhighlighter .keyword {
font-weight: bold !important;
}
.syntaxhighlighter .xml .keyword {
color: #3f7f7f !important;
font-weight: normal !important;
}
.syntaxhighlighter .xml .color1, .syntaxhighlighter .xml .color1 a {
color: #7f007f !important;
}
.syntaxhighlighter .xml .string {
font-style: italic !important;
color: #2a00ff !important;
}

View File

@ -0,0 +1,113 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: black !important;
}
.syntaxhighlighter .line.alt1 {
background-color: black !important;
}
.syntaxhighlighter .line.alt2 {
background-color: black !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2a3133 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter {
color: #d3d3d3 !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #990000 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #990000 !important;
color: black !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #ebdb8d !important;
background: black !important;
border: 1px solid #990000 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #ebdb8d !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #ff7d27 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #990000 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d3d3d3 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #ff7d27 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #ff9e7b !important;
}
.syntaxhighlighter .keyword {
color: aqua !important;
}
.syntaxhighlighter .preprocessor {
color: #aec4de !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #81cef9 !important;
}
.syntaxhighlighter .constants {
color: #ff9e7b !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: aqua !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ebdb8d !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #ff7d27 !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #aec4de !important;
}

View File

@ -0,0 +1,117 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #121212 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #2c2c29 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: white !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #3185b9 !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #3185b9 !important;
color: #121212 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #3185b9 !important;
background: black !important;
border: 1px solid #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #3185b9 !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #d01d33 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #3185b9 !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #96daff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: white !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #696854 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #e3e658 !important;
}
.syntaxhighlighter .keyword {
color: #d01d33 !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #898989 !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #aaaaaa !important;
}
.syntaxhighlighter .constants {
color: #96daff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #d01d33 !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #ffc074 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: #4a8cdb !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #96daff !important;
}
.syntaxhighlighter .functions {
font-weight: bold !important;
}

View File

@ -0,0 +1,113 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #222222 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: white !important;
}
.syntaxhighlighter table caption {
color: lime !important;
}
.syntaxhighlighter .gutter {
color: #38566f !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #222222 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: lime !important;
}
.syntaxhighlighter .toolbar {
color: #aaaaff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #aaaaff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #9ccff4 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: lime !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: lime !important;
}
.syntaxhighlighter .keyword {
color: #aaaaff !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: aqua !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ff8000 !important;
}
.syntaxhighlighter .constants {
color: yellow !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #aaaaff !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: red !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: yellow !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

View File

@ -0,0 +1,113 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #0f192a !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #253e5a !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #38566f !important;
}
.syntaxhighlighter table caption {
color: #d1edff !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #0f192a !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #428bdd !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #428bdd !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #1dc116 !important;
}
.syntaxhighlighter .toolbar {
color: #d1edff !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: #d1edff !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #8aa6c1 !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #d1edff !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #428bdd !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #1dc116 !important;
}
.syntaxhighlighter .keyword {
color: #b43d3d !important;
}
.syntaxhighlighter .preprocessor {
color: #8aa6c1 !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #f7e741 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #b43d3d !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #f8bb00 !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

View File

@ -0,0 +1,113 @@
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/SyntaxHighlighter
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
*
* @version
* 3.0.83 (July 02 2010)
*
* @copyright
* Copyright (C) 2004-2010 Alex Gorbatchev.
*
* @license
* Dual licensed under the MIT and GPL licenses.
*/
.syntaxhighlighter {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt1 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.alt2 {
background-color: #1b2426 !important;
}
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
background-color: #323e41 !important;
}
.syntaxhighlighter .line.highlighted.number {
color: #b9bdb6 !important;
}
.syntaxhighlighter table caption {
color: #b9bdb6 !important;
}
.syntaxhighlighter .gutter {
color: #afafaf !important;
}
.syntaxhighlighter .gutter .line {
border-right: 3px solid #435a5f !important;
}
.syntaxhighlighter .gutter .line.highlighted {
background-color: #435a5f !important;
color: #1b2426 !important;
}
.syntaxhighlighter.printing .line .content {
border: none !important;
}
.syntaxhighlighter.collapsed {
overflow: visible !important;
}
.syntaxhighlighter.collapsed .toolbar {
color: #5ba1cf !important;
background: black !important;
border: 1px solid #435a5f !important;
}
.syntaxhighlighter.collapsed .toolbar a {
color: #5ba1cf !important;
}
.syntaxhighlighter.collapsed .toolbar a:hover {
color: #5ce638 !important;
}
.syntaxhighlighter .toolbar {
color: white !important;
background: #435a5f !important;
border: none !important;
}
.syntaxhighlighter .toolbar a {
color: white !important;
}
.syntaxhighlighter .toolbar a:hover {
color: #e0e8ff !important;
}
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
color: #b9bdb6 !important;
}
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
color: #878a85 !important;
}
.syntaxhighlighter .string, .syntaxhighlighter .string a {
color: #5ce638 !important;
}
.syntaxhighlighter .keyword {
color: #5ba1cf !important;
}
.syntaxhighlighter .preprocessor {
color: #435a5f !important;
}
.syntaxhighlighter .variable {
color: #ffaa3e !important;
}
.syntaxhighlighter .value {
color: #009900 !important;
}
.syntaxhighlighter .functions {
color: #ffaa3e !important;
}
.syntaxhighlighter .constants {
color: #e0e8ff !important;
}
.syntaxhighlighter .script {
font-weight: bold !important;
color: #5ba1cf !important;
background-color: none !important;
}
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
color: #e0e8ff !important;
}
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
color: white !important;
}
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
color: #ffaa3e !important;
}

File diff suppressed because it is too large Load Diff

View File

@ -30,57 +30,57 @@ class CollaboratorsController < ApplicationController
end end
def update def update
all_user_ids = [] params['user'].keys.each { |user_id|
all_groups_ids = [] role = params['user'][user_id]
Relation::ROLES.each { |r|
all_user_ids = all_user_ids | params['user'][r.to_sym].keys if params['user'] && params['user'][r.to_sym]
all_groups_ids = all_groups_ids | params['group'][r.to_sym].keys if params['group'] && params['group'][r.to_sym]
}
# Remove relations if relation = @project.relations.find_by_object_id_and_object_type(user_id, 'User')
users_for_removing = @project.collaborators.select do |u| relation.update_attribute(:role, role)
!all_user_ids.map{|k| k.to_i}.include? u.id and @project.owner != u else
end relation = @project.relations.build(:object_id => user_id, :object_type => 'User', :role => role)
users_for_removing.each do |u| relation.save!
Relation.by_object(u).by_target(@project).each {|r| r.destroy} end
end } if params['user']
groups_for_removing = @project.groups.select do |u|
!all_groups_ids.map{|k| k.to_i}.include? u.id and @project.owner != u
end
groups_for_removing.each do |u|
Relation.by_object(u).by_target(@project).each {|r| r.destroy}
end
# Create relations params['group'].keys.each { |group_id|
Relation::ROLES.each { |r| role = params['group'][group_id]
#users_for_creating = users_for_creating params[:user].keys.map{|p| p.to_i} - @project.collaborators.map(&:id) if relation = @project.relations.find_by_object_id_and_object_type(group_id, 'Group')
params['user'][r.to_sym].keys.each { |u| relation.update_attribute(:role, role)
if relation = @project.relations.find_by_object_id_and_object_type(u, 'User') else
relation.update_attribute(:role, r) relation = @project.relations.build(:object_id => user_id, :object_type => 'Group', :role => role)
else relation.save!
relation = @project.relations.build(:object_id => u, :object_type => 'User', :role => r) end
relation.save! } if params['group']
end
} if params['user'] && params['user'][r.to_sym]
params['group'][r.to_sym].keys.each { |u|
if relation = @project.relations.find_by_object_id_and_object_type(u, 'Group')
relation.update_attribute(:role, r)
else
relation = @project.relations.build(:object_id => u, :object_type => 'Group', :role => r)
relation.save!
end
} if params['group'] && params['group'][r.to_sym]
}
if @project.save if @project.save
flash[:notice] = t("flash.collaborators.successfully_changed") flash[:notice] = t("flash.collaborators.successfully_changed")
else else
flash[:error] = t("flash.collaborators.error_in_changing") flash[:error] = t("flash.collaborators.error_in_changing")
end end
redirect_to project_path(@project)
redirect_to edit_project_collaborators_path(@project)
end end
def destroy def remove
all_user_ids = []
all_groups_ids = []
params['user_remove'].keys.each { |user_id|
all_user_ids << user_id if params['user_remove'][user_id] == ["1"]
} if params['user_remove']
params['group_remove'].keys.each { |group_id|
all_group_ids << group_id if params['group_remove'][group_id] == ["1"]
} if params['group_remove']
all_user_ids.each do |user_id|
u = User.find(user_id)
Relation.by_object(u).by_target(@project).each {|r| r.destroy}
end
all_groups_ids.each do |group_id|
g = Group.find(group_id)
Relation.by_object(g).by_target(@project).each {|r| r.destroy}
end
redirect_to edit_project_collaborators_path(@project)
end end
def add def add
@ -96,7 +96,7 @@ class CollaboratorsController < ApplicationController
flash[:warning] << [t('flash.collaborators.member_already_added'), mem.uname] flash[:warning] << [t('flash.collaborators.member_already_added'), mem.uname]
end end
unless @project.relations.exists?(:object_id => mem.id, :object_type => mem.class.to_s) unless @project.relations.exists?(:object_id => mem.id, :object_type => mem.class.to_s)
rel = @project.relations.build(:role => 'reader') rel = @project.relations.build(:role => params[:role])
rel.object = mem rel.object = mem
if rel.save if rel.save
flash[:notice] << [t('flash.collaborators.successfully_added'), mem.uname] flash[:notice] << [t('flash.collaborators.successfully_added'), mem.uname]

View File

@ -14,7 +14,7 @@ class Git::BaseController < ApplicationController
protected protected
def find_project def find_project
@project = Project.find(params[:project_id]) @project = Project.find(params[:project_id] || params[:id])
end end
def find_git_repository def find_git_repository
@ -30,7 +30,7 @@ class Git::BaseController < ApplicationController
end end
def set_treeish def set_treeish
@treeish = params[:treeish].present? ? params[:treeish] : "master" @treeish = params[:treeish].present? ? params[:treeish] : @project.default_branch
end end
def set_current_tag def set_current_tag

View File

@ -1,8 +1,9 @@
# -*- encoding : utf-8 -*- # -*- encoding : utf-8 -*-
class Git::BlobsController < Git::BaseController class Git::BlobsController < Git::BaseController
before_filter :find_tree before_filter :find_tree
before_filter :set_path_blob before_filter :find_branch
before_filter :set_commit_hash before_filter :set_commit_hash
before_filter :set_path_blob
def show def show
redirect_to project_repo_path(@project) and return unless @blob.present? redirect_to project_repo_path(@project) and return unless @blob.present?
@ -50,10 +51,17 @@ class Git::BlobsController < Git::BaseController
end end
protected protected
def find_branch
@branch = @project.branch(@treeish)
end
def set_path_blob def set_path_blob
@path = params[:path] @path = params[:path]
@unenc_path = @path.dup
@path.force_encoding(Encoding::ASCII_8BIT) @path.force_encoding(Encoding::ASCII_8BIT)
puts @path.inspect
@blob = @tree / @path @blob = @tree / @path
puts @blob.inspect
end end
def set_commit_hash def set_commit_hash
@ -68,9 +76,9 @@ class Git::BlobsController < Git::BaseController
else else
puts "2" puts "2"
@tree = @git_repository.tree(@treeish) @tree = @git_repository.tree(@treeish)
puts @tree.name.inspect @commit = @git_repository.log(@treeish, @path, :max_count => 1).first # TODO WTF nil ?
@commit = @git_repository.log(@treeish, @path).first # TODO WTF nil ?
end end
puts @tree.inspect
puts @commit.inspect
end end
end end

View File

@ -1,8 +1,11 @@
# -*- encoding : utf-8 -*- # -*- encoding : utf-8 -*-
class Git::CommitsController < Git::BaseController class Git::CommitsController < Git::BaseController
helper_method :split_commits_by_date
def index def index
@branch_name = params[:treeish] || "master" @branch_name = params[:treeish] || @project.default_branch
@branch = @project.branch(@branch_name)
@path = params[:path] @path = params[:path]
if @path.present? if @path.present?
@ -24,4 +27,18 @@ class Git::CommitsController < Git::BaseController
end end
end end
protected
def split_commits_by_date(commits)
res = commits.sort{|x, y| y.authored_date <=> x.authored_date}.inject({}) do |h, commit|
dt = commit.authored_date
h[dt.year] ||= {}
h[dt.year][dt.month] ||= {}
h[dt.year][dt.month][dt.day] ||= []
h[dt.year][dt.month][dt.day] << commit
h
end
return res
end
end end

View File

@ -2,16 +2,23 @@
class Git::TreesController < Git::BaseController class Git::TreesController < Git::BaseController
def show def show
if params[:treeish].present? and @treeish.dup.encode_to_default == @project.default_branch
redirect_to project_path(@project) and return
end
@path = params[:path] @path = params[:path]
@path.force_encoding(Encoding::ASCII_8BIT) if @path
@tree = @git_repository.tree(@treeish) @tree = @git_repository.tree(@treeish)
@branch = @project.branch(@treeish)
# @commit = @git_repository.commits(@treeish, 1).first # @commit = @git_repository.commits(@treeish, 1).first
# Raises Grit::Git::GitTimeout # Raises Grit::Git::GitTimeout
@commit = @git_repository.log(@treeish, @path).first @commit = @branch.present? ? @branch.commit() : @git_repository.log(@treeish, @path, :max_count => 1).first
@tree = @tree / @path if @path if @path
@path.force_encoding(Encoding::ASCII_8BIT)
@tree = @tree / @path
end
render :template => "git/repositories/show" render :template => "git/repositories/show"
end end

View File

@ -5,7 +5,7 @@ class ProjectsController < ApplicationController
belongs_to :user, :group, :polymorphic => true, :optional => true belongs_to :user, :group, :polymorphic => true, :optional => true
before_filter :authenticate_user!, :except => :auto_build before_filter :authenticate_user!, :except => :auto_build
before_filter :find_project, :only => [:show, :edit, :update, :destroy, :fork] before_filter :find_project, :only => [:show, :edit, :update, :destroy, :fork, :sections]
before_filter :get_paths, :only => [:new, :create, :edit, :update] before_filter :get_paths, :only => [:new, :create, :edit, :update]
load_and_authorize_resource load_and_authorize_resource
@ -29,10 +29,13 @@ class ProjectsController < ApplicationController
def show def show
@current_build_lists = @project.build_lists.current.recent.paginate :page => params[:page] @current_build_lists = @project.build_lists.current.recent.paginate :page => params[:page]
@branch = @project.branch(params[:treeish])
@commit = @branch.present? ? @branch.commit : @git_repository.log(@treeish).first
end end
def new def new
@project = Project.new @project = Project.new
@who_owns = :me
end end
def edit def edit
@ -40,8 +43,11 @@ class ProjectsController < ApplicationController
def create def create
@project = Project.new params[:project] @project = Project.new params[:project]
@project.owner = get_owner #@project.owner = get_owner
# puts @project.owner.inspect @project.owner = choose_owner
puts "OWNER_TYPE: " + @project.owner_type
@who_owns = (@project.owner_type == 'User' ? :me : :group)
puts "WHO_OWNS: " + @who_owns.to_s
if @project.save if @project.save
flash[:notice] = t('flash.project.saved') flash[:notice] = t('flash.project.saved')
@ -94,6 +100,18 @@ class ProjectsController < ApplicationController
render :nothing => true render :nothing => true
end end
def sections
if request.post?
if @project.update_attributes(params[:project])
flash[:notice] = t('flash.project.saved')
else
@project.save
flash[:error] = t('flash.project.save_error')
end
render :action => :sections
end
end
protected protected
def get_paths def get_paths
@ -114,4 +132,12 @@ class ProjectsController < ApplicationController
def find_project def find_project
@project = Project.find params[:id] @project = Project.find params[:id]
end end
def choose_owner
if params[:who_owns] == 'group'
Group.find(params[:owner_id])
else
current_user
end
end
end end

View File

@ -6,10 +6,14 @@ module CommitHelper
stats.files.each do |filename, adds, deletes, total| stats.files.each do |filename, adds, deletes, total|
res << "<tr>" res << "<tr>"
res << "<td><a href='##{h(filename)}'>#{h(filename)}</a></td>" res << "<td><a href='##{h(filename)}'>#{h(filename)}</a></td>"
res << "<td>#{total}</td>" res << "<td class='diffstat'>"
res << "<td><small class='deletions'>#{(0...deletes).map{|i| "-" }.join}</small>" res << I18n.t("layout.projects.inline_changes_count", :count => total).strip +
res << "<small class='insertions'>#{(0...adds).map{|i| "+" }.join}</small></td>" " (" +
res << "</tr>" I18n.t("layout.projects.inline_additions_count", :count => adds).strip +
", " +
I18n.t("layout.projects.inline_deletions_count", :count => deletes).strip +
")"
res << "</td>"
end end
res << "</table>" res << "</table>"

View File

@ -4,9 +4,9 @@ module DiffHelper
def render_diff(diff) def render_diff(diff)
diff_display ||= Diff::Display::Unified.new(diff.diff) diff_display ||= Diff::Display::Unified.new(diff.diff)
res = "<a name='#{h(diff.a_path)}'></a>" #res = "<a name='#{h(diff.a_path)}'></a>"
res += "<table class='diff inline' cellspacing='0' cellpadding='0'>" res = "<table class='diff inline' cellspacing='0' cellpadding='0'>"
res += "<tbody>" res += "<tbody>"
res += diff_display.render(Git::Diff::InlineCallback.new).encode_to_default res += diff_display.render(Git::Diff::InlineCallback.new).encode_to_default
res += "</tbody>" res += "</tbody>"

View File

@ -61,4 +61,32 @@ module GitHelper
string.dup.encode_to_default string.dup.encode_to_default
end end
def iterate_path(path, &block)
path.split(File::SEPARATOR).inject('') do |a, e|
if e != '.' and e != '..'
a = File.join(a, e)
a = a[1..-1] if a[0] == File::SEPARATOR
block.call(a, e) if a.length > 1
end
a
end
end
# TODO This is very dirty hack. Maybe need to be changed.
def branch_selector_options(project)
tmp = params
unless tmp['treeish'].present?
tmp.merge!('project_id' => project.id, 'treeish' => project.default_branch).delete('id')
end
res = {}
current = url_for(tmp).split('?', 2).first
res = project.branches.inject(res) do |h, branch|
h[branch.name] = url_for(tmp.merge('treeish' => branch.name)).split('?', 2).first
h
end
res.merge!(tmp['treeish'] => current)
options_for_select(res.sort, current).html_safe
end
end end

View File

@ -7,4 +7,12 @@ module ProjectsHelper
"https://#{request.host_with_port}/#{name}.git" "https://#{request.host_with_port}/#{name}.git"
end end
end end
def options_for_collaborators_roles_select
options_for_select(
Relation::ROLES.collect { |role|
[t("layout.collaborators.role_names.#{ role }"), role]
}
)
end
end end

View File

@ -47,7 +47,7 @@ class Ability
can :read, Project, :owner_type => 'Group', :owner_id => user.group_ids can :read, Project, :owner_type => 'Group', :owner_id => user.group_ids
can(:read, Project, read_relations_for('projects')) {|project| local_reader? project} can(:read, Project, read_relations_for('projects')) {|project| local_reader? project}
can(:write, Project) {|project| local_writer? project} # for grack can(:write, Project) {|project| local_writer? project} # for grack
can([:update, :manage_collaborators], Project) {|project| local_admin? project} can([:update, :sections, :manage_collaborators], Project) {|project| local_admin? project}
can(:fork, Project) {|project| can? :read, project} can(:fork, Project) {|project| can? :read, project}
can(:destroy, Project) {|project| owner? project} can(:destroy, Project) {|project| owner? project}

View File

@ -1,3 +1,4 @@
# -*- encoding : utf-8 -*-
class GitHook class GitHook
attr_reader :repo, :newrev, :oldrev, :newrev_type, :oldrev_type, :refname, attr_reader :repo, :newrev, :oldrev, :newrev_type, :oldrev_type, :refname,
:change_type, :rev, :rev_type, :refname_type, :owner, :project :change_type, :rev, :rev_type, :refname_type, :owner, :project

View File

@ -17,6 +17,9 @@ class Group < ActiveRecord::Base
validates :uname, :presence => true, :uniqueness => {:case_sensitive => false}, :format => { :with => /^[a-z0-9_]+$/ } validates :uname, :presence => true, :uniqueness => {:case_sensitive => false}, :format => { :with => /^[a-z0-9_]+$/ }
validate { errors.add(:uname, :taken) if User.where('uname LIKE ?', uname).present? } validate { errors.add(:uname, :taken) if User.where('uname LIKE ?', uname).present? }
scope :by_owner, lambda { |owner| where(:owner_id => owner.id) }
scope :by_admin, lambda { |admin| joins(:relations).where(:'relations.role' => 'admin', :'relations.target_id' => admin.id, :'relations.target_type' => 'User') }
attr_readonly :uname, :own_projects_count attr_readonly :uname, :own_projects_count
delegate :ssh_key, :email, :to => :owner delegate :ssh_key, :email, :to => :owner
@ -26,6 +29,10 @@ class Group < ActiveRecord::Base
include Modules::Models::PersonalRepository include Modules::Models::PersonalRepository
# include Modules::Models::Owner # include Modules::Models::Owner
def self.can_own_project(user)
(by_owner(user) | by_admin(user)).collect { |el| [el.name, el.id] }
end
protected protected
def add_owner_to_members def add_owner_to_members

View File

@ -84,6 +84,46 @@ class Project < ActiveRecord::Base
self.git_repository.branches self.git_repository.branches
end end
def last_active_branch
@last_active_branch ||= branches.inject do |r, c|
r_last = r.commit.committed_date || r.commit.authored_date unless r.nil?
c_last = c.commit.committed_date || c.commit.authored_date
if r.nil? or r_last < c_last
r = c
end
r
end
@last_active_branch
end
def branch(name = nil)
name = default_branch if name.blank?
branches.select{|b| b.name == name}.first
end
def tree_info(tree, treeish = nil, path = nil)
treeish = tree.id unless treeish.present?
# initialize result as hash of <tree_entry> => nil
res = (tree.trees.sort + tree.blobs.sort).inject({}){|h, e| h.merge!({e => nil})}
# fills result vith commits that describes this file
res = res.inject(res) do |h, (entry, commit)|
# only if commit == nil ...
if commit.nil? and entry.respond_to? :name
# ... find last commit corresponds to this file ...
c = git_repository.log(treeish, File.join([path, entry.name].compact), :max_count => 1).first
# ... and add it to result.
h[entry] = c
# find another files, that linked to this commit and set them their commit
c.diffs.map{|diff| diff.b_path.split(File::SEPARATOR, 2).first}.each do |name|
h.each_pair do |k, v|
h[k] = c if k.name == name and v.nil?
end
end
end
h
end
end
def versions def versions
tags.map(&:name) + branches.map{|b| "latest_#{b.name}"} tags.map(&:name) + branches.map{|b| "latest_#{b.name}"}
end end

View File

@ -1,3 +1,4 @@
# -*- encoding : utf-8 -*-
class RegisterRequest < ActiveRecord::Base class RegisterRequest < ActiveRecord::Base
default_scope order('created_at ASC') default_scope order('created_at ASC')

View File

@ -0,0 +1,56 @@
# -*- encoding : utf-8 -*-
class ApplicationPresenter < RosaPresenter::Base
end
#class ApplicationPresenter
# include ActionDispatch::Routing::UrlFor
# include ActionView::Helpers::UrlHelper
# include Rails.application.routes.url_helpers
#
# attr_accessor :controller
#
# def initialize(item, opts)
# end
#
# # TODO it needs to be refactored!
# class << self
# def present(item, opts, &block)
# block.call(self.new(item, opts))
# end
#
# def present_collection(collection, &block)
# res = collection.map {|e| self.new(*e)}
# if block.present?
# res = res.inject('') do |akk, presenter|
# akk << block.call(presenter)
# akk
# end
# end
# return res
# end
# end
#
# protected
#
# def t(*args)
# I18n.translate(*args)
# end
#
# def l(*args)
# I18n.localize(*args)
# end
#end
#
#module Presenters
# module Activation
# def self.included(klass) # :nodoc:
# klass.prepend_before_filter :activate_presenter
# end
#
# private
# def activate_presenter
# ApplicationPresenter.controller = self
# end
# end
#end
#ActionController::Base.send(:include, Presenters::Activation)

View File

@ -0,0 +1,64 @@
# -*- encoding : utf-8 -*-
class CommentPresenter < ApplicationPresenter
attr_accessor :comment, :options
attr_reader :header, :image, :date, :caption, :content, :buttons
def initialize(comment, opts = {})
@comment = comment
@user = comment.user
@options = opts
@caption = @comment.body
end
def expandable?
false
end
def buttons?
true
end
def content?
false
end
def buttons
project = options[:project]
commentable = options[:commentable]
puts "PROJECT = " + project.inspect
puts "COMMENTABLE = " + commentable.inspect
puts "COMMENT = " + comment.inspect
(ep, dp) = if commentable.class == Issue
[edit_project_issue_comment_path(project, commentable, comment),
project_issue_comment_path(project, commentable, comment)]
elsif commentable.class == Grit::Commit
[edit_project_commit_comment_path(project, commentable, comment),
project_commit_comment_path(project, commentable, comment)]
end
res = []
if controller.can? :update, @comment
res << link_to(t("layout.edit"), ep).html_safe
end
if controller.can? :delete, @comment
res << link_to(t("layout.delete"), dp, :method => "delete",
:confirm => t("layout.comments.confirm_delete")).html_safe
end
end
def header
res = link_to @user.uname, user_path(@user.uname)
res += ' ' + t("layout.comments.has_commented")
end
def image
@image ||= "https://secure.gravatar.com/avatar/#{Digest::MD5.hexdigest(@user.email.downcase)}?s=40&r=pg"
end
def date
@date ||= I18n.l(@comment.updated_at, :format => :long)
end
end

View File

@ -0,0 +1,72 @@
# -*- encoding : utf-8 -*-
class GitPresenters::CommitAsMessagePresenter < ApplicationPresenter
include CommitHelper
attr_accessor :commit, :options
attr_reader :header, :image, :date, :caption, :content, :expandable
def initialize(commit, opts = {})
@commit = commit
@options = opts#[:branch] if opts[:branch]
prepare_message
end
def header
@header ||= if options[:branch].present?
I18n.t("layout.messages.commits.header_with_branch",
:committer => committer_link, :commit => commit_link, :branch => options[:branch].name)
elsif options[:project].present?
I18n.t("layout.messages.commits.header",
:committer => committer_link, :commit => commit_link, :project => options[:project].name)
end.html_safe
end
def image
@image ||= "https://secure.gravatar.com/avatar/#{Digest::MD5.hexdigest(committer.email.downcase)}?s=40&r=pg"
end
def date
@date ||= I18n.l(@commit.committed_date || @commit.authored_date, :format => :long)
end
def expandable?
true
end
def buttons?
false
end
def content?
!content.blank?
end
protected
def committer
@committer ||= User.where(:email => @commit.committer.email).first || @commit.committer
end
def committer_link
@committer_link ||= if committer.is_a? User
link_to committer.uname, user_path(committer)
else
mail_to committer.email.encode_to_default, committer.name.encode_to_default
end
end
def commit_link
link_to shortest_hash_id(@commit.id), commit_path(options[:project], @commit.id)
end
def prepare_message
(@caption, @content) = @commit.message.encode_to_default.split("\n\n", 2)
@caption = 'empty message' unless @caption.present?
if @caption.length > 72
tmp = '...' + @caption[69..-1]
@content = (@content.present?) ? tmp + @content : tmp
@caption = @caption[0..68] + '...'
end
@content = @content.gsub("\n", "<br />").html_safe if @content
end
end

View File

@ -1,72 +1,55 @@
.block = render :partial => 'projects/submenu'
.secondary-navigation
%ul.wat-cf
%li.first= link_to t("layout.collaborators.back_to_proj"), project_path(@project)
%li.active= link_to t("layout.collaborators.edit"), edit_project_collaborators_path(@project)
.content
.inner
= form_tag add_project_collaborators_path(@project) do
.group
%h2.title= t("layout.collaborators.add")
= label_tag "member_uname", t("layout.collaborators.input_username")
= autocomplete_field_tag 'member_id', params[:member_id], autocomplete_user_uname_users_path, :id_element => '#member_id_field'
&nbsp;
= t('layout.or')
&nbsp;
= label_tag "group_uname", t("layout.collaborators.input_groupname")
= autocomplete_field_tag 'group_id', params[:group_id], autocomplete_group_uname_groups_path, :id_element => '#group_id_field'
= hidden_field_tag 'member_id', nil, :id => 'member_id_field' = form_tag project_collaborators_path(@project), :id => 'members_form', :delete_url => remove_project_collaborators_path(@project) do
= hidden_field_tag 'group_id', nil, :id => 'group_id_field' = hidden_field_tag "_method", "post"
%br %table.tablesorter{:cellpadding => "0", :cellspacing => "0"}
.group.navform.wat-cf %thead
%button.button{:type => "submit"} %tr
= image_tag("choose.png", :alt => t("layout.add")) %th
= t("layout.add") \ 
%th
= t("layout.collaborators.members")
%th{:colspan => "3"}
= t("layout.collaborators.roles")
%tbody
- @users.each do |user|
%tr#admin-table-members-row1
%td
%span#niceCheckbox1.niceCheck-main{:onclick => "changeCheck(this)", :style => "background-position: 0px 0px; "}
= check_box_tag "user_remove[#{user.id}][]"
%td
.img
= image_tag(gravatar_url(user.email))
.forimg= link_to user.name, user_path(user)
- Relation::ROLES.each_with_index do |role, i|
%td
.radio
= radio_button_tag "user[#{user.id}]", role, ((@project.relations.exists? :object_id => user.id, :object_type => 'User', :role => role) ? :checked : nil), :class => 'niceRadio'
-# f.radio_button "group[#{role}][#{group.id}]", '1', ((@project.relations.exists? :object_id => group.id, :object_type => 'Group', :role => role) ? :checked : nil)
-#%span.niceRadio.radioChecked
-# %input#myradio1{:checked => "checked", :name => "myradio", :tabindex => "1", :type => "radio", :value => "on"}/
.forradio= t("layout.collaborators.role_names.#{ role }")
= link_to_function t("layout.delete"), "deleteAdminMember();", :class => 'button'
.both
.hr.top
= form_tag project_collaborators_path(@project) do = form_tag add_project_collaborators_path(@project) do
%h2.title= t("layout.users.list_header") .admin-search
%table.table = autocomplete_field_tag 'member_id', params[:member_id], autocomplete_user_uname_users_path, :id_element => '#member_id_field'
%tr .admin-role
%th.first ID .lineForm
%th= t("activerecord.attributes.user.name") = select_tag 'role', options_for_collaborators_roles_select
%th= t("activerecord.attributes.user.roles") .both
%th= t("activerecord.attributes.user.uname") -#.admin-search
- #TODO: Replace this Chelyabinsk add/remove collaborators method by more human method -# = label_tag "group_uname", t("layout.collaborators.input_groupname")
- @users.each do |user| -# = autocomplete_field_tag 'group_id', params[:group_id], autocomplete_group_uname_groups_path, :id_element => '#group_id_field'
%tr{:class => cycle("odd", "even")} = hidden_field_tag 'member_id', nil, :id => 'member_id_field'
%td =# hidden_field_tag 'group_id', nil, :id => 'group_id_field'
= user.id %br
%td = submit_tag t("layout.add"), :class => 'button'
= link_to user.name, user_path(user)
%td .hr.bottom
- Relation::ROLES.each do |role| .both
= check_box_tag "user[#{ role }][#{user.id}]", '1', ((@project.relations.exists? :object_id => user.id, :object_type => 'User', :role => role) ? :checked : nil), {:class => "user_role_chbx"} = link_to_function t("layout.save"), "saveAdminMember();", :class => 'button'
= label_tag "user[#{ role }][#{user.id}]", t("layout.collaborators.roles.#{ role }")
%td - content_for :sidebar, render('projects/sidebar')
= user.uname
%h2.title= t("layout.groups.list_header")
%table.table
%tr
%th.first ID
%th= t("activerecord.attributes.group.name")
%th= t("activerecord.attributes.group.roles")
%th= t("activerecord.attributes.group.uname")
- @groups.each do |group|
%tr{:class => cycle("odd", "even")}
%td
= group.id
%td
= link_to group.name, group_path(group)
%td
- Relation::ROLES.each do |role|
= check_box_tag "group[#{role}][#{group.id}]", '1', ((@project.relations.exists? :object_id => group.id, :object_type => 'Group', :role => role) ? :checked : nil), {:class => "user_role_chbx"}
= label_tag "group[#{role}][#{group.id}]", t("layout.collaborators.roles.#{role}")
%td
= group.uname
.group.navform.wat-cf
%button.button{:type => "submit"}
= image_tag("choose.png", :alt => t("layout.save"))
= t("layout.save")
%span.text_button_padding= t("layout.or")
= link_to t("layout.cancel"), project_path(@project), :class => "text_button_padding link_button"

View File

@ -0,0 +1,20 @@
#open-comment.comment.view
%h3.tmargin0= t("layout.comments.new_header")
- new_path = project_issue_comments_path(project, commentable) if commentable.class == Issue
- new_path = project_commit_comments_path(project, commentable) if commentable.class == Grit::Commit
= form_for :comment, :url => new_path, :method => :post, :html => { :class => :form } do |f|
= render :partial => "comments/form", :locals => {:f => f}
.comment-left
= t("layout.comments.notifications_are")
%span.bold
- if Subscribe.subscribed_to_commit?(@project, current_user, @commit)
= t("layout.turned_on")\
- else
= t("layout.turned_off")\
\.
- if Subscribe.subscribed_to_commit?(@project, current_user, @commit)
= link_to t('layout.commits.unsubscribe_btn'), unsubscribe_commit_path(@project, @commit), :method => :delete
- else
= link_to t('layout.commits.subscribe_btn'), subscribe_commit_path(@project, @commit), :method => :post
.both

View File

@ -1,8 +1,12 @@
.group .wrapper
= f.text_area :body, :cols => 80
.comment-right
= submit_tag t("layout.save")
-#.group
= f.label :body, t("activerecord.attributes.comment.body"), :class => :label = f.label :body, t("activerecord.attributes.comment.body"), :class => :label
= f.text_area :body, :class => 'text_field', :cols => 80 = f.text_area :body, :class => 'text_field', :cols => 80
.group.navform.wat-cf -#.group.navform.wat-cf
%button.button{:type => "submit"} %button.button{:type => "submit"}
= image_tag("choose.png", :alt => t("layout.save")) = image_tag("choose.png", :alt => t("layout.save"))
= t("layout.save") = t("layout.save")

View File

@ -1,5 +1,10 @@
%a{ :name => "comments" } %a{ :name => "comments" }
.block#block-list .hr
%h3= t("layout.issues.comments_header")
- list.each do |comment|
- CommentPresenter.present(comment, :project => project, :commentable => commentable) do |presenter|
= render :partial => 'shared/feed_message', :locals => {:presenter => presenter}
-#.block#block-list
.content .content
%h2.title %h2.title
= t("layout.issues.comments_header") = t("layout.issues.comments_header")
@ -23,7 +28,7 @@
=# link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), delete_path, :method => "delete", :class => "button", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment =# link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), delete_path, :method => "delete", :class => "button", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment
= link_to t("layout.delete"), delete_path, :method => "delete", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment = link_to t("layout.delete"), delete_path, :method => "delete", :confirm => t("layout.comments.confirm_delete") if can? :delete, comment
.block -#.block
.content .content
%h2.title %h2.title
= t("layout.comments.new_header") = t("layout.comments.new_header")

View File

@ -1,4 +1,24 @@
#gollum-editor.edit{:'data-escaped-name' => @path.encode_to_default} %h3= t("layout.projects.files_in_project")
.files
.l
= render :partial => 'git/shared/whereami'
.both
= form_tag blob_file_path, :name => 'blob-editor', :method => :put do
.file
= text_area_tag :content, @blob.data.encode_to_default, :id => 'code'
.both
= t("layout.enter_commit_message")
= text_area_tag :message, "Updated #{@blob.name}", :class => 'commit-message'
%br
%br
= submit_tag t("layout.save"), :title => t("layout.save")
= t("layout.or")
= link_to t("layout.cancel"), blob_file_path, :class => 'button'
-##gollum-editor.edit{:'data-escaped-name' => @path.encode_to_default}
= form_tag blob_file_path, :name => 'blob-editor', :method => :put do = form_tag blob_file_path, :name => 'blob-editor', :method => :put do
%fieldset#gollum-editor-fields %fieldset#gollum-editor-fields
@ -16,7 +36,7 @@
:javascript :javascript
$(function() { $(function() {
$.BlobEditor(); var editor = CodeMirror.fromTextArea(document.getElementById('code'), {lineNumbers: true, mode: '#{@blob.mime_type}', theme: 'eclipse'});
}); });
/ - content_for :javascripts do / - content_for :javascripts do

View File

@ -0,0 +1,49 @@
%h3= t("layout.projects.files_in_project")
.files
.l
= render :partial => 'git/shared/whereami'
.both
- render_way = choose_render_way(@blob)
.file
.top
.l
= @blob.mode + ' | '
- if (render_way == :text)
- text = @blob.data.split("\n")
= "#{text.length} lines (#{text.select{|s| s.strip.length > 0}.length} sloc) | "
= "#{(@blob.size / 1024.0).round(3)} Kb"
.r
- if render_way == :text and can? :write, @project and @treeish.in? @project.branches.map(&:name)
= raw "#{link_to "Edit", edit_blob_path(@project, @treeish, @path) } | "
= raw "#{link_to "Raw", raw_path(@project, @treeish, @path)} | "
= raw "#{link_to "Blame", blame_path(@project, @treeish, @path)} | "
= link_to "History", commits_path(@project, @treeish, @path)
.both
.data
- case render_way
- when :image
%table.table.blob
%tr
%td.lines
%td.blob
:plain
<br/>
<center> <img src='?raw=true'/></center>
<br/>
- when :text
.gutter
:plain
<pre>#{render_line_numbers(text.length)}</pre>
%pre{:class => "brush: #{@blob.mime_type.split('/').last}"}
=#{render_blob(@blob)}
= @blob.data.encode_to_default.html_safe
- when :binary
%table.table.blob
%tr
%td.lines
%td.blob
:plain
<br/>
<pre>#{ link_to @blob.basename.encode_to_default, raw_path(@project, @treeish, @path) }</pre>
<br/>

View File

@ -1,20 +1,21 @@
.block = render :partial => "git/blobs/editor", :layout => 'projects/show'
= render :partial => "git/shared/navigation" -#.block
-# = render :partial => "git/shared/navigation"
= render :partial => "git/shared/info" -#
-# = render :partial => "git/shared/info"
- if @commit -#
.block -#- if @commit
.content -# .block
.inner -# .content
= render :partial => "git/commits/commits", :object => [@commit] -# .inner
-# = render :partial => "git/commits/commits", :object => [@commit]
.block -#
.content -#.block
.inner -# .content
%h3 #{render_path} (#{@blob.mime_type}) -# .inner
-# %h3 #{render_path} (#{@blob.mime_type})
= render :partial => 'editor' -#
-# = render :partial => 'editor'
- content_for :sidebar, render(:partial => 'git/shared/sidebar') -#
-#- content_for :sidebar, render(:partial => 'git/shared/sidebar')
-#

View File

@ -1,60 +1 @@
.block = render :partial => "git/blobs/show", :layout => 'projects/show'
= render :partial => "git/shared/navigation"
= render :partial => "git/shared/info"
- if @commit
.block
.content
.inner
= render :partial => "git/commits/commits", :object => [@commit]
.block
.content
.inner
%h3= render_path
%h3= @blob.mime_type
.blob_header
.size #{(@blob.size / 1024.0).round(3)} Kb
.buttons
- if @commit_hash
#{link_to "Raw", raw_commit_path(@project, @commit_hash, @path)}
#{link_to "Blame", blame_commit_path(@project, @commit_hash, @path)}
#{link_to "History", commits_path(@project, @treeish, @path)}
- else
#{link_to "Edit", edit_blob_path(@project, @treeish, @path) if choose_render_way(@blob) == :text and can? :write, @project}
#{link_to "Raw", raw_path(@project, @treeish, @path)}
#{link_to "Blame", blame_path(@project, @treeish, @path)}
#{link_to "History", commits_path(@project, @treeish, @path)}
.clear
- case choose_render_way(@blob)
- when :image
%table.table.blob
%tr
%td.lines
%td.blob
:plain
<br/>
<center> <img src='?raw=true'/></center>
<br/>
- when :text
%table.table.blob
%tr
%td.lines
:plain
<pre>#{render_line_numbers(@blob.data.split("\n").length)}</pre>
%td.blob
:plain
<pre>#{render_blob(@blob)}</pre>
- when :binary
%table.table.blob
%tr
%td.lines
%td.blob
:plain
<br/>
<pre>#{ link_to @blob.basename.encode_to_default, raw_path(@project, @treeish, @path) }</pre>
<br/>
- content_for :sidebar, render(:partial => 'git/shared/sidebar')

View File

@ -1,15 +1,11 @@
.block .file
.content %a{ :name => h(commit_diff.a_path.encode_to_default) }
.inner .top
.l= h(commit_diff.a_path.encode_to_default)
- if commit_diff.b_path.present?
.r
= link_to("view file @ #{short_hash_id(@commit.id)}", blob_commit_path(@project, @commit.id, commit_diff.b_path.encode_to_default))
.clear
%a{ :name => h(commit_diff.a_path.encode_to_default) } .diff_data
= render_diff(commit_diff)
.blob_header
.size= h(commit_diff.a_path.encode_to_default)
- if commit_diff.b_path.present?
.buttons
= link_to("view file @ #{short_hash_id(@commit.id)}", blob_commit_path(@project, @commit.id, commit_diff.b_path.encode_to_default))
.clear
.diff_data
= render_diff(commit_diff)

View File

@ -1,4 +1,23 @@
%ul.list.commits - commits = split_commits_by_date(commits)
- cur_year = Date.today.year
- counter = 1
- commits.each_pair do |year, by_month|
- if year != cur_year
.year= "#{year} #{t("year")}"
- by_month.each_pair do |month, by_day|
- by_day.each_pair do |day, commits|
.date-block
.date
= raw l(commits.first.authored_date, :format => :date_block_format)
.messages
- commits.each_with_index do |commit|
- GitPresenters::CommitAsMessagePresenter.present(commit, :branch => @branch, :project => @project) do |presenter|
= render :partial => 'shared/feed_message', :locals => {:presenter => presenter, :item_no => counter}
- counter += 1
.both
-#%ul.list.commits
- commits.each do |commit| - commits.each do |commit|
%li.commit %li.commit
%table %table

View File

@ -1,9 +1,10 @@
- if @page == 1 .pagination.tmargin30
%span.prev_page.disabled « Previous - if @page == 1
- else %span.previous_page.disabled « Previous
%a.next_page{ :rel => "prev", :href => commits_path(@project, :treeish => @treeish, :page => (@page - 1)) } « Previous - else
%a.previous_page{ :rel => "prev", :href => commits_path(@project, :treeish => @treeish, :page => (@page - 1)) } « Previous
- if @last_page - if @last_page
%span.next_page.disabled Next » %span.next_page.disabled Next »
- else - else
%a.next_page{ :rel => "next", :href => commits_path(@project, :treeish => @treeish, :page => (@page + 1)) } Next » %a.next_page{ :rel => "next", :href => commits_path(@project, :treeish => @treeish, :page => (@page + 1)) } Next »

View File

@ -0,0 +1,19 @@
- stats = @commit.stats
.leftside
%h5= t("layout.projects.diff_show_header",
:files => t("layout.projects.commit_files_count", :count => stats.files.size),
:additions => t("layout.projects.commit_additions_count", :count => stats.additions),
:deletions => t("layout.projects.commit_deletions_count", :count => stats.deletions))
.both
.rightside
= link_to "raw diff", commit_path(@project, @commit.id, :diff)
\|
= link_to "patch", commit_path(@project, @commit.id, :patch)
.both
-begin
= render_commit_stats(stats)
= render :partial => 'git/commits/commit_diff', :collection => @commit.diffs
- rescue Grit::Git::GitTimeout
%p= t 'layout.git.repositories.commit_diff_too_big'

View File

@ -1,10 +1,10 @@
.block = render :partial => 'projects/submenu'
= render :partial => "git/shared/navigation" = render :partial => 'projects/repo_block', :locals => {:project => @project}
= render :partial => "git/shared/info" = render :partial => 'git/commits/commits', :object => @commits
- if @render_paginate
= render :partial => 'git/commits/paginate'
.block -#.block
.content .content
.inner .inner
= render :partial => "git/commits/commits", :object => @commits = render :partial => "git/commits/commits", :object => @commits
@ -14,4 +14,4 @@
.pagination .pagination
= render :partial => "git/commits/paginate" = render :partial => "git/commits/paginate"
- content_for :sidebar, render(:partial => 'git/shared/sidebar') -# content_for :sidebar, render(:partial => 'git/shared/sidebar')

View File

@ -1,15 +1,34 @@
.block = render :partial => 'projects/submenu'
.description
%h3= t("layout.projects.about_subheader")
%p
= @project.description
= link_to t('layout.read_more'), '#'
%h3= t("layout.projects.last_commit")
- GitPresenters::CommitAsMessagePresenter.present(@commit, :branch => @branch, :project => @project) do |presenter|
= render :partial => 'shared/feed_message', :locals => {:presenter => presenter, :item_no => 1}
.both
#repo-wrapper
= render :partial => 'show'
= render :partial => "comments/list", :locals => {:list => Project.commit_comments(@commit, @project), :project => @project, :commentable => @commit}
= render :partial => "comments/add", :locals => {:project => @project, :commentable => @commit}
-#.block
= render :partial => "git/shared/navigation" = render :partial => "git/shared/navigation"
= render :partial => "git/shared/info" = render :partial => "git/shared/info"
.block -#.block
.content .content
.inner .inner
= render :partial => "git/commits/commits", :object => [@commit] = render :partial => "git/commits/commits", :object => [@commit]
- begin -#- begin
.block .block
.content .content
.inner .inner
@ -21,16 +40,16 @@
= render_commit_stats(@commit.stats) = render_commit_stats(@commit.stats)
= render :partial => "git/commits/commit_diff", :collection => @commit.diffs = render :partial => "git/commits/commit_diff", :collection => @commit.diffs
- rescue Grit::Git::GitTimeout -#- rescue Grit::Git::GitTimeout
.block .block
.content .content
.inner .inner
%p= t 'layout.git.repositories.commit_diff_too_big' %p= t 'layout.git.repositories.commit_diff_too_big'
- content_for :sidebar, render(:partial => 'git/shared/sidebar') -#- content_for :sidebar, render(:partial => 'git/shared/sidebar')
= render :partial => "comments/list", :locals => {:list => Project.commit_comments(@commit, @project), :project => @project, :commentable => @commit} -#= render :partial => "comments/list", :locals => {:list => Project.commit_comments(@commit, @project), :project => @project, :commentable => @commit}
%p -#%p
%b %b
= t('layout.issues.subscribe') = t('layout.issues.subscribe')
\: \:

View File

@ -0,0 +1,45 @@
%h3= t("layout.projects.files_in_project")
.files
.l
= render :partial => 'git/shared/whereami'
.both
%table#myTable.tablesorter.project{:cellpadding => "0", :cellspacing => "0"}
%thead
%tr
%th.th1= t("layout.projects.filename")
%th.th2= t("layout.projects.age")
%th.th3= t("layout.projects.message")
%th.th4= t("layout.projects.author")
%tbody
- if @path.present?
%tr
%td
.pic
%img{:src => "/assets/folder.png"}/
.name
= link_to "..", tree_path(@project, @treeish, File.join([@path.dup.encode_to_default, ".."].compact).encode_to_default)
%td== &nbsp;
%td== &nbsp;
%td== &nbsp;
- @project.tree_info(@tree, @treeish, @path).each_pair do |entry, commit|
%tr
%td
- entry_path = File.join([@path.present? ? @path : nil, entry.name].compact).encode_to_default
- if entry.is_a? Grit::Blob
.pic
%img{:src => "/assets/code.png"}/
.name
= link_to(entry.name, blob_path(@project, @treeish, entry_path), :class => 'files-see').encode_to_default
- else
.pic
%img{:src => "/assets/folder.png"}/
.name
= link_to(entry.name, tree_path(@project, @treeish, entry_path), :class => 'files-see').encode_to_default
%td
%span{:style => "display: none;"}= commit.committed_date || commit.authored_date#> Dec 31, 2011
= l(commit.committed_date || commit.authored_date, :format => :short) #31 декабря 2011
%td
= commit.short_message.encode_to_default #Redo autostart script to start from user
%td
= (commit.committer || commit.author).name.encode_to_default #chipiga

View File

@ -1,49 +1 @@
.block = render :partial => "git/repositories/show", :layout => 'projects/show'
= render :partial => "git/shared/navigation"
= render :partial => "git/shared/info"
- if @commit
.block
.content
.inner
= render :partial => "git/commits/commits", :object => [@commit]
.block
.content
.inner
%h3= render_path
%table.table.git_tree
%tr
%th.icon
%th name
%th age
%th.last message
- if @path.present?
%tr.odd
%td
%td.icon
= link_to "..", tree_path(@project, @treeish, File.join([@path, ".."].compact))
%td== &nbsp;
%td.last== &nbsp;
- (@tree.trees + @tree.blobs).each do |entry|
%tr{ :class => cycle("even", "odd")}
%td.icon
- if entry.is_a?(Grit::Blob)
= image_tag("code.png")
- else
= image_tag("folder.png")
%td.tree_element
- entry_path = File.join([@path.present? ? @path.encode_to_default : nil, entry.name.encode_to_default].compact)
- if entry.is_a?(Grit::Blob)
= link_to entry.name.encode_to_default,
blob_path(@project, @treeish.encode_to_default, entry_path)
- else
= link_to "#{entry.name.encode_to_default}/",
tree_path(@project, @treeish.encode_to_default, entry_path)
%td== &nbsp;
%td.last== &nbsp;
- content_for :sidebar, render(:partial => 'git/shared/sidebar')

View File

@ -0,0 +1,10 @@
%p#file-name1
= link_to @project.name, tree_path(@project, :treeish => @treeish.encode_to_default)
= File::SEPARATOR
- if @path.present?
- paths = File.split(@path)
- if paths.size > 1 and paths.first != '.'
- iterate_path(paths.first) do |path, name|
= link_to(name, tree_path(@project, @treeish, path)).encode_to_default
= File::SEPARATOR
= paths.last.encode_to_default

View File

@ -0,0 +1,16 @@
.lineForm.fork
= form_tag '', :id => 'branch_changer', :'data-action' => controller_name do
= select_tag :branch, branch_selector_options(project),
:class => 'sel80', :id => 'branch_selector'
.fork
%p= t('layout.projects.current_branch')+':'
.both
:javascript
$(document).ready(function() {
$('select#branch_selector').live('change', function(e) {
$form = $('form#branch_changer');
$form.attr('action', $(this).val());
$form.submit();
});
});

View File

@ -0,0 +1,19 @@
.activity
.top
.image
%img{:alt => "avatar", :src => presenter.image}
.text.imaged
%span.name= presenter.header
%br/
%span.date= presenter.date
%br/
%span.subject
= presenter.caption
- if presenter.expandable? and presenter.content?
%span.data-expander.collapsed{:id => "expand#{item_no}"} &nbsp;
-#%img#expand1.activity-full{:alt => "expand", :onclick => "showActivity(4)", :src => "/assets/expand-gray.png"}/
.both
- if presenter.content?
.fulltext{:class => presenter.expandable? ? "hidden" : '',
:id => presenter.expandable? ? "content-expand#{item_no}" : ''}
= presenter.content

View File

@ -1,28 +1,69 @@
.group - act = controller.action_name.to_sym
= f.label :category_id, t("activerecord.attributes.project.category_id"), :class => :label - if [:new, :create].include? act
= f.grouped_collection_select :category_id, Category.roots, :children, :name, :id, :name, :include_blank => true .leftlist
.group = f.label :name, t("activerecord.attributes.project.name"), :class => :label
= f.label :name, t("activerecord.attributes.project.name"), :class => :label .rightlist
= f.text_field :name, :class => 'text_field', :disabled => f.object.try(:persisted?) = f.text_field :name, :class => 'text_field', :disabled => f.object.try(:persisted?)
.group .both
= f.label :visibility, t("activerecord.attributes.project.visibility"), :class => :label .leftlist
= f.select :visibility, Project::VISIBILITIES
.group
= f.label :description, t("activerecord.attributes.project.description"), :class => :label = f.label :description, t("activerecord.attributes.project.description"), :class => :label
.rightlist
= f.text_area :description, :class => 'text_field', :cols => 80 = f.text_area :description, :class => 'text_field', :cols => 80
.group .both
= f.label :has_issues, t("activerecord.attributes.project.has_issues"), :class => :label - if ['new', 'create'].include? controller.action_name
= f.check_box :has_issues .leftlist
.group = f.label :owner_id, t("activerecord.attributes.project.owner"), :class => :label
= f.label :has_wiki, t("activerecord.attributes.project.has_wiki"), :class => :label .rightlist
= f.check_box :has_wiki = label_tag t("activerecord.attributes.project.who_owns.me")
.group = radio_button_tag :who_owns, 'me'#, {}.merge( (@who_owns == :me ? {:checked => 'checked'} : {}) )
= f.label :srpm, t("activerecord.attributes.project.srpm"), :class => :label = label_tag t("activerecord.attributes.project.who_owns.group")
= f.file_field :srpm, :class => 'file_field' = radio_button_tag :who_owns, 'group'#, {}.merge( (@who_owns == :group ? {:checked => 'checked'} : {}) )
-# TODO: Make our own select_box helper with new design, blackjack and bitches!
.group.navform.wat-cf = select_tag :owner_id, options_for_select( Group.can_own_project(current_user) )
%button.button{:type => "submit"} .both
= image_tag("choose.png", :alt => t("layout.save")) -#- if [:new, :create].include? act
= t("layout.save") -# .leftlist
%span.text_button_padding= t("layout.or") -# = f.label :category_id, t("activerecord.attributes.project.category_id"), :class => :label
= link_to t("layout.cancel"), @projects_path, :class => "text_button_padding link_button" -# .rightlist
-# = f.grouped_collection_select :category_id, Category.roots, :children, :name, :id, :name, :include_blank => true
-# .both
.leftlist
= f.label :visibility, t("activerecord.attributes.project.visibility"), :class => :label
.rightlist
=# f.select :visibility, Project::VISIBILITIES
- Project::VISIBILITIES.each do |visibility|
= f.radio_button :visibility, visibility, :class => 'niceRadio'
- if visibility == 'open'
= image_tag("unlock.png")
- else
= image_tag("lock.png")
= t("activerecord.attributes.project.visibilities.#{visibility}")
.both
- if [:edit, :update].include? act
.leftlist
Ветка по умолчанию:
.rightlist
= f.select :default_branch, options_from_collection_for_select(@project.branches, :name, :name, @project.default_branch), :class => 'sel80', :id => 'branch_selector'
.both
- if [:edit, :update].include? act
.leftlist
\ 
.rightlist
.check
%span#niceCheckbox1.niceCheck-main
= f.check_box :is_rpm#, :class => 'niceCheckbox1'
.forcheck
Проект является пакетом
.both
.both
- if [:new, :create].include? act
.leftlist
= f.label :srpm, t("activerecord.attributes.project.srpm"), :class => :label
.rightlist
= f.file_field :srpm, :class => 'file_field'
.both
.leftlist
\ 
.rightlist
= submit_tag t("layout.save"), :class => 'button'
.both

View File

@ -0,0 +1,9 @@
.description-top
.img
%img{:alt => "pic", :src => "/assets/code.png"}/
= text_field_tag :url, git_repo_url(project.git_repo_name), :class => 'name',
:type => 'text',:spellcheck => 'false', :disabled => 'disabled'
.role
чтение и запись
= render :partial => 'projects/branch_select', :locals => {:project => project}
.both

View File

@ -0,0 +1,17 @@
= render :partial => 'projects/submenu'
= render :partial => 'projects/repo_block', :locals => {:project => @project}
.description
%h3= t("layout.projects.about_subheader")
%p
= @project.description
= link_to t('layout.read_more'), '#'
%h3= t("layout.projects.last_commit")
- GitPresenters::CommitAsMessagePresenter.present(@commit, :branch => @branch, :project => @project) do |presenter|
= render :partial => 'shared/feed_message', :locals => {:presenter => presenter, :item_no => 1}
.both
#repo-wrapper
= yield

View File

@ -1,50 +1,67 @@
.block.notice - act = action_name.to_sym
%h3= t("layout.projects.members") - contr = controller_name.to_sym
.content
%p
%b
= "#{t("layout.projects.collaborators")}:"
%ul
- @project.collaborators.each do |user|
%li
- if can? :read, user
= link_to user.name, user_path(user)
- else
= user.name
- if (@project.owner == user)
= '(' + t("layout.owner") + ')'
/%br
-# if can? :update, @project
%p
%b
= "#{t("layout.projects.groups")}:"
%ul
- @project.groups.each do |group|
%li
= link_to group.name, group_path(group)
- if (@project.owner == group)
= '(' + t("layout.owner") + ')'
%br
= link_to t("layout.projects.edit_collaborators"), edit_project_collaborators_path(@project) if can? :manage_collaborators, @project
/ %p %aside
/ %b .admin-preferences
/ = "#{t("layout.projects.groups")}:" %ul
/ %ul - if can? :edit, @project
/ - @project.groups.each do |group| %li{:class => (act == :edit && contr == :projects) ? 'active' : ''}
/ %li = link_to t("layout.projects.edit"), edit_project_path(@project)
/ = link_to group.name, group_path(group) - if can? :manage_collaborators, @project
/ - if (@project.owner == group) %li{:class => (act == :sections && contr == :projects) ? 'active' : ''}
/ = '(' + t("layout.owner") + ')' = link_to t("layout.projects.sections"), sections_project_path(@project)
/ %br - if can? :manage_collaborators, @project
/ = link_to t("layout.projects.add_groups"), '#' #add_collaborators_project_path(@project) %li{:class => (act == :edit && contr == :collaborators) ? 'active' : ''}
= link_to t("layout.projects.edit_collaborators"), edit_project_collaborators_path(@project)
/ .block.notice
/ %h3= t("layout.platforms.current_platform_header") -#.block.notice
/ .content -# %h3= t("layout.projects.members")
/ %p= link_to @platform.name, platform_path(@platform) -# .content
/ -# %p
/ .block.notice -# %b
/ %h3= t("layout.repositories.current_repository_header") -# = "#{t("layout.projects.collaborators")}:"
/ .content -# %ul
/ %p= link_to @repository.name + repository_name_postfix(@platform), platform_repository_path(@platform, @repository) -# - @project.collaborators.each do |user|
-# %li
-# - if can? :read, user
-# = link_to user.name, user_path(user)
-# - else
-# = user.name
-# - if (@project.owner == user)
-# = '(' + t("layout.owner") + ')'
-# /%br
-# -# if can? :update, @project
-# %p
-# %b
-# = "#{t("layout.projects.groups")}:"
-# %ul
-# - @project.groups.each do |group|
-# %li
-# = link_to group.name, group_path(group)
-# - if (@project.owner == group)
-# = '(' + t("layout.owner") + ')'
-# %br
-# = link_to t("layout.projects.edit_collaborators"), edit_project_collaborators_path(@project) if can? :manage_collaborators, @project
-#
-# / %p
-# / %b
-# / = "#{t("layout.projects.groups")}:"
-# / %ul
-# / - @project.groups.each do |group|
-# / %li
-# / = link_to group.name, group_path(group)
-# / - if (@project.owner == group)
-# / = '(' + t("layout.owner") + ')'
-# / %br
-# / = link_to t("layout.projects.add_groups"), '#' #add_collaborators_project_path(@project)
-#
-#/ .block.notice
-#/ %h3= t("layout.platforms.current_platform_header")
-#/ .content
-#/ %p= link_to @platform.name, platform_path(@platform)
-#/
-#/ .block.notice
-#/ %h3= t("layout.repositories.current_repository_header")
-#/ .content
-#/ %p= link_to @repository.name + repository_name_postfix(@platform), platform_repository_path(@platform, @repository)

View File

@ -5,10 +5,11 @@
= @project.name = @project.name
%nav %nav
%ul %ul
%li= link_to t("project_menu.project"), project_path(@project), {:class => (act == :show && contr == :projects) ? 'active' : ''} %li= link_to t("project_menu.project"), project_path(@project), {:class => (act.in?([:show, :edit]) && contr.in?([:trees, :blobs])) ? 'active' : ''}
%li= link_to t("project_menu.commits"), commits_path(@project), {:class => (act == :index && contr == :commits) ? 'active' : ''} %li= link_to t("project_menu.commits"), commits_path(@project), {:class => (act.in?([:index, :show]) && contr == :commits) ? 'active' : ''}
%li= link_to t("project_menu.builds"), project_build_lists_path(@project), {:class => (act == :index && contr == :builds) ? 'active' : ''} - if @project.is_rpm
%li= link_to t("project_menu.tracker"), project_issues_path(@project), {:class => contr == :issues ? 'active' : ''} %li= link_to t("project_menu.builds"), project_build_lists_path(@project), {:class => (act == :index && contr == :builds) ? 'active' : ''}
%li= link_to t("project_menu.tracker"), project_issues_path(@project), {:class => (act == :index && contr == :issues) ? 'active' : ''}
%li= link_to t("project_menu.wiki"), project_wiki_index_path(@project), {:class => contr == :wiki ? 'active' : ''} %li= link_to t("project_menu.wiki"), project_wiki_index_path(@project), {:class => contr == :wiki ? 'active' : ''}
%li= link_to t("project_menu.readme"), "#" #pending %li= link_to t("project_menu.readme"), "#" #pending
%li= link_to t("project_menu.settings"), edit_project_path(@project), {:class => (act == :edit && contr == :projects) ? 'active' : ''} %li= link_to t("project_menu.settings"), edit_project_path(@project), {:class => (act == :edit && contr == :projects) ? 'active' : ''}

View File

@ -1,14 +1,13 @@
.block = render :partial => 'projects/submenu'
.secondary-navigation
%ul.wat-cf
%li.first= link_to t("layout.projects.list"), @projects_path # url_for(get_owner) + "#projects"
%li= link_to t("layout.projects.new"), @new_project_path # new_platform_repository_project_path(@platform, @repository)
%li.active= link_to t("layout.projects.edit"), @edit_project_path
.content = form_for @project, :html => { :class => :form, :multipart => true } do |f|
%h2.title= t("layout.projects.edit_header") = render :partial => "form", :locals => {:f => f}
.inner
= form_for @project, :html => { :class => :form, :multipart => true } do |f| .hr
= render :partial => "form", :locals => {:f => f} .leftside
= t("layout.projects.delete_warning")
.rightside
= link_to t("layout.delete"), project_path(@project), :method => :delete, :confirm => t("layout.projects.confirm_delete"), :class => 'button' if can? :destroy, @project
.both
- content_for :sidebar, render('sidebar') - content_for :sidebar, render('sidebar')

View File

@ -1,15 +1,9 @@
.block = render :partial => 'projects/submenu'
.secondary-navigation
%ul.wat-cf
%li.first= link_to t("layout.projects.list"), @projects_path#url_for(get_owner) + "#projects"
%li.active= link_to t("layout.projects.new"), @new_project_path#new_platform_repository_project_path(@platform, @repository)
-#%li= link_to "git-repo", platform_repository_project_repo_path(@platform, @repository, @project)
-#%li= link_to t("layout.projects.build"), build_platform_repository_project_path(@platform, @repository, @project)
.content %h3.bpadding10
%h2.title= t("layout.projects.new_header") = t("layout.projects.new_header")
.inner
= form_for [get_owner, @project], :html => { :class => :form, :multipart => true } do |f| = form_for [get_owner, @project], :html => { :class => :form, :multipart => true } do |f|
= render :partial => "form", :locals => {:f => f} = render :partial => "form", :locals => {:f => f}
-# content_for :sidebar, render('sidebar') -# content_for :sidebar, render('sidebar')

View File

@ -0,0 +1,56 @@
= render :partial => 'submenu'
- content_for :sidebar do
.admin-preferences
%ul
%li.active
%a{:href => "#"} Основное
%li
%a{:href => "#"} Разделы
%li
%a{:href => "#"} Участники
.leftlist
Описание проекта:
.rightlist
%textarea
.both
.leftlist
Видимость проекта:
.rightlist
%input#myradio1.niceRadio{:checked => "checked", :name => "myradio", :tabindex => "1", :type => "radio"}/
%img{:alt => "public", :src => "pics/unlock.png"}/
Публичный
%input#myradio2.niceRadio{:name => "myradio", :tabindex => "2", :type => "radio"}/
%img{:alt => "private", :src => "pics/lock.png"}/
Приватный
.both
.leftlist
Ветка по умолчанию:
.rightlist
.lineForm
%select#ext.sel80{:name => "ext", :tabindex => "2"}
%option{:selected => "selected", :value => "1000"} Master
%option{:value => "1"} Extend
%option{:value => "2"} Fork4Driver
.both
.leftlist
\&nbsp;
.rightlist
.check
%span#niceCheckbox1.niceCheck-main{:onclick => "changeCheck(this)"}
%input{:name => "ch1", :type => "checkbox"}/
.forcheck
Проект является пакетом
.both
.both
.leftlist
\&nbsp;
.rightlist
%a.button{:href => "#"} Сохранить
.both
.hr
.leftside
Внимание! Удаленный проект восстановлению не подлежит.
.rightside
%a.button{:href => "#"} Удалить
.both

View File

@ -0,0 +1,120 @@
%h3 Файлы проекта
.files
.l
%p#file-name1 rails/actionpack/lib
%p#file-name2.non-view rails/actionpack/lib/Gemfile
#fork-and-edit.r
%a.button{:href => "#"} Fork and edit
.both
#file1
%table#myTable.tablesorter.project{:cellpadding => "0", :cellspacing => "0"}
%thead
%tr
%th.th1
Имя
%th.th2
Дата
%th.th3
Сообщение
%th.th4
Автор сообщения
%tbody
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} app/
%td
%span{:style => "display: none;"}> Dec 31, 2011
31 декабря 2011
%td
Merger issues with Master
%td
santaux
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} bin/
%td
%span{:style => "display: none;"}> Dec 31, 2011
31 декабря 2011
%td
Redo autostart script to start from user
%td
chipiga
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} config/
%td
%span{:style => "display: none;"}> Jan 01, 2012
01 января 2012
%td
Remove some unnessacary comments
%td
latromni
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} db/
%td
%span{:style => "display: none;"}> Jan 02, 2012
02 января 2012
%td
Merger issues with Master
%td
santaux
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} .rspec
%td
%span{:style => "display: none;"}> Jan 04, 2012
04 января 2012
%td
Add pretty view for test listing
%td
santaux
%tr
%td
.pic
%img{:src => "pics/folder.png"}/
.name
%a.files-see{:href => "#"} README
%td
%span{:style => "display: none;"}> Jan 05, 2012
05 января 2012
%td
Initial commit
%td
chipiga
#file2.non-view
.file
.top
.l
100644 | 94 lines (75 sloc) | 2.18kb
.r
%a{:href => "#"} raw
|
%a{:href => "#"} blame
|
%a{:href => "#"} history
%pre{:class => "brush: ruby;"}
:preserve
source 'https//rubygems.org'
gemspec
if ENV[ 'AREL']
gem 'arel', :path => ENV['AREL']
else
gem 'arel'
.both

View File

@ -0,0 +1,30 @@
= render :partial => 'projects/submenu'
= form_for @project, :url => sections_project_path(@project), :method => :post, :html => { :class => :form, :multipart => true } do |f|
.leftside.w25
%span.niceCheck-main{:onclick => "changeCheck(this)"}
= f.check_box :has_issues
.leftside.w420
= t("activerecord.attributes.project.has_issues")
%br
%span{:style => "font-size: 11px;"}
= t("layout.projects.has_issue_description")
.both
.leftside.w25
%span.niceCheck-main{:onclick => "changeCheck(this)"}
= f.check_box :has_wiki, :class => 'niceCheck-main'
.leftside.w420
= t("activerecord.attributes.project.has_wiki")
%br
%span{:style => "font-size: 11px;"}
= t("layout.projects.has_wiki_description")
.both
.padd25
= submit_tag t("layout.save"), :class => 'button'
.both
- content_for :sidebar, render('sidebar')
:javascript
// TODO: Replace this temporary hack by something more true
$('.right').addClass('bigpadding');

View File

@ -1,51 +1,62 @@
.block = render :partial => 'projects/submenu'
.secondary-navigation = render :partial => 'projects/repo_block', :locals => {:project => @project}
%ul.wat-cf
%li.first= link_to t("layout.projects.list"), projects_path
%li= link_to t("layout.projects.new"), new_project_path
%li.active= link_to t("layout.projects.show"), project_path(@project)
%li= link_to t("layout.git.repositories.source"), project_repo_path(@project)
- if can? :write, @project
%li= link_to t("layout.projects.build"), new_project_build_list_path(@project)
%li= link_to t("layout.projects.issues"), project_issues_path(@project)
- if @project.has_wiki
%li= link_to t("layout.projects.wiki"), project_wiki_index_path(@project)
.content .description
.inner %h3= t("layout.projects.about_subheader")
%p %p
%b = @project.description
= t("activerecord.attributes.project.name") = link_to t('layout.read_more'), '#'
\:
= @project.name
%p
%b
= t("activerecord.attributes.project.owner")
\:
= link_to @project.owner.try(:name), url_for(@project.owner)
%p
%b
= t("activerecord.attributes.project.visibility")
\:
= @project.visibility
%p
%b
= t("activerecord.attributes.project.repository")
\:
= git_repo_url @project.git_repo_name
.wat-cf
= link_to image_tag("code.png", :alt => t("layout.edit")) + " " + t("layout.edit"), edit_project_path(@project), :class => "button" if can? :update, @project
= link_to image_tag("x.png", :alt => t("layout.delete")) + " " + t("layout.delete"), project_path(@project), :method => "delete", :class => "button", :confirm => t("layout.projects.confirm_delete") if can? :destroy, @project
= link_to "Fork", fork_project_path(@project), :class => "button", :method => "post", :confirm => t("layout.confirm") if can? :fork, @project
%a{ :name => "build_lists"} %h3= t("layout.projects.last_commit")
.block - GitPresenters::CommitAsMessagePresenter.present(@commit, :branch => @branch) do |presenter|
.secondary-navigation = render :partial => 'shared/feed_message', :locals => {:presenter => presenter, :item_no => 1}
%ul.wat-cf
%li.first.active= link_to t("layout.build_lists.current"), project_path(@project) + "#build_lists"
%li= link_to t("layout.build_lists.all"), project_build_lists_path(@project)
.content %h3= t("layout.projects.files_in_project")
= render :partial => "build_lists/build_lists", :object => @current_build_lists .files
.l
= render :partial => 'git/shared/whereami'
- content_for :sidebar, render('sidebar') #fork-and-edit.r
%a.button{:href => "#"} Fork and edit
.both
#repo-wrapper
%table#myTable.tablesorter.project{:cellpadding => "0", :cellspacing => "0"}
%thead
%tr
%th.th1.header= t("layout.project.filename")
%th.th2.header= t("layout.project.age")
%th.th3= t("layout.project.message")
%th.th4.header= t("layout.project.author")
%tbody
- if @path.present?
%tr
%td
.pic
%img{:src => "/assets/folder.png"}/
.name
= link_to "..", tree_path(@project, @treeish, File.join([@path.dup.encode_to_default, ".."].compact).encode_to_default)
%td== &nbsp;
%td== &nbsp;
%td== &nbsp;
- @project.tree_info(@tree, @treeish, @path).each_pair do |entry, commit|
%tr
%td
- entry_path = File.join([@path.present? ? @path : nil, entry.name].compact).encode_to_default
- if entry.is_a? Grit::Blob
.pic
%img{:src => "/assets/code.png"}/
.name
= link_to(entry.name, blob_path(@project, @treeish, entry_path), :class => 'files-see').encode_to_default
- else
.pic
%img{:src => "/assets/folder.png"}/
.name
= link_to(entry.name, tree_path(@project, @treeish, entry_path), :class => 'files-see').encode_to_default
%td
%span{:style => "display: none;"}= commit.committed_date || commit.authored_date#> Dec 31, 2011
= l(commit.committed_date || commit.authored_date, :format => :short) #31 декабря 2011
%td
= commit.short_message.encode_to_default #Redo autostart script to start from user
%td
= (commit.committer || commit.author).name.encode_to_default #chipiga

View File

@ -0,0 +1,20 @@
.activity
.top
- if presenter.buttons?
%span.buttons= raw presenter.buttons.join(' | ').html_safe
.image
%img{:alt => "avatar", :src => presenter.image}
.text.imaged
%span.name= presenter.header
.both
%span.date= presenter.date
%br/
%span.subject
= presenter.caption
- if presenter.expandable? and presenter.content?
%span.data-expander.collapsed{:id => "expand#{item_no}"} &nbsp;
.both
- if presenter.content?
.fulltext{:class => presenter.expandable? ? "hidden" : '',
:id => presenter.expandable? ? "content-expand#{item_no}" : ''}
= presenter.content

View File

@ -24,6 +24,7 @@ module Rosa
# Custom directories with classes and modules you want to be autoloadable. # Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras) # config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/app/presenters)
# Only load the plugins named here, in the order given (default is alphabetical). # Only load the plugins named here, in the order given (default is alphabetical).
# :all can be used as a placeholder for all plugins not explicitly named. # :all can be used as a placeholder for all plugins not explicitly named.
@ -38,6 +39,7 @@ module Rosa
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
config.i18n.default_locale = :en config.i18n.default_locale = :en
config.action_view.javascript_expansions[:defaults] = %w() config.action_view.javascript_expansions[:defaults] = %w()

View File

@ -22,6 +22,7 @@ Rosa::Application.configure do
# Print deprecation notices to the Rails logger # Print deprecation notices to the Rails logger
config.active_support.deprecation = :log config.active_support.deprecation = :log
#config.active_support.deprecation = false
# Only use best-standards-support built into browsers # Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin config.action_dispatch.best_standards_support = :builtin
@ -30,7 +31,7 @@ Rosa::Application.configure do
config.assets.compress = false config.assets.compress = false
# Expands the lines which load the assets # Expands the lines which load the assets
config.assets.debug = true #config.assets.debug = true
# Raise exception on mass assignment protection for Active Record models # Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict config.active_record.mass_assignment_sanitizer = :strict

View File

@ -1 +1,2 @@
# -*- encoding : utf-8 -*-
require './lib/ext/core/string' require './lib/ext/core/string'

View File

@ -1 +1,2 @@
# -*- encoding : utf-8 -*-
require './lib/gollum1' require './lib/gollum1'

View File

@ -0,0 +1,2 @@
# -*- encoding : utf-8 -*-
require './lib/rosa_presenter/rosa_presenter'

View File

@ -0,0 +1,4 @@
en:
time:
formats:
date_block_format: "%B<br />%d"

View File

@ -0,0 +1,4 @@
ru:
time:
formats:
date_block_format: "%d<br />%B"

View File

@ -224,6 +224,10 @@ en:
edit_collaborators: Edit collaborators edit_collaborators: Edit collaborators
issues: Issues issues: Issues
wiki: Wiki wiki: Wiki
delete_warning: Attention! Deleted project can not be restored!
sections: Sections
has_issue_description: Issues adds lightweight issue tracking tightly integrated with your repository. Add issues to milestones, label issues, and close & reference issues from commit messages.
has_wiki_description: Wikis are the simplest way to let others contribute content. Any user can create and edit pages to use for documentation, examples, support or anything you wish.
collaborators: collaborators:
back_to_proj: Back to project back_to_proj: Back to project
@ -235,6 +239,12 @@ en:
add_role: Add/Remove a role add_role: Add/Remove a role
input_username: Enter an username input_username: Enter an username
input_groupname: Enter a groupname input_groupname: Enter a groupname
members: Members
roles: Roles
role_names:
reader: Reader
writer: Writer
admin: Admin
members: members:
back_to_group: Back to group back_to_group: Back to group
@ -541,6 +551,9 @@ en:
description: Descripton description: Descripton
owner: Owner owner: Owner
visibility: Visibility visibility: Visibility
visibility_types:
open: Open
hidden: Hidden
repository_id: Repository repository_id: Repository
repository: Repository repository: Repository
created_at: Created created_at: Created
@ -548,6 +561,9 @@ en:
has_issues: Tracker on has_issues: Tracker on
has_wiki: Wiki on has_wiki: Wiki on
srpm: Import code from src.rpm srpm: Import code from src.rpm
who_owns:
me: I
group: Group
rpm: rpm:
name: Name name: Name

View File

@ -0,0 +1,7 @@
en:
layout:
read_more: Read more
turned_on: on
turned_off: of
enter_commit_message: Commit message

View File

@ -0,0 +1,7 @@
ru:
layout:
read_more: Читать дальше
turned_on: включены
turned_off: выключены
enter_commit_message: Сопровождающее сообщение

View File

@ -0,0 +1,5 @@
en:
layout:
comments:
has_commented: "adds a note"
notifications_are: "Notifications for new comments are"

View File

@ -0,0 +1,5 @@
ru:
layout:
comments:
has_commented: "оставил комментарий"
notifications_are: "Уведомления о последующих комментариях"

View File

@ -0,0 +1,5 @@
en:
layout:
commits:
subscribe_btn: Enable notifications.
unsubscribe_btn: Disable notifications.

View File

@ -0,0 +1,5 @@
ru:
layout:
commits:
subscribe_btn: Включить уведомления.
unsubscribe_btn: Выключить уведомления.

View File

@ -0,0 +1,6 @@
en:
layout:
messages:
commits:
header_with_branch: "%{committer} add %{commit} into %{branch} branch"
header: "%{committer} add %{commit}"

View File

@ -0,0 +1,6 @@
ru:
layout:
messages:
commits:
header_with_branch: "%{committer} добавил коммит %{commit} в ветку %{branch}"
header: "%{committer} добавил коммит %{commit}"

View File

@ -0,0 +1,14 @@
en:
layout:
projects:
diff_show_header: "%{files} with %{additions} and %{deletions}."
about_subheader: "About project"
last_commit: "Last commit"
filename: File
age: Modification date
message: Message
author: Author
current_branch: Current branch
files_in_project: Files in

View File

@ -0,0 +1,14 @@
ru:
layout:
projects:
diff_show_header: "%{files} с %{additions} и %{deletions}."
about_subheader: "О проекте"
last_commit: "Последний коммит"
filename: Файл
age: Дата модификации
message: Сообщение
author: Автор
current_branch: Текущий бранч
files_in_project: Файлы в

View File

@ -0,0 +1,22 @@
en:
layout:
projects:
commit_files_count:
one: "Showing %{count} file"
other: "Showing %{count} files"
commit_additions_count:
one: "%{count} addition"
other: "%{count} additions"
commit_deletions_count:
one: "%{count} deletion"
other: "%{count} deletions"
inline_additions_count:
one: "%{count} addition"
other: "%{count} additions"
inline_deletions_count:
one: "%{count} deletion"
other: "%{count} deletions"
inline_changes_count:
one: "%{count} change"
other: "%{count} changes"

Some files were not shown because too many files have changed in this diff Show More