#\r
# Git:Blit UI Settings\r
#\r
-siteName = Repositories\r
+siteName =\r
allowAdministration = true\r
repositoriesMessage = Welcome to Git:Blit!<br>A quick and easy way to host your own Git repositories.<br>Built with <a href="http://eclipse.org/jgit">JGit</a>, <a href="http://wicket.apache.org">Wicket</a>, <a href="http://code.google.com/p/google-code-prettify/">google-code-prettify</a>, <a href="http://eclipse.org/jetty">Jetty</a>, <a href="http://www.slf4j.org">SLF4J</a>, <a href="http://logging.apache.org/log4j">Log4j</a>, and <a href="http://jcommander.org">JCommander</a>.\r
\r
+++ /dev/null
-/*\r
- Git:Blit css.\r
-*/\r
-html, body, table, dl, dt, dd, ol, ul, li, form, a, span, tr, th, td, div, em {\r
- font-family: verdana, sans-serif;\r
- font-size: 12px;\r
- line-height: 15px;\r
-}\r
-\r
-body {\r
- width: 980px;\r
- margin: 5px;\r
- background-color: #ffffff;\r
- color: #000000;\r
- margin-right: auto;\r
- margin-left: auto;\r
- margin-top: none;\r
- padding: 0px;\r
-}\r
-\r
-pre, pre.prettyprint, pre.plainprint {\r
- color: black;\r
- font-family: monospace;\r
- font-size:12px;\r
- border:0px;\r
-}\r
-\r
-/* age0: age < 60*60*2 */\r
-.age0 {\r
- color: #009900;\r
- font-style: italic;\r
- font-weight: bold;\r
-}\r
-\r
-/* age1: 60*60*2 <= age < 60*60*24*2 */\r
-.age1 {\r
- color: #009900;\r
- font-style: italic;\r
-}\r
-\r
-/* age2: 60*60*24*2 <= age */\r
-.age2 {\r
- font-style: italic;\r
-}\r
-\r
-\r
-a {\r
- color: #0000cc;\r
-}\r
-\r
-a:hover, a:visited, a:active {\r
- color: #880000;\r
-}\r
-\r
-img.logo {\r
- float: right;\r
- border-width: 0px;\r
-}\r
-\r
-img.activityGraph {\r
- float: right;\r
- border-width: 0px;\r
- padding: 8px;\r
-}\r
-\r
-div.repositories_message {\r
- line-height: inherit;\r
-}\r
-\r
-div.header {\r
- background-color: #D2C3AF;\r
- padding: 3px;\r
- border: 1px solid #808080;\r
-}\r
-\r
-div.header a {\r
- color: black;\r
- text-decoration: none;\r
- font-weight: bold;\r
-}\r
-\r
-div.header a:hover {\r
- text-decoration: underline;\r
-}\r
-\r
-div.pager {\r
- padding: 0px 0px 15px 5px;\r
-}\r
-\r
-div.link {\r
- padding: 2px 5px;\r
- font-family: sans-serif;\r
- font-size: 11px;\r
-}\r
-\r
-div.link span {\r
- font-family: inherit;\r
- font-size: inherit;\r
-}\r
-\r
-div.link a {\r
- font-family: inherit;\r
- font-size: inherit;\r
-}\r
-\r
-div.page_header {\r
- height: 25px;\r
- padding: 5px;\r
- font-family: sans-serif;\r
- font-weight: bold;\r
- font-size: 150%;\r
- color: #bbb;\r
- background-color: #ffffff;\r
-}\r
-\r
-div.page_header span { \r
- font-family: inherit;\r
- font-size: inherit; \r
-}\r
-\r
-div.page_header a {\r
- font-size: inherit; \r
- font-family: inherit;\r
- text-decoration: none;\r
-}\r
-\r
-div.page_header a:visited {\r
- color: #000000;\r
-}\r
-\r
-div.page_header a:hover {\r
- color: E66C2C;\r
- text-decoration: underline;\r
-}\r
-\r
-div.page_footer {\r
- height: 17px;\r
- color: black;\r
- background-color: #ffffff;\r
- padding: 5px;\r
- border-top: 1px solid #bbb;\r
- font-style: italic;\r
-}\r
-\r
-div.page_nav {\r
- color: #ddd;\r
- background-color: #000070;\r
- padding: 5px;\r
-}\r
-\r
-div.page_nav a {\r
- color: yellow;\r
- text-decoration: none;\r
-}\r
-\r
-div.page_nav a:hover { \r
- text-decoration: underline;\r
-}\r
-\r
-div.page_nav2 {\r
- padding: 2px 5px 7px 5px; \r
-}\r
-\r
-.repositories_message {\r
- border: solid #bbb;\r
- border-width: 0px 0px 1px;\r
- padding: 8px;\r
-}\r
-\r
-div.page_path {\r
- padding: 8px;\r
- font-weight: bold;\r
- border: solid #bbb;\r
- border-width: 0px 0px 1px;\r
-}\r
-\r
-div.commit_message {\r
- padding: 8px;\r
- border: solid #bbb;\r
- border-width: 1px 0px 1px;\r
-}\r
-\r
-div.bug_open, span.bug_open {\r
- padding: 2px;\r
- background-color: #800000;\r
- color: white; \r
- text-align: center;\r
-}\r
-\r
-div.bug_resolved, span.bug_resolved {\r
- padding: 2px;\r
- background-color: #008000;\r
- color: white;\r
- text-align: center;\r
-}\r
-\r
-div.bug_invalid, span.bug_invalid {\r
- padding: 2px;\r
- background-color: gray;\r
- text-align: center;\r
-}\r
-\r
-div.bug_hold, span.bug_hold {\r
- padding: 2px;\r
- background-color: orange;\r
- text-align: center;\r
-}\r
-\r
-div.diff {\r
- font-family: monospace;\r
-}\r
-\r
-div.diff.header {\r
- -moz-border-bottom-colors: none;\r
- -moz-border-image: none;\r
- -moz-border-left-colors: none;\r
- -moz-border-right-colors: none;\r
- -moz-border-top-colors: none;\r
- background-color: #EDECE6;\r
- border-color: #D9D8D1;\r
- border-style: solid;\r
- border-width: 1px 0;\r
- font-weight: bold;\r
- margin-top: 4px;\r
- padding: 4px 0 2px;\r
-}\r
-\r
-div.diff.extended_header {\r
- background-color: #F6F5EE;\r
- padding: 2px 0;\r
- font-family: inherit;\r
-}\r
-\r
-div.diff.add {\r
- color: #008800;\r
- font-family: inherit;\r
-}\r
-\r
-div.diff.remove {\r
- color: #cc0000;\r
- font-family: inherit;\r
-}\r
-\r
-div.diff.unchanged {\r
- color: inherit;\r
- font-family: inherit;\r
-}\r
-\r
-div.diff.hunk_header {\r
- -moz-border-bottom-colors: none;\r
- -moz-border-image: none;\r
- -moz-border-left-colors: none;\r
- -moz-border-right-colors: none;\r
- -moz-border-top-colors: none;\r
- border-color: #FFE0FF;\r
- border-style: dotted;\r
- border-width: 1px 0 0;\r
- margin-top: 2px;\r
- font-family: inherit;\r
-}\r
-\r
-span.diff.hunk_info {\r
- background-color: #FFEEFF; \r
- color: #990099;\r
- font-family: inherit;\r
-}\r
-\r
-span.diff.hunk_section { \r
- color: #AA22AA;\r
- font-family: inherit;\r
-}\r
-\r
-a.list {\r
- text-decoration: none;\r
- color: #000000;\r
-}\r
-\r
-a.list:hover {\r
- text-decoration: underline;\r
- color: #880000;\r
-}\r
-\r
-table {\r
- border-spacing: 0px;\r
-}\r
-\r
-th {\r
- padding: 2px 5px;\r
- font-size: 100%;\r
- text-align: left;\r
-}\r
-\r
-table.plain {\r
- padding: 8px;\r
-}\r
-\r
-table.pretty, table.repositories {\r
- margin-top:5px;\r
- margin-bottom:5px;\r
- border-spacing: 0px;\r
- border-top: 1px solid #bbb;\r
- border-left: 1px solid #bbb;\r
- border-right: 1px solid #bbb; \r
-}\r
-\r
-table.repositories {\r
- width:100%; \r
-}\r
-\r
-table.repositories th {\r
- background-color:#D2C3AF;\r
- padding: 4px;\r
- border-bottom: 1px solid #808080;\r
-}\r
-\r
-table.repositories td {\r
- padding: 4px;\r
-}\r
-\r
-table.repositories th a {\r
- color:black;/*#ddd;*/\r
- text-decoration: none;\r
- font-weight: normal;\r
-}\r
-\r
-table.repositories th a:hover {\r
- text-decoration: underline;\r
-}\r
-\r
-table.repositories th.wicket_orderDown a, table.repositories th.wicket_orderUp a {\r
- color: black;\r
- font-weight: bold;\r
-}\r
-\r
-tr th a { padding-right: 15px; background-position: right; background-repeat:no-repeat; }\r
-tr th.wicket_orderDown a {background-image: url(arrow_down.png); }\r
-tr th.wicket_orderUp a { background-image: url(arrow_up.png); }\r
-tr th.wicket_orderNone a { background-image: url(arrow_off.png); }\r
-\r
-tr.light {\r
- background-color: #ffffff;\r
-}\r
-\r
-tr.light td {\r
- border-bottom: 1px solid #bbb; \r
-}\r
-\r
-tr.dark {\r
- background-color: #faf8dc;\r
- border-bottom: 1px solid #bbb; \r
-}\r
-\r
-tr.dark td {\r
- border-bottom: 1px solid #bbb; \r
-}\r
-\r
-/* currently both use the same, but it can change */\r
-tr.light:hover,\r
-tr.dark:hover {\r
- /*background-color: #0099b7;*/\r
- background-color: #000070;\r
- color: white;\r
-}\r
-\r
-tr.light:hover a,\r
-tr.dark:hover a {\r
- color: white; \r
-}\r
-\r
-td {\r
- padding-left: 7px;\r
- padding-right: 7px;\r
-}\r
-\r
-td.author {\r
- font-style: italic;\r
-}\r
-\r
-td.date {\r
- font-style: italic;\r
- width:90px;\r
-}\r
-\r
-td.sha1, td.sha1 span {\r
- font-family: monospace;\r
- font-size: 13px;\r
-}\r
-\r
-td.mode {\r
- font-family: monospace;\r
- width:90px;\r
- padding-right:15px;\r
-}\r
-\r
-td.size {\r
- text-align: right;\r
- width:100px; \r
- padding-right:15px;\r
-}\r
-\r
-td.rightAlign {\r
- text-align: right;\r
-}\r
-\r
-span.refs span {\r
- padding: 0px 4px;\r
- font-family: sans-serif;\r
- font-size: 70%;\r
- font-weight: normal;\r
- border: 1px solid;\r
- background-color: #ffaaff;\r
- border-color: #ffccff #ff00ee #ff00ee #ffccff;\r
- color: black;\r
-}\r
-\r
-span.refs span a {\r
- text-decoration: none;\r
- color: inherit;\r
-}\r
-\r
-span.refs span a:hover {\r
- text-decoration: underline;\r
-}\r
-\r
-span.refs span.indirect {\r
- font-style: italic;\r
-}\r
-\r
-span.refs span.ref {\r
- background-color: #aaaaff;\r
- border-color: #ccccff #0033cc #0033cc #ccccff;\r
-}\r
-\r
-span.refs span.tag {\r
- background-color: #ffffaa;\r
- border-color: #ffffcc #ffee00 #ffee00 #ffffcc;\r
-}\r
-\r
-span.refs span.head {\r
- background-color: #aaffaa;\r
- border-color: #ccffcc #00cc33 #00cc33 #ccffcc;\r
-}
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
-null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \t\r\n\f]+/,null," \t\r\n\u000c"]],[["str",/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],["str",/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],["kwd",/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
-["com",/^(?:<!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#(?:[0-9a-f]{3}){1,2}/i],["pln",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],["pun",/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^\)\"\']+/]]),["css-str"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\u000b\u000c\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,
-null],["pln",/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],["pun",/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),["hs"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(/,null,"("],["clo",/^\)/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
-null],["lit",/^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["cl","el","lisp","scm"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],["str",/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
-["pln",/^[a-z_]\w*/i],["pun",/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),["lua"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
-["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.sourceDecorator({keywords:"bool bytes default double enum extend extensions false fixed32 fixed64 float group import int32 int64 max message option optional package repeated required returns rpc service sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 uint64",cStyleComments:true}),["proto"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,null,'"'],["lit",/^`(?:[^\r\n\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],["lit",/^'[a-zA-Z_$][\w$]*(?!['$\w])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
-["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],["typ",/^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],["pln",/^[$a-zA-Z_][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],["kwd",/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,
-null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^[a-z_][\w-]*/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),["sql"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,
-null],["com",/^REM[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb","vbs"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
-null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
-["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t \xA0a-gi-z0-9]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[=*~\^\[\]]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],["lang-",/^\{\{\{([\s\S]+?)\}\}\}/],["lang-",/^`([^\r\n`]+)`/],["str",/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]]),["wiki"]);
-PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"])
\ No newline at end of file
+++ /dev/null
-PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^\w+:[ \r\n]/],["pln",/^\w+/]]),
-["yaml","yml"])
\ No newline at end of file
+++ /dev/null
-.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun{color:#660}.pln{color:#000}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec{color:#606}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}
\ No newline at end of file
+++ /dev/null
-window.PR_SHOULD_USE_CONTINUATION=true;window.PR_TAB_WIDTH=8;window.PR_normalizedHtml=window.PR=window.prettyPrintOne=window.prettyPrint=void 0;window._pr_isIE6=function(){var y=navigator&&navigator.userAgent&&navigator.userAgent.match(/\bMSIE ([678])\./);y=y?+y[1]:false;window._pr_isIE6=function(){return y};return y};
-(function(){function y(b){return b.replace(L,"&").replace(M,"<").replace(N,">")}function H(b,f,i){switch(b.nodeType){case 1:var o=b.tagName.toLowerCase();f.push("<",o);var l=b.attributes,n=l.length;if(n){if(i){for(var r=[],j=n;--j>=0;)r[j]=l[j];r.sort(function(q,m){return q.name<m.name?-1:q.name===m.name?0:1});l=r}for(j=0;j<n;++j){r=l[j];r.specified&&f.push(" ",r.name.toLowerCase(),'="',r.value.replace(L,"&").replace(M,"<").replace(N,">").replace(X,"""),'"')}}f.push(">");
-for(l=b.firstChild;l;l=l.nextSibling)H(l,f,i);if(b.firstChild||!/^(?:br|link|img)$/.test(o))f.push("</",o,">");break;case 3:case 4:f.push(y(b.nodeValue));break}}function O(b){function f(c){if(c.charAt(0)!=="\\")return c.charCodeAt(0);switch(c.charAt(1)){case "b":return 8;case "t":return 9;case "n":return 10;case "v":return 11;case "f":return 12;case "r":return 13;case "u":case "x":return parseInt(c.substring(2),16)||c.charCodeAt(1);case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":return parseInt(c.substring(1),
-8);default:return c.charCodeAt(1)}}function i(c){if(c<32)return(c<16?"\\x0":"\\x")+c.toString(16);c=String.fromCharCode(c);if(c==="\\"||c==="-"||c==="["||c==="]")c="\\"+c;return c}function o(c){var d=c.substring(1,c.length-1).match(RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));c=[];for(var a=[],k=d[0]==="^",e=k?1:0,h=d.length;e<h;++e){var g=d[e];switch(g){case "\\B":case "\\b":case "\\D":case "\\d":case "\\S":case "\\s":case "\\W":case "\\w":c.push(g);
-continue}g=f(g);var s;if(e+2<h&&"-"===d[e+1]){s=f(d[e+2]);e+=2}else s=g;a.push([g,s]);if(!(s<65||g>122)){s<65||g>90||a.push([Math.max(65,g)|32,Math.min(s,90)|32]);s<97||g>122||a.push([Math.max(97,g)&-33,Math.min(s,122)&-33])}}a.sort(function(v,w){return v[0]-w[0]||w[1]-v[1]});d=[];g=[NaN,NaN];for(e=0;e<a.length;++e){h=a[e];if(h[0]<=g[1]+1)g[1]=Math.max(g[1],h[1]);else d.push(g=h)}a=["["];k&&a.push("^");a.push.apply(a,c);for(e=0;e<d.length;++e){h=d[e];a.push(i(h[0]));if(h[1]>h[0]){h[1]+1>h[0]&&a.push("-");
-a.push(i(h[1]))}}a.push("]");return a.join("")}function l(c){for(var d=c.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),a=d.length,k=[],e=0,h=0;e<a;++e){var g=d[e];if(g==="(")++h;else if("\\"===g.charAt(0))if((g=+g.substring(1))&&g<=h)k[g]=-1}for(e=1;e<k.length;++e)if(-1===k[e])k[e]=++n;for(h=e=0;e<a;++e){g=d[e];if(g==="("){++h;if(k[h]===undefined)d[e]="(?:"}else if("\\"===
-g.charAt(0))if((g=+g.substring(1))&&g<=h)d[e]="\\"+k[h]}for(h=e=0;e<a;++e)if("^"===d[e]&&"^"!==d[e+1])d[e]="";if(c.ignoreCase&&r)for(e=0;e<a;++e){g=d[e];c=g.charAt(0);if(g.length>=2&&c==="[")d[e]=o(g);else if(c!=="\\")d[e]=g.replace(/[a-zA-Z]/g,function(s){s=s.charCodeAt(0);return"["+String.fromCharCode(s&-33,s|32)+"]"})}return d.join("")}for(var n=0,r=false,j=false,q=0,m=b.length;q<m;++q){var t=b[q];if(t.ignoreCase)j=true;else if(/[a-z]/i.test(t.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,
-""))){r=true;j=false;break}}var p=[];q=0;for(m=b.length;q<m;++q){t=b[q];if(t.global||t.multiline)throw Error(""+t);p.push("(?:"+l(t)+")")}return RegExp(p.join("|"),j?"gi":"g")}function Y(b){var f=0;return function(i){for(var o=null,l=0,n=0,r=i.length;n<r;++n)switch(i.charAt(n)){case "\t":o||(o=[]);o.push(i.substring(l,n));l=b-f%b;for(f+=l;l>=0;l-=16)o.push(" ".substring(0,l));l=n+1;break;case "\n":f=0;break;default:++f}if(!o)return i;o.push(i.substring(l));return o.join("")}}function I(b,
-f,i,o){if(f){b={source:f,c:b};i(b);o.push.apply(o,b.d)}}function B(b,f){var i={},o;(function(){for(var r=b.concat(f),j=[],q={},m=0,t=r.length;m<t;++m){var p=r[m],c=p[3];if(c)for(var d=c.length;--d>=0;)i[c.charAt(d)]=p;p=p[1];c=""+p;if(!q.hasOwnProperty(c)){j.push(p);q[c]=null}}j.push(/[\0-\uffff]/);o=O(j)})();var l=f.length;function n(r){for(var j=r.c,q=[j,z],m=0,t=r.source.match(o)||[],p={},c=0,d=t.length;c<d;++c){var a=t[c],k=p[a],e=void 0,h;if(typeof k==="string")h=false;else{var g=i[a.charAt(0)];
-if(g){e=a.match(g[1]);k=g[0]}else{for(h=0;h<l;++h){g=f[h];if(e=a.match(g[1])){k=g[0];break}}e||(k=z)}if((h=k.length>=5&&"lang-"===k.substring(0,5))&&!(e&&typeof e[1]==="string")){h=false;k=P}h||(p[a]=k)}g=m;m+=a.length;if(h){h=e[1];var s=a.indexOf(h),v=s+h.length;if(e[2]){v=a.length-e[2].length;s=v-h.length}k=k.substring(5);I(j+g,a.substring(0,s),n,q);I(j+g+s,h,Q(k,h),q);I(j+g+v,a.substring(v),n,q)}else q.push(j+g,k)}r.d=q}return n}function x(b){var f=[],i=[];if(b.tripleQuotedStrings)f.push([A,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
-null,"'\""]);else b.multiLineStrings?f.push([A,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):f.push([A,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);b.verbatimStrings&&i.push([A,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);if(b.hashComments)if(b.cStyleComments){f.push([C,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]);i.push([A,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
-null])}else f.push([C,/^#[^\r\n]*/,null,"#"]);if(b.cStyleComments){i.push([C,/^\/\/[^\r\n]*/,null]);i.push([C,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}b.regexLiterals&&i.push(["lang-regex",RegExp("^"+Z+"(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)")]);b=b.keywords.replace(/^\s+|\s+$/g,"");b.length&&i.push([R,RegExp("^(?:"+b.replace(/\s+/g,"|")+")\\b"),null]);f.push([z,/^\s+/,null," \r\n\t\u00a0"]);i.push([J,/^@[a-z_$][a-z_$@0-9]*/i,null],[S,/^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/,
-null],[z,/^[a-z_$][a-z_$@0-9]*/i,null],[J,/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],[E,/^.[^\s\w\.$@\'\"\`\/\#]*/,null]);return B(f,i)}function $(b){function f(D){if(D>r){if(j&&j!==q){n.push("</span>");j=null}if(!j&&q){j=q;n.push('<span class="',j,'">')}var T=y(p(i.substring(r,D))).replace(e?d:c,"$1 ");e=k.test(T);n.push(T.replace(a,s));r=D}}var i=b.source,o=b.g,l=b.d,n=[],r=0,j=null,q=null,m=0,t=0,p=Y(window.PR_TAB_WIDTH),c=/([\r\n ]) /g,
-d=/(^| ) /gm,a=/\r\n?|\n/g,k=/[ \r\n]$/,e=true,h=window._pr_isIE6();h=h?b.b.tagName==="PRE"?h===6?" \r\n":h===7?" <br>\r":" \r":" <br />":"<br />";var g=b.b.className.match(/\blinenums\b(?::(\d+))?/),s;if(g){for(var v=[],w=0;w<10;++w)v[w]=h+'</li><li class="L'+w+'">';var F=g[1]&&g[1].length?g[1]-1:0;n.push('<ol class="linenums"><li class="L',F%10,'"');F&&n.push(' value="',F+1,'"');n.push(">");s=function(){var D=v[++F%10];return j?"</span>"+D+'<span class="'+j+'">':D}}else s=h;
-for(;;)if(m<o.length?t<l.length?o[m]<=l[t]:true:false){f(o[m]);if(j){n.push("</span>");j=null}n.push(o[m+1]);m+=2}else if(t<l.length){f(l[t]);q=l[t+1];t+=2}else break;f(i.length);j&&n.push("</span>");g&&n.push("</li></ol>");b.a=n.join("")}function u(b,f){for(var i=f.length;--i>=0;){var o=f[i];if(G.hasOwnProperty(o))"console"in window&&console.warn("cannot override language handler %s",o);else G[o]=b}}function Q(b,f){b&&G.hasOwnProperty(b)||(b=/^\s*</.test(f)?"default-markup":"default-code");return G[b]}
-function U(b){var f=b.f,i=b.e;b.a=f;try{var o,l=f.match(aa);f=[];var n=0,r=[];if(l)for(var j=0,q=l.length;j<q;++j){var m=l[j];if(m.length>1&&m.charAt(0)==="<"){if(!ba.test(m))if(ca.test(m)){f.push(m.substring(9,m.length-3));n+=m.length-12}else if(da.test(m)){f.push("\n");++n}else if(m.indexOf(V)>=0&&m.replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,' $1="$2$3$4"').match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/)){var t=m.match(W)[2],p=1,c;c=j+1;a:for(;c<q;++c){var d=l[c].match(W);if(d&&
-d[2]===t)if(d[1]==="/"){if(--p===0)break a}else++p}if(c<q){r.push(n,l.slice(j,c+1).join(""));j=c}else r.push(n,m)}else r.push(n,m)}else{var a;p=m;var k=p.indexOf("&");if(k<0)a=p;else{for(--k;(k=p.indexOf("&#",k+1))>=0;){var e=p.indexOf(";",k);if(e>=0){var h=p.substring(k+3,e),g=10;if(h&&h.charAt(0)==="x"){h=h.substring(1);g=16}var s=parseInt(h,g);isNaN(s)||(p=p.substring(0,k)+String.fromCharCode(s)+p.substring(e+1))}}a=p.replace(ea,"<").replace(fa,">").replace(ga,"'").replace(ha,'"').replace(ia," ").replace(ja,
-"&")}f.push(a);n+=a.length}}o={source:f.join(""),h:r};var v=o.source;b.source=v;b.c=0;b.g=o.h;Q(i,v)(b);$(b)}catch(w){if("console"in window)console.log(w&&w.stack?w.stack:w)}}var A="str",R="kwd",C="com",S="typ",J="lit",E="pun",z="pln",P="src",V="nocode",Z=function(){for(var b=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=",
-"~","break","case","continue","delete","do","else","finally","instanceof","return","throw","try","typeof"],f="(?:^^|[+-]",i=0;i<b.length;++i)f+="|"+b[i].replace(/([^=<>:&a-z])/g,"\\$1");f+=")\\s*";return f}(),L=/&/g,M=/</g,N=/>/g,X=/\"/g,ea=/</g,fa=/>/g,ga=/'/g,ha=/"/g,ja=/&/g,ia=/ /g,ka=/[\r\n]/g,K=null,aa=RegExp("[^<]+|<!--[\\s\\S]*?--\>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>|</?[a-zA-Z](?:[^>\"']|'[^']*'|\"[^\"]*\")*>|<","g"),ba=/^<\!--/,ca=/^<!\[CDATA\[/,da=/^<br\b/i,W=/^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/,
-la=x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename using virtual wchar_t where break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof debugger eval export function get null set undefined var with Infinity NaN caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END break continue do else for if return while case done elif esac eval fi function in local set then until ",
-hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true}),G={};u(la,["default-code"]);u(B([],[[z,/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],[C,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[E,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup",
-"htm","html","mxml","xhtml","xml","xsl"]);u(B([[z,/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[E,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],
-["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);u(B([],[["atv",/^[\s\S]+/]]),["uq.val"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename using virtual wchar_t where ",
-hashComments:true,cStyleComments:true}),["c","cc","cpp","cxx","cyc","m"]);u(x({keywords:"null true false"}),["json"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params partial readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ",
-hashComments:true,cStyleComments:true,verbatimStrings:true}),["cs"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof abstract boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",
-cStyleComments:true}),["java"]);u(x({keywords:"break continue do else for if return while case done elif esac eval fi function in local set then until ",hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);u(x({keywords:"break continue do else for if return while and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);
-u(x({keywords:"caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);u(x({keywords:"break continue do else for if return while alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ",hashComments:true,
-multiLineStrings:true,regexLiterals:true}),["rb"]);u(x({keywords:"break continue do else for if return while auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile catch class delete false import new operator private protected public this throw true try typeof debugger eval export function get null set undefined var with Infinity NaN ",cStyleComments:true,regexLiterals:true}),["js"]);u(B([],[[A,/^[\s\S]+/]]),
-["regex"]);window.PR_normalizedHtml=H;window.prettyPrintOne=function(b,f){var i={f:b,e:f};U(i);return i.a};window.prettyPrint=function(b){function f(){for(var t=window.PR_SHOULD_USE_CONTINUATION?j.now()+250:Infinity;q<o.length&&j.now()<t;q++){var p=o[q];if(p.className&&p.className.indexOf("prettyprint")>=0){var c=p.className.match(/\blang-(\w+)\b/);if(c)c=c[1];for(var d=false,a=p.parentNode;a;a=a.parentNode)if((a.tagName==="pre"||a.tagName==="code"||a.tagName==="xmp")&&a.className&&a.className.indexOf("prettyprint")>=
-0){d=true;break}if(!d){a=p;if(null===K){d=document.createElement("PRE");d.appendChild(document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));K=!/</.test(d.innerHTML)}if(K){d=a.innerHTML;if("XMP"===a.tagName)d=y(d);else{a=a;if("PRE"===a.tagName)a=true;else if(ka.test(d)){var k="";if(a.currentStyle)k=a.currentStyle.whiteSpace;else if(window.getComputedStyle)k=window.getComputedStyle(a,null).whiteSpace;a=!k||k==="pre"}else a=true;a||(d=d.replace(/(<br\s*\/?>)[\r\n]+/g,"$1").replace(/(?:[\r\n]+[ \t]*)+/g,
-" "))}d=d}else{d=[];for(a=a.firstChild;a;a=a.nextSibling)H(a,d);d=d.join("")}d=d.replace(/(?:\r\n?|\n)$/,"");m={f:d,e:c,b:p};U(m);if(p=m.a){c=m.b;if("XMP"===c.tagName){d=document.createElement("PRE");for(a=0;a<c.attributes.length;++a){k=c.attributes[a];if(k.specified)if(k.name.toLowerCase()==="class")d.className=k.value;else d.setAttribute(k.name,k.value)}d.innerHTML=p;c.parentNode.replaceChild(d,c)}else c.innerHTML=p}}}}if(q<o.length)setTimeout(f,250);else b&&b()}for(var i=[document.getElementsByTagName("pre"),
-document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],o=[],l=0;l<i.length;++l)for(var n=0,r=i[l].length;n<r;++n)o.push(i[l][n]);i=null;var j=Date;j.now||(j={now:function(){return(new Date).getTime()}});var q=0,m;f()};window.PR={combinePrefixPatterns:O,createSimpleLexer:B,registerLangHandler:u,sourceDecorator:x,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:C,PR_DECLARATION:"dec",PR_KEYWORD:R,PR_LITERAL:J,PR_NOCODE:V,PR_PLAIN:z,PR_PUNCTUATION:E,PR_SOURCE:P,PR_STRING:A,
-PR_TAG:"tag",PR_TYPE:S}})()
\ No newline at end of file
\r
public final static String NAME = "Git:Blit";\r
\r
- public final static String VERSION = "0.11.3";\r
+ public final static String VERSION = "0.0.1";\r
\r
- public static String getRunningVersion() {\r
+ public static String getGitBlitVersion() {\r
return NAME + " v" + VERSION;\r
}\r
+ \r
+ public static String getJGitVersion() {\r
+ return "JGit 0.11.3";\r
+ }\r
+\r
+ public static String getRunningVersion() {\r
+ return getGitBlitVersion();\r
+ }\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<!-- Head with Wicket-controlled resources in this package -->\r
<wicket:head>\r
<title wicket:id="title">[page title]</title>\r
public BasePage(PageParameters params) {\r
super(params);\r
}\r
- \r
+ \r
protected void setupPage(String repositoryName, String pageName) {\r
if (repositoryName != null && repositoryName.trim().length() > 0) {\r
add(new Label("title", getServerName() + " - " + repositoryName));\r
add(new Label("title", getServerName()));\r
}\r
// header\r
- add(new Label("siteName", StoredSettings.getString("siteName", Constants.NAME)));\r
+ String siteName = StoredSettings.getString("siteName", Constants.NAME);\r
+ if (siteName == null || siteName.trim().length() == 0) {\r
+ siteName = Constants.NAME;\r
+ }\r
+ add(new Label("siteName", siteName));\r
add(new LinkPanel("repositoryName", null, repositoryName, SummaryPage.class, new PageParameters("p=" + repositoryName)));\r
add(new Label("pageName", pageName));\r
\r
--- /dev/null
+gb.repository = repository\r
+gb.owner = owner\r
+gb.description = description\r
+gb.lastChange = last change\r
+gb.refs = refs\r
+gb.tag = tag\r
+gb.tags = tags\r
+gb.author = author\r
+gb.committer = committer\r
+gb.commit = commit\r
+gb.tree = tree\r
+gb.parent = parent\r
+gb.url = URL\r
+gb.history = history\r
+gb.raw = raw\r
+gb.object = object\r
+gb.ticketId = ticket id\r
+gb.ticketAssigned = assigned\r
+gb.ticketOpenDate = open date\r
+gb.ticketState = state\r
+gb.ticketComments = comments\r
+gb.view = view\r
+gb.local = local\r
+gb.remote = remote\r
+gb.branches = branches\r
+gb.patch = patch\r
+gb.diff = diff\r
+gb.shortlog = shortlog\r
+gb.more = more\r
+gb.allTags = all tags\r
+gb.allBranches = all branches\r
+gb.summary = summary\r
+gb.ticket = ticket\r
+gb.newRepository = new repository\r
+gb.newUser = new user\r
+gb.commitdiff = commitdiff\r
+gb.ticgit = ticgit
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en">\r
<wicket:panel>\r
-<a href="#" wicket:id="link"><span wicket:id="label">link</span></a>\r
+<a href="#" wicket:id="link"><span wicket:id="label">[link]</span></a>\r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket;\r
\r
-import org.apache.wicket.AttributeModifier;\r
import org.apache.wicket.PageParameters;\r
+import org.apache.wicket.behavior.SimpleAttributeModifier;\r
import org.apache.wicket.markup.html.WebPage;\r
import org.apache.wicket.markup.html.basic.Label;\r
import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
import org.apache.wicket.markup.html.link.Link;\r
import org.apache.wicket.markup.html.panel.Panel;\r
-import org.apache.wicket.model.AbstractReadOnlyModel;\r
import org.apache.wicket.model.IModel;\r
import org.apache.wicket.model.Model;\r
\r
\r
private static final long serialVersionUID = 1L;\r
\r
- private IModel<String> labelModel = new Model<String>();\r
+ private final IModel<String> labelModel;\r
\r
- @SuppressWarnings({ "unchecked", "rawtypes" })\r
- public LinkPanel(String wicketId, final String linkCssClass, String label, Class<? extends WebPage> clazz, PageParameters parameters) {\r
+ public LinkPanel(String wicketId, String linkCssClass, String label, Class<? extends WebPage> clazz, PageParameters parameters) {\r
+ this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters);\r
+ }\r
+\r
+ public LinkPanel(String wicketId, String linkCssClass, IModel<String> model, Class<? extends WebPage> clazz, PageParameters parameters) {\r
super(wicketId);\r
- Link<?> link = null;\r
+ this.labelModel = model;\r
+ Link<Void> link = null;\r
if (parameters == null) {\r
- link = new BookmarkablePageLink("link", clazz);\r
+ link = new BookmarkablePageLink<Void>("link", clazz);\r
} else {\r
- link = new BookmarkablePageLink("link", clazz, parameters);\r
+ link = new BookmarkablePageLink<Void>("link", clazz, parameters);\r
}\r
if (linkCssClass != null) {\r
- link.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {\r
- private static final long serialVersionUID = 1L;\r
-\r
- @Override\r
- public String getObject() {\r
- return linkCssClass;\r
- }\r
- }));\r
- }\r
- labelModel.setObject(label);\r
+ link.add(new SimpleAttributeModifier("class", linkCssClass));\r
+ } \r
link.add(new Label("label", labelModel));\r
add(link);\r
}\r
\r
Repository r = getRepository();\r
\r
- add(new PageLinksPanel("pageLinks", r, repositoryName, getPageName()));\r
+ // setup the page links and disable this page's link\r
+ PageLinksPanel pageLinks = new PageLinksPanel("pageLinks", r, repositoryName, getPageName());\r
+ add(pageLinks);\r
+ pageLinks.disablePageLink(getPageName());\r
+\r
setStatelessHint(true);\r
}\r
\r
}\r
add(new Label(wicketId, html).setEscapeModelStrings(false));\r
}\r
- \r
+\r
protected abstract String getPageName();\r
\r
- protected void addFooter() {\r
- r.close();\r
+ @Override\r
+ protected void onBeforeRender() {\r
+ // dispose of repository object\r
+ if (r != null) {\r
+ r.close();\r
+ r = null;\r
+ }\r
+ // setup page header and footer\r
setupPage(repositoryName, "/ " + getPageName());\r
+ super.onBeforeRender();\r
}\r
\r
protected PageParameters newRepositoryParameter() {\r
package com.gitblit.wicket;\r
\r
+import java.util.List;\r
+\r
import org.apache.wicket.Component;\r
import org.apache.wicket.behavior.SimpleAttributeModifier;\r
\r
public static String breakLines(String string) {\r
return string.replace("\r", "<br/>").replace("\n", "<br/>");\r
}\r
+ \r
+ public static void setTicketCssClass(Component container, String state) {\r
+ String css = null;\r
+ if (state.equals("open")) {\r
+ css = "bug_open";\r
+ } else if (state.equals("hold")) {\r
+ css = "bug_hold";\r
+ } else if (state.equals("resolved")) {\r
+ css = "bug_resolved";\r
+ } else if (state.equals("invalid")) {\r
+ css = "bug_invalid";\r
+ }\r
+ if (css != null) {\r
+ setCssClass(container, css);\r
+ }\r
+ }\r
+ \r
+ public static String flattenStrings(List<String> values) {\r
+ StringBuilder sb = new StringBuilder();\r
+ for (String value : values) {\r
+ sb.append(value).append(" ");\r
+ }\r
+ return sb.toString().trim();\r
+ }\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
-\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en">\r
+ \r
<!-- contribute google-code-prettify resources to the page header -->\r
<wicket:head>\r
<wicket:link>\r
RevCommit commit = JGitUtils.getCommit(r, commitId);\r
\r
// blob page links\r
- add(new Label("historyLink", "history"));\r
- add(new Label("rawLink", "raw"));\r
+ add(new Label("historyLink", getString("gb.history")));\r
+ add(new Label("rawLink", getString("gb.raw")));\r
add(new Label("headLink", "HEAD"));\r
\r
add(new LinkPanel("shortlog", "title", commit.getShortMessage(), CommitPage.class, newCommitParameter()));\r
WicketUtils.setCssClass(blobLabel, "plainprint");\r
add(blobLabel);\r
}\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "view";\r
+ return getString("gb.view");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
item.add(new LinkPanel("branchName", "list name", entry.getDisplayName(), ShortLogPage.class, newCommitParameter(entry.getName())));\r
\r
boolean remote = entry.getName().startsWith(Constants.R_REMOTES);\r
- item.add(new Label("branchType", remote ? "remote":"local"));\r
+ item.add(new Label("branchType", remote ? getString("gb.remote"):getString("gb.local")));\r
\r
item.add(new BranchLinksPanel("branchLinks", repositoryName, entry));\r
\r
}\r
};\r
add(branchView);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "branches";\r
+ return getString("gb.branches");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
\r
<!-- commit info -->\r
<table class="plain">\r
- <tr><th>refs</th><td><div wicket:id="refsPanel">[references]</div></td></tr>\r
- <tr><th>author</th><td><span wicket:id="commitAuthor">[author</span></td></tr>\r
+ <tr><th><wicket:message key="gb.refs">refs</wicket:message></th><td><div wicket:id="refsPanel">[references]</div></td></tr>\r
+ <tr><th><wicket:message key="gb.author">author</wicket:message></th><td><span wicket:id="commitAuthor">[author</span></td></tr>\r
<tr><th></th><td><span wicket:id="commitAuthorDate">[author date]</span></td></tr>\r
- <tr><th>committer</th><td><span wicket:id="commitCommitter">[committer]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.committer">committer</wicket:message></th><td><span wicket:id="commitCommitter">[committer]</span></td></tr>\r
<tr><th></th><td><span wicket:id="commitCommitterDate">[commit date]</span></td></tr>\r
- <tr><th>commit</th><td class="sha1"><span wicket:id="commitId">[commit id]</span></td></tr>\r
- <tr><th>tree</th><td class="sha1"><span wicket:id="commitTree">[commit tree]</span></td></tr>\r
- <tr><th>parent</th><td class="sha1"><span wicket:id="commitParents">\r
+ <tr><th><wicket:message key="gb.commit">commit</wicket:message></th><td class="sha1"><span wicket:id="commitId">[commit id]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.tree">tree</wicket:message></th><td class="sha1"><span wicket:id="commitTree">[commit tree]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.parent">parent</wicket:message></th><td class="sha1"><span wicket:id="commitParents">\r
<div wicket:id="commitParent">[commit parents]</div></span></td></tr>\r
</table>\r
\r
} else {\r
add(new LinkPanel("parentLink", null, parents.get(0).substring(0, 8), CommitPage.class, newCommitParameter(parents.get(0))));\r
}\r
- add(new Label("patchLink", "patch"));\r
+ add(new Label("patchLink", getString("gb.patch")));\r
\r
add(new LinkPanel("shortlog", "title", c.getShortMessage(), ShortLogPage.class, newRepositoryParameter()));\r
\r
}\r
};\r
add(pathsView);\r
- \r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "commit";\r
+ return getString("gb.commit");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
}\r
\r
// diff page links\r
- add(new Label("historyLink", "history"));\r
- add(new Label("rawLink", "raw"));\r
+ add(new Label("historyLink", getString("gb.history")));\r
+ add(new Label("rawLink", getString("gb.raw")));\r
add(new Label("headLink", "HEAD"));\r
\r
add(new LinkPanel("shortlog", "title", commit.getShortMessage(), CommitPage.class, newCommitParameter()));\r
add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, commitId));\r
\r
add(new Label("diffText", diff).setEscapeModelStrings(false));\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "diff";\r
+ return getString("gb.diff");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
<div wicket:id="adminPanel">[admin links]</div>\r
\r
<table class="repositories">\r
<tr>\r
- <th wicket:id="orderByRepository">Repository</th>\r
- <th wicket:id="orderByDescription">Description</th>\r
- <th wicket:id="orderByOwner">Owner</th>\r
- <th wicket:id="orderByDate">Last Change</th>\r
+ <th wicket:id="orderByRepository"><wicket:message key="gb.repository">Repository</wicket:message></th>\r
+ <th wicket:id="orderByDescription"><wicket:message key="gb.description">Description</wicket:message></th>\r
+ <th wicket:id="orderByOwner"><wicket:message key="gb.owner">Owner</wicket:message></th>\r
+ <th wicket:id="orderByDate"><wicket:message key="gb.lastChange">Last Change</wicket:message></th>\r
</tr>\r
<tbody>\r
<tr wicket:id="repository">\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
shortlogView.setItemsPerPage(GitBlitWebApp.PAGING_ITEM_COUNT);\r
add(shortlogView);\r
add(new PagingNavigator("navigator", shortlogView));\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "shortlog";\r
+ return getString("gb.shortlog");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
<!-- Repository info -->\r
<div style="margin-right:410px;"> \r
<table class="plain">\r
- <tr><th>description</th><td><span wicket:id="repositoryDescription">[repository description]</span></td></tr>\r
- <tr><th>owner</th><td><span wicket:id="repositoryOwner">[repository owner]</span></td></tr>\r
- <tr><th>last change</th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr>\r
- <tr><th>URL</th><td><span wicket:id="repositoryCloneUrl">[repository clone url]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.description">description</wicket:message></th><td><span wicket:id="repositoryDescription">[repository description]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.owner">owner</wicket:message></th><td><span wicket:id="repositoryOwner">[repository owner]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.lastChange">last change</wicket:message></th><td><span wicket:id="repositoryLastChange">[repository last change]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.url">URL</wicket:message></th><td><span wicket:id="repositoryCloneUrl">[repository clone url]</span></td></tr>\r
</table>\r
</div>\r
</div>\r
add(new Label("repositoryCloneUrl", cloneurl));\r
\r
// shortlog\r
- add(new LinkPanel("shortlog", "title", "shortlog", ShortLogPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("shortlog", "title", getString("gb.shortlog"), ShortLogPage.class, newRepositoryParameter()));\r
\r
List<RevCommit> commits = JGitUtils.getRevLog(r, numberCommits);\r
ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits);\r
if (commits.size() < numberCommits) {\r
add(new Label("shortlogMore", "").setVisible(false));\r
} else {\r
- add(new LinkPanel("shortlogMore", "link", "more...", ShortLogPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("shortlogMore", "link", getString("gb.more") + "...", ShortLogPage.class, newRepositoryParameter()));\r
}\r
\r
// tags\r
List<RefModel> tags = JGitUtils.getTags(r, numberRefs);\r
- add(new LinkPanel("tags", "title", "tags", TagsPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("tags", "title", getString("gb.tags"), TagsPage.class, newRepositoryParameter()));\r
\r
ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags);\r
DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) {\r
if (tags.size() < numberRefs) {\r
add(new Label("allTags", "").setVisible(false));\r
} else {\r
- add(new LinkPanel("allTags", "link", "all tags...", TagsPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("allTags", "link", getString("gb.allTags") + "...", TagsPage.class, newRepositoryParameter()));\r
}\r
\r
// branches\r
branches = new ArrayList<RefModel>(branches.subList(0, numberRefs));\r
}\r
\r
- add(new LinkPanel("branches", "title", "branches", BranchesPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("branches", "title", getString("gb.branches"), BranchesPage.class, newRepositoryParameter()));\r
\r
ListDataProvider<RefModel> branchesDp = new ListDataProvider<RefModel>(branches);\r
DataView<RefModel> branchesView = new DataView<RefModel>("branch", branchesDp) {\r
if (branches.size() < numberRefs) {\r
add(new Label("allBranches", "").setVisible(false));\r
} else {\r
- add(new LinkPanel("allBranches", "link", "all branches...", BranchesPage.class, newRepositoryParameter()));\r
+ add(new LinkPanel("allBranches", "link", getString("gb.allBranches") + "...", BranchesPage.class, newRepositoryParameter()));\r
}\r
\r
// Display an activity line graph\r
insertActivityGraph(r);\r
-\r
- // close the repository\r
- r.close();\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "summary";\r
+ return getString("gb.summary");\r
}\r
\r
private void insertActivityGraph(Repository r) {\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
\r
<!-- commit info -->\r
<table class="plain">\r
- <tr><th>object</th><td><span wicket:id="tagId">[tag id]</span></td></tr>\r
- <tr><th>author</th><td><span wicket:id="tagAuthor">[tag author]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.object">object</wicket:message></th><td><span wicket:id="tagId">[tag id]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.author">author</wicket:message></th><td><span wicket:id="tagAuthor">[tag author]</span></td></tr>\r
<tr><th></th><td><span wicket:id="tagDate">[tag date]</span></td></tr>\r
</table>\r
\r
add(new Label("tagDate", authorDate));\r
\r
addFullText("fullMessage", c.getFullMessage(), true);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "tag";\r
+ return getString("gb.tag");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
}\r
};\r
add(tagView);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "tags";\r
+ return getString("gb.tags");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
public void populateItem(final Item<TicGitTicket> item) {\r
final TicGitTicket entry = item.getModelObject();\r
Label stateLabel = new Label("ticketState", entry.state);\r
- String css = null;\r
- if (entry.state.equals("open")) {\r
- css = "bug_open";\r
- } else if (entry.state.equals("hold")) {\r
- css = "bug_hold";\r
- } else if (entry.state.equals("resolved")) {\r
- css = "bug_resolved";\r
- } else if (entry.state.equals("invalid")) {\r
- css = "bug_invalid";\r
- }\r
- if (css != null) {\r
- WicketUtils.setCssClass(stateLabel, css);\r
- }\r
+ WicketUtils.setTicketCssClass(stateLabel, entry.state);\r
item.add(stateLabel);\r
item.add(createDateLabel("ticketDate", entry.date));\r
item.add(new Label("ticketHandler", trimString(entry.handler, 30)));\r
}\r
};\r
add(ticketsView);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "ticgit";\r
+ return getString("gb.ticgit");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
\r
<!-- ticket info -->\r
<table class="plain">\r
- <tr><th>ticket id</th><td class="sha1"><span wicket:id="ticketId">[ticket id]</span></td></tr>\r
- <tr><th>assigned</th><td><span wicket:id=ticketHandler>[ticket title]</span></td></tr>\r
- <tr><th>open date</th><td><span wicket:id="ticketOpenDate">[ticket open date]</span></td></tr>\r
- <tr><th>state</th><td><span wicket:id="ticketState">[ticket state]</span></td></tr>\r
- <tr><th>tags</th><td><span wicket:id="ticketTags">[ticket tags]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.ticketId">ticket id</wicket:message></th><td class="sha1"><span wicket:id="ticketId">[ticket id]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.ticketAssigned">assigned</wicket:message></th><td><span wicket:id=ticketHandler>[ticket title]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.ticketOpenDate">open date</wicket:message></th><td><span wicket:id="ticketOpenDate">[ticket open date]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.ticketState">state</wicket:message></th><td><span wicket:id="ticketState">[ticket state]</span></td></tr>\r
+ <tr><th><wicket:message key="gb.tags">tags</wicket:message></th><td><span wicket:id="ticketTags">[ticket tags]</span></td></tr>\r
</table>\r
\r
<!-- comments header -->\r
- <div class="header">Comments</div>\r
+ <div class="header"><wicket:message key="gb.ticketComments">comments</wicket:message></div>\r
\r
<!-- comments -->\r
<table style="width:100%;" class="pretty">\r
package com.gitblit.wicket.pages;\r
\r
-import java.util.List;\r
-\r
import org.apache.wicket.PageParameters;\r
import org.apache.wicket.markup.html.basic.Label;\r
import org.apache.wicket.markup.repeater.Item;\r
String openDate = GitBlitWebSession.get().formatDateTimeLong(t.date);\r
add(new Label("ticketOpenDate", openDate));\r
Label stateLabel = new Label("ticketState", t.state);\r
- String css = null;\r
- if (t.state.equals("open")) {\r
- css = "bug_open";\r
- } else if (t.state.equals("hold")) {\r
- css = "bug_hold";\r
- } else if (t.state.equals("resolved")) {\r
- css = "bug_resolved";\r
- } else if (t.state.equals("invalid")) {\r
- css = "bug_invalid";\r
- }\r
- if (css != null) {\r
- WicketUtils.setCssClass(stateLabel, css);\r
- }\r
+ WicketUtils.setTicketCssClass(stateLabel, t.state);\r
add(stateLabel);\r
- add(new Label("ticketTags", flattenStrings(t.tags)));\r
+ add(new Label("ticketTags", WicketUtils.flattenStrings(t.tags)));\r
\r
ListDataProvider<Comment> commentsDp = new ListDataProvider<Comment>(t.comments);\r
DataView<Comment> commentsView = new DataView<Comment>("comment", commentsDp) {\r
}\r
};\r
add(commentsView);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "ticket";\r
+ return getString("gb.ticket");\r
}\r
\r
private String prepareComment(String comment) {\r
String html = WicketUtils.breakLines(comment).trim();\r
return html.replaceAll("\\bcommit\\s*([A-Za-z0-9]*)\\b", "<a href=\"/commit/" + repositoryName + "/$1\">commit $1</a>");\r
}\r
-\r
- private String flattenStrings(List<String> values) {\r
- StringBuilder sb = new StringBuilder();\r
- for (String value : values) {\r
- sb.append(value).append(" ");\r
- }\r
- return sb.toString().trim();\r
- }\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" >\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<body>\r
<wicket:extend>\r
\r
List<PathModel> paths = JGitUtils.getFilesInPath(r, basePath, commit);\r
\r
// tree page links\r
- add(new Label("historyLink", "history"));\r
+ add(new Label("historyLink", getString("gb.history")));\r
add(new Label("headLink", "HEAD"));\r
\r
add(new LinkPanel("shortlog", "title", commit.getShortMessage(), CommitPage.class, newCommitParameter()));\r
}\r
};\r
add(pathsView);\r
-\r
- // footer\r
- addFooter();\r
}\r
\r
@Override\r
protected String getPageName() {\r
- return "tree";\r
+ return getString("gb.tree");\r
}\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<!-- page nav links --> \r
<div class="page_nav">\r
- <span wicket:id="newRepository"></span> | <span wicket:id="newUser"></span>\r
+ <a wicket:id="newRepository"><wicket:message key="gb.newRepository"></wicket:message></a> | <a wicket:id="newUser"><wicket:message key="gb.newUser"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-public class AdminLinksPanel extends Panel {\r
+import com.gitblit.wicket.pages.RepositoriesPage;\r
+\r
+public class AdminLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public AdminLinksPanel(String id) {\r
super(id);\r
\r
- add(new Label("newRepository", "new repository"));\r
- add(new Label("newUser", "new user"));\r
+ add(new BookmarkablePageLink<Void>("newRepository", RepositoriesPage.class));\r
+ add(new BookmarkablePageLink<Void>("newUser", RepositoriesPage.class));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="tag"></span> | <span wicket:id="commit"></span> | <span wicket:id="shortlog"></span>\r
+ <a wicket:id="tag"><wicket:message key="gb.tag"></wicket:message></a> | <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.RefModel;\r
import com.gitblit.wicket.pages.CommitPage;\r
import com.gitblit.wicket.pages.ShortLogPage;\r
import com.gitblit.wicket.pages.TagPage;\r
\r
\r
-public class AnnotatedTagLinksPanel extends Panel {\r
+public class AnnotatedTagLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public AnnotatedTagLinksPanel(String id, String repositoryName, RefModel tag) {\r
super(id);\r
- add(new LinkPanel("tag", null, "tag", TagPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getObjectId().getName())));\r
- add(new LinkPanel("commit", null, "commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName())));\r
- add(new LinkPanel("shortlog", null, "shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
+ add(new BookmarkablePageLink<Void>("tag", TagPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getObjectId().getName())));\r
+ add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName())));\r
+ add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
}\r
}
\ No newline at end of file
--- /dev/null
+package com.gitblit.wicket.panels;\r
+\r
+import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.model.StringResourceModel;\r
+\r
+public abstract class BasePanel extends Panel {\r
+\r
+ private static final long serialVersionUID = 1L;\r
+\r
+ public BasePanel(String id) {\r
+ super(id);\r
+ }\r
+ \r
+ public StringResourceModel stringModel(String key) {\r
+ return new StringResourceModel(key, this, null);\r
+ }\r
+}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="shortlog"></span> | <span wicket:id="tree"></span>\r
+ <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.RefModel;\r
import com.gitblit.wicket.pages.ShortLogPage;\r
import com.gitblit.wicket.pages.TreePage;\r
\r
-\r
-public class BranchLinksPanel extends Panel {\r
+public class BranchLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public BranchLinksPanel(String id, String repositoryName, RefModel tag) {\r
super(id);\r
- add(new LinkPanel("shortlog", null, "shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
- add(new LinkPanel("tree", null, "tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
+ add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
+ add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<!-- page nav links --> \r
<div class="page_nav">\r
- <span wicket:id="summary"></span> | <span wicket:id="shortlog"></span> | <span wicket:id="branches"></span> | <span wicket:id="tags"></span> | <span wicket:id="tree"></span> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span>\r
+ <a wicket:id="summary"><wicket:message key="gb.summary"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a> | <a wicket:id="branches"><wicket:message key="gb.branches"></wicket:message></a> | <a wicket:id="tags"><wicket:message key="gb.tags"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> <span wicket:id="extra"><span wicket:id="extraSeparator"></span><span wicket:id="extraLink"></span></span>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import java.util.ArrayList;\r
+import java.util.HashMap;\r
import java.util.List;\r
+import java.util.Map;\r
\r
+import org.apache.wicket.Component;\r
import org.apache.wicket.PageParameters;\r
import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
import org.apache.wicket.markup.repeater.Item;\r
import org.apache.wicket.markup.repeater.data.DataView;\r
import org.apache.wicket.markup.repeater.data.ListDataProvider;\r
import com.gitblit.wicket.pages.TicGitPage;\r
import com.gitblit.wicket.pages.TreePage;\r
\r
-public class PageLinksPanel extends Panel {\r
+public class PageLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
- public PageLinksPanel(String id, Repository r, final String repositoryName, String pageName) {\r
- super(id);\r
-\r
- // summary\r
- if (pageName.equals("summary")) {\r
- add(new Label("summary", pageName));\r
- } else {\r
- add(new LinkPanel("summary", null, "summary", SummaryPage.class, new PageParameters("p=" + repositoryName)));\r
- }\r
+ private final Map<String, String> knownPages = new HashMap<String, String>() {\r
\r
- // shortlog\r
- if (pageName.equals("shortlog")) {\r
- add(new Label("shortlog", pageName));\r
- } else {\r
- add(new LinkPanel("shortlog", null, "shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName)));\r
- }\r
+ private static final long serialVersionUID = 1L;\r
\r
- // branches\r
- if (pageName.equals("branches")) {\r
- add(new Label("branches", pageName));\r
- } else {\r
- add(new LinkPanel("branches", null, "branches", BranchesPage.class, new PageParameters("p=" + repositoryName)));\r
+ {\r
+ put("summary", "gb.summary");\r
+ put("shortlog", "gb.shortlog");\r
+ put("branches", "gb.branches");\r
+ put("tags", "gb.tags");\r
+ put("tree", "gb.tree");\r
+ put("ticgit", "gb.ticgit");\r
}\r
+ };\r
\r
- // tags\r
- if (pageName.equals("tags")) {\r
- add(new Label("tags", pageName));\r
- } else {\r
- add(new LinkPanel("tags", null, "tags", TagsPage.class, new PageParameters("p=" + repositoryName)));\r
- }\r
+ public PageLinksPanel(String id, Repository r, final String repositoryName, String pageName) {\r
+ super(id);\r
\r
- // tree\r
- if (pageName.equals("tree")) {\r
- add(new Label("tree", pageName));\r
- } else {\r
- add(new LinkPanel("tree", null, "tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=HEAD")));\r
- }\r
+ // summary\r
+ add(new BookmarkablePageLink<Void>("summary", SummaryPage.class, new PageParameters("p=" + repositoryName)));\r
+ add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName)));\r
+ add(new BookmarkablePageLink<Void>("branches", BranchesPage.class, new PageParameters("p=" + repositoryName)));\r
+ add(new BookmarkablePageLink<Void>("tags", TagsPage.class, new PageParameters("p=" + repositoryName)));\r
+ add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=HEAD")));\r
\r
// Add dynamic repository extras\r
List<String> extras = new ArrayList<String>();\r
};\r
add(extrasView);\r
}\r
+\r
+ public void disablePageLink(String pageName) {\r
+ for (String wicketId : knownPages.keySet()) {\r
+ String key = knownPages.get(wicketId);\r
+ String linkName = getString(key);\r
+ if (linkName.equals(pageName)) {\r
+ Component c = get(wicketId);\r
+ c.setEnabled(false);\r
+ break;\r
+ }\r
+ }\r
+ }\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<!-- page path links -->\r
<div class="page_path"> \r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="diff"></span> | <span wicket:id="blob"></span> | <span wicket:id="history"></span>\r
+ <a wicket:id="diff"><wicket:message key="gb.diff"></wicket:message></a> | <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.PathModel;\r
import com.gitblit.wicket.pages.BlobPage;\r
import com.gitblit.wicket.pages.DiffPage;\r
\r
\r
-public class PathLinksPanel extends Panel {\r
+public class PathLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public PathLinksPanel(String id, String repositoryName, PathModel path) {\r
super(id);\r
- add(new LinkPanel("diff", null, "diff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
- add(new LinkPanel("blob", null, "view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
- add(new Label("history", "history"));\r
+ add(new BookmarkablePageLink<Void>("diff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
+ add(new BookmarkablePageLink<Void>("view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
+ add(new BookmarkablePageLink<Void>("history", BlobPage.class, new PageParameters()).setEnabled(false));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<span class="refs" wicket:id="ref">\r
<span wicket:id="refName">ref</span>\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="commit"></span> | <span wicket:id="commitdiff"></span> | <span wicket:id="tree"></span>\r
+ <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitdiff"><wicket:message key="gb.commitdiff"></wicket:message></a> | <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.pages.CommitPage;\r
import com.gitblit.wicket.pages.DiffPage;\r
import com.gitblit.wicket.pages.TreePage;\r
\r
\r
-public class ShortLogLinksPanel extends Panel {\r
+public class ShortLogLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public ShortLogLinksPanel(String id, String repositoryName, String commitId) {\r
super(id);\r
\r
- add(new LinkPanel("commit", null, "commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
- add(new LinkPanel("commitdiff", null, "commitdiff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
- add(new LinkPanel("tree", null, "tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
+ add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
+ add(new BookmarkablePageLink<Void>("commitdiff", DiffPage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
+ add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + commitId)));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="commit"></span> | <span wicket:id="shortlog"></span>\r
+ <a wicket:id="commit"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="shortlog"><wicket:message key="gb.shortlog"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.RefModel;\r
import com.gitblit.wicket.pages.CommitPage;\r
import com.gitblit.wicket.pages.ShortLogPage;\r
\r
\r
-public class TagLinksPanel extends Panel {\r
+public class TagLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public TagLinksPanel(String id, String repositoryName, RefModel tag) {\r
super(id);\r
- add(new LinkPanel("commit", null, "commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName())));\r
- add(new LinkPanel("shortlog", null, "shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
+ add(new BookmarkablePageLink<Void>("commit", CommitPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getCommitId().getName())));\r
+ add(new BookmarkablePageLink<Void>("shortlog", ShortLogPage.class, new PageParameters("p=" + repositoryName + ",h=" + tag.getName())));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="link"></span> | <span wicket:id="raw"></span> | <span wicket:id="history"></span>\r
+ <a wicket:id="view"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="raw"><wicket:message key="gb.raw"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.PathModel;\r
import com.gitblit.wicket.pages.BlobPage;\r
\r
\r
-public class TreeBlobLinksPanel extends Panel {\r
+public class TreeBlobLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public TreeBlobLinksPanel(String id, String repositoryName, PathModel path) {\r
super(id);\r
- add(new LinkPanel("link", null, "view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
- add(new Label("raw", "raw"));\r
- add(new Label("history", "history"));\r
+ add(new BookmarkablePageLink<Void>("view", BlobPage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
+ add(new BookmarkablePageLink<Void>("raw", BlobPage.class, new PageParameters()).setEnabled(false));\r
+ add(new BookmarkablePageLink<Void>("history", BlobPage.class, new PageParameters()).setEnabled(false));\r
}\r
}
\ No newline at end of file
-<?xml version="1.0" encoding="UTF-8"?>\r
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" \r
+ xml:lang="en" \r
+ lang="en"> \r
+\r
<wicket:panel>\r
<div class="link">\r
- <span wicket:id="link"></span> | <span wicket:id="history"></span>\r
+ <a wicket:id="tree"><wicket:message key="gb.tree"></wicket:message></a> | <a wicket:id="history"><wicket:message key="gb.history"></wicket:message></a>\r
</div> \r
</wicket:panel>\r
</html>
\ No newline at end of file
package com.gitblit.wicket.panels;\r
\r
import org.apache.wicket.PageParameters;\r
-import org.apache.wicket.markup.html.basic.Label;\r
-import org.apache.wicket.markup.html.panel.Panel;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
\r
-import com.gitblit.wicket.LinkPanel;\r
import com.gitblit.wicket.models.PathModel;\r
import com.gitblit.wicket.pages.TreePage;\r
\r
\r
-public class TreeLinksPanel extends Panel {\r
+public class TreeLinksPanel extends BasePanel {\r
\r
private static final long serialVersionUID = 1L;\r
\r
public TreeLinksPanel(String id, String repositoryName, PathModel path) {\r
super(id);\r
- add(new LinkPanel("link", null, "tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
- add(new Label("history", "history"));\r
+ add(new BookmarkablePageLink<Void>("tree", TreePage.class, new PageParameters("p=" + repositoryName + ",h=" + path.commitId + ",f=" + path.path)));\r
+ add(new BookmarkablePageLink<Void>("history", TreePage.class, new PageParameters()).setEnabled(false));\r
}\r
}
\ No newline at end of file
}\r
\r
td.date {\r
- font-style: italic;\r
- width:90px;\r
+ font-style: italic; \r
}\r
\r
td.sha1, td.sha1 span {\r