Compare commits
190 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d5b0abd1ae | |||
| 81ba5bd022 | |||
| 96a3ca71a7 | |||
| a8e253553a | |||
| 91280b18f6 | |||
| fbb8ef1ba0 | |||
| 3f46d94a93 | |||
| 161fcc7f01 | |||
| 5e2cb68299 | |||
| e6a5b59ac6 | |||
| 2ffa61564c | |||
| a1d48afeca | |||
| a51e57737b | |||
| 1c8fcef754 | |||
| ab4ca0015e | |||
| f9014d649b | |||
| adf67fd89f | |||
| 805709a91b | |||
| 40a6aaa1a8 | |||
| 5e51dad445 | |||
| f2d9cc0c0b | |||
| a40f8f9a28 | |||
| 355c4184ef | |||
| 50bdd7647a | |||
| 47c85e633b | |||
| f82cda981c | |||
| aded9ec437 | |||
| bdcad7665f | |||
| 850b61fc4f | |||
| 89bb8eb3f4 | |||
| 6bc5fcad99 | |||
| 04bcf16d33 | |||
| 76752f9bd8 | |||
| 29d5d293c4 | |||
| 1ea05d8107 | |||
| 60b7347586 | |||
| b35d45bf31 | |||
| c66e9d208b | |||
| 7808a20be7 | |||
| 463ebcaa66 | |||
| 2fe55431a0 | |||
| 0a59d09d81 | |||
| 9c4d1baa52 | |||
| 7ebb26840f | |||
| ab3603318a | |||
| ac33beeba9 | |||
| 87a65f0416 | |||
| 25903c34c6 | |||
| 85b7243186 | |||
| 61cbdeb96b | |||
| 8ab087b23f | |||
| e39043af44 | |||
| 2465d4ceb8 | |||
| 8bf89fdf37 | |||
| 89f6f60c96 | |||
| 1572080976 | |||
| 03de29ebd9 | |||
| 055aea9334 | |||
| 06d31b36a6 | |||
| 440084e832 | |||
| 7abe6161d6 | |||
| 576b1bcf2e | |||
| 593d0c31fa | |||
| 09ed061c9b | |||
| 9b67f4cebf | |||
| b8571f56a6 | |||
| 55b2bcae63 | |||
| 1331c2200e | |||
| 3a27201bed | |||
| 9a03d09c04 | |||
| ad900861da | |||
| 9f127239ec | |||
| ae555f4130 | |||
| 0c25c1529d | |||
| efc11c1f40 | |||
| eabe640ebf | |||
| d9de0447f5 | |||
| 25858eb870 | |||
| dfb728655f | |||
| 614c4f2d36 | |||
| 91d3c6c717 | |||
| b235ed168a | |||
| b9d5354cc7 | |||
| 768525a0c7 | |||
| 829693c410 | |||
| a16c9f1c6c | |||
| 6242eed778 | |||
| 284ca67dd3 | |||
| 706c793cc2 | |||
| 9799071d04 | |||
| 492a3e5a8d | |||
| c6de48c8e2 | |||
| aea3c0a696 | |||
| 2fcd7f3911 | |||
| 8c6f03f257 | |||
| e3c52baf3a | |||
| 8a24fc60ca | |||
| 1beedba67d | |||
| 0cef4124db | |||
| 16233f4856 | |||
| c662620791 | |||
| 1abb97bdc7 | |||
| 4e2634c116 | |||
| 2c93b5fc13 | |||
| fe83cfa408 | |||
| 59c1485697 | |||
| d68e0e54b5 | |||
| 55daf57e21 | |||
| 7d37c7aa2a | |||
| 3ec24fa6f1 | |||
| 70650eff6a | |||
| baebd73f19 | |||
| 11f9219419 | |||
| 5f12eec438 | |||
| 385c767a48 | |||
| 905a938444 | |||
| 922be55356 | |||
| 9d54458280 | |||
| 481afb0a8f | |||
| ebedf63c71 | |||
| 25fc105257 | |||
| 8848e04019 | |||
| a0d9c0006d | |||
| 0bd31c3fe0 | |||
| aa77ddd60f | |||
| d78cd42797 | |||
| b183f452d2 | |||
| 516a8446cd | |||
| 0130399d7b | |||
| 1bf0d66b7a | |||
| 068005dc16 | |||
| d673877e4e | |||
| 68979fb8d3 | |||
| 87847769ce | |||
| 49c50046c9 | |||
| c93e4d1e2d | |||
| 686e3deb6c | |||
| 3181d73986 | |||
| 825b02fb83 | |||
| d25e6452fe | |||
| b3205b0904 | |||
| 080b0d81a4 | |||
| daf680e5d0 | |||
| 5657249422 | |||
| fce9f0602e | |||
| 07c7eac0cd | |||
| a40061c279 | |||
| 4decadcc5e | |||
| 64d3fea196 | |||
| 1cec98dd5e | |||
| cd7c4d3eb1 | |||
| d813d260d5 | |||
| d19ecb113b | |||
| 7ed1faabc5 | |||
| 58e5221f1b | |||
| 7830af9dda | |||
| bb491d0ac4 | |||
| 94b5533322 | |||
| 9845fe0f76 | |||
| 17c29d9749 | |||
| a0380f652e | |||
| 8e9bafd0d7 | |||
| 05d9e27428 | |||
| 85ab0bd867 | |||
| a11dd3f3ca | |||
| a66f816a92 | |||
| 50f0bbe96e | |||
| f11ff8d1c8 | |||
| 916a5dc065 | |||
| 6fd1237caf | |||
| 0dc9d00446 | |||
| 85ac193e29 | |||
| a81a3556f9 | |||
| c99713df3c | |||
| c7ac4e1392 | |||
| 43878374ae | |||
| 0aefcab298 | |||
| 76f41e069a | |||
| abc21a695b | |||
| ee0817f7dc | |||
| dea0615406 | |||
| 5ead7280a3 | |||
| b35c2a4b49 | |||
| 35f6de1686 | |||
| 0598124f67 | |||
| 8eda3b367f | |||
| 90efdfd27e | |||
| afc93fb593 | |||
| 2247141efd | |||
| 3514d765a6 |
@@ -66,3 +66,4 @@ OurUmbraco.Site/App_Data/Documentation/
|
||||
OurUmbraco.Site/App_Data/NotificationTest/
|
||||
build/tools/node*
|
||||
wwwcache/
|
||||
build/toolsnode.js.*/
|
||||
|
||||
@@ -4,24 +4,24 @@
|
||||
"description": "Umbraco Our gulpjs config",
|
||||
"main": "gulpfile.js",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-autoprefixer": "^3.1.0",
|
||||
"gulp-clean": "0.3.x",
|
||||
"gulp-combine-media-queries": "0.2.x",
|
||||
"gulp-concat": "2.2.x",
|
||||
"gulp-imagemin": "3.3.x",
|
||||
"gulp-jshint": "^2.0.4",
|
||||
"gulp-minify-css": "1.1.x",
|
||||
"gulp-rename": "1.2.x",
|
||||
"gulp-sass": "^2.2.0",
|
||||
"gulp-svgmin": "0.4.x",
|
||||
"gulp-uglify": "^1.5.3",
|
||||
"gulp-util": "3.0.x",
|
||||
"gulp-watch": "0.6.x",
|
||||
"gulp-minify-css": "1.1.x",
|
||||
"gulp-sass": "^2.2.0",
|
||||
"gulp-combine-media-queries": "0.2.x",
|
||||
"gulp-imagemin": "0.6.x",
|
||||
"gulp-autoprefixer": "^3.1.0",
|
||||
"gulp-uglify": "^1.5.3",
|
||||
"gulp-jshint": "2.0.0",
|
||||
"gulp-concat": "2.2.x",
|
||||
"jshint-stylish": "0.2.x",
|
||||
"gulp-clean": "0.3.x",
|
||||
"gulp-svgmin": "0.4.x",
|
||||
"gulp-rename": "1.2.x"
|
||||
"jshint": "^2.9.4",
|
||||
"jshint-stylish": "0.2.x"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "gulp build --verbose"
|
||||
|
||||
@@ -62,7 +62,7 @@ function GetSearchFilters(cssClass) {
|
||||
}
|
||||
|
||||
var forumId = $('#selectCategory').val();
|
||||
if(forumId !== undefined) {
|
||||
if(forumId) {
|
||||
forumId = forumId.replace(/([A-Za-z])\w+/g, "");
|
||||
}
|
||||
|
||||
@@ -365,7 +365,8 @@ $('#search-options input[type=checkbox]').click(function () {
|
||||
newUri = updateQueryString("order", orderValue, window.location.href);
|
||||
}
|
||||
} else {
|
||||
newUri = updateQueryString(this.name, this.checked, window.location.href);
|
||||
newUri = updateQueryString(this.name, this.checked, window.location.href);
|
||||
newUri = updateQueryString("page", 1, newUri);
|
||||
}
|
||||
console.log(newUri);
|
||||
window.location = newUri;
|
||||
|
||||
@@ -79,6 +79,53 @@
|
||||
|
||||
}
|
||||
|
||||
.pre {
|
||||
overflow: auto;
|
||||
display: block;
|
||||
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.4em;
|
||||
background-clip: padding-box;
|
||||
padding: 8px 15px 8px 15px;
|
||||
border-radius: 5px;
|
||||
width: 100%;
|
||||
min-width: 300px;
|
||||
text-align: left;
|
||||
border: none;
|
||||
margin: 0 auto;
|
||||
|
||||
&:hover {
|
||||
background: lighten(#333, 5%);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.pm-nuget {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: 10px auto 25px auto;
|
||||
height: 100%;
|
||||
width: auto;
|
||||
color: #fff;
|
||||
|
||||
&:before {
|
||||
content:"PM>";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
|
||||
font-size: 0.8rem;
|
||||
transform: translate(15px, -46%);
|
||||
opacity: .9;
|
||||
}
|
||||
.pre {
|
||||
padding-left: 45px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
h2, h3, strong, span {
|
||||
color: $color-headline;
|
||||
|
||||
@@ -1,174 +1,174 @@
|
||||
body.packages {
|
||||
nav {
|
||||
|
||||
h3 {
|
||||
&:hover {
|
||||
opacity: .8;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
opacity: .7;
|
||||
margin: .5rem 0 .5rem;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
h3 {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
&.open, &.active {
|
||||
h3, a {
|
||||
opacity: 1;
|
||||
color: #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.active > ul {
|
||||
max-height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.packages-content {
|
||||
|
||||
.search-big {
|
||||
margin-bottom: 0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 1em 0 10px;
|
||||
font-size: 2.1rem;
|
||||
}
|
||||
|
||||
.package {
|
||||
margin-bottom: 15px;
|
||||
padding: 20px;
|
||||
transition: all .1s linear;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #e9e9e9;
|
||||
|
||||
&:hover {
|
||||
@include box-shadow(2);
|
||||
|
||||
.icon {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.box {
|
||||
border: none;
|
||||
border-bottom: 1px solid whitesmoke;
|
||||
width: 100%;
|
||||
|
||||
body.packages {
|
||||
nav {
|
||||
|
||||
h3 {
|
||||
&:hover {
|
||||
opacity: .8;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
opacity: .7;
|
||||
margin: .5rem 0 .5rem;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
h3 {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
&.open, &.active {
|
||||
h3, a {
|
||||
opacity: 1;
|
||||
color: #000 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.active > ul {
|
||||
max-height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.packages-content {
|
||||
|
||||
.search-big {
|
||||
margin-bottom: 0;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 1em 0 10px;
|
||||
font-size: 2.1rem;
|
||||
}
|
||||
|
||||
.package {
|
||||
margin-bottom: 15px;
|
||||
padding: 20px;
|
||||
transition: all .1s linear;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #e9e9e9;
|
||||
|
||||
&:hover {
|
||||
@include box-shadow(2);
|
||||
|
||||
.icon {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.box {
|
||||
border: none;
|
||||
border-bottom: 1px solid whitesmoke;
|
||||
width: 100%;
|
||||
|
||||
.row{
|
||||
width:100%;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.1rem;
|
||||
margin-bottom: .5rem;
|
||||
font-weight: 600;
|
||||
|
||||
a {
|
||||
color: $color-headline;
|
||||
|
||||
&:hover {
|
||||
color: $color-our;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
|
||||
@media (min-width: $md) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.col-xs-2 {
|
||||
vertical-align: middle !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.other {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.stats {
|
||||
left: calc(16.666666666666664% + 15px);
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Monaco, Courier, monospace;
|
||||
font-size: .75rem;
|
||||
|
||||
i {
|
||||
margin-left: 3px;
|
||||
font-size: .9rem;
|
||||
}
|
||||
|
||||
span {
|
||||
&:first-child {
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: .9rem;
|
||||
color: $color-text;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.package-badge {
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
bottom: -3px;
|
||||
|
||||
|
||||
@media (min-width: $md) {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.karma , .downloads {
|
||||
color: #000;
|
||||
|
||||
span {
|
||||
transform: translate(0, 2px);
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
&.liked {
|
||||
.karma {
|
||||
i {
|
||||
color: $color-red;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 1rem;
|
||||
line-height: 1.3;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-size: .8rem;
|
||||
margin-top: 3px;
|
||||
max-height: 28px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.1rem;
|
||||
margin-bottom: .5rem;
|
||||
font-weight: 600;
|
||||
|
||||
a {
|
||||
color: $color-headline;
|
||||
|
||||
&:hover {
|
||||
color: $color-our;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
|
||||
@media (min-width: $md) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.col-xs-2 {
|
||||
vertical-align: middle !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.other {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.stats {
|
||||
left: calc(16.666666666666664% + 15px);
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Monaco, Courier, monospace;
|
||||
font-size: .75rem;
|
||||
|
||||
i {
|
||||
margin-left: 3px;
|
||||
font-size: .9rem;
|
||||
}
|
||||
|
||||
span {
|
||||
&:first-child {
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: .9rem;
|
||||
color: $color-text;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.package-badge {
|
||||
position: absolute;
|
||||
right: 15px;
|
||||
bottom: -3px;
|
||||
|
||||
|
||||
@media (min-width: $md) {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.karma , .downloads {
|
||||
color: #000;
|
||||
|
||||
span {
|
||||
transform: translate(0, 2px);
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
&.liked {
|
||||
.karma {
|
||||
i {
|
||||
color: $color-red;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 1rem;
|
||||
line-height: 1.3;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-size: .8rem;
|
||||
margin-top: 3px;
|
||||
max-height: 28px;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
#github-contributors {
|
||||
&:not(.all) {
|
||||
.contributor {
|
||||
&:nth-child(n+17) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: $md) {
|
||||
&:nth-child(n+13) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $xs) {
|
||||
&:nth-child(n+10) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.all {
|
||||
.button {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.loadmore {
|
||||
margin: 20px auto;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.github-contributors small.link-list {
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.contributor {
|
||||
margin-bottom: 15px;
|
||||
|
||||
.avatar {
|
||||
position: relative;
|
||||
flex: 0 0 23%;
|
||||
margin-right: 20px;
|
||||
|
||||
@media (min-width: $md) {
|
||||
flex: 0 0 15%;
|
||||
}
|
||||
|
||||
img {
|
||||
border: 3px solid #98d768;
|
||||
width: 100%;
|
||||
max-width: 112px;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.counts {
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
right: 2px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
line-height: 12px;
|
||||
background: rgba(0,0,0,0.25);
|
||||
border-radius: 50%;
|
||||
bottom: 6px;
|
||||
padding-top: 23px;
|
||||
opacity: 0;
|
||||
transition: opacity 0.25s;
|
||||
}
|
||||
|
||||
&:hover .counts {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.contrib-count {
|
||||
position: absolute;
|
||||
left: 25px;
|
||||
bottom: 0px;
|
||||
text-align: center;
|
||||
right: 25px;
|
||||
color: #425a2e;
|
||||
font-weight: bold;
|
||||
background: darken($color-our, 4%);
|
||||
border-radius: 15px;
|
||||
z-index: 5;
|
||||
}
|
||||
}
|
||||
@@ -157,6 +157,10 @@ section.forum {
|
||||
max-width: 112px;
|
||||
height: auto;
|
||||
|
||||
.package-forum-activity & {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
@media (min-width: $md) {
|
||||
width: 58px;
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
@import 'sections/forum';
|
||||
@import 'sections/people';
|
||||
@import 'sections/events';
|
||||
|
||||
@import 'sections/contributors';
|
||||
|
||||
/**
|
||||
/* Pages
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
|
||||
<TelemetryInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.WebTestTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.SyntheticUserAgentTelemetryInitializer, Microsoft.AI.Web">
|
||||
<!-- Extended list of bots:
|
||||
search|spider|crawl|Bot|Monitor|BrowserMob|BingPreview|PagePeeker|WebThumb|URL2PNG|ZooShot|GomezA|Google SketchUp|Read Later|KTXN|KHTE|Keynote|Pingdom|AlwaysOn|zao|borg|oegp|silk|Xenu|zeal|NING|htdig|lycos|slurp|teoma|voila|yahoo|Sogou|CiBra|Nutch|Java|JNLP|Daumoa|Genieo|ichiro|larbin|pompos|Scrapy|snappy|speedy|vortex|favicon|indexer|Riddler|scooter|scraper|scrubby|WhatWeb|WinHTTP|voyager|archiver|Icarus6j|mogimogi|Netvibes|altavista|charlotte|findlinks|Retreiver|TLSProber|WordPress|wsr-agent|http client|Python-urllib|AppEngine-Google|semanticdiscovery|facebookexternalhit|web/snippet|Google-HTTP-Java-Client-->
|
||||
<Filters>search|spider|crawl|Bot|Monitor|AlwaysOn</Filters>
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.ClientIpHeaderTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationNameTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.UserTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.AuthenticatedUserIdTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.AccountIdTelemetryInitializer, Microsoft.AI.Web" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.SessionTelemetryInitializer, Microsoft.AI.Web" />
|
||||
</TelemetryInitializers>
|
||||
<TelemetryModules>
|
||||
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
|
||||
<!--
|
||||
Use the following syntax here to collect additional performance counters:
|
||||
|
||||
<Counters>
|
||||
<Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
|
||||
...
|
||||
</Counters>
|
||||
|
||||
PerformanceCounter must be either \CategoryName(InstanceName)\CounterName or \CategoryName\CounterName
|
||||
|
||||
NOTE: performance counters configuration will be lost upon NuGet upgrade.
|
||||
|
||||
The following placeholders are supported as InstanceName:
|
||||
??APP_WIN32_PROC?? - instance name of the application process for Win32 counters.
|
||||
??APP_W3SVC_PROC?? - instance name of the application IIS worker process for IIS/ASP.NET counters.
|
||||
??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
|
||||
-->
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
|
||||
<Handlers>
|
||||
<!--
|
||||
Add entries here to filter out additional handlers:
|
||||
|
||||
NOTE: handler configuration will be lost upon NuGet upgrade.
|
||||
-->
|
||||
<Add>System.Web.Handlers.TransferRequestHandler</Add>
|
||||
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
|
||||
<Add>System.Web.StaticFileHandler</Add>
|
||||
<Add>System.Web.Handlers.AssemblyResourceLoader</Add>
|
||||
<Add>System.Web.Optimization.BundleHandler</Add>
|
||||
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
|
||||
<Add>System.Web.Handlers.TraceHandler</Add>
|
||||
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
|
||||
<Add>System.Web.HttpDebugHandler</Add>
|
||||
</Handlers>
|
||||
</Add>
|
||||
<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web" />
|
||||
</TelemetryModules>
|
||||
<TelemetryProcessors>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector" />
|
||||
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
|
||||
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
|
||||
</Add>
|
||||
</TelemetryProcessors>
|
||||
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel" />
|
||||
<!--
|
||||
Learn more about Application Insights configuration with ApplicationInsights.config here:
|
||||
http://go.microsoft.com/fwlink/?LinkID=513840
|
||||
|
||||
Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
|
||||
-->
|
||||
<InstrumentationKey>lalalala-not-telling-you</InstrumentationKey>
|
||||
</ApplicationInsights>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\UmbracoCms.7.5.7\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.5.7\build\UmbracoCms.props')" />
|
||||
<Import Project="..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
@@ -26,8 +26,6 @@
|
||||
<UseGlobalApplicationHostFile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<ApplicationInsightsResourceId>/subscriptions/76a04863-9a92-45d6-9801-b26d74a625c4/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/OurUmbraco.Site</ApplicationInsightsResourceId>
|
||||
<ApplicationInsightsAnnotationResourceId>/subscriptions/76a04863-9a92-45d6-9801-b26d74a625c4/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/OurUmbraco.Site</ApplicationInsightsAnnotationResourceId>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -61,8 +59,8 @@
|
||||
<HintPath>..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.Net4.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="businesslogic, Version=1.0.6219.11993, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\businesslogic.dll</HintPath>
|
||||
<Reference Include="businesslogic, Version=1.0.6274.27355, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\businesslogic.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ClientDependency.Core, Version=1.9.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
@@ -73,12 +71,12 @@
|
||||
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="cms, Version=1.0.6219.11994, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\cms.dll</HintPath>
|
||||
<Reference Include="cms, Version=1.0.6274.27356, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\cms.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="controls, Version=1.0.6219.11996, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\controls.dll</HintPath>
|
||||
<Reference Include="controls, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\controls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
|
||||
@@ -89,8 +87,8 @@
|
||||
<HintPath>..\packages\EasyHttp.1.6.29.0\lib\net40\EasyHttp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Examine, Version=0.1.80.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Examine.0.1.80\lib\net45\Examine.dll</HintPath>
|
||||
<Reference Include="Examine, Version=0.1.81.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Examine.0.1.81\lib\net45\Examine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
@@ -101,16 +99,16 @@
|
||||
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor, Version=2.5.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.2.5.1\lib\net45\ImageProcessor.dll</HintPath>
|
||||
<Reference Include="ImageProcessor, Version=2.5.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.2.5.2\lib\net45\ImageProcessor.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="ImageProcessor.Web, Version=4.8.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.Web.4.8.0\lib\net45\ImageProcessor.Web.dll</HintPath>
|
||||
<Reference Include="ImageProcessor.Web, Version=4.8.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ImageProcessor.Web.4.8.2\lib\net45\ImageProcessor.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="interfaces, Version=1.0.6219.11988, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\interfaces.dll</HintPath>
|
||||
<Reference Include="interfaces, Version=1.0.6274.27351, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\interfaces.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="JsonFx, Version=2.0.1209.2802, Culture=neutral, PublicKeyToken=315052dd637f8a52, processorArchitecture=MSIL">
|
||||
@@ -118,51 +116,19 @@
|
||||
<HintPath>..\packages\JsonFx.2.0.1209.2802\lib\net40\JsonFx.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\log4net.dll</HintPath>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\log4net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="MarkdownSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Markdown.1.14.4\lib\net45\MarkdownSharp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.Agent.Intercept, Version=2.0.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.DependencyCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.PerfCounterCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.Web, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AI.WindowsServer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
|
||||
<Reference Include="MarkdownSharp, Version=1.14.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Markdown.1.14.7\lib\net45\MarkdownSharp.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationInsights, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationInsights.TraceListener, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.TraceListener.2.2.0\lib\net45\Microsoft.ApplicationInsights.TraceListener.dll</HintPath>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
@@ -183,7 +149,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.IO.RecyclableMemoryStream, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.0\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll</HintPath>
|
||||
<HintPath>..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.1\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
@@ -258,8 +224,20 @@
|
||||
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="SQLCE4Umbraco, Version=1.0.6219.11995, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\SQLCE4Umbraco.dll</HintPath>
|
||||
<Reference Include="Skybrud.Essentials, Version=1.0.8.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Skybrud.Essentials.1.0.8\lib\net45\Skybrud.Essentials.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Skybrud.Social.Core, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Skybrud.Social.Core.1.0.0-beta9\lib\net45\Skybrud.Social.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Skybrud.Social.Meetup, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Skybrud.Social.Meetup.1.0.0-beta002\lib\net45\Skybrud.Social.Meetup.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="SQLCE4Umbraco, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\SQLCE4Umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=1.1.36.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
@@ -268,11 +246,11 @@
|
||||
</Reference>
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\System.Data.SqlServerCe.dll</HintPath>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\System.Data.SqlServerCe.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Net" />
|
||||
@@ -345,51 +323,51 @@
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\TidyNet.dll</HintPath>
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\TidyNet.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Tweetinvi, Version=1.2.0.0, Culture=neutral, PublicKeyToken=7247f14397bf67b9, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TweetinviAPI.1.2.0\lib\net45\Tweetinvi.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco, Version=1.0.6219.11997, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.dll</HintPath>
|
||||
<Reference Include="umbraco, Version=1.0.6274.27359, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Core, Version=1.0.6219.11990, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\Umbraco.Core.dll</HintPath>
|
||||
<Reference Include="Umbraco.Core, Version=1.0.6274.27352, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Umbraco.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.DataLayer, Version=1.0.6219.11993, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.DataLayer.dll</HintPath>
|
||||
<Reference Include="umbraco.DataLayer, Version=1.0.6274.27355, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.DataLayer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.editorControls, Version=1.0.6219.11999, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.editorControls.dll</HintPath>
|
||||
<Reference Include="umbraco.editorControls, Version=1.0.6274.27361, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.editorControls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.IdentityExtensions, Version=1.0.5779.34109, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.IdentityExtensions.1.0.0\lib\net45\Umbraco.IdentityExtensions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.MacroEngines, Version=1.0.6219.12000, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.MacroEngines.dll</HintPath>
|
||||
<Reference Include="umbraco.MacroEngines, Version=1.0.6274.27362, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.MacroEngines.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.ModelsBuilder, Version=3.0.5.96, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Umbraco.ModelsBuilder.3.0.5\lib\Umbraco.ModelsBuilder.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="umbraco.providers, Version=1.0.6219.11996, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\umbraco.providers.dll</HintPath>
|
||||
<Reference Include="umbraco.providers, Version=1.0.6274.27357, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\umbraco.providers.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Umbraco.Web.UI, Version=1.0.6219.12001, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\Umbraco.Web.UI.dll</HintPath>
|
||||
<Reference Include="Umbraco.Web.UI, Version=1.0.6274.27363, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\Umbraco.Web.UI.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UmbracoExamine, Version=0.7.0.11994, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.7\lib\UmbracoExamine.dll</HintPath>
|
||||
<Reference Include="UmbracoExamine, Version=0.7.0.27356, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\UmbracoCms.Core.7.5.11\lib\UmbracoExamine.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
@@ -498,6 +476,7 @@
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="config\formHandlers.config" />
|
||||
<Content Include="config\githubhq.txt" />
|
||||
<Content Include="config\githubpull.config" />
|
||||
<Content Include="config\grid.editors.config.js" />
|
||||
<Content Include="config\Lang\cs-CZ.user.xml" />
|
||||
@@ -519,6 +498,7 @@
|
||||
<Content Include="config\Lang\sv-SE.user.xml" />
|
||||
<Content Include="config\Lang\zh-CN.user.xml" />
|
||||
<Content Include="config\log4net.config" />
|
||||
<Content Include="config\MeetupUmbracoGroups.txt" />
|
||||
<Content Include="config\Notification.config" />
|
||||
<Content Include="config\restExtensions.config" />
|
||||
<Content Include="config\Skinning.config" />
|
||||
@@ -667,9 +647,6 @@
|
||||
<Content Include="config\imageprocessor\security.config" />
|
||||
<Content Include="config\imageprocessor\processing.config" />
|
||||
<Content Include="config\imageprocessor\cache.config" />
|
||||
<Content Include="ApplicationInsights.config">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="config\tinyMceConfig.config" />
|
||||
<Content Include="config\scripting.config" />
|
||||
<Content Include="config\metablogConfig.config" />
|
||||
@@ -1685,10 +1662,7 @@
|
||||
<Content Include="Views\ContentLanding.cshtml" />
|
||||
<Content Include="Views\Blank.cshtml" />
|
||||
<Content Include="Views\DisplayTopic.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Forum\TopicForm.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\HeaderProfile.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\QuickMenu.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\JsValues.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\Comment.cshtml" />
|
||||
<Content Include="Assets\css\fonts\our-icon\our-umbraco.eot" />
|
||||
<Content Include="Assets\css\fonts\our-icon\our-umbraco.svg" />
|
||||
@@ -1696,29 +1670,20 @@
|
||||
<Content Include="Assets\css\fonts\our-icon\our-umbraco.woff" />
|
||||
<Content Include="Assets\images\logo.svg" />
|
||||
<Content Include="Assets\images\magnifier.svg" />
|
||||
<Content Include="Views\MacroPartials\Navigation\TopNavigation.cshtml" />
|
||||
<Content Include="Assets\css\fonts\icomoon\icomoon.eot" />
|
||||
<Content Include="Assets\css\fonts\icomoon\icomoon.ttf" />
|
||||
<Content Include="Assets\css\fonts\icomoon\icomoon.woff" />
|
||||
<Content Include="Views\MacroPartials\Forum\TopicActions.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Forum\ForumActions.cshtml" />
|
||||
<Content Include="Assets\js\jquery.scrolly.js" />
|
||||
<Content Include="Views\MacroPartials\Members\Profile.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\ProfileNotifications.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Documenation\Breadcrumb.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Documenation\DisplayMarkdown.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Documenation\Navigation.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Projects\ListCategories.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Projects\ListProjects.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\ProfileNavigation.cshtml" />
|
||||
<Content Include="Views\Partials\Documentation\Navigation.cshtml" />
|
||||
<Content Include="Views\Partials\Projects\ListCategories.cshtml" />
|
||||
<Content Include="Views\Partials\Projects\ListProjects.cshtml" />
|
||||
<Content Include="Views\Partials\Members\ProfileNavigation.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Search\GlobalSearchPage.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\ProfileProjectTeam.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Releases\AllReleases.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Projects\ProjectDetails.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\Register.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\ProfileProjectForums.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Global\AlertBar.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\PublicProfile.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Rss\Forum.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Rss\LatestTopics.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Rss\Packages.cshtml" />
|
||||
@@ -1734,30 +1699,31 @@
|
||||
<Content Include="umbraco\lib\font-awesome\fonts\FontAwesome.otf" />
|
||||
<Content Include="macroScripts\repository-popularpackages.cshtml" />
|
||||
<Content Include="Views\MacroPartials\RedirectProjectCategory.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Community\Home.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Project\Edit.cshtml" />
|
||||
<Content Include="umbraco\lib\bootstrap-tabdrop\README.md" />
|
||||
<Content Include="Views\MacroPartials\Releases\ReleasesDropdown.cshtml" />
|
||||
<Content Include="Views\Partials\Community\TermsAndConditions.cshtml" />
|
||||
<Content Include="Views\Master.cshtml" />
|
||||
<Content Include="Views\Community.cshtml" />
|
||||
<Content Include="Views\Forum.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\Login.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Members\ForgotPassword.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\Forum.cshtml" />
|
||||
<Content Include="Views\Partials\Projects\MyProjects.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Projects\MyProjects.cshtml" />
|
||||
<Content Include="Views\EditProject.cshtml" />
|
||||
<Content Include="Views\FileDownload.cshtml" />
|
||||
<Content Include="Views\DocumentationSubpage.cshtml" />
|
||||
<Content Include="Views\Download.cshtml" />
|
||||
<None Include="Views\Partials\Forum\MemberBadge.cshtml" />
|
||||
<Content Include="Views\Partials\Community\Scripts.cshtml" />
|
||||
<Content Include="Views\Partials\Community\Home.cshtml" />
|
||||
<Content Include="Views\Partials\Community\JsValues.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\ForumActions.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\MemberBadge.cshtml" />
|
||||
<Content Include="Views\Partials\Project\EditFiles.cshtml" />
|
||||
<Content Include="Views\Partials\Project\PackageEditNavigation.cshtml" />
|
||||
<Content Include="Views\Partials\Project\EditScreenshots.cshtml" />
|
||||
<Content Include="Views\Partials\Project\Complete.cshtml" />
|
||||
<Content Include="Views\Partials\Home\LatestForumActivity.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Community\Scripts.cshtml" />
|
||||
<Content Include="Service References\Application Insights\ConnectedService.json" />
|
||||
<Content Include="Views\Web.config" />
|
||||
<Content Include="web.config">
|
||||
<SubType>Designer</SubType>
|
||||
@@ -4323,9 +4289,7 @@
|
||||
<Content Include="umbraco\Views\Default.cshtml" />
|
||||
<Content Include="umbraco\webservices\UltimatePickerAutoCompleteHandler.ashx" />
|
||||
<Content Include="umbraco\xslt\Web.config" />
|
||||
<Content Include="Views\MacroPartials\Forum\Latest.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Forum\Forum.cshtml" />
|
||||
<Content Include="Views\MacroPartials\Forum\Thread.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\Latest.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\Question.cshtml" />
|
||||
<Content Include="Views\Partials\Members\Profile.cshtml" />
|
||||
<Content Include="Views\Partials\Members\ProfileNotification.cshtml" />
|
||||
@@ -4346,8 +4310,6 @@
|
||||
<Content Include="Views\Release.cshtml" />
|
||||
<Content Include="Views\Textpage.cshtml" />
|
||||
<Content Include="Views\RoadMap.cshtml" />
|
||||
<Content Include="Views\Partials\Members\Login.cshtml" />
|
||||
<Content Include="Views\Partials\Members\ForgotPassword.cshtml" />
|
||||
<Content Include="Views\Profilepage.cshtml" />
|
||||
<Content Include="Views\ProjectPage.cshtml" />
|
||||
<Content Include="Views\ReleaseDownload.cshtml" />
|
||||
@@ -4357,6 +4319,21 @@
|
||||
<Content Include="Views\RepositoryFrontpage.cshtml" />
|
||||
<Content Include="Views\RepositoryPage.cshtml" />
|
||||
<Content Include="Views\RepositoryMaster.cshtml" />
|
||||
<Content Include="Views\Partials\Members\QuickMenu.cshtml" />
|
||||
<Content Include="Views\Partials\Navigation\TopNavigation.cshtml" />
|
||||
<Content Include="Views\Partials\Global\Alertbar.cshtml" />
|
||||
<Content Include="Views\Partials\Global\Breadcrumb.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\TopicActions.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\TopicForm.cshtml" />
|
||||
<Content Include="Views\Partials\Forum\Thread.cshtml" />
|
||||
<Content Include="Views\Partials\Documentation\Breadcrumb.cshtml" />
|
||||
<Content Include="Views\Partials\Documentation\DisplayMarkdown.cshtml" />
|
||||
<Content Include="Views\Partials\Members\PublicProfile.cshtml" />
|
||||
<Content Include="Views\Partials\Projects\ProjectDetails.cshtml" />
|
||||
<Content Include="Views\Partials\Releases\ReleasesDropdown.cshtml" />
|
||||
<Content Include="Views\Partials\Releases\AllReleases.cshtml" />
|
||||
<Content Include="Views\Error.cshtml" />
|
||||
<Content Include="Views\PeopleKarma.cshtml" />
|
||||
<Content Include="Views\Partials\Grid\Editors\Textstring.cshtml" />
|
||||
<Content Include="Views\Partials\Grid\Editors\Rte.cshtml" />
|
||||
<Content Include="Views\Partials\Grid\Editors\Media.cshtml" />
|
||||
@@ -4367,6 +4344,9 @@
|
||||
<Content Include="Views\Partials\Grid\Bootstrap3-Fluid.cshtml" />
|
||||
<Content Include="Views\Partials\Grid\Bootstrap2.cshtml" />
|
||||
<Content Include="Views\Partials\Grid\Bootstrap2-Fluid.cshtml" />
|
||||
<Content Include="Views\Lesson.cshtml" />
|
||||
<Content Include="Views\Partials\Home\GitHubContributors.cshtml" />
|
||||
<Content Include="Views\Partials\Home\Meetups.cshtml" />
|
||||
<None Include="web.Debug.config">
|
||||
<DependentUpon>web.config</DependentUpon>
|
||||
</None>
|
||||
@@ -4391,14 +4371,12 @@
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Service References\" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0</VSToolsPath>
|
||||
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0</VSToolsPath>
|
||||
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath>
|
||||
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0</VSToolsPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
|
||||
@@ -4441,16 +4419,16 @@
|
||||
<!-- Only runs if the ClientFiles build folder doesn't yet exist -->
|
||||
<CallTarget Targets="ClientFilesBuild" Condition="!Exists('$(ProjectDir)\..\OurUmbraco.Client\build\assets')" />
|
||||
</Target>
|
||||
<Import Project="..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets" Condition="Exists('..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.7\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.7\build\UmbracoCms.props'))" />
|
||||
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.7\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.7\build\UmbracoCms.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.11\build\UmbracoCms.props'))" />
|
||||
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\UmbracoCms.7.5.7\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.5.7\build\UmbracoCms.targets')" />
|
||||
<Import Project="..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets" Condition="Exists('..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets')" />
|
||||
<Import Project="..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.5.11\build\UmbracoCms.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="AfterBuild">
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
|
||||
"Version": "7.16.109.2",
|
||||
"GettingStartedDocument": {
|
||||
"Uri": "https://go.microsoft.com/fwlink/?LinkID=613413"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,12 @@
|
||||
@inherits UmbracoTemplatePage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
Layout = "~/Views/Master.cshtml";
|
||||
}
|
||||
|
||||
@Umbraco.RenderMacro("CommunityHome")
|
||||
@Html.Partial("~/Views/Partials/Community/Home.cshtml")
|
||||
|
||||
@section Search {
|
||||
@section Search
|
||||
{
|
||||
<script type="text/template" class="search-item-template">
|
||||
<li>
|
||||
<a href="{{ url }}">
|
||||
@@ -26,4 +27,7 @@
|
||||
</script>
|
||||
}
|
||||
|
||||
@Umbraco.RenderMacro("CommunityHomeScripts")
|
||||
@section EndScripts
|
||||
{
|
||||
@Html.Partial("~/Views/Partials/Community/Scripts.cshtml")
|
||||
}
|
||||
@@ -2,18 +2,27 @@
|
||||
@{
|
||||
Layout = "~/Views/Master.cshtml";
|
||||
}
|
||||
|
||||
<div id="contribute" class="subpage">
|
||||
<div id="body" class="markdown-syntax">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "0" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
|
||||
</div>
|
||||
<h1>Contribute to the Umbraco Project</h1>
|
||||
<div>
|
||||
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
|
||||
</div>
|
||||
<div class="options">
|
||||
@Umbraco.RenderMacro("ContentLanding-Summary")
|
||||
<div class="row projectGroups">
|
||||
@foreach (var item in Model.Content.Children.Where(x => x.IsVisible()))
|
||||
{
|
||||
<div class="projectGroup col-md-6">
|
||||
<div style="background-image: url('@(item.GetPropertyValue<string>("contentIcon"))">
|
||||
<h3><a href="@item.Url">@item.Name</a></h3>
|
||||
<p>@(item.GetPropertyValue<string>("abstract"))</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,6 +1,10 @@
|
||||
@inherits UmbracoTemplatePage
|
||||
@using OurUmbraco.Forum.Services
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
Layout = "~/Views/Master.cshtml";
|
||||
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
var topic = topicService.CurrentTopic(Context, ApplicationContext.ApplicationCache.RequestCache, MemberData, Model.Content);
|
||||
}
|
||||
<!-- FORUM OVERVIEW START -->
|
||||
<section class="forum-overview">
|
||||
@@ -8,15 +12,40 @@
|
||||
<!-- FORUM HEADER START -->
|
||||
<div class="utilities">
|
||||
<!-- FORUM BREADCRUMB START -->
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
<!-- FORUM BREADCRUMB END -->
|
||||
<!-- THREAD ACTIONS START -->
|
||||
@Umbraco.RenderMacro("ForumTopicActions")
|
||||
@if (topic != null)
|
||||
{
|
||||
Html.RenderPartial("~/Views/Partials/Forum/TopicActions.cshtml", topic);
|
||||
}
|
||||
<!-- THREAD ACTIONS END -->
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<!-- FORUM HEADER END -->
|
||||
@Umbraco.RenderMacro("ForumThread")
|
||||
@if (topic != null)
|
||||
{
|
||||
Html.RenderPartial("~/Views/Partials/Forum/Thread.cshtml", topic);
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>This topic no longer exists.</p>
|
||||
}
|
||||
</div>
|
||||
</section>
|
||||
@Umbraco.RenderMacro("ForumForm")
|
||||
|
||||
@Html.Partial("~/Views/Partials/Forum/TopicForm.cshtml")
|
||||
|
||||
@section HeadCssScripts {
|
||||
<link rel="stylesheet" type="text/css" href="/css/tooltipster.css" />
|
||||
}
|
||||
@section EndScripts {
|
||||
<script type="text/javascript" src="/scripts/jquery.tooltipster.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$('.highfive-count').tooltipster({
|
||||
contentAsHTML: true,
|
||||
interactive: true,
|
||||
multiple: true
|
||||
});
|
||||
</script>
|
||||
}
|
||||
@@ -7,11 +7,11 @@
|
||||
<div id="wiki" class="subpage">
|
||||
<div id="body">
|
||||
<div style="margin-top: 25px;">
|
||||
@Umbraco.RenderMacro("DocsBreadcrumb")
|
||||
@Html.Partial("~/Views/Partials/Documentation/Breadcrumb.cshtml")
|
||||
</div>
|
||||
|
||||
<div id="markdown-docs" class="markdown-syntax">
|
||||
@Umbraco.RenderMacro("DocsDisplayMarkdown")
|
||||
@Html.Partial("~/Views/Partials/Documentation/DisplayMarkdown.cshtml")
|
||||
</div>
|
||||
|
||||
<br style="clear: both" />
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="sidebar-area">
|
||||
<div class="sidebar-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("DocsNavigation")
|
||||
@Html.Partial("~/Views/Partials/Documentation/Navigation.cshtml")
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .sidebar-content -->
|
||||
</div><!-- .sidebar-area-->
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("DocsBreadcrumb")
|
||||
@Html.Partial("~/Views/Partials/Documentation/Breadcrumb.cshtml")
|
||||
</div>
|
||||
|
||||
<div class="search-big">
|
||||
@@ -28,7 +28,7 @@
|
||||
<ul class="search-all-results docs-search-listing"></ul>
|
||||
|
||||
<div id="markdown-docs" class="docs-default-listing markdown-syntax">
|
||||
@Umbraco.RenderMacro("DocsDisplayMarkdown")
|
||||
@Html.Partial("~/Views/Partials/Documentation/DisplayMarkdown.cshtml")
|
||||
</div>
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .main-content -->
|
||||
|
||||
@@ -6,14 +6,15 @@
|
||||
<div class="sidebar-area">
|
||||
<div class="sidebar-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("MemberProfileNavigation", new { source = "1057" })
|
||||
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .sidebar-content -->
|
||||
</div><!-- .sidebar-area -->
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
|
||||
@if (Request.QueryString["editorStep"] == "files")
|
||||
{
|
||||
@Html.Action("RenderFiles", "Project")
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
@using Umbraco.Core.Logging
|
||||
@{
|
||||
var absoluteReferrer = string.Empty;
|
||||
var referrer = HttpContext.Current.Request.UrlReferrer;
|
||||
if(referrer != null) { absoluteReferrer = referrer.AbsoluteUri; }
|
||||
LogHelper.Info<string>(string.Format("Error view requested on page {0} - referrer {1}", HttpContext.Current.Request.Url.AbsoluteUri, absoluteReferrer));
|
||||
}
|
||||
@@ -6,10 +6,10 @@
|
||||
<!-- FORUM OVERVIEW START -->
|
||||
<section class="forum-overview">
|
||||
<div class="forum-archive">
|
||||
@Umbraco.RenderMacro("ForumForum")
|
||||
@Html.Partial("~/Views/Partials/Forum/Forum.cshtml")
|
||||
</div>
|
||||
</section>
|
||||
@Umbraco.RenderMacro("ForumForm")
|
||||
@Html.Partial("~/Views/Partials/Forum/TopicForm.cshtml")
|
||||
|
||||
@section EndScripts {
|
||||
@{
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
@using OurUmbraco.Documentation.Busineslogic
|
||||
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
|
||||
@{
|
||||
Layout = null;
|
||||
|
||||
var path = HttpContext.Current.Items[MarkdownLogic.MarkdownPathKey].ToString();
|
||||
var ml = new MarkdownLogic(path) { PrefixLinks = false, AppendAltLessonLink = true };
|
||||
|
||||
var markdown = ml.DoTransformation();
|
||||
}
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" type="text/css" rel="stylesheet"/>
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: Asap, sans-serif;
|
||||
}
|
||||
|
||||
code {
|
||||
background-color: #eeeeee ;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
pre {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
display: block;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid #ddd;
|
||||
padding: 1px 15px;
|
||||
color: #777;
|
||||
background: #efefef ;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
@Html.Raw(markdown)
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,18 +0,0 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
try {
|
||||
$("#twitter-search").load("@Url.Action("TwitterSearchResult", "TwitterSearch", new { numberOfResults = 6 })");
|
||||
}
|
||||
catch (errTwitter) {
|
||||
console.log("Couldn't load Twitter feed", errTwitter.message);
|
||||
}
|
||||
|
||||
try {
|
||||
$("#forum-activity").load("@Url.Action("LatestActivity", "LatestActivity", new { numberOfTopics = 6 })");
|
||||
}
|
||||
catch (errForum) {
|
||||
console.log("Couldn't load latest forum activity", errForum.message);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -1,173 +0,0 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@using System.Web.Mvc.Html
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
@using Umbraco.Core.Logging
|
||||
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
|
||||
|
||||
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
if (string.IsNullOrWhiteSpace(notification))
|
||||
{
|
||||
notification = "This forum is in read only mode, you can no longer reply";
|
||||
}
|
||||
}
|
||||
|
||||
<!-- COPY LINK -->
|
||||
|
||||
<div id="overlay" class="overlay"></div>
|
||||
|
||||
<div id="copy-link-wrapper" class="copy-link-wrapper">
|
||||
<i class="icon-Link"></i>
|
||||
<textarea class="getLink" readonly type="text"></textarea>
|
||||
<p>Press Ctrl / CMD + C to copy this to your clipboard.</p>
|
||||
</div>
|
||||
|
||||
<div id="thankyou">
|
||||
Copied to clipboard
|
||||
</div>
|
||||
|
||||
<!-- COPY LINK END -->
|
||||
<!-- DELETE THREAD/COMMENT START -->
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
<div id="confirm-wrapper" class="confirm-wrapper">
|
||||
<h4>Are you sure?</h4>
|
||||
<p>This <span class="type-of"></span> will be gone forever and ever</p>
|
||||
<br />
|
||||
<button type="button" class="button green tiny">Yes</button>
|
||||
<button type="button" class="button red tiny">No</button>
|
||||
</div>
|
||||
}
|
||||
<!-- DELETE THREAD END -->
|
||||
<!-- FLAG SPAM START -->
|
||||
<div id="confirm-wrapper-flag" class="confirm-wrapper-flag">
|
||||
<h4>Flag this post as spam?</h4>
|
||||
<p>This post will be reported to the moderators as potential spam to be looked at</p>
|
||||
<br />
|
||||
<button type="button" class="button green tiny">Yes</button>
|
||||
<button type="button" class="button red tiny">No</button>
|
||||
</div>
|
||||
<!-- FLAG SPAM END -->
|
||||
@if (topic != null)
|
||||
{
|
||||
if (Model.Content.NewTopicsAllowed() == false)
|
||||
{
|
||||
<div class="alertbar__yellow" style="margin-bottom: 10px;">
|
||||
@Html.Raw(notification)
|
||||
</div>
|
||||
}
|
||||
|
||||
<ul class="comments">
|
||||
|
||||
@{
|
||||
try
|
||||
{
|
||||
@Html.Partial("forum/question", topic)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<string>(string.Format("~/Views/MacroPartials/Forum/Thread.cshtml - error rendering topic with id {0}", topic.Id), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@foreach (var comment in topic.Comments.Where(x => x.ParentCommentId == 0))
|
||||
{
|
||||
var comm = comment;
|
||||
|
||||
Html.RenderPartial("forum/comment", comm, new ViewDataDictionary { { "level", 1 }, { "answer", topic.Answer } });
|
||||
|
||||
if (comm.HasChildren)
|
||||
{
|
||||
var children = topic.Comments.Where(x => x.ParentCommentId == comm.Id);
|
||||
|
||||
foreach (var child in children.Where(c => c.ParentCommentId == comm.Id))
|
||||
{
|
||||
Html.RenderPartial("forum/comment", child, new ViewDataDictionary { { "level", 2 }, { "answer", topic.Answer } });
|
||||
}
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
|
||||
if (Members.IsLoggedIn())
|
||||
{
|
||||
if (Model.Content.NewTopicsAllowed())
|
||||
{
|
||||
<div class="replybutton">
|
||||
<a href="#" class="button green large reply forum-reply" data-author="@topic.AuthorName" data-topic="@topic.Id" data-controller="comment"><i class="icon-Reply-arrow"></i> Reply to topic</a>
|
||||
</div>
|
||||
|
||||
<div class="utilities">
|
||||
<div class="utility-actions thread-bottom">
|
||||
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
var mem = Members.GetCurrentMember();
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
}
|
||||
|
||||
if (Members.IsAdmin())
|
||||
{
|
||||
<a href="#" class="delete-thread button" data-id="@topic.Id">
|
||||
<i class="icon-Delete-key"></i><span>Delete thread</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
if (subscribed)
|
||||
{
|
||||
<a href="#" class="follow button following" data-id="@topic.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>Following</span>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="#" class="follow button transparent" data-id="@topic.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>Follow</span>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
|
||||
@if (topic.Answer > 0)
|
||||
{
|
||||
<a href="#comment-@topic.Answer.ToString()" class="go-to-solution button transparent">
|
||||
<i class="icon-Check"></i><span>Go to solution</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(notification)
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="replybutton notloggedin">
|
||||
Please <a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsoluteUri))">Sign in</a> or <a href="/member/signup">register</a> to post replies
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>This topic no longer exists.</p>
|
||||
}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/tooltipster.css" />
|
||||
<script type="text/javascript" src="/scripts/jquery.tooltipster.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$('.highfive-count').tooltipster({
|
||||
contentAsHTML: true,
|
||||
interactive: true,
|
||||
multiple: true
|
||||
});
|
||||
</script>
|
||||
@@ -1,50 +0,0 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
|
||||
}
|
||||
|
||||
<div class="utility-actions">
|
||||
@if(topic != null)
|
||||
{
|
||||
if (Members.IsLoggedIn())
|
||||
{
|
||||
var mem = Members.GetCurrentMember();
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
|
||||
}
|
||||
|
||||
if (Members.IsAdmin())
|
||||
{
|
||||
<a href="#" class="delete-thread button" data-id="@topic.Id">
|
||||
<i class="icon-Delete-key"></i><span>Delete thread</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
if (subscribed)
|
||||
{
|
||||
<a href="#" class="follow button following" data-id="@topic.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>Following</span>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="#" class="follow button transparent" data-id="@topic.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>Follow</span>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
|
||||
if (topic.Answer > 0)
|
||||
{
|
||||
<a href="#comment-@topic.Answer.ToString()" class="go-to-solution button transparent">
|
||||
<i class="icon-Check"></i><span>Go to solution</span>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
@@ -1,18 +0,0 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@if(Members.IsLoggedIn()){
|
||||
|
||||
|
||||
var profile = Members.GetCurrentMemberProfileModel();
|
||||
var member = Members.GetCurrentMember();
|
||||
|
||||
if (member != null) {
|
||||
<script type="text/javascript">
|
||||
var umb_member_name = '@member.Name';
|
||||
var umb_member_email = '@profile.Email';
|
||||
var umb_member_icon = '@member.Avatar()';
|
||||
</script>
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
@using System.Collections.Specialized
|
||||
@using System.Drawing
|
||||
@using OurUmbraco.Our
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
@* Get the root of the website *@
|
||||
var root = CurrentPage.AncestorOrSelf(1);
|
||||
Image avatarImage = null;
|
||||
if (Members.IsLoggedIn())
|
||||
{
|
||||
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
|
||||
}
|
||||
}
|
||||
|
||||
<ul>
|
||||
@foreach (var page in root.Children.Where("Visible"))
|
||||
{
|
||||
<li class="@(page.IsAncestorOrSelf(CurrentPage) ? "current" : null)">
|
||||
<a href="@page.Url">@page.Name</a>
|
||||
</li>
|
||||
}
|
||||
|
||||
<li>
|
||||
@if (Members.IsLoggedIn() && Members.GetCurrentMember() != null)
|
||||
{
|
||||
var member = Members.GetCurrentMember();
|
||||
<div class="user">
|
||||
@Html.Raw(Utils.GetMemberAvatar(member, 75))
|
||||
@if (avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
|
||||
{
|
||||
<span class="notificationCount">1</span>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsolutePath))">Sign in</a><strong> / </strong><a href="/member/Signup">Register</a>
|
||||
}
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1,14 +0,0 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
|
||||
@* Ensure that the Current Page has children, where the property umbracoNaviHide is not True *@
|
||||
<ul class="level-2">
|
||||
@* For each child page under the root node, where the property umbracoNaviHide is not True *@
|
||||
@foreach (var childPage in CurrentPage.ProjectGroups.Where("Visible"))
|
||||
{
|
||||
<li>
|
||||
<h4><a href="?category=@childPage.Name">@childPage.Name</a></h4>
|
||||
</li>
|
||||
}
|
||||
<li><h4><a href="?category=uaas">Umbraco Cloud</a></h4></li>
|
||||
</ul>
|
||||
@@ -1,7 +1,6 @@
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Umbraco.Core.Configuration
|
||||
@using Umbraco.Web.Security
|
||||
@inherits UmbracoTemplatePage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
Layout = null;
|
||||
var model = UmbracoContext.Current.PublishedContentRequest.PublishedContent;
|
||||
@@ -9,25 +8,22 @@
|
||||
model.Level > 2 && model.AncestorOrSelf(3).Id == 1057
|
||||
? "profile has-sidebar"
|
||||
: model.DocumentTypeAlias.ToLower().Replace(" ", "-") + "-page";
|
||||
|
||||
var ms = new MembershipHelper(UmbracoContext.Current);
|
||||
var member = ms.GetCurrentMember();
|
||||
var memberIsBlocked = false;
|
||||
if (member != null) { memberIsBlocked = member.GetPropertyValue<bool>("blocked"); }
|
||||
|
||||
var memberIsBlocked = MemberData != null && MemberData.IsBlocked;
|
||||
|
||||
|
||||
Html.RequiresCss("~/assets/css/style.min.css", 0);
|
||||
Html.RequiresCss("https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic", 0);
|
||||
Html.RequiresCss("https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css", 0);
|
||||
Html.RequiresCss("https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.css", 0);
|
||||
|
||||
|
||||
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.13.1/jquery.validate.min.js");
|
||||
Html.RequiresJs("https://ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Converter.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Editor.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.8.1/mustache.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.js");
|
||||
|
||||
Html.RequiresJs("~/assets/js/jquery.ajaxfileupload.js");
|
||||
|
||||
@@ -47,7 +43,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" title="Latest packages" href="//our.umbraco.org/rss/projects" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Package updates" href="//our.umbraco.org/rss/projectsupdate" />
|
||||
@@ -72,7 +68,21 @@
|
||||
<link rel="icon" type="image/png" href="/assets/images/app-icons/favicon.png">
|
||||
|
||||
<title>
|
||||
@Umbraco.RenderMacro("Title")
|
||||
@{
|
||||
var title = string.Empty;
|
||||
var navigationTitle = HttpContext.Current.Items["topicTitle"];
|
||||
if (navigationTitle != null)
|
||||
{
|
||||
title = navigationTitle.ToString();
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(title) == false)
|
||||
{
|
||||
<text>@title - </text>
|
||||
}
|
||||
}
|
||||
|
||||
@Model.Content.Name - our.umbraco.org
|
||||
</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
@@ -80,23 +90,13 @@
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js"></script>
|
||||
<![endif]-->
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.2.min.js"></script>
|
||||
<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
|
||||
|
||||
@Umbraco.RenderMacro("MembersJsValues")
|
||||
@Html.Partial("~/Views/Partials/Community/JsValues.cshtml")
|
||||
|
||||
@Html.RenderCssHere()
|
||||
@RenderSection("HeadCssScripts", false)
|
||||
|
||||
<script>
|
||||
var _prum = [['id', '529dbcf6abe53d055a000000'],
|
||||
['mark', 'firstbyte', (new Date()).getTime()]];
|
||||
(function () {
|
||||
var s = document.getElementsByTagName('script')[0]
|
||||
, p = document.createElement('script');
|
||||
p.async = 'async';
|
||||
p.src = '//rum-static.pingdom.net/prum.min.js';
|
||||
s.parentNode.insertBefore(p, s);
|
||||
})();
|
||||
</script>
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
|
||||
@@ -108,11 +108,10 @@
|
||||
ga('create', 'UA-120590-4', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="@bodyCss">
|
||||
@Umbraco.RenderMacro("MembersQuickMenu")
|
||||
@Html.Partial("~/Views/Partials/Members/QuickMenu.cshtml")
|
||||
|
||||
<div class="wrapper">
|
||||
<header>
|
||||
@@ -126,7 +125,7 @@
|
||||
<a href="#" class="toggle cross"><span></span></a>
|
||||
</div>
|
||||
<nav class="col-md-9">
|
||||
@Umbraco.RenderMacro("NavigationTopNavigation")
|
||||
@Html.Partial("~/Views/Partials/Navigation/TopNavigation.cshtml")
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
@@ -136,7 +135,7 @@
|
||||
@{
|
||||
if (memberIsBlocked == false)
|
||||
{
|
||||
@Umbraco.RenderMacro("GlobalAlertBar")
|
||||
@Html.Partial("~/Views/Partials/Global/AlertBar.cshtml")
|
||||
@RenderSection("Search", false)
|
||||
@RenderBody()
|
||||
}
|
||||
@@ -175,7 +174,7 @@
|
||||
|
||||
</div>
|
||||
<!--.wrapper-->
|
||||
|
||||
|
||||
@Html.RenderJsHere()
|
||||
|
||||
<script type="text/javascript">
|
||||
@@ -184,4 +183,4 @@
|
||||
|
||||
@RenderSection("EndScripts", false)
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
+189
-126
@@ -1,127 +1,190 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@{
|
||||
var homeNotificationText = Model.Content.GetPropertyValue<string>("homeOnlyBanner");
|
||||
var showHomeNotification = string.IsNullOrWhiteSpace(homeNotificationText) == false;
|
||||
var globalNotificationText = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
var showGlobalNotification = string.IsNullOrWhiteSpace(globalNotificationText) == false;
|
||||
}
|
||||
<!-- Search start -->
|
||||
<section id="search-all" class="search-all">
|
||||
|
||||
<div class="search-all-form">
|
||||
<div class="search-fieldset">
|
||||
<input class="search-input" type="search" placeholder="Search..">
|
||||
<input class="search-submit" type="submit" value="">
|
||||
</div>
|
||||
<span class="search-all-close"></span>
|
||||
</div>
|
||||
|
||||
<div class="search-all-results equalizer">
|
||||
<ul></ul>
|
||||
</div>
|
||||
|
||||
@if (!Members.IsLoggedIn())
|
||||
{
|
||||
<div class="search-text">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<strong>The friendliest CMS community on the planet</strong>
|
||||
<p>our.umbraco.org is the central hub for the friendly umbraco community. Search for documentation, get help and guidance from seasoned experts, download and collaborate on plugins and extensions.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</section>
|
||||
<!-- Search end -->
|
||||
|
||||
<style>
|
||||
.bannertext p{
|
||||
line-height: 1.4rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@if (showGlobalNotification)
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(globalNotificationText)
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (showHomeNotification)
|
||||
{
|
||||
@Html.Raw(homeNotificationText)
|
||||
}
|
||||
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
@ForumActivity()
|
||||
@TwitterSearch()
|
||||
@Html.Partial("home/documentation")
|
||||
}
|
||||
else
|
||||
{
|
||||
@Html.Partial("home/documentation")
|
||||
@ForumActivity()
|
||||
@TwitterSearch()
|
||||
}
|
||||
|
||||
@helper ForumActivity()
|
||||
{
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Forum Activity</h1>
|
||||
<p>
|
||||
Recent activity in the forums, where people are helping each other with current problems.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Recent posts</small>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 flex" id="forum-activity">
|
||||
<h2>Loading latest forum activity...</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 goto-forum">
|
||||
<a class="button green" href="/forum">Go to Forum →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
|
||||
@helper TwitterSearch()
|
||||
{
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Twitter Activity</h1>
|
||||
<p>
|
||||
Recent activity on twitter, where people are talking about Umbraco.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Recent tweets</small>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 flex" id="twitter-search">
|
||||
<h2>Loading twitter search results...</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 goto-forum">
|
||||
<a class="button green" href="https://twitter.com/search?f=tweets&vertical=default&q=umbraco&src=typd">Join the conversation on Twitter →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@using OurUmbraco.Our.Models
|
||||
@using Skybrud.Social.Meetup.Models.Events
|
||||
@inherits OurUmbracoTemplatePage
|
||||
@{
|
||||
var homeNotificationText = Model.Content.GetPropertyValue<string>("homeOnlyBanner");
|
||||
var showHomeNotification = string.IsNullOrWhiteSpace(homeNotificationText) == false;
|
||||
var globalNotificationText = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
var showGlobalNotification = string.IsNullOrWhiteSpace(globalNotificationText) == false;
|
||||
}
|
||||
<!-- Search start -->
|
||||
<section id="search-all" class="search-all">
|
||||
|
||||
<div class="search-all-form">
|
||||
<div class="search-fieldset">
|
||||
<input class="search-input" type="search" placeholder="Search..">
|
||||
<input class="search-submit" type="submit" value="">
|
||||
</div>
|
||||
<span class="search-all-close"></span>
|
||||
</div>
|
||||
|
||||
<div class="search-all-results equalizer">
|
||||
<ul></ul>
|
||||
</div>
|
||||
|
||||
@if (MemberData == null)
|
||||
{
|
||||
<div class="search-text">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<strong>The friendliest CMS community on the planet</strong>
|
||||
<p>our.umbraco.org is the central hub for the friendly umbraco community. Search for documentation, get help and guidance from seasoned experts, download and collaborate on plugins and extensions.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</section>
|
||||
<!-- Search end -->
|
||||
|
||||
<style>
|
||||
.bannertext p {
|
||||
line-height: 1.4rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
@if (showGlobalNotification)
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(globalNotificationText)
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (showHomeNotification)
|
||||
{
|
||||
@Html.Raw(homeNotificationText)
|
||||
}
|
||||
|
||||
@if (Members.IsLoggedIn())
|
||||
{
|
||||
@ForumActivity()
|
||||
@Meetups()
|
||||
@GitHubContributors()
|
||||
@TwitterSearch()
|
||||
@Html.Partial("home/documentation")
|
||||
}
|
||||
else
|
||||
{
|
||||
@Html.Partial("home/documentation")
|
||||
@ForumActivity()
|
||||
@Meetups()
|
||||
@GitHubContributors()
|
||||
@TwitterSearch()
|
||||
}
|
||||
|
||||
@helper ForumActivity()
|
||||
{
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Forum Activity</h1>
|
||||
<p>
|
||||
Recent activity in the forums, where people are helping each other with current problems.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Recent posts</small>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 flex" id="forum-activity">
|
||||
<h2>Loading latest forum activity...</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 goto-forum">
|
||||
<a class="button green" href="/forum">Go to Forum →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
|
||||
@helper TwitterSearch()
|
||||
{
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Twitter Activity</h1>
|
||||
<p>
|
||||
Recent activity on twitter, where people are talking about Umbraco.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Recent tweets</small>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 flex" id="twitter-search">
|
||||
<h2>Loading twitter search results...</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 goto-forum">
|
||||
<a class="button green" href="https://twitter.com/search?f=tweets&vertical=default&q=umbraco&src=typd">Join the conversation on Twitter →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
|
||||
@helper GitHubContributors()
|
||||
{
|
||||
<section class="github-contributors forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">GitHub Contributions</h1>
|
||||
<p>
|
||||
<small class="link-list">
|
||||
Contributions to default branches for
|
||||
<a href="https://github.com/umbraco/Umbraco-CMS" target="_blank" title="Umbraco-CMS">Umbraco-CMS</a>,
|
||||
<a href="https://github.com/umbraco/UmbracoDocs" target="_blank" title="UmbracoDocs">UmbracoDocs</a>,
|
||||
<a href="https://github.com/umbraco/OurUmbraco" target="_blank" title="OurUmbraco">OurUmbraco</a>,
|
||||
<a href="https://github.com/umbraco/Umbraco.Deploy.Contrib" target="_blank" title="Umbraco.Deploy.Contrib">Umbraco.Deploy.Contrib</a>,
|
||||
<a href="https://github.com/umbraco/Umbraco.Courier.Contrib" target="_blank" title="Umbraco.Courier.Contrib">Umbraco.Courier.Contrib</a> and
|
||||
<a href="https://github.com/umbraco/Umbraco.Deploy.ValueConnectors" target="_blank" title="Umbraco.Deploy.ValueConnectors">Umbraco.Deploy.ValueConnectors</a> repos
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Contributions the last 12 months (number indicating accepted commits)</small>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 flex forum-thread" id="github-contributors">
|
||||
<h2>Loading GitHub contributors...</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 goto-forum">
|
||||
<a class="button green" href="https://our.umbraco.org/contribute">Contribute to Umbraco →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
|
||||
@helper Meetups() {
|
||||
<section class="forum">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h1 class="text-center">Meetups</h1>
|
||||
<p>
|
||||
Upcoming meetups organized by the Umbraco community.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<small>Upcoming meetups</small>
|
||||
</div>
|
||||
<div class="col-md-12 flex" id="meetups">
|
||||
<h2>Loading meetups...</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@if (MemberData != null)
|
||||
{
|
||||
<script type="text/javascript">
|
||||
var umb_member_name = '@MemberData.Member.Name';
|
||||
var umb_member_email = '@MemberData.Email';
|
||||
var umb_member_icon = '@MemberData.AvatarPath';
|
||||
</script>
|
||||
}
|
||||
|
||||
@functions
|
||||
{
|
||||
public class MemberJsValues
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Email { get; set; }
|
||||
public string Icon { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<script type="text/javascript">
|
||||
|
||||
function loadAllGitHubContributors() {
|
||||
$('#github-contributors').addClass('all');
|
||||
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
try {
|
||||
$("#twitter-search").load("@Url.Action("TwitterSearchResult", "TwitterSearch", new {numberOfResults = 6})");
|
||||
} catch (errTwitter) {
|
||||
console.log("Couldn't load Twitter feed", errTwitter.message);
|
||||
}
|
||||
|
||||
try {
|
||||
console.log("@Url.Action("GetEvents", "Meetups")");
|
||||
$("#meetups").load("@Url.Action("GetEvents", "Meetups")");
|
||||
console.log('yay');
|
||||
}
|
||||
catch (errTwitter) {
|
||||
console.log("Couldn't load meetups", errTwitter.message);
|
||||
}
|
||||
|
||||
try {
|
||||
$("#forum-activity").load("@Url.Action("LatestActivity", "LatestActivity", new {numberOfTopics = 6})");
|
||||
} catch (errForum) {
|
||||
console.log("Couldn't load latest forum activity", errForum.message);
|
||||
}
|
||||
|
||||
try {
|
||||
$("#github-contributors").load("@Url.Action("GitHubGetContributorsResult", "GitHubContributor")");
|
||||
}
|
||||
catch (errForum) {
|
||||
console.log("Couldn't load latest GitHub contributor activity", errForum.message);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
@using OurUmbraco.Documentation
|
||||
@using OurUmbraco.Documentation
|
||||
@using OurUmbraco.Documentation.Busineslogic
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@{
|
||||
string baseurl = "/";
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
directoryName = directoryName.Substring(1);
|
||||
string[] strDirs = directoryName.Split('\\');
|
||||
|
||||
|
||||
var linkToGithub = string.Empty;
|
||||
if (absolutePath.StartsWith("/project") == false)
|
||||
{
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
@using OurUmbraco.Documentation.Busineslogic
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
<style>
|
||||
#markdown-docs .anchorjs-link {
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
@using OurUmbraco.Documentation.Busineslogic.GithubSourcePull
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
var zipper = new ZipDownloader();
|
||||
dynamic sitemap = zipper.DocumentationSiteMap();
|
||||
@@ -1,38 +1,25 @@
|
||||
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Forum.Models.ReadOnlyComment>
|
||||
@inherits UmbracoViewPage<OurUmbraco.Forum.Models.ReadOnlyComment>
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.Powers.Library
|
||||
|
||||
@{
|
||||
var currentMember = Members.GetCurrentMember();
|
||||
var answer = (int)ViewData["answer"];
|
||||
var roles = new List<string>();
|
||||
|
||||
var commentAuthor = Members.GetById(Model.MemberId);
|
||||
// author could have been deleted (spammer) so make sure to check if they exist
|
||||
if (commentAuthor != null)
|
||||
{
|
||||
roles = commentAuthor.GetRoles();
|
||||
}
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
|
||||
var forum = Umbraco.TypedContent(topic.ParentId);
|
||||
var forumReadOnly = forum.NewTopicsAllowed() == false;
|
||||
|
||||
var currentMember = Model.MemberData != null && Model.MemberData.Member != null ? Model.MemberData.Member : null;
|
||||
var commentAuthor = Model.TopicMembers.FirstOrDefault(x => x.Member.Id == Model.MemberId);
|
||||
var forumReadOnly = Model.ForumNewTopicsAllowed == false;
|
||||
}
|
||||
@* If author exists and comment is either not spam or the viewer is a the author or an admin admin *@
|
||||
@if (commentAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == commentAuthor.Id) || Members.IsAdmin()))
|
||||
@if (commentAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == commentAuthor.Member.Id) || Model.MemberData != null && Model.MemberData.IsAdmin))
|
||||
{
|
||||
<li class="comment @(Model.ParentCommentId > 0 ? "level-2" : null) @(Model.Id == answer ? "solution" : null)" data-parent="@Model.ParentCommentId" id="comment-@Model.Id">
|
||||
<li class="comment @(Model.ParentCommentId > 0 ? "level-2" : null) @(Model.IsAnswer ? "solution" : null)" data-parent="@Model.ParentCommentId" id="comment-@Model.Id">
|
||||
<div class="meta">
|
||||
<div class="profile">
|
||||
<a href="/member/@commentAuthor.Id">@commentAuthor.Name</a> <span>@if (commentAuthor.ForumPosts() == 0 || commentAuthor.ForumPosts() > 1){@commentAuthor.ForumPosts() <text>posts</text>}else{@commentAuthor.ForumPosts() <text>post</text>}</span> <span>@commentAuthor.Karma() karma points</span>
|
||||
<a href="/member/@commentAuthor.Member.Id">@commentAuthor.Member.Name</a> <span>@if (commentAuthor.Member.ForumPosts() == 0 || commentAuthor.Member.ForumPosts() > 1){@commentAuthor.Member.ForumPosts() <text>posts</text>}else{@commentAuthor.Member.ForumPosts() <text>post</text>}</span> <span>@commentAuthor.Member.Karma() karma points</span>
|
||||
|
||||
|
||||
@if (roles.Any())
|
||||
@if (commentAuthor.Roles.Any())
|
||||
{
|
||||
<span class="roles">
|
||||
@foreach (var role in roles)
|
||||
@foreach (var role in (commentAuthor.Roles))
|
||||
{
|
||||
<span class="@role">@role</span>
|
||||
}
|
||||
@@ -46,14 +33,14 @@
|
||||
</div>
|
||||
|
||||
<div class="comment-inner">
|
||||
<a href="/member/@commentAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor, 75))</a>
|
||||
<a href="/member/@commentAuthor.Member.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor.Member, 75))</a>
|
||||
|
||||
<div class="highfive highfive-comment">
|
||||
@{
|
||||
var html = "High fives from:<br />";
|
||||
foreach (var vote in Model.Votes)
|
||||
{
|
||||
if (Model.Id == answer && vote.MemberId == Model.TopicAuthorId)
|
||||
if (Model.IsAnswer && vote.MemberId == Model.TopicAuthorId)
|
||||
{
|
||||
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a> (marked as the answer)<br />", html, vote.MemberId, vote.MemberName);
|
||||
}
|
||||
@@ -68,7 +55,7 @@
|
||||
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
|
||||
@Model.Score
|
||||
</div>
|
||||
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersComment"))
|
||||
@if (Model.MemberData != null && !Utils.HasVoted(currentMember.Id, Model.Id, "powersComment"))
|
||||
{
|
||||
if (currentMember.Id != Model.MemberId)
|
||||
{
|
||||
@@ -82,7 +69,7 @@
|
||||
@if (Model.IsSpam)
|
||||
{
|
||||
<div class="alert">
|
||||
@if (Members.IsAdmin())
|
||||
@if (Model.MemberData.IsAdmin)
|
||||
{
|
||||
<span>You can see this comment because you're a moderator of the forum.</span><br/><br/>
|
||||
}
|
||||
@@ -97,13 +84,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
@if (Members.IsLoggedIn())
|
||||
@if (Model.MemberData != null)
|
||||
{
|
||||
<a href="#" class="flag-comment" data-id="@Model.Id" data-member="@currentMember.Id">
|
||||
<i class="icon-Flag"></i><span>Flag as spam</span>
|
||||
</a>
|
||||
|
||||
if (answer == 0 && (Members.IsAdmin() || currentMember.Id == Model.TopicAuthorId))
|
||||
if (Model.IsAnswer == false && (Model.MemberData.IsAdmin || currentMember.Id == Model.TopicAuthorId))
|
||||
{
|
||||
<a href="#" class="solved" data-id="@Model.Id">
|
||||
<i class="icon-Check"></i><span>Mark as solution</span>
|
||||
@@ -112,19 +99,19 @@
|
||||
|
||||
if (Model.ParentCommentId <= 0 && forumReadOnly == false)
|
||||
{
|
||||
<a href="#" data-author="@commentAuthor.Name" data-topic="@Model.TopicId" data-parent="@Model.Id" data-controller="comment" class="forum-reply reply">
|
||||
<a href="#" data-author="@commentAuthor.Member.Name" data-topic="@Model.TopicId" data-parent="@Model.Id" data-controller="comment" class="forum-reply reply">
|
||||
<i class="icon-Reply-arrow"></i><span>Reply</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
if (Model.ParentCommentId > 0 && forumReadOnly == false)
|
||||
{
|
||||
<a href="#" data-author="@commentAuthor.Name" data-topic="@Model.TopicId" data-parent="@Model.ParentCommentId" data-controller="comment" class="forum-reply reply">
|
||||
<a href="#" data-author="@commentAuthor.Member.Name" data-topic="@Model.TopicId" data-parent="@Model.ParentCommentId" data-controller="comment" class="forum-reply reply">
|
||||
<i class="icon-Reply-arrow"></i><span>Reply</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
if (Members.IsAdmin() || currentMember.Id == Model.MemberId)
|
||||
if (Model.MemberData.IsAdmin || currentMember.Id == Model.MemberId)
|
||||
{
|
||||
<a href="#" class="edit-post" data-id="@Model.Id" data-topic="@Model.TopicId" data-controller="comment">
|
||||
<i class="icon-Edit"></i><span>Edit</span>
|
||||
@@ -134,7 +121,7 @@
|
||||
<i class="icon-Delete-key"></i><span>Delete</span>
|
||||
</a>
|
||||
|
||||
if (Members.IsAdmin())
|
||||
if (Model.MemberData.IsAdmin)
|
||||
{
|
||||
if (Model.IsSpam)
|
||||
{
|
||||
|
||||
+198
-195
@@ -1,195 +1,198 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Library
|
||||
@using OurUmbraco.Forum.Models
|
||||
@using OurUmbraco.Forum.Services
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
const int pagesToShowLeft = 4;
|
||||
int page;
|
||||
if (!int.TryParse(Request["page"], out page))
|
||||
{
|
||||
page = 1;
|
||||
}
|
||||
bool unsolved;
|
||||
bool.TryParse(Request["unsolved"], out unsolved);
|
||||
bool noreplies;
|
||||
bool.TryParse(Request["noreplies"], out noreplies);
|
||||
|
||||
var cat = -1;
|
||||
if (CurrentPage.Level > 2)
|
||||
{
|
||||
cat = CurrentPage.Id;
|
||||
}
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
|
||||
IEnumerable<ReadOnlyTopic> topics;
|
||||
|
||||
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
|
||||
// only cache the first page of each category
|
||||
var pageSize = 50;
|
||||
if (page > 1)
|
||||
{
|
||||
topics = topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies);
|
||||
}
|
||||
else
|
||||
{
|
||||
var key = "OurForumForum[" + cat + unsolved + noreplies + "]";
|
||||
topics = (IEnumerable<ReadOnlyTopic>)cache.GetCacheItem(key,
|
||||
() => topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies).ToArray(),
|
||||
TimeSpan.FromSeconds(4));
|
||||
}
|
||||
|
||||
var totalCountKey = "OurForumForumThreadCount[" + cat + "]";
|
||||
var totalTopics = (int)cache.GetCacheItem(totalCountKey,
|
||||
() => topicService.GetAllTopicsCount(cat),
|
||||
TimeSpan.FromMinutes(1));
|
||||
|
||||
var pages = (totalTopics / pageSize) + 1;
|
||||
|
||||
var categories = Model.Content.AncestorOrSelf(2);
|
||||
}
|
||||
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
|
||||
{
|
||||
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
if (string.IsNullOrWhiteSpace(notification))
|
||||
{
|
||||
notification = "This forum is in read only mode, you can no longer create new topics";
|
||||
}
|
||||
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(notification)
|
||||
</div>
|
||||
}
|
||||
<!-- FORUM HEADER START -->
|
||||
<div class="utilities">
|
||||
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linktocurrent = "1" })
|
||||
|
||||
@Umbraco.RenderMacro("ForumForumActions")
|
||||
|
||||
</div>
|
||||
|
||||
<div class="forum-settings">
|
||||
<div class="search-big">
|
||||
<input type="search" class="forum-search-input" required placeholder="Search for threads">
|
||||
<label for="search">Search for threads</label>
|
||||
</div>
|
||||
|
||||
<div class="or">or</div>
|
||||
<div class="sorting">
|
||||
<select id="selectCategory" data-placeholder="Choose…">
|
||||
<option class="category" selected disabled>Filter by category</option>
|
||||
@if (categories.ContentType.Alias == "Projects")
|
||||
{
|
||||
foreach (var tag in CurrentPage.Parent.Children)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<option class="all" value="@categories.Id">All categories</option>
|
||||
foreach (var tag in categories.Children)
|
||||
{
|
||||
if (tag.ContentType.Alias == "Forum" && tag.IsArchived() == false)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div id="search-options" class="search-options">
|
||||
<label>Filter by</label>
|
||||
<div class="options">
|
||||
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="unsolved" />
|
||||
<span></span>
|
||||
<small>show only unsolved topics</small>
|
||||
</label>
|
||||
|
||||
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="noreplies" />
|
||||
<span></span>
|
||||
<small>show only topics with no replies</small>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FORUM HEADER END -->
|
||||
<!-- FORUM TOPICS -->
|
||||
<div id="overlay" class="overlay"></div>
|
||||
<!-- FORUM LIST START -->
|
||||
<section class="forum">
|
||||
<!-- FORUM LIST HEADER START -->
|
||||
<div class="forum-head">
|
||||
|
||||
<div class="topic">Topic</div>
|
||||
<div class="category">Category</div>
|
||||
<div class="posts">Replies</div>
|
||||
|
||||
</div>
|
||||
<!-- FORUM LIST HEADER END -->
|
||||
<!-- FORUM LIST OF THREADS START -->
|
||||
<div class="forum-content">
|
||||
|
||||
<!-- FORUM THREAD START -->
|
||||
@foreach (var topic in topics)
|
||||
{
|
||||
var forum = Umbraco.TypedContent(topic.ParentId);
|
||||
if (forum != null)
|
||||
{
|
||||
<div class="topic-row @Umbraco.If(topic.Answer > 0, " solved")">
|
||||
|
||||
<div class="topic">
|
||||
<a href="@topic.GetUrl()">
|
||||
<h3>@topic.Title</h3>
|
||||
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
|
||||
{
|
||||
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">last edited by <strong>@topic.LastReplyAuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">topic created by <strong>@topic.AuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
|
||||
}
|
||||
</a>
|
||||
</div>
|
||||
<div class="category frontend">
|
||||
<a href="@forum.Url">@(Utils.GetForumName(forum))</a>
|
||||
</div>
|
||||
<div class="posts"><small>@topic.Replies</small> <span>replies</span></div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<nav class="pagination" role="navigation">
|
||||
@if (page > 1)
|
||||
{
|
||||
<a class="prev" href="?page=@(page - 1)">Prev</a>
|
||||
<span>…</span>
|
||||
}
|
||||
|
||||
@for (var i = (page - 1 > 0 ? page - 1 : 1); i < (page + (pagesToShowLeft - (page - 1 > 0 ? 1 : 0))) && i <= pages; i++)
|
||||
{
|
||||
<a class="@Umbraco.If(i == page, "active")" href="?page=@i">@i</a>
|
||||
}
|
||||
|
||||
@if (page < (pages - 3))
|
||||
{
|
||||
<span>…</span>
|
||||
<a class="next" href="?page=@(page + 1)">Next</a>
|
||||
}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="forum-conten"></div>
|
||||
<!-- FORUM LIST OF THREADS START -->
|
||||
</section>
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Library
|
||||
@using OurUmbraco.Forum.Models
|
||||
@using OurUmbraco.Forum.Services
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@{
|
||||
// Save query string for use in pagination links
|
||||
var queryString = HttpUtility.ParseQueryString(Request.QueryString.ToString());
|
||||
|
||||
const int pagesToShowLeft = 4;
|
||||
int page;
|
||||
if (!int.TryParse(Request["page"], out page))
|
||||
{
|
||||
page = 1;
|
||||
}
|
||||
bool unsolved;
|
||||
bool.TryParse(Request["unsolved"], out unsolved);
|
||||
bool noreplies;
|
||||
bool.TryParse(Request["noreplies"], out noreplies);
|
||||
|
||||
var cat = -1;
|
||||
if (CurrentPage.Level > 2)
|
||||
{
|
||||
cat = CurrentPage.Id;
|
||||
}
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
|
||||
IEnumerable<ReadOnlyTopic> topics;
|
||||
|
||||
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
|
||||
// only cache the first page of each category
|
||||
var pageSize = 50;
|
||||
if (page > 1)
|
||||
{
|
||||
topics = topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies);
|
||||
}
|
||||
else
|
||||
{
|
||||
var key = "OurForumForum[" + cat + unsolved + noreplies + "]";
|
||||
topics = (IEnumerable<ReadOnlyTopic>)cache.GetCacheItem(key,
|
||||
() => topicService.GetLatestTopicsFiltered(pageSize, page, true, cat, unsolved, noreplies).ToArray(),
|
||||
TimeSpan.FromSeconds(4));
|
||||
}
|
||||
|
||||
var totalCountKey = "OurForumForumThreadCount[" + cat + unsolved + noreplies + "]";
|
||||
var totalTopics = (int)cache.GetCacheItem(totalCountKey,
|
||||
() => topicService.GetAllTopicsCount(cat, unsolved, noreplies),
|
||||
TimeSpan.FromMinutes(1));
|
||||
|
||||
var pages = (totalTopics / pageSize) + 1;
|
||||
|
||||
var categories = Model.Content.AncestorOrSelf(2);
|
||||
}
|
||||
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
|
||||
{
|
||||
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
|
||||
if (string.IsNullOrWhiteSpace(notification))
|
||||
{
|
||||
notification = "This forum is in read only mode, you can no longer create new topics";
|
||||
}
|
||||
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(notification)
|
||||
</div>
|
||||
}
|
||||
<!-- FORUM HEADER START -->
|
||||
<div class="utilities">
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
@Html.Partial("~/Views/Partials/Forum/ForumActions.cshtml")
|
||||
</div>
|
||||
|
||||
<div class="forum-settings">
|
||||
<div class="search-big">
|
||||
<input type="search" class="forum-search-input" required placeholder="Search for threads">
|
||||
<label for="search">Search for threads</label>
|
||||
</div>
|
||||
|
||||
<div class="or">or</div>
|
||||
<div class="sorting">
|
||||
<select id="selectCategory" data-placeholder="Choose…">
|
||||
<option class="category" selected disabled>Filter by category</option>
|
||||
@if (categories.ContentType.Alias == "Projects")
|
||||
{
|
||||
foreach (var tag in CurrentPage.Parent.Children)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<option class="all" value="@categories.Id">All categories</option>
|
||||
foreach (var tag in categories.Children)
|
||||
{
|
||||
if (tag.ContentType.Alias == "Forum" && tag.IsArchived() == false)
|
||||
{
|
||||
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
|
||||
}
|
||||
}
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div id="search-options" class="search-options">
|
||||
<label>Filter by</label>
|
||||
<div class="options">
|
||||
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="unsolved" />
|
||||
<span></span>
|
||||
<small>show only unsolved topics</small>
|
||||
</label>
|
||||
|
||||
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="noreplies" />
|
||||
<span></span>
|
||||
<small>show only topics with no replies</small>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FORUM HEADER END -->
|
||||
<!-- FORUM TOPICS -->
|
||||
<div id="overlay" class="overlay"></div>
|
||||
<!-- FORUM LIST START -->
|
||||
<section class="forum">
|
||||
<!-- FORUM LIST HEADER START -->
|
||||
<div class="forum-head">
|
||||
|
||||
<div class="topic">Topic</div>
|
||||
<div class="category">Category</div>
|
||||
<div class="posts">Replies</div>
|
||||
|
||||
</div>
|
||||
<!-- FORUM LIST HEADER END -->
|
||||
<!-- FORUM LIST OF THREADS START -->
|
||||
<div class="forum-content">
|
||||
|
||||
<!-- FORUM THREAD START -->
|
||||
@foreach (var topic in topics)
|
||||
{
|
||||
var forum = Umbraco.TypedContent(topic.ParentId);
|
||||
if (forum != null)
|
||||
{
|
||||
<div class="topic-row @Umbraco.If(topic.Answer > 0, " solved")">
|
||||
|
||||
<div class="topic">
|
||||
<a href="@topic.GetUrl()">
|
||||
<h3>@topic.Title</h3>
|
||||
@if (topic.Replies != 0 && !string.IsNullOrEmpty(topic.LastReplyAuthorName))
|
||||
{
|
||||
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">last edited by <strong>@topic.LastReplyAuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span title="@string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now))">topic created by <strong>@topic.AuthorName</strong> @topic.Updated.ConvertToRelativeTime()</span>
|
||||
}
|
||||
</a>
|
||||
</div>
|
||||
<div class="category frontend">
|
||||
<a href="@forum.Url">@(Utils.GetForumName(forum))</a>
|
||||
</div>
|
||||
<div class="posts"><small>@topic.Replies</small> <span>replies</span></div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<nav class="pagination" role="navigation">
|
||||
@if (page > 1)
|
||||
{
|
||||
queryString["page"] = (page - 1).ToString();
|
||||
<a class="prev" href="?@queryString">Prev</a>
|
||||
<span>…</span>
|
||||
}
|
||||
|
||||
@for (var i = (page - 1 > 0 ? page - 1 : 1); i < (page + (pagesToShowLeft - (page - 1 > 0 ? 1 : 0))) && i <= pages; i++)
|
||||
{
|
||||
queryString["page"] = i.ToString();
|
||||
<a class="@Umbraco.If(i == page, "active")" href="?@queryString">@i</a>
|
||||
}
|
||||
|
||||
@if (page < pages)
|
||||
{
|
||||
queryString["page"] = (page + 1).ToString();
|
||||
<span>…</span>
|
||||
<a class="next" href="?@queryString">Next</a>
|
||||
}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="forum-conten"></div>
|
||||
<!-- FORUM LIST OF THREADS START -->
|
||||
</section>
|
||||
+4
-10
@@ -1,9 +1,9 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.NotificationsWeb.Library
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
<div class="utility-actions">
|
||||
@if (Members.IsLoggedIn())
|
||||
@if (MemberData != null)
|
||||
{
|
||||
if (Model.Content.AncestorOrSelfIsArchived() == false && Model.Content.NewTopicsAllowed())
|
||||
{
|
||||
@@ -12,13 +12,7 @@
|
||||
</a>
|
||||
}
|
||||
|
||||
var mem = Members.GetCurrentMember();
|
||||
var subscribed = false;
|
||||
if (mem != null)
|
||||
{
|
||||
subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
|
||||
}
|
||||
|
||||
var subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, MemberData.Member.Id);
|
||||
if (subscribed)
|
||||
{
|
||||
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
@using OurUmbraco.Forum.Services
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
var topicService = new TopicService(ApplicationContext.Current.DatabaseContext);
|
||||
var topics = topicService.GetLatestTopics();
|
||||
}
|
||||
|
||||
@@ -1,28 +1,24 @@
|
||||
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Forum.Models.Topic>
|
||||
@inherits UmbracoViewPage<OurUmbraco.Forum.Models.Topic>
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Powers.Library
|
||||
|
||||
@{
|
||||
var currentMember = Members.GetCurrentMember();
|
||||
var topicAuthor = Members.GetById(Model.MemberId);
|
||||
var currentMember = Model.MemberData != null && Model.MemberData.Member != null ? Model.MemberData.Member : null;
|
||||
var topicAuthor = Model.TopicMembers.FirstOrDefault(x => x.Member.Id == Model.MemberId);
|
||||
|
||||
@* If author exists and question is either not spam or the viewer is a the author or an admin admin *@
|
||||
if (topicAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == topicAuthor.Id) || Members.IsAdmin()))
|
||||
if (topicAuthor != null && (Model.IsSpam == false || (currentMember != null && currentMember.Id == topicAuthor.Member.Id) || Model.MemberData != null && Model.MemberData.IsAdmin))
|
||||
{
|
||||
var forum = Umbraco.TypedContent(Model.ParentId);
|
||||
var roles = topicAuthor.GetRoles();
|
||||
|
||||
|
||||
<li class="comment question" id="comment-@Model.Id" data-deeplink="@Model.Title" data-version="@Model.Version" data-cat="@Model.ParentId">
|
||||
<!-- Start of question -->
|
||||
<div class="meta">
|
||||
<div class="profile">
|
||||
<a href="/member/@topicAuthor.Id">@topicAuthor.Name</a> <span>@if (topicAuthor.ForumPosts() == 0 || topicAuthor.ForumPosts() > 1){@topicAuthor.ForumPosts() <text>posts</text>}else{@topicAuthor.ForumPosts() <text>post</text>}</span> <span>@topicAuthor.Karma() karma points</span>
|
||||
<a href="/member/@topicAuthor.Member.Id">@topicAuthor.Member.Name</a> <span>@if (topicAuthor.Member.ForumPosts() == 0 || topicAuthor.Member.ForumPosts() > 1){@topicAuthor.Member.ForumPosts() <text>posts</text>}else{@topicAuthor.Member.ForumPosts() <text>post</text>}</span> <span>@topicAuthor.Member.Karma() karma points</span>
|
||||
|
||||
@if (roles.Any())
|
||||
@if (topicAuthor.Roles.Any())
|
||||
{
|
||||
<span class="roles">
|
||||
@foreach (var role in roles)
|
||||
@foreach (var role in topicAuthor.Roles)
|
||||
{
|
||||
<span class="@role">@role</span>
|
||||
}
|
||||
@@ -37,7 +33,7 @@
|
||||
</div>
|
||||
|
||||
<div class="comment-inner">
|
||||
<a href="/member/@topicAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor, 75))</a>
|
||||
<a href="/member/@topicAuthor.Member.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor.Member, 75))</a>
|
||||
<div class="highfive highfive-question">
|
||||
@{
|
||||
var html = "High fives from:<br />";
|
||||
@@ -50,7 +46,7 @@
|
||||
<div class="highfive-count votes-tooltip" title="@(Model.Votes.Any() ? html : null)">
|
||||
@Model.Score
|
||||
</div>
|
||||
@if (Members.IsLoggedIn() && !Utils.HasVoted(currentMember.Id, Model.Id, "powersTopic"))
|
||||
@if (Model.MemberData != null && !Utils.HasVoted(currentMember.Id, Model.Id, "powersTopic"))
|
||||
{
|
||||
if (currentMember.Id != Model.MemberId)
|
||||
{
|
||||
@@ -65,7 +61,7 @@
|
||||
</div>
|
||||
<div class="categories">
|
||||
<div class="category core">
|
||||
<a href="@forum.Url">@forum.Name</a>
|
||||
<a href="@Model.ForumUrl">@Model.ForumName</a>
|
||||
</div>
|
||||
|
||||
@if (Model.Version > 0)
|
||||
@@ -82,7 +78,7 @@
|
||||
@if (Model.IsSpam)
|
||||
{
|
||||
<div class="alert">
|
||||
@if (Members.IsAdmin())
|
||||
@if (Model.MemberData != null && Model.MemberData.IsAdmin)
|
||||
{
|
||||
<span>You can see this topic because you're a moderator of the forum.</span><br/><br/>
|
||||
}
|
||||
@@ -98,20 +94,20 @@
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
@if (Members.IsLoggedIn())
|
||||
@if (Model.MemberData != null)
|
||||
{
|
||||
<a href="#" class="flag-thread" data-id="@Model.Id" data-member="@currentMember.Id">
|
||||
<i class="icon-Flag"></i><span>Flag as spam</span>
|
||||
</a>
|
||||
|
||||
if (forum.NewTopicsAllowed())
|
||||
if (Model.ForumNewTopicsAllowed)
|
||||
{
|
||||
<a href="#" data-author="@topicAuthor.Name" data-topic="@Model.Id" data-controller="comment" class="reply forum-reply">
|
||||
<a href="#" data-author="@topicAuthor.Member.Name" data-topic="@Model.Id" data-controller="comment" class="reply forum-reply">
|
||||
<i class="icon-Reply-arrow"></i><span>Reply</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
if (Members.IsAdmin() || Members.GetCurrentMember().Id == topicAuthor.Id)
|
||||
if (Model.MemberData.IsAdmin || Model.MemberData.Member.Id == topicAuthor.Member.Id)
|
||||
{
|
||||
<a href="#" class="edit-post" data-id="@Model.Id" data-controller="topic">
|
||||
<i class="icon-Edit"></i><span>Edit</span>
|
||||
@@ -122,7 +118,7 @@
|
||||
</a>
|
||||
}
|
||||
|
||||
if (Members.IsAdmin())
|
||||
if (Model.MemberData.IsAdmin)
|
||||
{
|
||||
if (Model.IsSpam)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
@model ReadOnlyTopic
|
||||
@using System.Web.Mvc.Html
|
||||
@using OurUmbraco.Forum.Models
|
||||
@using Umbraco.Core.Logging
|
||||
|
||||
<!-- COPY LINK -->
|
||||
<div id="overlay" class="overlay"></div>
|
||||
|
||||
<div id="copy-link-wrapper" class="copy-link-wrapper">
|
||||
<i class="icon-Link"></i>
|
||||
<textarea class="getLink" readonly type="text"></textarea>
|
||||
<p>Press Ctrl / CMD + C to copy this to your clipboard.</p>
|
||||
</div>
|
||||
|
||||
<div id="thankyou">
|
||||
Copied to clipboard
|
||||
</div>
|
||||
<!-- COPY LINK END -->
|
||||
<!-- DELETE THREAD/COMMENT START -->
|
||||
@if (Model.MemberData != null)
|
||||
{
|
||||
<div id="confirm-wrapper" class="confirm-wrapper">
|
||||
<h4>Are you sure?</h4>
|
||||
<p>This <span class="type-of"></span> will be gone forever and ever</p>
|
||||
<br />
|
||||
<button type="button" class="button green tiny">Yes</button>
|
||||
<button type="button" class="button red tiny">No</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
<!-- DELETE THREAD END -->
|
||||
<!-- FLAG SPAM START -->
|
||||
<div id="confirm-wrapper-flag" class="confirm-wrapper-flag">
|
||||
<h4>Flag this post as spam?</h4>
|
||||
<p>This post will be reported to the moderators as potential spam to be looked at</p>
|
||||
<br />
|
||||
<button type="button" class="button green tiny">Yes</button>
|
||||
<button type="button" class="button red tiny">No</button>
|
||||
</div>
|
||||
<!-- FLAG SPAM END -->
|
||||
|
||||
@if (Model.ForumNewTopicsAllowed == false)
|
||||
{
|
||||
<div class="alertbar__yellow" style="margin-bottom: 10px;">
|
||||
@Html.Raw(Model.MainNotification)
|
||||
</div>
|
||||
}
|
||||
|
||||
<ul class="comments">
|
||||
@{
|
||||
try
|
||||
{
|
||||
@Html.Partial("forum/question", Model)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<string>(string.Format("~/Views/MacroPartials/Forum/Thread.cshtml - error rendering topic with id {0}", Model.Id), ex);
|
||||
}
|
||||
}
|
||||
|
||||
@foreach (var comment in Model.Comments.Where(x => x.ParentCommentId == 0))
|
||||
{
|
||||
Html.RenderPartial("forum/comment", comment);
|
||||
|
||||
if (comment.HasChildren)
|
||||
{
|
||||
foreach (var child in Model.Comments.Where(c => c.ParentCommentId == comment.Id))
|
||||
{
|
||||
Html.RenderPartial("forum/comment", child);
|
||||
}
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
|
||||
@if (Model.MemberData != null)
|
||||
{
|
||||
if (Model.ForumNewTopicsAllowed)
|
||||
{
|
||||
<div class="replybutton">
|
||||
<a href="#" class="button green large reply forum-reply" data-author="@Model.AuthorName" data-topic="@Model.Id" data-controller="comment"><i class="icon-Reply-arrow"></i> Reply to topic</a>
|
||||
</div>
|
||||
|
||||
<div class="utilities">
|
||||
<div class="utility-actions thread-bottom">
|
||||
@if (Model.MemberData.IsAdmin)
|
||||
{
|
||||
<a href="#" class="delete-thread button" data-id="@Model.Id">
|
||||
<i class="icon-Delete-key"></i><span>Delete thread</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
<a href="#" class="follow button @(Model.Subscribed ? "following" : "transparent")" data-id="@Model.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>@(Model.Subscribed ? "Following" : "Follow")</span>
|
||||
</a>
|
||||
|
||||
@if (Model.Answer > 0)
|
||||
{
|
||||
<a href="#comment-@Model.Answer.ToString()" class="go-to-solution button transparent">
|
||||
<i class="icon-Check"></i><span>Go to solution</span>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(Model.MainNotification)
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="replybutton notloggedin">
|
||||
Please <a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsoluteUri))">Sign in</a> or <a href="/member/signup">register</a> to post replies
|
||||
</div>
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
@using OurUmbraco.Forum.Models
|
||||
@model ReadOnlyTopic
|
||||
|
||||
<div class="utility-actions">
|
||||
@if (Model.MemberData != null)
|
||||
{
|
||||
if (Model.MemberData.IsAdmin)
|
||||
{
|
||||
<a href="#" class="delete-thread button" data-id="@Model.Id">
|
||||
<i class="icon-Delete-key"></i><span>Delete thread</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
<a href="#" class="follow button @(Model.Subscribed ? "following" : "transparent")" data-id="@Model.Id" data-controller="topic">
|
||||
<i class="icon-Bookmark"></i><span>@(Model.Subscribed ? "Following" : "Follow")</span>
|
||||
</a>
|
||||
}
|
||||
|
||||
@if (Model.Answer > 0)
|
||||
{
|
||||
<a href="#comment-@Model.Answer.ToString()" class="go-to-solution button transparent">
|
||||
<i class="icon-Check"></i><span>Go to solution</span>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
+2
-8
@@ -1,5 +1,5 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
<div class="markdown-spacer"></div>
|
||||
<div id="markdown-editor" class="markdown-editor">
|
||||
@@ -101,11 +101,9 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Mustache template-->
|
||||
<script id="comment-template" type="x-tmpl-mustache">
|
||||
<li class="comment {{cssClass}}" data-parent="{{id}}" id="comment-{{id}}">
|
||||
<li class="comment {{cssClass}}" data-parent="{{id}}" id="comment-{{id}}">
|
||||
<div class="meta">
|
||||
<div class="profile">
|
||||
<a href="/member/{{authorId}}">{{authorName}}</a> has in total {{authorKarma}} karma points
|
||||
@@ -123,14 +121,11 @@
|
||||
</div>
|
||||
|
||||
<div class="comment-inner">
|
||||
|
||||
<a href="/member/{{authorId}}" class="photo">
|
||||
{{{avatar}}}
|
||||
</a>
|
||||
|
||||
|
||||
<div class="highfive">
|
||||
|
||||
<div class="highfive-count">
|
||||
0
|
||||
</div>
|
||||
@@ -146,7 +141,6 @@
|
||||
</div>
|
||||
{{/isSpam}}
|
||||
{{{body}}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+5
-12
@@ -1,28 +1,21 @@
|
||||
@using System.Drawing
|
||||
@using OurUmbraco.Our
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
var home = Umbraco.TypedContentAtRoot().First();
|
||||
var notificationText = home.GetPropertyValue<string>("mainNotification");
|
||||
var showNotification = string.IsNullOrWhiteSpace(notificationText) == false;
|
||||
Image avatarImage = null;
|
||||
if (Members.IsLoggedIn())
|
||||
{
|
||||
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
|
||||
}
|
||||
}
|
||||
|
||||
@Html.Action("RenderTerms", "TermsAndConditions")
|
||||
@Html.Action("RenderTerms", "TermsAndConditions", new { showBanner = MemberData != null && MemberData.NewTosAccepted == false })
|
||||
|
||||
@* We'll show it differently on the homepage *@
|
||||
@* We'll show it differently on the homepage *@
|
||||
@if (showNotification && Model.Content.Id != home.Id)
|
||||
{
|
||||
<div class="alertbar__yellow">
|
||||
@Html.Raw(notificationText)
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Request.Cookies["dismissAvatar"] == null && CurrentPage.Id != home.Id && avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
|
||||
|
||||
@if (Request.Cookies["dismissAvatar"] == null && Model.Content.Id != home.Id && MemberData != null && MemberData.AvatarImageTooSmall)
|
||||
{
|
||||
<div class="notification__blue avatarTooSmall">
|
||||
<div class="message text-center">
|
||||
@@ -0,0 +1,10 @@
|
||||
@model List<IPublishedContent>
|
||||
<ul id="breadcrumb">
|
||||
<li>
|
||||
<a href="/">Our</a>
|
||||
</li>
|
||||
@foreach (var page in Model)
|
||||
{
|
||||
<li><a href="@page.Url">@page.Name</a></li>
|
||||
}
|
||||
</ul>
|
||||
@@ -0,0 +1,32 @@
|
||||
@model OurUmbraco.Community.Models.GitHubContributorsModel
|
||||
|
||||
@if (Model.Contributors.Any())
|
||||
{
|
||||
foreach (var contributor in Model.Contributors)
|
||||
{
|
||||
<a href="@contributor.AuthorUrl" class="contributor" target="_blank" title="@contributor.AuthorLogin">
|
||||
<div class="avatar">
|
||||
<img alt="@contributor.AuthorLogin" src="@contributor.AuthorAvatarUrl&s=112"
|
||||
srcset="@contributor.AuthorAvatarUrl&s=224 2x, @contributor.AuthorAvatarUrl&s=336 3x" />
|
||||
<span class="contrib-count" title="@(contributor.TotalCommits + " " + (contributor.TotalCommits == 1 ? "contribution" : "contributions"))">
|
||||
@contributor.TotalCommits
|
||||
</span>
|
||||
<div class="counts">
|
||||
Additions<br />
|
||||
<strong>@contributor.TotalAdditions</strong><br />
|
||||
<br />
|
||||
Deletions<br />
|
||||
<strong>@contributor.TotalDeletions</strong>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
<div class="loadmore">
|
||||
<a class="button transparent" href="#" onclick="loadAllGitHubContributors(); return false;">Load more</a>
|
||||
</div>
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
<h2>Could not load recent GitHub contributors.</h2>
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
@using OurUmbraco.Community.Models
|
||||
@using Skybrud.Essentials.Locations
|
||||
@using Skybrud.Essentials.Locations.Extensions
|
||||
@using Skybrud.Essentials.Security
|
||||
|
||||
@inherits UmbracoViewPage<MeetupEventsModel>
|
||||
|
||||
@{
|
||||
|
||||
// Get a reference to the current member
|
||||
IPublishedContent member = Members.GetCurrentMember();
|
||||
|
||||
// Get the location of the current member (if logged in and a location is present)
|
||||
EssentialsLocation memberLocation = null;
|
||||
if (member != null && member.HasValue("latitude") && member.HasValue("longitude")) {
|
||||
memberLocation = new EssentialsLocation(
|
||||
member.GetPropertyValue<double>("latitude"),
|
||||
member.GetPropertyValue<double>("longitude")
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@foreach (MeetupItem item in Model.Items) {
|
||||
|
||||
double distance = -1;
|
||||
|
||||
if (memberLocation != null) {
|
||||
if (item.Event.HasVenue) {
|
||||
distance = memberLocation.GetDistance(item.Event.Venue);
|
||||
} else {
|
||||
distance = memberLocation.GetDistance(item.Group);
|
||||
}
|
||||
}
|
||||
|
||||
<a href="@item.Event.Link" class="forum-thread">
|
||||
@if (item.Group.GroupPhoto != null)
|
||||
{
|
||||
<div class="avatar">
|
||||
<img src="@item.Group.GroupPhoto.ThumbLink" alt="" />
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
string fakeHash = SecurityUtils.GetMd5Hash(item.Group.Id + "");
|
||||
<div class="avatar">
|
||||
<img src="https://www.gravatar.com/avatar/@fakeHash?s=100&d=mm&r=g&d=retro" alt="" />
|
||||
</div>
|
||||
|
||||
}
|
||||
<div class="meta">
|
||||
<div class="forum-thread-text">
|
||||
@if (distance >= 0 && distance <= 50000) {
|
||||
//<span style="float: right; color: red;">@String.Format("~{0:N0}", distance / 1000) km</span>
|
||||
<span style="float: right; color: red; font-weight: bold;" title="Distance: @String.Format("~{0:N0}", distance / 1000) km">NEAR YOU</span>
|
||||
}
|
||||
<h3>@item.Event.Name</h3>
|
||||
<p>@item.Event.Time.DateTime.ToString("MMM d, yyyy") by @item.Group.Name</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
|
||||
@if (Model.Items.Length % 2 == 1) {
|
||||
// If there is an odd amount of events, we add a invisible div so the last event doesn't take up the full width
|
||||
<div class="forum-thread" style="visibility: hidden;"></div>
|
||||
}
|
||||
|
||||
@if (Model.Items.Any() == false) {
|
||||
<h2>Could not load upcoming meetups.</h2>
|
||||
}
|
||||
@@ -1,25 +1,49 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using Tweetinvi.Models
|
||||
@model ITweet[]
|
||||
@model OurUmbraco.Community.Models.TweetsModel
|
||||
|
||||
@foreach (var tweet in Model)
|
||||
@if (Model.ShowAdminOverView == false)
|
||||
{
|
||||
<a href="@tweet.Url" class="forum-thread">
|
||||
foreach (var tweet in Model.Tweets)
|
||||
{
|
||||
<a href="@tweet.Url" class="forum-thread">
|
||||
|
||||
<div class="avatar">
|
||||
<img src="@tweet.CreatedBy.ProfileImageUrl400x400.Replace("http://", "https://")" />
|
||||
</div>
|
||||
|
||||
<div class="meta">
|
||||
<div class="forum-thread-text">
|
||||
<h3>@tweet.Text</h3>
|
||||
<p>@tweet.CreatedAt.ConvertToRelativeTime() by @@@tweet.CreatedBy.UserIdentifier.ScreenName (@tweet.CreatedBy.Name)</p>
|
||||
<div class="avatar">
|
||||
<img src="@tweet.CreatedBy.ProfileImageUrl400x400.Replace("http://", "https://")" />
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="meta">
|
||||
<div class="forum-thread-text">
|
||||
<h3>@tweet.Text</h3>
|
||||
<p>@tweet.CreatedAt.ConvertToRelativeTime() by @@@tweet.CreatedBy.UserIdentifier.ScreenName (@tweet.CreatedBy.Name)</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var tweet in Model.Tweets)
|
||||
{
|
||||
var twitterHandle = tweet.CreatedBy.UserIdentifier.ScreenName;
|
||||
|
||||
<img src="@tweet.CreatedBy.ProfileImageUrl400x400.Replace("http://", "https://")" /><br />
|
||||
<h3>@tweet.Text</h3>
|
||||
<p>@tweet.CreatedAt.ConvertToRelativeTime() by <a href="https://twitter.com/@twitterHandle/with_replies" target="_blank">@@@twitterHandle (@tweet.CreatedBy.Name)</a></p><br />
|
||||
<a href="@tweet.Url" target="_blank">@tweet.Url</a><br />
|
||||
|
||||
using (Html.BeginForm("MarkAsSpam", "TwitterSearch"))
|
||||
{
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
<input type="hidden" name="TwitterHandle" value="@twitterHandle" />
|
||||
<input type="submit" value="Mark as spam" />
|
||||
}
|
||||
|
||||
<hr />
|
||||
}
|
||||
}
|
||||
|
||||
@if (Model.Any() == false)
|
||||
@if (Model.Tweets.Any() == false)
|
||||
{
|
||||
<h2>Could not load recent tweets.</h2>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@using OurUmbraco.Our.Controllers
|
||||
@using OurUmbraco.Our.Controllers
|
||||
@using reCAPTCHA.MVC
|
||||
@inherits UmbracoViewPage<Umbraco.Web.Models.LoginModel>
|
||||
@{
|
||||
@@ -37,14 +37,14 @@
|
||||
|
||||
<input class="button green" type="submit" value="Log in">
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
.field-validation-error, .validation-summary-errors {
|
||||
color: red;
|
||||
}
|
||||
<style type="text/css">
|
||||
.field-validation-error, .validation-summary-errors {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.input-validation-error {
|
||||
border-color: red !important;
|
||||
}
|
||||
</style>
|
||||
.input-validation-error {
|
||||
border-color: red !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
var source = Umbraco.TypedContent(Model.MacroParameters["source"]);
|
||||
var source = Umbraco.TypedContent(1057);
|
||||
}
|
||||
|
||||
<nav>
|
||||
+7
-7
@@ -1,4 +1,4 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@using System.Configuration
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@@ -17,7 +17,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
var ts = new TopicService(UmbracoContext.Application.DatabaseContext);
|
||||
var ts = new TopicService(ApplicationContext.DatabaseContext);
|
||||
|
||||
var topics = ts.GetLatestTopicsForMember(member.Id);
|
||||
|
||||
@@ -30,14 +30,13 @@
|
||||
{
|
||||
projects = content.Descendants().Where(c => c.DocumentTypeAlias == "Project").Where(m => m.GetPropertyValue<int>("owner") == member.Id).Where(p => p.GetPropertyValue<bool>("projectLive"));
|
||||
const string sql = @"SELECT * FROM projectContributors WHERE memberId=@memberId";
|
||||
var contribPackageIds = UmbracoContext.Application.DatabaseContext.Database.Fetch<int>(sql, new { memberId });
|
||||
var contribPackageIds = ApplicationContext.DatabaseContext.Database.Fetch<int>(sql, new { memberId });
|
||||
foreach (var contribPackageId in contribPackageIds)
|
||||
{
|
||||
contribProjects.Add(Umbraco.TypedContent(contribPackageId));
|
||||
}
|
||||
}
|
||||
|
||||
var currentMember = Members.GetCurrentMember();
|
||||
var reputationCurrent = member.GetPropertyValue<int>("reputationCurrent");
|
||||
|
||||
var nodeListingProvider = new NodeListingProvider();
|
||||
@@ -90,7 +89,7 @@
|
||||
@if (member.HasValue("company"))
|
||||
{
|
||||
<span> works at <span>@member.GetPropertyValue("company")</span></span>
|
||||
}
|
||||
}
|
||||
and has <em class="posts">@member.GetPropertyValue("forumPosts")</em> @if (member.ForumPosts() == 0 || member.ForumPosts() > 1){<text>posts</text>}else{<text>post</text>} and <em class="karma-points">@member.GetPropertyValue("reputationCurrent")</em> <span></span> karma points
|
||||
</small>
|
||||
</div>
|
||||
@@ -239,7 +238,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- .public-member -->
|
||||
if (currentMember.IsAdmin())
|
||||
if (MemberData != null && MemberData.IsAdmin)
|
||||
{
|
||||
var allTopics = ts.GetLatestTopicsForMember(member.Id, false, 1000);
|
||||
|
||||
@@ -270,7 +269,8 @@
|
||||
</div>
|
||||
}
|
||||
<br /><br />
|
||||
if (currentMember.IsHq())
|
||||
var currentMember = MemberData != null ? MemberData.Member : null;
|
||||
if (currentMember != null && currentMember.IsHq())
|
||||
{
|
||||
<div style="border: 1px solid red; padding: 4px;">
|
||||
<p>HQ Tools (also known as "with great power comes great responsibility"):</p><br />
|
||||
+23
-49
@@ -1,29 +1,13 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@using System.Drawing
|
||||
@inherits OurUmbracoTemplatePage
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Forum.Services
|
||||
@using OurUmbraco.Our
|
||||
@{
|
||||
var topicService = new TopicService(ApplicationContext.DatabaseContext);
|
||||
Image avatarImage = null;
|
||||
if (Members.IsLoggedIn())
|
||||
{
|
||||
avatarImage = Utils.GetMemberAvatarImage(Members.GetCurrentMember());
|
||||
}
|
||||
}
|
||||
@using OurUmbraco.Our.Models
|
||||
@{ var profile = MemberData; }
|
||||
<div class="quick-menu">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
@if (Members.IsLoggedIn() && Members.GetCurrentMember() != null)
|
||||
@if (profile != null)
|
||||
{
|
||||
var member = Members.GetCurrentMember();
|
||||
|
||||
var roles = member.GetRoles();
|
||||
|
||||
var latestTopics = topicService.GetLatestTopicsForMember(member.Id, maxCount: 100);
|
||||
|
||||
<div class="close">
|
||||
<i class="icon-Delete"></i>Close
|
||||
</div>
|
||||
@@ -31,49 +15,47 @@
|
||||
<a href="/member/profile"><i class="icon-Settings"></i>Edit profile</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="user-image">
|
||||
@Html.Raw(Utils.GetMemberAvatar(member, 100))
|
||||
@Html.Raw(profile.AvatarHtml)
|
||||
</div>
|
||||
|
||||
<div class="user-profile">
|
||||
<h2>@member.Name</h2>
|
||||
<div class="posts">
|
||||
|
||||
@member.ForumPosts()
|
||||
|
||||
@if (member.ForumPosts() == 0 || member.ForumPosts() > 1)
|
||||
<div class="user-profile">
|
||||
<h2>@profile.Member.Name</h2>
|
||||
<div class="posts">
|
||||
|
||||
@profile.NumberOfForumPosts
|
||||
|
||||
@if (profile.NumberOfForumPosts == 0 || profile.NumberOfForumPosts > 1)
|
||||
{
|
||||
<text>Posts</text>
|
||||
}
|
||||
else
|
||||
{
|
||||
<text>Post</text>
|
||||
}
|
||||
<text>Post</text>
|
||||
}
|
||||
</div>
|
||||
<div class="karma">
|
||||
@member.Karma()
|
||||
@profile.Karma
|
||||
</div>
|
||||
@if (member.HasValue("twitter"))
|
||||
@if (string.IsNullOrWhiteSpace(profile.TwitterHandle) == false)
|
||||
{
|
||||
var twitterHandle = member.GetPropertyValue<string>("twitter").Replace("@", string.Empty);
|
||||
<div class="user-twitter">
|
||||
<a href="https://twitter.com/@twitterHandle">@<span>@twitterHandle</span></a>
|
||||
<a href="https://twitter.com/@profile.TwitterHandle">@<span>@profile.TwitterHandle</span></a>
|
||||
</div>
|
||||
}
|
||||
@if (roles.Any())
|
||||
@if (profile.Roles.Any())
|
||||
{
|
||||
<span class="roles">
|
||||
@foreach (var role in roles)
|
||||
@foreach (var role in profile.Roles)
|
||||
{
|
||||
<span class="@role">@role</span>
|
||||
}
|
||||
</span>
|
||||
}
|
||||
<div class="public-profile">
|
||||
<a href="/member/@member.Id">View my public profile</a>
|
||||
<a href="/member/@profile.Member.Id">View my public profile</a>
|
||||
</div>
|
||||
@if (member.IsAdmin())
|
||||
@if (profile.IsAdmin)
|
||||
{
|
||||
<div class="public-profile">
|
||||
<a href="/antispam">Check the spam queue</a>
|
||||
@@ -84,14 +66,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
if (avatarImage != null && (avatarImage.Width < 400 || avatarImage.Height < 400))
|
||||
if (profile.AvatarImageTooSmall)
|
||||
{
|
||||
|
||||
<div class="user-notifications">
|
||||
<small>
|
||||
Your Notifications
|
||||
</small>
|
||||
|
||||
<a href="/member/profile" class="user-notification__green">
|
||||
<div class="user-notification-text">
|
||||
<p>Your profile picture is a little on the small side, It would look <strong>much nicer</strong> if you could update it to be larger image.</p>
|
||||
@@ -101,12 +81,10 @@
|
||||
}
|
||||
|
||||
<div class="user-latest-posts">
|
||||
|
||||
<small>
|
||||
Activity in threads you participated in
|
||||
</small>
|
||||
|
||||
@foreach (var topic in latestTopics)
|
||||
@foreach (var topic in profile.LatestTopics)
|
||||
{
|
||||
var forum = Umbraco.TypedContent(topic.ParentId);
|
||||
// if forum == null then it's been hidden/unpublished (example: v5 forum)
|
||||
@@ -128,20 +106,16 @@
|
||||
@topic.Updated.ConvertToRelativeTime()
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="category frontend"><span class="cat">@forum.Name</span></div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="/member/login">Sign in</a> <a href="/member/Signup">Register</a>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
<ul>
|
||||
@foreach (var page in Model.Content.AncestorOrSelf(1).Children.Where("Visible"))
|
||||
{
|
||||
<li class="@(page.IsAncestorOrSelf(Model.Content) ? "current" : null)">
|
||||
<a href="@page.Url">@page.Name</a>
|
||||
</li>
|
||||
}
|
||||
|
||||
<li>
|
||||
@if (MemberData != null)
|
||||
{
|
||||
<div class="user">
|
||||
@Html.Raw(MemberData.AvatarHtml)
|
||||
@if (MemberData.AvatarImageTooSmall)
|
||||
{
|
||||
<span class="notificationCount">1</span>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="/member/login?redirectUrl=@(Server.UrlEncode(Request.Url.AbsolutePath))">Sign in</a><strong> / </strong><a href="/member/Signup">Register</a>
|
||||
}
|
||||
</li>
|
||||
</ul>
|
||||
@@ -109,6 +109,12 @@
|
||||
@Html.ValidationMessageFor(m => m.SourceCodeUrl)
|
||||
<small>url to where the source code is stored, (ie: codeplex.com, github.com etc)</small>
|
||||
</p>
|
||||
<p>
|
||||
@Html.LabelFor(m => m.NuGetPackageUrl)
|
||||
@Html.TextBoxFor(m => m.NuGetPackageUrl)
|
||||
@Html.ValidationMessageFor(m => m.NuGetPackageUrl)
|
||||
<small>url to the NuGet package if any available</small>
|
||||
</p>
|
||||
<p>
|
||||
@Html.LabelFor(m => m.BugTrackingUrl)
|
||||
@Html.TextBoxFor(m => m.BugTrackingUrl)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
@using Umbraco.Web
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
<ul class="level-2">
|
||||
@foreach (var childPage in Model.Content.Children().Where(
|
||||
x => x.DocumentTypeAlias == "ProjectGroup"
|
||||
&& x.GetPropertyValue<bool>("umbracoNaviHide") == false))
|
||||
{
|
||||
<li>
|
||||
<h4><a href="?category=@childPage.Name">@childPage.Name</a></h4>
|
||||
</li>
|
||||
}
|
||||
<li><h4><a href="?category=uaas">Umbraco Cloud</a></h4></li>
|
||||
</ul>
|
||||
+4
-5
@@ -1,10 +1,8 @@
|
||||
@using Examine.SearchCriteria
|
||||
@using OurUmbraco.Our
|
||||
@using Umbraco.Core.Cache
|
||||
@using OurUmbraco.Our.Examine
|
||||
@using OurUmbraco.Project
|
||||
@using OurUmbraco.Project.Services
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
//This is the main Our project search
|
||||
|
||||
@@ -57,7 +55,6 @@
|
||||
var toVersion = new Version(parsedVersion.Major, 999, 999).GetNumericalValue();
|
||||
var versionFilters = new SearchFilters(BooleanOperation.Or);
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_version", fromVersion, toVersion));
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", fromVersion, toVersion));
|
||||
filters.Add(versionFilters);
|
||||
}
|
||||
}
|
||||
@@ -188,7 +185,9 @@
|
||||
defaultScreenshot = childContent.GetPropertyValue("defaultScreenshotPath", false, "/css/img/package2.png");
|
||||
}
|
||||
}
|
||||
<img src="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=50&height=50&format=png" />
|
||||
<img src="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=50&height=50&format=png"
|
||||
srcset="@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=100&height=100&format=png 2x,
|
||||
@Utils.GetScreenshotPath(defaultScreenshot)?bgcolor=fff&width=150&height=150&format=png 3x" />
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-6">
|
||||
<div class="forum-thread-text">
|
||||
+41
-11
@@ -1,9 +1,10 @@
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@using OurUmbraco.Our
|
||||
@using OurUmbraco.Project
|
||||
@using OurUmbraco.Project.Services
|
||||
@using OurUmbraco.Wiki.BusinessLogic
|
||||
@using System.Text.RegularExpressions;
|
||||
|
||||
@{
|
||||
var project = Model.Content;
|
||||
@@ -38,6 +39,7 @@
|
||||
var cs = new ContributionService(ApplicationContext.Current.DatabaseContext);
|
||||
var contributors = cs.GetContributors(project.Id).ToList();
|
||||
|
||||
var nuGetPackageUrl = project.GetPropertyValue<string>("nuGetPackageUrl");
|
||||
var sourceUrl = project.GetPropertyValue<string>("sourceUrl");
|
||||
var websiteUrl = project.GetPropertyValue<string>("websiteUrl");
|
||||
var demoUrl = project.GetPropertyValue<string>("demoUrl");
|
||||
@@ -79,7 +81,7 @@
|
||||
|
||||
@foreach (var image in screenshots)
|
||||
{
|
||||
<a class="fancybox" rel="gallery1" href="@Utils.GetScreenshotPath(image.Path)" title="">
|
||||
<a class="fancybox" data-fancybox="package-gallery" href="@Utils.GetScreenshotPath(image.Path)" title="">
|
||||
<img src="@Utils.GetScreenshotPath(image.Path)?bgcolor=fff&height=154&width=281&format=png" alt=""/>
|
||||
</a>
|
||||
}
|
||||
@@ -234,7 +236,7 @@
|
||||
<a href="@forum.Url" class="forum-thread">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-10 col-md-0">
|
||||
<div class="col-xs-12 col-md-12">
|
||||
<div class="forum-thread-text">
|
||||
<h3>@forum.Name</h3>
|
||||
<p>@forum.forumDescription</p>
|
||||
@@ -255,14 +257,42 @@
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<div class="package-detail-sidebar">
|
||||
|
||||
@if (currentRelease != null)
|
||||
{
|
||||
<a href="/FileDownload?id=@currentRelease.Id" class="button green" onclick="ga('PackageMaker.send', 'pageview', window.location.pathname + '/virtual/download/package-files/@(currentRelease.Name.Replace("'", ""))')"><i class="icon-Download-alt"></i> Download package<br/><small>version @project.GetPropertyValue("version")</small></a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="button green">No current release</div>
|
||||
}
|
||||
<div class="package-download">
|
||||
@if (currentRelease != null)
|
||||
{
|
||||
<a href="/FileDownload?id=@currentRelease.Id" class="button green" onclick="ga('PackageMaker.send', 'pageview', window.location.pathname + '/virtual/download/package-files/@(currentRelease.Name.Replace("'", ""))')"><i class="icon-Download-alt"></i> Download package<br/><small>version @project.GetPropertyValue("version")</small></a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="button green">No current release</div>
|
||||
}
|
||||
|
||||
@if (!string.IsNullOrEmpty(nuGetPackageUrl))
|
||||
{
|
||||
Regex regex = new Regex(@"^(http|https)://", RegexOptions.IgnoreCase);
|
||||
|
||||
if (!regex.Match(nuGetPackageUrl).Success)
|
||||
{
|
||||
nuGetPackageUrl = "http://" + nuGetPackageUrl;
|
||||
}
|
||||
|
||||
var nuGetPackageUri = new Uri(nuGetPackageUrl);
|
||||
string nuGetPackageCmd = string.Empty;
|
||||
|
||||
if (nuGetPackageUri.Segments.Length >= 2)
|
||||
{
|
||||
nuGetPackageCmd = nuGetPackageUri.Segments[2].Trim("/");
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(nuGetPackageCmd))
|
||||
{
|
||||
<p class="small">or, install via <a href="@nuGetPackageUrl">nuget</a></p>
|
||||
<span class="pm-nuget">
|
||||
<input class="pre nuget" value="Install-Package @nuGetPackageCmd" readonly>
|
||||
</span>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="package-creator">
|
||||
<h3>Project owner</h3>
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
@using OurUmbraco.Release
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@{
|
||||
var sortedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
+294
-294
@@ -1,295 +1,295 @@
|
||||
@using OurUmbraco.Release
|
||||
@using OurUmbraco.Release.Models
|
||||
@using Version = System.Version
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@{
|
||||
var notesOnly = Request.QueryString["notes"] != null;
|
||||
|
||||
Version fromVersion;
|
||||
Version toVersion;
|
||||
|
||||
Version.TryParse(Request.QueryString["from"], out fromVersion);
|
||||
Version.TryParse(Request.QueryString["to"], out toVersion);
|
||||
|
||||
// If there's values in the POST (from the form) then those overrule the values in the querystring
|
||||
if (Request.Form["from"] != null && Request.Form["to"] != null)
|
||||
{
|
||||
Version.TryParse(Request.Form["from"], out fromVersion);
|
||||
Version.TryParse(Request.Form["to"], out toVersion);
|
||||
}
|
||||
|
||||
var sortedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
var selectedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
|
||||
foreach (var release in Model.Content.Parent.Children.Where(x => x.GetPropertyValue<string>("releaseStatus") != "Planning"
|
||||
&& x.GetPropertyValue<string>("releaseStatus") != "Unreleased"
|
||||
&& string.IsNullOrWhiteSpace(x.GetPropertyValue<string>("releaseStatus")) == false))
|
||||
{
|
||||
try
|
||||
{
|
||||
sortedVersions.Add(new Version(release.Name), release);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
<span style="display: none">Couldn't add version @release.Name</span>
|
||||
}
|
||||
}
|
||||
|
||||
var majorVersionGroups = sortedVersions.GroupBy(x => x.Key.Major).OrderByDescending(x => x.Key);
|
||||
var allVersions = new Versions();
|
||||
var youTrackVersions = allVersions.GetAggregateVersionsFromFile();
|
||||
|
||||
var newFeatures = 0;
|
||||
var breakingChanges = 0;
|
||||
var issuesTasks = 0;
|
||||
|
||||
var newFeatureList = new List<AggregateView>();
|
||||
var breakingList = new List<AggregateView>();
|
||||
var issueList = new List<AggregateView>();
|
||||
|
||||
if (fromVersion != null && toVersion != null && toVersion <= fromVersion)
|
||||
{
|
||||
<p class="error">Can't compare versions that are equal to each other or where the "to" is lower than the "from".</p>
|
||||
}
|
||||
|
||||
// Reset to show the compare between the previous version and the newest available version
|
||||
if ((fromVersion == null && toVersion == null) || (toVersion <= fromVersion))
|
||||
{
|
||||
toVersion = sortedVersions.Last().Key;
|
||||
fromVersion = sortedVersions.Skip(sortedVersions.Count - 2).First().Key;
|
||||
}
|
||||
|
||||
<form name="compare" method="post">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">From:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="from">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (fromVersion != null && version.Key.ToString() == fromVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">To:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="to">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (version.Key.ToString() == toVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="submit" value="Compare" class="button" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
if (fromVersion != null && toVersion != null && fromVersion < toVersion)
|
||||
{
|
||||
foreach (var release in sortedVersions.Where(release => release.Key != fromVersion && (release.Key >= fromVersion) && (release.Key <= toVersion)))
|
||||
{
|
||||
selectedVersions.Add(release.Key, release.Value);
|
||||
}
|
||||
|
||||
foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
var release = youTrackVersions.FirstOrDefault(x => x.version == version.Key.ToString());
|
||||
|
||||
if (release == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var newFeatureIssues = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
|
||||
newFeatureList.Add(new AggregateView { version = version.Key.ToString(), issues = newFeatureIssues });
|
||||
newFeatures += newFeatureIssues.Count;
|
||||
|
||||
var breakingIssues = release.issues.Where(x => x.breaking).ToList();
|
||||
breakingList.Add(new AggregateView { version = version.Key.ToString(), issues = breakingIssues });
|
||||
breakingChanges += breakingIssues.Count;
|
||||
|
||||
var issueIssues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
|
||||
issueList.Add(new AggregateView { version = version.Key.ToString(), issues = issueIssues });
|
||||
issuesTasks += issueIssues.Count;
|
||||
}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12 explain">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@newFeatures</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#newFeatures">New Features</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@breakingChanges</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#breakingChanges">Breaking Changes</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@issuesTasks</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#issuesTasks">Issues & Tasks</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 statuses">
|
||||
|
||||
@if (notesOnly == false)
|
||||
{
|
||||
if (newFeatures > 0)
|
||||
{
|
||||
<div id="newFeatures" class="status features">
|
||||
<h2>New Features</h2>
|
||||
@foreach (var release in newFeatureList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Features released in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (breakingChanges > 0)
|
||||
{
|
||||
<div id="breakingChanges" class="status breaking">
|
||||
<h2>Breaking Changes</h2>
|
||||
@foreach (var release in breakingList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Breaking changes in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (issuesTasks > 0)
|
||||
{
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Issues & Tasks</h2>
|
||||
@foreach (var release in issueList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Issues & Tasks fixed in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Release Notes</h2>
|
||||
|
||||
@if (notesOnly)
|
||||
{
|
||||
<p>
|
||||
What follows is a list of release notes, <a href="@RemoveQueryStringByKey(Request.Url.OriginalString, "notes")" style="text-decoration: underline">want to see the list of related issues?</a>
|
||||
</p>
|
||||
}
|
||||
@foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
<h2>Notes for version @version.Key</h2>
|
||||
@Html.Raw(version.Value.GetPropertyValue<string>("bodyText"))
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@functions {
|
||||
|
||||
public static string RemoveQueryStringByKey(string url, string key)
|
||||
{
|
||||
var uri = new Uri(url);
|
||||
|
||||
// this gets all the query string key value pairs as a collection
|
||||
var newQueryString = HttpUtility.ParseQueryString(uri.Query);
|
||||
|
||||
// this removes the key if exists
|
||||
newQueryString.Remove(key);
|
||||
|
||||
// this gets the page path from root without QueryString
|
||||
string pagePathWithoutQueryString = uri.GetLeftPart(UriPartial.Path);
|
||||
|
||||
return newQueryString.Count > 0
|
||||
? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
|
||||
: pagePathWithoutQueryString;
|
||||
}
|
||||
|
||||
@using OurUmbraco.Release
|
||||
@using OurUmbraco.Release.Models
|
||||
@using Version = System.Version
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
|
||||
@{
|
||||
var notesOnly = Request.QueryString["notes"] != null;
|
||||
|
||||
Version fromVersion;
|
||||
Version toVersion;
|
||||
|
||||
Version.TryParse(Request.QueryString["from"], out fromVersion);
|
||||
Version.TryParse(Request.QueryString["to"], out toVersion);
|
||||
|
||||
// If there's values in the POST (from the form) then those overrule the values in the querystring
|
||||
if (Request.Form["from"] != null && Request.Form["to"] != null)
|
||||
{
|
||||
Version.TryParse(Request.Form["from"], out fromVersion);
|
||||
Version.TryParse(Request.Form["to"], out toVersion);
|
||||
}
|
||||
|
||||
var sortedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
var selectedVersions = new Dictionary<Version, IPublishedContent>();
|
||||
|
||||
foreach (var release in Model.Content.Parent.Children.Where(x => x.GetPropertyValue<string>("releaseStatus") != "Planning"
|
||||
&& x.GetPropertyValue<string>("releaseStatus") != "Unreleased"
|
||||
&& string.IsNullOrWhiteSpace(x.GetPropertyValue<string>("releaseStatus")) == false))
|
||||
{
|
||||
try
|
||||
{
|
||||
sortedVersions.Add(new Version(release.Name), release);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
<span style="display: none">Couldn't add version @release.Name</span>
|
||||
}
|
||||
}
|
||||
|
||||
var majorVersionGroups = sortedVersions.GroupBy(x => x.Key.Major).OrderByDescending(x => x.Key);
|
||||
var allVersions = new Versions();
|
||||
var youTrackVersions = allVersions.GetAggregateVersionsFromFile();
|
||||
|
||||
var newFeatures = 0;
|
||||
var breakingChanges = 0;
|
||||
var issuesTasks = 0;
|
||||
|
||||
var newFeatureList = new List<AggregateView>();
|
||||
var breakingList = new List<AggregateView>();
|
||||
var issueList = new List<AggregateView>();
|
||||
|
||||
if (fromVersion != null && toVersion != null && toVersion <= fromVersion)
|
||||
{
|
||||
<p class="error">Can't compare versions that are equal to each other or where the "to" is lower than the "from".</p>
|
||||
}
|
||||
|
||||
// Reset to show the compare between the previous version and the newest available version
|
||||
if ((fromVersion == null && toVersion == null) || (toVersion <= fromVersion))
|
||||
{
|
||||
toVersion = sortedVersions.Last().Key;
|
||||
fromVersion = sortedVersions.Skip(sortedVersions.Count - 2).First().Key;
|
||||
}
|
||||
|
||||
<form name="compare" method="post">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">From:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="from">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (fromVersion != null && version.Key.ToString() == fromVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 titles">To:</div>
|
||||
<div class="col-sm-9">
|
||||
<select name="to">
|
||||
@foreach (var majorVersion in majorVersionGroups)
|
||||
{
|
||||
var versions = majorVersion.OrderByDescending(x => x.Key);
|
||||
<optgroup label="@majorVersion.Key">
|
||||
@foreach (var version in versions)
|
||||
{
|
||||
if (version.Key.ToString() == toVersion.ToString())
|
||||
{
|
||||
<option name="@version.Key" selected="selected" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
else
|
||||
{
|
||||
<option name="@version.Key" value="@version.Key">@version.Key</option>
|
||||
}
|
||||
}
|
||||
</optgroup>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="submit" value="Compare" class="button" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<br />
|
||||
|
||||
if (fromVersion != null && toVersion != null && fromVersion < toVersion)
|
||||
{
|
||||
foreach (var release in sortedVersions.Where(release => release.Key != fromVersion && (release.Key >= fromVersion) && (release.Key <= toVersion)))
|
||||
{
|
||||
selectedVersions.Add(release.Key, release.Value);
|
||||
}
|
||||
|
||||
foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
var release = youTrackVersions.FirstOrDefault(x => x.version == version.Key.ToString());
|
||||
|
||||
if (release == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var newFeatureIssues = release.issues.Where(x => x.type.ToLowerInvariant().Contains("feature")).ToList();
|
||||
newFeatureList.Add(new AggregateView { version = version.Key.ToString(), issues = newFeatureIssues });
|
||||
newFeatures += newFeatureIssues.Count;
|
||||
|
||||
var breakingIssues = release.issues.Where(x => x.breaking).ToList();
|
||||
breakingList.Add(new AggregateView { version = version.Key.ToString(), issues = breakingIssues });
|
||||
breakingChanges += breakingIssues.Count;
|
||||
|
||||
var issueIssues = release.issues.Where(x => x.breaking == false && x.type.ToLowerInvariant().Contains("feature") == false).ToList();
|
||||
issueList.Add(new AggregateView { version = version.Key.ToString(), issues = issueIssues });
|
||||
issuesTasks += issueIssues.Count;
|
||||
}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12 explain">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@newFeatures</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#newFeatures">New Features</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@breakingChanges</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#breakingChanges">Breaking Changes</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="dot big progress">
|
||||
<div class="chart" data-percent="100">
|
||||
<p>@issuesTasks</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chartDesc">
|
||||
<h3><a href="#issuesTasks">Issues & Tasks</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 statuses">
|
||||
|
||||
@if (notesOnly == false)
|
||||
{
|
||||
if (newFeatures > 0)
|
||||
{
|
||||
<div id="newFeatures" class="status features">
|
||||
<h2>New Features</h2>
|
||||
@foreach (var release in newFeatureList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Features released in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (breakingChanges > 0)
|
||||
{
|
||||
<div id="breakingChanges" class="status breaking">
|
||||
<h2>Breaking Changes</h2>
|
||||
@foreach (var release in breakingList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Breaking changes in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
if (issuesTasks > 0)
|
||||
{
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Issues & Tasks</h2>
|
||||
@foreach (var release in issueList.Where(x => x.issues.Any()))
|
||||
{
|
||||
<h3>Issues & Tasks fixed in version @release.version</h3>
|
||||
foreach (var issue in release.issues)
|
||||
{
|
||||
<ul>
|
||||
<li class="@issue.StateIcon()" title="@issue.state">
|
||||
<a href="http://issues.umbraco.org/issue/@(issue.id)" target="_blank">@issue.id - @issue.title</a>
|
||||
</li>
|
||||
</ul>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<div id="issuesTasks" class="status issues">
|
||||
<h2>Release Notes</h2>
|
||||
|
||||
@if (notesOnly)
|
||||
{
|
||||
<p>
|
||||
What follows is a list of release notes, <a href="@RemoveQueryStringByKey(Request.Url.OriginalString, "notes")" style="text-decoration: underline">want to see the list of related issues?</a>
|
||||
</p>
|
||||
}
|
||||
@foreach (var version in selectedVersions.OrderByDescending(x => x.Key))
|
||||
{
|
||||
<h2>Notes for version @version.Key</h2>
|
||||
@Html.Raw(version.Value.GetPropertyValue<string>("bodyText"))
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@functions {
|
||||
|
||||
public static string RemoveQueryStringByKey(string url, string key)
|
||||
{
|
||||
var uri = new Uri(url);
|
||||
|
||||
// this gets all the query string key value pairs as a collection
|
||||
var newQueryString = HttpUtility.ParseQueryString(uri.Query);
|
||||
|
||||
// this removes the key if exists
|
||||
newQueryString.Remove(key);
|
||||
|
||||
// this gets the page path from root without QueryString
|
||||
string pagePathWithoutQueryString = uri.GetLeftPart(UriPartial.Path);
|
||||
|
||||
return newQueryString.Count > 0
|
||||
? String.Format("{0}?{1}", pagePathWithoutQueryString, newQueryString)
|
||||
: pagePathWithoutQueryString;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
@using OurUmbraco.Forum.Extensions
|
||||
@inherits OurUmbraco.Our.Models.OurUmbracoTemplatePage
|
||||
@{
|
||||
Layout = "~/Views/Master.cshtml";
|
||||
var numberOfDays = 365;
|
||||
var numberOfResults = 25;
|
||||
if (Request.QueryString["days"] != null)
|
||||
{
|
||||
int.TryParse(Request.QueryString["days"], out numberOfDays);
|
||||
}
|
||||
|
||||
var karma = OurUmbraco.Powers.Library.Xslt.MemberKarma(numberOfDays, numberOfResults);
|
||||
}
|
||||
|
||||
<div id="body" class="page markdown-syntax">
|
||||
<div>
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
|
||||
</div>
|
||||
@if (MemberData != null && MemberData.Member != null && MemberData.Member.IsHq())
|
||||
{
|
||||
<h1>Karma leaderboard</h1>
|
||||
|
||||
<textarea style="width: 400px;height: 600px;">
|
||||
@while (karma.MoveNext())
|
||||
{
|
||||
@karma.Current.InnerXml
|
||||
}
|
||||
</textarea>
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -9,9 +9,7 @@
|
||||
<div class="sidebar-area">
|
||||
<div class="sidebar-content">
|
||||
<div class="content-wrapper">
|
||||
|
||||
@Umbraco.RenderMacro("MemberProfileNavigation", new { source = "1057" })
|
||||
|
||||
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .sidebar-content -->
|
||||
</div><!-- .sidebar-area -->
|
||||
@@ -19,11 +17,8 @@
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
|
||||
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .main-content -->
|
||||
</div><!-- .main-area -->
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
<div>
|
||||
<!-- FORUM HEADER START -->
|
||||
<div class="utilities">
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "0" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
@Umbraco.RenderMacro("ProjectsProjectDetail")
|
||||
@Html.Partial("~/Views/Partials/Projects/ProjectDetails.cshtml")
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
(function () {
|
||||
$(".fancybox")
|
||||
.fancybox({
|
||||
openEffect: 'none',
|
||||
closeEffect: 'none',
|
||||
padding: 0
|
||||
// options
|
||||
loop: true,
|
||||
arrows: true,
|
||||
infobar: false
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
<div class="sidebar-area">
|
||||
<div class="sidebar-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("MemberProfileNavigation", new { source = "1057" })
|
||||
@Html.Partial("~/Views/Partials/Members/ProfileNavigation.cshtml")
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .sidebar-content -->
|
||||
</div><!-- .sidebar-area -->
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .main-content -->
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
</li>
|
||||
<li class="filter-category">
|
||||
<h3>By Category</h3>
|
||||
@Umbraco.RenderMacro("ProjectsListCategories")
|
||||
@Html.Partial("~/Views/Partials/Projects/ListCategories.cshtml")
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -39,10 +39,10 @@
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
</div>
|
||||
<div class="packages-content">
|
||||
@Umbraco.RenderMacro("ProjectsListProjects")
|
||||
@Html.Partial("~/Views/Partials/Projects/ListProjects.cshtml")
|
||||
</div>
|
||||
|
||||
</div><!-- .content-wrapper -->
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Umbraco.RenderMacro("MembersPublicProfile")
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
@Html.Partial("~/Views/Partials/Members/PublicProfile.cshtml")
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .main-content -->
|
||||
</div><!-- .main-area -->
|
||||
|
||||
@@ -90,9 +90,9 @@
|
||||
<div class="main-area">
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
</div>
|
||||
<div>
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
</div>
|
||||
<style>
|
||||
.release-page .explain h2 {
|
||||
margin-top: 12px;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@@ -153,7 +153,7 @@
|
||||
<div class="row markdown-syntax douh">
|
||||
<div class="col-sm-12">
|
||||
<h1>Compare Releases</h1>
|
||||
@Umbraco.RenderMacro("ReleasesDropdown")
|
||||
@Html.Partial("~/Views/Partials/Releases/ReleasesDropdown.cshtml")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -41,11 +41,11 @@
|
||||
<div class="main-content">
|
||||
<div class="content-wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb", new { linkToCurrent = "1" })
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = true })
|
||||
</div>
|
||||
<!-- <div class="markdown-syntax"><div data-bind="template: { name: 'releases-template', foreach: currentReleases }"></div></div>-->
|
||||
<div class="markdown-syntax">
|
||||
@Umbraco.RenderMacro("ReleasesAllReleases")
|
||||
@Html.Partial("~/Views/Partials/Releases/AllReleases.cshtml")
|
||||
</div>
|
||||
</div><!-- .content-wrapper -->
|
||||
</div><!-- .main-content -->
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
</style>
|
||||
<div class="subpage wrapper">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb")
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
|
||||
</div>
|
||||
<div class="markdown-syntax">
|
||||
<h1>@title</h1>
|
||||
@@ -90,7 +90,9 @@
|
||||
<div class="row explain">
|
||||
<div class="col-xs-12">
|
||||
<h4 class="text-right"><a href="/contribute/releases/@(release.version.Replace(".",""))">v@(release.version)</a></h4>
|
||||
<small><span>release.releaseDescription</span></small>
|
||||
@if (release.releaseDescription != string.Empty) {
|
||||
<small><span>@Html.Raw(release.releaseDescription)</span></small>
|
||||
}
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="changes">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<div id="body" class="page markdown-syntax">
|
||||
<div>
|
||||
@Umbraco.RenderMacro("Breadcrumb")
|
||||
@Html.Action("Render", "Breadcrumb", new { linkToCurrent = false })
|
||||
</div>
|
||||
<h1>@Model.Content.Name</h1>
|
||||
@Html.Raw(Model.Content.GetPropertyValue<string>("bodyText"))
|
||||
|
||||
@@ -10,7 +10,7 @@ NOTES:
|
||||
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
|
||||
* A new version will invalidate both client and server cache and create new persisted files
|
||||
-->
|
||||
<clientDependency version="336352293" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
|
||||
<clientDependency version="49321111" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
|
||||
|
||||
<!--
|
||||
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
|
||||
@@ -19,19 +19,18 @@ NOTES:
|
||||
-->
|
||||
<fileRegistration defaultProvider="PlaceHolderProvider">
|
||||
<providers>
|
||||
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core"/>
|
||||
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core"/>
|
||||
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core"/>
|
||||
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core"
|
||||
javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder"/>
|
||||
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core" />
|
||||
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core" />
|
||||
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core" />
|
||||
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core" javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder" />
|
||||
</providers>
|
||||
</fileRegistration>
|
||||
|
||||
<!-- This section is used for MVC only -->
|
||||
<mvc defaultRenderer="StandardRenderer">
|
||||
<renderers>
|
||||
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core"/>
|
||||
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core"/>
|
||||
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core" />
|
||||
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core" />
|
||||
</renderers>
|
||||
</mvc>
|
||||
|
||||
@@ -45,15 +44,12 @@ NOTES:
|
||||
-->
|
||||
<compositeFiles defaultProvider="defaultFileProcessingProvider" compositeFileHandlerPath="~/DependencyHandler.axd">
|
||||
<fileProcessingProviders>
|
||||
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core"
|
||||
enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456"
|
||||
urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}"/>
|
||||
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core" enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456" urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}" />
|
||||
</fileProcessingProviders>
|
||||
|
||||
<!-- A file map provider stores references to dependency files by an id to be used in the handler URL when using the MappedId Url type -->
|
||||
<fileMapProviders>
|
||||
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core"
|
||||
mapPath="~/App_Data/TEMP/ClientDependency"/>
|
||||
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core" mapPath="~/App_Data/TEMP/ClientDependency" />
|
||||
</fileMapProviders>
|
||||
|
||||
</compositeFiles>
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
umbracodk
|
||||
Dutch-Umbraco-User-Group
|
||||
Australian-Umbraco-Meetups
|
||||
Kent-Umbraco-Meetup
|
||||
Sydney-Umbraco-Meetup
|
||||
Umbraco-Meetup-RheinMain
|
||||
The-London-Umbraco-Meetup
|
||||
Denver-Area-Umbraco-Meetup
|
||||
Auckland-Umbraco-Meetup
|
||||
Denver-Area-Umbraco-Meetup
|
||||
Dorset-Umbraco-Meetup
|
||||
Umbraco-Oxford-Meetup
|
||||
Madrid-Umbraco-Meetup-Group
|
||||
Chicago-Umbraco-Meetup
|
||||
Umbraco
|
||||
Umbraco-Dev-TC
|
||||
Goteborg-Umbraco-Meetup
|
||||
Dublin-Umbraco-Meetup
|
||||
Umbraco-BA
|
||||
Manchester-Umbraco-Meetup
|
||||
Liverpool-Umbraco-Meetup
|
||||
The-Poland-Umbraco-Meetup
|
||||
Lisbon-Umbraco-Meetup
|
||||
Glasgow-Umbraco-Users-Group-GLUUG
|
||||
PNW-Umbraco-Meetup
|
||||
Adelaide-Umbraco-Meetup
|
||||
The-New-York-Umbraco-Meetup
|
||||
Umbraco-Navi-Mumbai-NET-Meetup
|
||||
Edinburgh-Umbraco-Users-Group
|
||||
Stuttgart-Umbraco-Meetup
|
||||
UmbCardiff
|
||||
meet-umbraco-the-umbraco-meetup
|
||||
umBristol
|
||||
Oslo-Umbraco-Meetup
|
||||
Orange-County-Umbraco-Web-Technologies
|
||||
umbLeeds
|
||||
@@ -0,0 +1,16 @@
|
||||
Aaen
|
||||
clausjensen
|
||||
emilwangaa
|
||||
hartvig
|
||||
hemraker
|
||||
madsrasmussen
|
||||
mikkelhm
|
||||
nul800sebastiaan
|
||||
perploug
|
||||
Shazwazza
|
||||
simonbusborg
|
||||
sitereactor
|
||||
sofietoft
|
||||
umbracoci
|
||||
warrenbuckley
|
||||
zpqrtbnk
|
||||
@@ -2,5 +2,7 @@
|
||||
<configuration>
|
||||
<sources>
|
||||
<add url="https://github.com/umbraco/UmbracoDocs/archive/master.zip" folder="" />
|
||||
<!-- Comma separated list of branches we will pull documentation from -->
|
||||
<allowedBranches>master</allowedBranches>
|
||||
</sources>
|
||||
</configuration>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<caching currentCache="DiskCache">
|
||||
<caches>
|
||||
<cache name="DiskCache" type="ImageProcessor.Web.Caching.DiskCache, ImageProcessor.Web" maxDays="365" browserMaxDays="7">
|
||||
<cache name="DiskCache" type="ImageProcessor.Web.Caching.DiskCache, ImageProcessor.Web" maxDays="365" browserMaxDays="7" trimCache="false">
|
||||
<settings>
|
||||
<setting key="VirtualCachePath" value="~/../wwwcache/IPCache" />
|
||||
</settings>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<configuration default="v750">
|
||||
<versions>
|
||||
<!-- version key="v5" name="Version 5.0.x" description="Compatible with version 5.0.x" vote="false"/ -->
|
||||
<version key="v760" name="Version 7.6.x" description="Compatible with version 7.6.x" vote="true" voteDescription="Version 7.6.x" voteName="7.6.x"/>
|
||||
<version key="v750" name="Version 7.5.x" description="Compatible with version 7.5.x" vote="true" voteDescription="Version 7.5.x" voteName="7.5.x"/>
|
||||
<version key="v740" name="Version 7.4.x" description="Compatible with version 7.4.x" vote="true" voteDescription="Version 7.4.x" voteName="7.4.x"/>
|
||||
<version key="v730" name="Version 7.3.x" description="Compatible with version 7.3.x" vote="true" voteDescription="Version 7.3.x" voteName="7.3.x"/>
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
var numericalVersion = parsedVersion.GetNumericalValue();
|
||||
var versionFilters = new SearchFilters(BooleanOperation.Or);
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_version", 0, numericalVersion));
|
||||
versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", 0, numericalVersion));
|
||||
filters.Add(versionFilters);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
@using OurUmbraco.Project
|
||||
@using OurUmbraco.Repository.Services
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Web
|
||||
@{
|
||||
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
|
||||
@@ -7,6 +9,7 @@
|
||||
int projectId;
|
||||
if (int.TryParse(Request.QueryString["project_id"], out projectId) == false)
|
||||
{
|
||||
//TODO: Exception probably !
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -14,6 +17,11 @@
|
||||
var callback = Request.QueryString["callback"];
|
||||
|
||||
var Project = ProjectsProvider.GetListing(projectId, false);
|
||||
if (Project == null)
|
||||
{
|
||||
throw new InvalidOperationException("No project found with id " + projectId);
|
||||
}
|
||||
|
||||
var node = new umbraco.NodeFactory.Node(projectId);
|
||||
var parentId = node.Parent.Id;
|
||||
var categoryName = node.Parent.Name;
|
||||
@@ -30,10 +38,26 @@
|
||||
descCssClass = "wrap";
|
||||
}
|
||||
|
||||
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
|
||||
var packageRepoService = new PackageRepositoryService(umbracoHelper, umbracoHelper.MembershipHelper, ApplicationContext.Current.DatabaseContext);
|
||||
//This doesn't matter what we set it to so long as it's below 7.5 since that is the version we introduce strict dependencies
|
||||
var currUmbracoVersion = new Version(4, 0, 0);
|
||||
var packageDetails = packageRepoService.GetDetails(Project.ProjectGuid, currUmbracoVersion, false);
|
||||
|
||||
if (packageDetails == null)
|
||||
{
|
||||
throw new InvalidOperationException("No package found with id " + Project.ProjectGuid);
|
||||
}
|
||||
|
||||
if (packageDetails.ZipUrl.IsNullOrWhiteSpace())
|
||||
{
|
||||
throw new InvalidOperationException("This package is not compatible with the Umbraco version " + currUmbracoVersion);
|
||||
}
|
||||
|
||||
int currentReleaseFile = 0;
|
||||
if (int.TryParse(Project.CurrentReleaseFile, out currentReleaseFile))
|
||||
{
|
||||
var file = Project.PackageFile.Where(x => x.Id == currentReleaseFile).FirstOrDefault();
|
||||
var file = Project.PackageFile.FirstOrDefault(x => x.Id == currentReleaseFile);
|
||||
if (file != null)
|
||||
{
|
||||
var ct = "This project is compaitible with ";
|
||||
@@ -66,27 +90,33 @@
|
||||
}
|
||||
}
|
||||
<script type="text/javascript">
|
||||
jQuery("#projectDescriptionText a").click(function(event){event.preventDefault(); });
|
||||
jQuery("#projectDescriptionText a").click(function (event) { event.preventDefault(); });
|
||||
</script>
|
||||
|
||||
<ul id="breadcrumb">
|
||||
<li><a href="/repo?@qs">Repository</a> →</li>
|
||||
<li><a href="/repo_category?@qs&category_id=@parentId">@categoryName</a> →</li>
|
||||
<li><a href="/repo_category?@qs&category_id=@parentId">@categoryName</a> →</li>
|
||||
<li>@Project.Name</li>
|
||||
</ul>
|
||||
|
||||
<div id="project">
|
||||
@if (currentReleaseFile != 0)
|
||||
@if (string.IsNullOrWhiteSpace(packageDetails.ZipUrl) == false)
|
||||
{
|
||||
<h1 class="projectName">
|
||||
<span>@Project.Name</span>
|
||||
<a href="#" title="@Project.Name" rel="@Project.ProjectGuid" class="btn">Install package</a>
|
||||
</h1>
|
||||
}
|
||||
else if (currentReleaseFile != 0)
|
||||
{
|
||||
<span style="color: red;">Unfortunately, this package is not compatible with the version of Umbraco you are running.</span><br />
|
||||
<a href="https://our.umbraco.org/@node.NiceUrl" target="_blank">Go to the package page to learn more</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span style="color: red;">Unfortunately, this package has no current release file to install at the moment.</span><br />
|
||||
<a href="https://our.umbraco.org/@node.NiceUrl" target="_blank">Go to the package page to learn more</a>}
|
||||
<a href="https://our.umbraco.org/@node.NiceUrl" target="_blank">Go to the package page to learn more</a>
|
||||
}
|
||||
<div class="meta">
|
||||
|
||||
<div class="box">
|
||||
@@ -94,10 +124,10 @@
|
||||
<dl class="projetProps summary">
|
||||
<dt>Project owner:</dt>
|
||||
@{
|
||||
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
|
||||
|
||||
var ownerName = umbracoHelper.MembershipHelper.GetById(Project.VendorId).Name;
|
||||
}
|
||||
<dd>@ownerName</dd>
|
||||
<dd>@ownerName</dd>
|
||||
|
||||
<dt>Package downloads</dt>
|
||||
<dd>@Project.Downloads</dd>
|
||||
@@ -119,9 +149,9 @@
|
||||
@if (Project.Stable)
|
||||
{
|
||||
<dt>Is Stable:</dt>
|
||||
<dd>
|
||||
<span class="green">Project is stable</span>
|
||||
</dd>
|
||||
<dd>
|
||||
<span class="green">Project is stable</span>
|
||||
</dd>
|
||||
}
|
||||
<dt>Current version</dt>
|
||||
<dd>
|
||||
@@ -130,9 +160,9 @@
|
||||
@if (!string.IsNullOrEmpty(Project.LicenseName))
|
||||
{
|
||||
<dt>License</dt>
|
||||
<dd>
|
||||
<a target="_blank" href="@Project.LicenseUrl">@Project.LicenseName</a>
|
||||
</dd>
|
||||
<dd>
|
||||
<a target="_blank" href="@Project.LicenseUrl">@Project.LicenseName</a>
|
||||
</dd>
|
||||
}
|
||||
</dl>
|
||||
</div>
|
||||
@@ -158,7 +188,7 @@
|
||||
image.Path.EndsWith("jpeg"))
|
||||
{
|
||||
<a href="@image.Path" class="projectscreenshot" rel="shadowbox[gallery]">
|
||||
<img src="@image.Path?bgcolor=fff&width=100&height=100&format=png" style="border: 0;"/>
|
||||
<img src="@image.Path?bgcolor=fff&width=100&height=100&format=png" style="border: 0;" />
|
||||
</a>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,26 +7,18 @@
|
||||
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
|
||||
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net452" />
|
||||
<package id="EasyHttp" version="1.6.29.0" targetFramework="net451" />
|
||||
<package id="Examine" version="0.1.80" targetFramework="net452" />
|
||||
<package id="Examine" version="0.1.81" targetFramework="net452" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="net452" />
|
||||
<package id="ImageProcessor" version="2.5.1" targetFramework="net452" />
|
||||
<package id="ImageProcessor.Web" version="4.8.0" targetFramework="net452" />
|
||||
<package id="ImageProcessor" version="2.5.2" targetFramework="net452" />
|
||||
<package id="ImageProcessor.Web" version="4.8.2" targetFramework="net452" />
|
||||
<package id="ImageProcessor.Web.Config" version="2.3.0.0" targetFramework="net452" />
|
||||
<package id="jQuery" version="1.4.1" targetFramework="net451" />
|
||||
<package id="jQuery.Validation" version="1.8" targetFramework="net451" />
|
||||
<package id="jQuery.Validation.Unobtrusive" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="JsonFx" version="2.0.1209.2802" targetFramework="net4" />
|
||||
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net452" />
|
||||
<package id="Markdown" version="1.14.4" targetFramework="net452" />
|
||||
<package id="Markdown" version="1.14.7" targetFramework="net452" />
|
||||
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net4" />
|
||||
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.TraceListener" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net451" />
|
||||
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net452" />
|
||||
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net452" />
|
||||
@@ -46,7 +38,7 @@
|
||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.CodeAnalysis.Common" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0" targetFramework="net452" />
|
||||
<package id="Microsoft.IO.RecyclableMemoryStream" version="1.2.0" targetFramework="net452" />
|
||||
<package id="Microsoft.IO.RecyclableMemoryStream" version="1.2.1" targetFramework="net452" />
|
||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net451" />
|
||||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net452" />
|
||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
|
||||
@@ -64,12 +56,15 @@
|
||||
<package id="RestSharp" version="104.1" targetFramework="net4" />
|
||||
<package id="semver" version="1.1.2" targetFramework="net452" />
|
||||
<package id="SharpZipLib" version="0.86.0" targetFramework="net452" />
|
||||
<package id="Skybrud.Essentials" version="1.0.8" targetFramework="net452" />
|
||||
<package id="Skybrud.Social.Core" version="1.0.0-beta9" targetFramework="net452" />
|
||||
<package id="Skybrud.Social.Meetup" version="1.0.0-beta002" targetFramework="net452" />
|
||||
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net452" />
|
||||
<package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net452" />
|
||||
<package id="TweetinviAPI" version="1.2.0" targetFramework="net452" />
|
||||
<package id="Umbraco.ModelsBuilder" version="3.0.5" targetFramework="net452" />
|
||||
<package id="UmbracoCms" version="7.5.7" targetFramework="net452" />
|
||||
<package id="UmbracoCms.Core" version="7.5.7" targetFramework="net452" />
|
||||
<package id="UmbracoCms" version="7.5.11" targetFramework="net452" />
|
||||
<package id="UmbracoCms.Core" version="7.5.11" targetFramework="net452" />
|
||||
<package id="UmbracoCms.IdentityExtensions" version="1.0.0" targetFramework="net451" />
|
||||
<package id="UmbracoCms.IdentityExtensions.Google" version="1.0.0" targetFramework="net451" />
|
||||
<package id="UrlRewritingNet" version="2.0.7" targetFramework="net452" />
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
<h4><localize key="prompt_unsavedChanges">You have unsaved changes</localize></h4>
|
||||
<p><localize key="prompt_unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</localize></p>
|
||||
|
||||
<button class="btn btn-warning" ng-click="discard(notification)"><localize key="prompt_discardChanges">Discard changes</localize></button>
|
||||
<button class="btn" ng-click="stay(notification)" umb-auto-focus><localize key="prompt_stay">Stay</localize></button>
|
||||
</div>
|
||||
<button class="btn" ng-click="discard(notification)"><localize key="prompt_discardChanges">Discard changes</localize></button>
|
||||
<button class="btn btn-success" ng-click="stay(notification)" umb-auto-focus><localize key="prompt_stay">Stay</localize></button>
|
||||
</div>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<div class="umb-package-list__item" ng-repeat="installedPackage in vm.installedPackages">
|
||||
|
||||
<div class="umb-package-list__item-icon">
|
||||
<i ng-if="!installedPackage.icon" class="icon-box"></i>
|
||||
<img ng-if="installedPackage.icon" ng-src="{{installedPackage.icon}}" />
|
||||
<i ng-if="!installedPackage.iconUrl" class="icon-box"></i>
|
||||
<img ng-if="installedPackage.iconUrl" ng-src="{{installedPackage.iconUrl}}" />
|
||||
</div>
|
||||
|
||||
<div class="umb-package-list__item-content">
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
</umb-file-dropzone>
|
||||
|
||||
<umb-folder-grid
|
||||
ng-if="folders.length > 0 && !vm.isRecycleBin"
|
||||
ng-if="folders.length > 0"
|
||||
folders="folders"
|
||||
on-click="vm.selectFolder"
|
||||
on-click-name="vm.goToItem">
|
||||
|
||||
@@ -1142,7 +1142,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
|
||||
<area alias="modelsBuilder">
|
||||
<key alias="buildingModels">Building models</key>
|
||||
<key alias="waitingMessage">this can take abit of time, don't worry</key>
|
||||
<key alias="waitingMessage">this can take a bit of time, don't worry</key>
|
||||
<key alias="modelsGenerated">Models generated</key>
|
||||
<key alias="modelsGeneratedError">Models could not be generated</key>
|
||||
<key alias="modelsExceptionInUlog">Models generation has failed, see exception in U log</key>
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
<key alias="unpublish">Depubliceren</key>
|
||||
<key alias="refreshNode">Nodes opnieuw inladen</key>
|
||||
<key alias="republish">Herpubliceer de site</key>
|
||||
<key alias="SetPermissionsForThePage">Stel rechten voor pagina %0% in</key>
|
||||
<key alias="chooseWhereToMove">Waarheen verplaatsen/</key>
|
||||
<key alias="toInTheTreeStructureBelow">Naar de onderstaande boomstructuur</key>
|
||||
<key alias="restore" version="7.3.0">Herstellen</key>
|
||||
<key alias="rights">Rechten</key>
|
||||
<key alias="rollback">Vorige versies</key>
|
||||
<key alias="sendtopublish">Klaar voor publicatie</key>
|
||||
@@ -64,10 +68,10 @@
|
||||
<key alias="atViewingFor">Tonen voor</key>
|
||||
</area>
|
||||
<area alias="buttons">
|
||||
<key alias="clearSelection">Selectie ongedaan maken</key>
|
||||
<key alias="select">Selecteren</key>
|
||||
<key alias="selectCurrentFolder">Selecteer huidige map</key>
|
||||
<key alias="somethingElse">Doe iets anders</key>
|
||||
|
||||
<key alias="bold">Vet</key>
|
||||
<key alias="deindent">Paragraaf uitspringen</key>
|
||||
<key alias="formFieldInsert">Voeg formulierveld in</key>
|
||||
@@ -89,11 +93,14 @@
|
||||
<key alias="save">Opslaan</key>
|
||||
<key alias="saveAndPublish">Opslaan en publiceren</key>
|
||||
<key alias="saveToPublish">Opslaan en verzenden voor goedkeuring</key>
|
||||
<key alias="saveListView">Sla list view op</key>
|
||||
<key alias="showPage">voorbeeld bekijken</key>
|
||||
<key alias="showPageDisabled">Voorbeeld bekijken is uitgeschakeld omdat er geen template is geselecteerd</key>
|
||||
<key alias="styleChoose">Stijl kiezen</key>
|
||||
<key alias="styleShow">Stijlen tonen</key>
|
||||
<key alias="tableInsert">Tabel invoegen</key>
|
||||
<key alias="generateModels">Genereer models</key>
|
||||
<key alias="saveAndGenerateModels">Opslaan en models genereren</key>
|
||||
</area>
|
||||
<area alias="changeDocType">
|
||||
<key alias="changeDocTypeInstruction">Om het documenttype voor de geselecteerde inhoud te wijzigen, selecteert u eerst uit de lijst van geldige types voor deze locatie.</key>
|
||||
@@ -133,7 +140,8 @@
|
||||
<key alias="itemChanged">Dit item is gewijzigd na publicatie</key>
|
||||
<key alias="itemNotPublished">Dit item is niet gepubliceerd</key>
|
||||
<key alias="lastPublished">Laatst gepubliceerd op</key>
|
||||
<key alias="listViewNoItems" version="7.1.5">Nog geen items om weer te geven.</key>
|
||||
<key alias="noItemsToShow">Er zijn geen items om weer te geven</key>
|
||||
<key alias="listViewNoItems" version="7.1.5">Er zijn geen items om weer te geven.</key>
|
||||
<key alias="mediatype">Mediatype</key>
|
||||
<key alias="mediaLinks">Link naar media item(s)</key>
|
||||
<key alias="membergroup">Ledengroep</key>
|
||||
@@ -143,7 +151,9 @@
|
||||
<key alias="nodeName">Pagina Titel</key>
|
||||
<key alias="otherElements">Eigenschappen</key>
|
||||
<key alias="parentNotPublished">Dit document is gepubliceerd maar niet zichtbaar omdat de bovenliggende node '%0%' niet gepubliceerd is</key>
|
||||
<key alias="parentNotPublishedAnomaly">Oeps: dit document is gepubliceerd, maar het is niet in de cache (interne serverfout)</key>
|
||||
<key alias="parentNotPublishedAnomaly">Dit document is gepubliceerd, maar het is niet in de cache (interne serverfout)</key>
|
||||
<key alias="getUrlException">Kan de Url niet ophalen</key>
|
||||
<key alias="routeError">Dit document is gepubliceerd, maar de Url conflicteert met %0%</key>
|
||||
<key alias="publish">Publiceren</key>
|
||||
<key alias="publishStatus">Publicatiestatus</key>
|
||||
<key alias="releaseDate">Publiceren op</key>
|
||||
@@ -161,23 +171,34 @@
|
||||
<key alias="uploadClear">Bestand(en) verwijderen</key>
|
||||
<key alias="urls">Link naar het document</key>
|
||||
<key alias="memberof">Lid van groep(en)</key>
|
||||
<key alias="notmemberof">Geen lid van groep(en)</key>
|
||||
|
||||
<key alias="notmemberof">Geen lid van groep(en)</key>
|
||||
<key alias="childItems" version="7.0">Kinderen</key>
|
||||
<key alias="target" version="7.0">Doel</key>
|
||||
<key alias="scheduledPublishServerTime">Dit betekend de volgende tijd op de server:</key>
|
||||
<key alias="scheduledPublishDocumentation"><![CDATA[<a href="https://our.umbraco.org/documentation/Getting-Started/Data/Scheduled-Publishing/#timezones" target="_blank">Wat houd dit in?</a>]]></key>
|
||||
</area>
|
||||
<area alias="media">
|
||||
<key alias="clickToUpload">Klik om te uploaden</key>
|
||||
<key alias="dropFilesHere">Plaats je bestanden hier...</key>
|
||||
<key alias="urls">Link naar media</key>
|
||||
<key alias="orClickHereToUpload">Of klik hier om bestanden te kiezen</key>
|
||||
<key alias="onlyAllowedFiles">De toegestane bestandtypen zijn</key>
|
||||
<key alias="disallowedFileType">Dit bestand heeft niet het juiste file-type. Dit bestand kan niet geupload worden.</key>
|
||||
<key alias="maxFileSize">Max file size is</key>
|
||||
</area>
|
||||
<area alias="member">
|
||||
<key alias="createNewMember">Maak nieuwe member aan</key>
|
||||
<key alias="allMembers">Alle Members</key>
|
||||
</area>
|
||||
<area alias="create">
|
||||
<key alias="chooseNode">Waar wil je de nieuwe %0% aanmaken?</key>
|
||||
<key alias="createUnder">Aanmaken onder</key>
|
||||
<key alias="updateData">Kies een type en een titel</key>
|
||||
|
||||
<key alias="noDocumentTypes" version="7.0"><![CDATA[Er zijn geen toegestane documenttypes beschikbaar. Je moet deze inschakelen in de Instellingen sectie onder <strong>"Documenttypes"</ strong>.]]></key>
|
||||
|
||||
<key alias="noMediaTypes" version="7.0"><![CDATA[Er zijn geen toegestande mediatypes beschikbaar. Je moet deze in schakelen in de Instellingen sectie onder <strong>"Mediatypes"</strong>.]]></key>
|
||||
<key alias="documentTypeWithoutTemplate">Document Type zonder template</key>
|
||||
<key alias="newFolder">Nieuwe folder</key>
|
||||
<key alias="newDataType">Nieuw data type</key>
|
||||
</area>
|
||||
<area alias="dashboard">
|
||||
<key alias="browser">Open je website</key>
|
||||
@@ -189,38 +210,38 @@
|
||||
<key alias="welcome">Welkom</key>
|
||||
</area>
|
||||
<area alias="prompt">
|
||||
<key alias="stay">Stay</key>
|
||||
<key alias="discardChanges">Discard changes</key>
|
||||
<key alias="unsavedChanges">You have unsaved changes</key>
|
||||
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
|
||||
<key alias="stay">Blijf op deze pagina</key>
|
||||
<key alias="discardChanges">Negeer wijzigingen</key>
|
||||
<key alias="unsavedChanges">Wijzigingen niet opgeslagen</key>
|
||||
<key alias="unsavedChangesWarning">Weet je zeker dat deze pagina wilt verlaten? - er zijn onopgeslagen wijzigingen</key>
|
||||
</area>
|
||||
<area alias="bulk">
|
||||
<key alias="done">Done</key>
|
||||
|
||||
<key alias="deletedItem">Deleted %0% item</key>
|
||||
<key alias="deletedItems">Deleted %0% items</key>
|
||||
<key alias="deletedItemOfItem">Deleted %0% out of %1% item</key>
|
||||
<key alias="deletedItemOfItems">Deleted %0% out of %1% items</key>
|
||||
|
||||
<key alias="publishedItem">Published %0% item</key>
|
||||
<key alias="publishedItems">Published %0% items</key>
|
||||
<key alias="publishedItemOfItem">Published %0% out of %1% item</key>
|
||||
<key alias="publishedItemOfItems">Published %0% out of %1% items</key>
|
||||
|
||||
<key alias="unpublishedItem">Unpublished %0% item</key>
|
||||
<key alias="unpublishedItems">Unpublished %0% items</key>
|
||||
<key alias="unpublishedItemOfItem">Unpublished %0% out of %1% item</key>
|
||||
<key alias="unpublishedItemOfItems">Unpublished %0% out of %1% items</key>
|
||||
|
||||
<key alias="movedItem">Moved %0% item</key>
|
||||
<key alias="movedItems">Moved %0% items</key>
|
||||
<key alias="movedItemOfItem">Moved %0% out of %1% item</key>
|
||||
<key alias="movedItemOfItems">Moved %0% out of %1% items</key>
|
||||
|
||||
<key alias="copiedItem">Copied %0% item</key>
|
||||
<key alias="copiedItems">Copied %0% items</key>
|
||||
<key alias="copiedItemOfItem">Copied %0% out of %1% item</key>
|
||||
<key alias="copiedItemOfItems">Copied %0% out of %1% items</key>
|
||||
|
||||
<key alias="deletedItem">%0% item verwijderd</key>
|
||||
<key alias="deletedItems">%0% items verwijderd</key>
|
||||
<key alias="deletedItemOfItem">Item %0% van de %1% verwijderd</key>
|
||||
<key alias="deletedItemOfItems">Items %0% van de %1% verwijderd</key>
|
||||
|
||||
<key alias="publishedItem">%0% item gepubliceerd</key>
|
||||
<key alias="publishedItems">%0% items gepubliceerd</key>
|
||||
<key alias="publishedItemOfItem">Item %0% van de %1% gepubliceerd</key>
|
||||
<key alias="publishedItemOfItems">Items %0% van de %1% gepubliceerd</key>
|
||||
|
||||
<key alias="unpublishedItem">%0% item gedepubliceerd</key>
|
||||
<key alias="unpublishedItems">%0% items gedepubliceerd</key>
|
||||
<key alias="unpublishedItemOfItem">Item %0% van de %1% gedepubliceerd</key>
|
||||
<key alias="unpublishedItemOfItems">Items %0% van de %1% gedepubliceerd</key>
|
||||
|
||||
<key alias="movedItem">%0% item verplaatst</key>
|
||||
<key alias="movedItems">%0% items verplaatst</key>
|
||||
<key alias="movedItemOfItem">item %0% van de %1% verplaatst</key>
|
||||
<key alias="movedItemOfItems">items %0% van de %1% verplaatst</key>
|
||||
|
||||
<key alias="copiedItem">%0% item gekopieerd</key>
|
||||
<key alias="copiedItems">%0% items gekopieerd</key>
|
||||
<key alias="copiedItemOfItem">item %0% van de %1% gekopieerd</key>
|
||||
<key alias="copiedItemOfItems">item %0% van de %1% gekopieerd</key>
|
||||
</area>
|
||||
<area alias="defaultdialogs">
|
||||
<key alias="anchorInsert">Naam</key>
|
||||
@@ -269,21 +290,55 @@
|
||||
<key alias="thumbnailimageclickfororiginal">Klik op de afbeelding voor volledige grootte</key>
|
||||
<key alias="treepicker">Kies een item</key>
|
||||
<key alias="viewCacheItem">Toon cache item</key>
|
||||
<key alias="createFolder">Maak folder aan...</key>
|
||||
<key alias="relateToOriginalLabel">Relateer aan origineel</key>
|
||||
<key alias="includeDescendants">Descendants meenemen</key>
|
||||
<key alias="theFriendliestCommunity">De vriendelijkste community</key>
|
||||
<key alias="linkToPage">Link naar pagina</key>
|
||||
<key alias="openInNewWindow">Opent het gelinkte document in een nieuw venster of tab</key>
|
||||
<key alias="linkToMedia">Link naar media</key>
|
||||
<key alias="selectMedia">Selecteer media</key>
|
||||
<key alias="selectIcon">Selecteer icoon</key>
|
||||
<key alias="selectItem">Selecteer item</key>
|
||||
<key alias="selectLink">Selecteer link</key>
|
||||
<key alias="selectMacro">Selecteer macro</key>
|
||||
<key alias="selectContent">Selecteer content</key>
|
||||
<key alias="selectMember">Selecteer member</key>
|
||||
<key alias="selectMemberGroup">Selecteer member group</key>
|
||||
<key alias="noMacroParams">Er zijn geen parameters voor deze macro</key>
|
||||
<key alias="externalLoginProviders">Externe login providers</key>
|
||||
<key alias="exceptionDetail">Error details</key>
|
||||
<key alias="stacktrace">Stacktrace</key>
|
||||
<key alias="innerException">Inner Exception</key>
|
||||
<key alias="linkYour">Link je</key>
|
||||
<key alias="unLinkYour">De-Link je</key>
|
||||
<key alias="account">account</key>
|
||||
<key alias="selectEditor">Selecteer editor</key>
|
||||
</area>
|
||||
<area alias="dictionaryItem">
|
||||
<key alias="description"><![CDATA[
|
||||
Wijzig de verschillende taalversies voor het woordenboek item '%0%'. Je kunt extra talen toevoegen bij 'talen' in het menu links
|
||||
]]></key>
|
||||
<key alias="displayName">Cultuurnaam</key>
|
||||
<key alias="changeKey">Verander de key van het dictionary item.</key>
|
||||
<key alias="changeKeyError">
|
||||
<![CDATA[
|
||||
De key '%0%' bestaat al.
|
||||
]]>
|
||||
</key>
|
||||
</area>
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Typ je gebruikersnaam</key>
|
||||
<key alias="password">Typ je wachtwoord</key>
|
||||
<key alias="username">Typ jouw gebruikersnaam</key>
|
||||
<key alias="password">Typ jouw wachtwoord</key>
|
||||
<key alias="confirmPassword">Bevestig jouw wachtwoord</key>
|
||||
<key alias="nameentity">Benoem de %0%...</key>
|
||||
<key alias="entername">Typ een naam...</key>
|
||||
<key alias="label">Label...</key>
|
||||
<key alias="enterDescription">Voer een omschrijving in...</key>
|
||||
<key alias="search">Typ om te zoeken...</key>
|
||||
<key alias="filter">Typ om te filteren...</key>
|
||||
<key alias="enterTags">Typ om tags toe te voegen (druk op enter na elke tag)...</key>
|
||||
<key alias="email">Voer jouw email in</key>
|
||||
</area>
|
||||
|
||||
<area alias="editcontenttype">
|
||||
@@ -331,10 +386,17 @@
|
||||
<key alias="errorRegExpWithoutTab">%0% is niet in het correcte formaat</key>
|
||||
</area>
|
||||
<area alias="errors">
|
||||
<key alias="receivedErrorFromServer">Een error ontvangen van de server</key>
|
||||
<key alias="dissallowedMediaType">Het opgegeven bestandstype is niet toegestaan door de beheerder</key>
|
||||
<key alias="codemirroriewarning">OPMERKING! Ondanks dat CodeMiror is ingeschakeld, is het uitgeschakeld in Internet Explorer omdat het niet stabiel genoeg is.</key>
|
||||
<key alias="contentTypeAliasAndNameNotNull">Zowel de alias als de naam van het nieuwe eigenschappen type moeten worden ingevuld!</key>
|
||||
<key alias="filePermissionsError">Er is een probleem met de lees/schrijf rechten op een bestand of map</key>
|
||||
<key alias="macroErrorLoadingPartialView">Error bij het laden van Partial View script (file: %0%)</key>
|
||||
<key alias="macroErrorLoadingUsercontrol">Error bij het laden van userControl '%0%'</key>
|
||||
<key alias="macroErrorLoadingCustomControl">Error bij het laden van customControl (Assembly: %0%, Type: '%1%')</key>
|
||||
<key alias="macroErrorLoadingMacroEngineScript">Error bij het laden van MacroEngine script (file: %0%)</key>
|
||||
<key alias="macroErrorParsingXSLTFile">"Error bij het parsen van XSLT file: %0%</key>
|
||||
<key alias="macroErrorReadingXSLTFile">"Error bij het laden van XSLT file: %0%</key>
|
||||
<key alias="missingTitle">Vul een titel in</key>
|
||||
<key alias="missingType">Selecteer een type</key>
|
||||
<key alias="pictureResizeBiggerThanOrg">U wilt een afbeelding groter maken dan de originele afmetingen. Weet je zeker dat je wilt doorgaan?</key>
|
||||
@@ -355,102 +417,142 @@
|
||||
<key alias="actions">Acties</key>
|
||||
<key alias="add">Toevoegen</key>
|
||||
<key alias="alias">Alias</key>
|
||||
<key alias="all">Alles</key>
|
||||
<key alias="areyousure">Weet je het zeker?</key>
|
||||
<key alias="border">Rand</key>
|
||||
<key alias="by">of</key>
|
||||
<key alias="cancel">Annuleren</key>
|
||||
<key alias="back">Terug</key>
|
||||
<key alias="border">Border</key>
|
||||
<key alias="by">bij</key>
|
||||
<key alias="cancel">Cancel</key>
|
||||
<key alias="cellMargin">Cel marge</key>
|
||||
<key alias="choose">Kiezen</key>
|
||||
<key alias="close">Sluiten</key>
|
||||
<key alias="closewindow">Venster sluiten</key>
|
||||
<key alias="comment">Opmerking</key>
|
||||
<key alias="confirm">Bevestigen</key>
|
||||
<key alias="constrainProportions">Verhouding behouden</key>
|
||||
<key alias="continue">Doorgaan</key>
|
||||
<key alias="copy">Kopiëren</key>
|
||||
<key alias="choose">Kies</key>
|
||||
<key alias="close">Sluit</key>
|
||||
<key alias="closewindow">Sluit venster</key>
|
||||
<key alias="comment">Comment</key>
|
||||
<key alias="confirm">Bevestig</key>
|
||||
<key alias="constrainProportions">Verhoudingen behouden</key>
|
||||
<key alias="continue">Ga verder</key>
|
||||
<key alias="copy">Copy</key>
|
||||
<key alias="create">Aanmaken</key>
|
||||
<key alias="database">Databank</key>
|
||||
<key alias="database">Database</key>
|
||||
<key alias="date">Datum</key>
|
||||
<key alias="default">Standaard</key>
|
||||
<key alias="delete">Verwijderen</key>
|
||||
<key alias="delete">Verwijder</key>
|
||||
<key alias="deleted">Verwijderd</key>
|
||||
<key alias="deleting">Verwijderen...</key>
|
||||
<key alias="deleting">Aan het verwijderen...</key>
|
||||
<key alias="design">Ontwerp</key>
|
||||
<key alias="dimensions">Afmetingen</key>
|
||||
<key alias="down">Beneden</key>
|
||||
<key alias="down">Omlaag</key>
|
||||
<key alias="download">Download</key>
|
||||
<key alias="edit">Aanpassen</key>
|
||||
<key alias="edited">Aangepast</key>
|
||||
<key alias="edit">Bewerk</key>
|
||||
<key alias="edited">Bewerkt</key>
|
||||
<key alias="elements">Elementen</key>
|
||||
<key alias="email">E-mail</key>
|
||||
<key alias="email">Email</key>
|
||||
<key alias="error">Fout</key>
|
||||
<key alias="findDocument">Zoeken</key>
|
||||
<key alias="height">Hoogte</key>
|
||||
<key alias="findDocument">Vind</key>
|
||||
<key alias="height">Hogte</key>
|
||||
<key alias="help">Help</key>
|
||||
<key alias="icon">Icoon</key>
|
||||
<key alias="import">Importeren</key>
|
||||
<key alias="innerMargin">Binnenmarge</key>
|
||||
<key alias="import">Import</key>
|
||||
<key alias="innerMargin">Binnenste marge</key>
|
||||
<key alias="insert">Invoegen</key>
|
||||
<key alias="install">Installeren</key>
|
||||
<key alias="justify">Uitvullen</key>
|
||||
<key alias="invalid">Ongeldig</key>
|
||||
<key alias="justify">Justify</key>
|
||||
<key alias="label">Label</key>
|
||||
<key alias="language">Taal</key>
|
||||
<key alias="layout">Lay-out</key>
|
||||
<key alias="loading">Bezig met laden</key>
|
||||
<key alias="locked">Geblokkeerd</key>
|
||||
<key alias="layout">Layout</key>
|
||||
<key alias="loading">Aan het laden</key>
|
||||
<key alias="locked">Gesloten</key>
|
||||
<key alias="login">Inloggen</key>
|
||||
<key alias="logoff">Afmelden</key>
|
||||
<key alias="logout">Afmelden</key>
|
||||
<key alias="logoff">Uitloggen</key>
|
||||
<key alias="logout">Uitloggen</key>
|
||||
<key alias="macro">Macro</key>
|
||||
<key alias="move">Verplaatsen</key>
|
||||
<key alias="more">Meer</key>
|
||||
<key alias="mandatory">Verplicht</key>
|
||||
<key alias="move">Verplaats</key>
|
||||
<key alias="more">meer</key>
|
||||
<key alias="name">Naam</key>
|
||||
<key alias="new">Nieuw</key>
|
||||
<key alias="next">Volgende</key>
|
||||
<key alias="no">Nee</key>
|
||||
<key alias="of">van</key>
|
||||
<key alias="ok">Ok</key>
|
||||
<key alias="open">Openen</key>
|
||||
<key alias="of">of</key>
|
||||
<key alias="ok">OK</key>
|
||||
<key alias="open">Open</key>
|
||||
<key alias="or">of</key>
|
||||
<key alias="password">Wachtwoord</key>
|
||||
<key alias="path">Pad</key>
|
||||
<key alias="placeHolderID">Placeholder ID</key>
|
||||
<key alias="pleasewait">Een ogenblik geduld a.u.b.</key>
|
||||
<key alias="pleasewait">Een ogenblik geduld aub...</key>
|
||||
<key alias="previous">Vorige</key>
|
||||
<key alias="properties">Eigenschappen</key>
|
||||
<key alias="reciept">E-mail om formulier te ontvangen</key>
|
||||
<key alias="reciept">Email om formulier resultaten te ontvangen</key>
|
||||
<key alias="recycleBin">Prullenbak</key>
|
||||
<key alias="remaining">Overgebleven</key>
|
||||
<key alias="rename">Hernoemen</key>
|
||||
<key alias="recycleBinEmpty">De prullenbak is leeg</key>
|
||||
<key alias="remaining">Overblijvend</key>
|
||||
<key alias="rename">Hernoem</key>
|
||||
<key alias="renew">Vernieuw</key>
|
||||
<key alias="required" version="7.0">Verplicht</key>
|
||||
<key alias="retry">Opnieuw proberen</key>
|
||||
<key alias="rights">Rechten</key>
|
||||
<key alias="search">Zoek</key>
|
||||
<key alias="search">Zoeken</key>
|
||||
<key alias="searchNoResult">We konden helaas niet vinden wat je zocht</key>
|
||||
<key alias="server">Server</key>
|
||||
<key alias="show">Tonen</key>
|
||||
<key alias="showPageOnSend">Toon pagina bij versturen</key>
|
||||
<key alias="size">Formaat</key>
|
||||
<key alias="sort">Sorteren</key>
|
||||
<key alias="submit">Submit</key> <!-- TODO: Translate this -->
|
||||
<key alias="type">Type</key>
|
||||
<key alias="typeToSearch">Type om te zoeken...</key>
|
||||
<key alias="show">Toon</key>
|
||||
<key alias="showPageOnSend">Toon pagina na verzenden</key>
|
||||
<key alias="size">Grootte</key>
|
||||
<key alias="sort">Sorteer</key>
|
||||
<key alias="submit">Verstuur</key>
|
||||
<key alias="type">Typen</key>
|
||||
<key alias="typeToSearch">Typ om te zoeken...</key>
|
||||
<key alias="up">Omhoog</key>
|
||||
<key alias="update">Bijwerken</key>
|
||||
<key alias="update">Update</key>
|
||||
<key alias="upgrade">Upgrade</key>
|
||||
<key alias="upload">Upload</key>
|
||||
<key alias="url">Url</key>
|
||||
<key alias="user">Gebruiker</key>
|
||||
<key alias="username">Gebruikersnaam</key>
|
||||
<key alias="value">Waarde</key>
|
||||
<key alias="view">Toon</key>
|
||||
<key alias="view">Bekijk</key>
|
||||
<key alias="welcome">Welkom...</key>
|
||||
<key alias="width">Breedte</key>
|
||||
<key alias="yes">Ja</key>
|
||||
<key alias="folder">Map</key>
|
||||
<key alias="reorder">Reorder</key>
|
||||
<key alias="reorderDone">I am done reordering</key>
|
||||
|
||||
<key alias="searchResults">Zoekresultaten</key>
|
||||
<key alias="reorder">Herschik</key>
|
||||
<key alias="reorderDone">Ik ben klaar met herschikken</key>
|
||||
<key alias="preview">Voorvertoning</key>
|
||||
<key alias="changePassword">Wachtwoord veranderen</key>
|
||||
<key alias="to">naar</key>
|
||||
<key alias="listView">Lijstweergave</key>
|
||||
<key alias="saving">Aan het opslaan...</key>
|
||||
<key alias="current">huidig</key>
|
||||
<key alias="embed">Embed</key>
|
||||
<key alias="selected">geselecteerd</key>
|
||||
</area>
|
||||
<area alias="colors">
|
||||
<key alias="black">Zwart</key>
|
||||
<key alias="green">Groen</key>
|
||||
<key alias="yellow">Geel</key>
|
||||
<key alias="orange">Oranje</key>
|
||||
<key alias="blue">Blauw</key>
|
||||
<key alias="red">Rood</key>
|
||||
</area>
|
||||
<area alias="shortcuts">
|
||||
<key alias="addTab">Tab toevoegen</key>
|
||||
<key alias="addProperty">Property toevoegen</key>
|
||||
<key alias="addEditor">Editor toevoegen</key>
|
||||
<key alias="addTemplate">Template toevoegen</key>
|
||||
<key alias="addChildNode">Child node toevoegen</key>
|
||||
<key alias="addChild">Child toevoegen</key>
|
||||
|
||||
<key alias="editDataType">Data type bewerken</key>
|
||||
|
||||
<key alias="navigateSections">Secties navigeren</key>
|
||||
|
||||
<key alias="shortcut">Shortcuts</key>
|
||||
<key alias="showShortcuts">Toon shortcuts</key>
|
||||
|
||||
<key alias="toggleListView">Toggle lijstweergave</key>
|
||||
<key alias="toggleAllowAsRoot">Toggle toestaan op root-niveau</key>
|
||||
</area>
|
||||
<area alias="graphicheadline">
|
||||
<key alias="backgroundcolor">Achtergrondkleur</key>
|
||||
@@ -528,6 +630,57 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="watch">Bekijken</key>
|
||||
<key alias="welcomeIntro"><![CDATA[Deze wizard helpt u met het configureren van <strong>Umbraco %0%</strong> voor een nieuwe installatie of een upgrade van versie 3.0. <br /><br /> Druk op <strong>"volgende"</strong> om de wizard te starten.]]></key>
|
||||
</area>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<area alias="language">
|
||||
<key alias="cultureCode">Cultuurcode</key>
|
||||
<key alias="displayName">Cultuurnaam</key>
|
||||
@@ -543,12 +696,22 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="greeting3">Fijne woensdag</key>
|
||||
<key alias="greeting4">Fijne donderdag</key>
|
||||
<key alias="greeting5">Fijne vrijdag</key>
|
||||
<key alias="greeting6">Fijne zaterdag</key>
|
||||
|
||||
<key alias="greeting6">Fijne zaterdag</key>
|
||||
<key alias="instruction">log hieronder in</key>
|
||||
<key alias="signInWith">Inloggen met</key>
|
||||
<key alias="timeout">Sessie is verlopen</key>
|
||||
|
||||
<key alias="bottomText"><![CDATA[<p style="text-align:right;">© 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">umbraco.com</a></p>]]></key>
|
||||
<key alias="forgottenPassword">Wachtwoord vergeten?</key>
|
||||
<key alias="forgottenPasswordInstruction">Er zal een email worden gestuurd naar het emailadres van jouw account. Hierin staat een link om je wachtwoord te resetten</key>
|
||||
<key alias="requestPasswordResetConfirmation">Een email met daarin de wachtwoord reset uitleg zal worden gestuurd als het emailadres in onze database voorkomt.</key>
|
||||
<key alias="returnToLogin">Terug naar loginformulier</key>
|
||||
<key alias="setPasswordInstruction">Geeft alsjeblieft een nieuw wachtwoord op</key>
|
||||
<key alias="setPasswordConfirmation">Je wachtwoord is aangepast</key>
|
||||
<key alias="resetCodeExpired">De link die je hebt aangeklikt is niet (meer) geldig.</key>
|
||||
<key alias="resetPasswordEmailCopySubject">Umbraco: Wachtwoord Reset</key>
|
||||
<key alias="resetPasswordEmailCopyFormat">
|
||||
<![CDATA[<p>De gebruikersnaam om in te loggen bij jouw Umbraco omgeving is: <strong>%0%</strong></p><p>Klik <a href="%1%"><strong>hier</strong></a> om je wachtwoord te resetten of knip/plak deze URL in je browser:</p><p><em>%1%</em></p>]]>
|
||||
</key>
|
||||
</area>
|
||||
<area alias="main">
|
||||
<key alias="dashboard">Dashboard</key>
|
||||
@@ -646,6 +809,15 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="packageVersion">Package versie</key>
|
||||
<key alias="packageVersionHistory">Package versiehistorie</key>
|
||||
<key alias="viewPackageWebsite">Bekijk de package website</key>
|
||||
<key alias="packageAlreadyInstalled">Package reeds geinstalleerd</key>
|
||||
<key alias="targetVersionMismatch">Deze package kan niet worden geinstalleerd omdat minimaal Umbraco versie %0% benodigd is.</key>
|
||||
<key alias="installStateUninstalling">Aan het deinstalleren...</key>
|
||||
<key alias="installStateDownloading">Aan het downloaden...</key>
|
||||
<key alias="installStateImporting">Aan het importeren...</key>
|
||||
<key alias="installStateInstalling">Aan het installeren...</key>
|
||||
<key alias="installStateRestarting">Aan het herstarten, een ongenblik geduld aub...</key>
|
||||
<key alias="installStateComplete">Geinstalleerd! Je browser zal nu automatisch ververst worden...</key>
|
||||
<key alias="installStateCompleted">Kruk op "finish" om de installate te voltooien en de pagina te verversen.</key>
|
||||
</area>
|
||||
<area alias="paste">
|
||||
<key alias="doNothing">Plakken met alle opmaak (Niet aanbevolen)</key>
|
||||
@@ -677,13 +849,18 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
%0% kan niet worden gepubliceerd omdat het item is gepland voor release.
|
||||
]]>
|
||||
</key>
|
||||
<key alias="contentPublishedFailedExpired"><![CDATA[
|
||||
%0% kon niet gepubliceerd worden omdat het item niet meer geldig is.
|
||||
]]></key>
|
||||
<key alias="contentPublishedFailedInvalid"><![CDATA[
|
||||
%0% kan niet worden gepubliceerd, omdat de eigenschappen:%1% de validatieregels niet hebben doorstaan.
|
||||
]]></key>
|
||||
<key alias="contentPublishedFailedByEvent"><![CDATA[
|
||||
%0% kon niet worden gepubliceerd doordat een 3rd party extensie het heeft geannuleerd.
|
||||
|
||||
%0% kon niet worden gepubliceerd doordat een 3rd party extensie het heeft geannuleerd.
|
||||
]]></key>
|
||||
<key alias="contentPublishedFailedByParent"><![CDATA[
|
||||
%0% kon niet gepubliceerd worden, omdat de parent pagina niet gepubliceerd is.
|
||||
]]></key>
|
||||
<key alias="includeUnpublished">Inclusief ongepubliceerde kinderen</key>
|
||||
<key alias="inProgress">Publicatie in uitvoering - even geduld...</key>
|
||||
<key alias="inProgressCounter">%0% van %1% pagina’s zijn gepubliceerd...</key>
|
||||
@@ -698,16 +875,13 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="noColors">Je hebt geen goedgekeurde kleuren geconfigureerd</key>
|
||||
</area>
|
||||
<area alias="relatedlinks">
|
||||
<key alias="addExternal">Externe link toevoegen</key>
|
||||
<key alias="addInternal">Interne link toevoegen</key>
|
||||
<key alias="addlink">Toevoegen</key>
|
||||
<key alias="caption">Bijschrift</key>
|
||||
<key alias="internalPage">Interne pagina</key>
|
||||
<key alias="linkurl">URL</key>
|
||||
<key alias="modeDown">Verplaats omlaag</key>
|
||||
<key alias="modeUp">Verplaats omhoog</key>
|
||||
<key alias="newWindow">Open in nieuw venster</key>
|
||||
<key alias="removeLink">Verwijder link</key>
|
||||
<key alias="enterExternal">Externe link toevoegen</key>
|
||||
<key alias="chooseInternal">Interne link toevoegen</key>
|
||||
<key alias="caption">Bijschrift</key>
|
||||
<key alias="link">Link</key>
|
||||
<key alias="newWindow">In een nieuw venster openen</key>
|
||||
<key alias="captionPlaceholder">Voer het bijschrijft in</key>
|
||||
<key alias="externalLinkPlaceholder">Voer de link in</key>
|
||||
</area>
|
||||
<area alias="imagecropper">
|
||||
<key alias="reset">Reset</key>
|
||||
@@ -736,13 +910,17 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="settings">Instellingen</key>
|
||||
<key alias="statistics">Statistieken</key>
|
||||
<key alias="translation">Vertaling</key>
|
||||
<key alias="users">Gebruikers</key>
|
||||
<key alias="contour" version="4.0">Umbraco Contour</key>
|
||||
|
||||
<key alias="users">Gebruikers</key>
|
||||
<key alias="help" version="7.0">Help</key>
|
||||
<key alias="forms">Formulieren</key>
|
||||
<key alias="analytics">Analytics</key>
|
||||
</area>
|
||||
<area alias="help">
|
||||
<key alias="goTo">ga naar</key>
|
||||
<key alias="helpTopicsFor">Help onderwerpen voor</key>
|
||||
<key alias="videoChaptersFor">Video's voor</key>
|
||||
<key alias="theBestUmbracoVideoTutorials">De beste Umbraco video tutorials</key>
|
||||
</area>
|
||||
<area alias="settings">
|
||||
<key alias="defaulttemplate">Standaard template</key>
|
||||
<key alias="dictionary editor egenskab">Woordenboek sleutel</key>
|
||||
@@ -762,6 +940,7 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="noPropertiesDefinedOnTab">Geen eigenschappen gedefinieerd op dit tabblad. Klik op de link "voeg een nieuwe eigenschap" aan de bovenkant om een nieuwe eigenschap te creëren.</key>
|
||||
<key alias="masterDocumentType">Master Document Type</key>
|
||||
<key alias="createMatchingTemplate">Maak een bijbehorend template</key>
|
||||
<key alias="addIcon">Icon toevoegen</key>
|
||||
</area>
|
||||
<area alias="sort">
|
||||
<key alias="sortOrder">Sort order</key>
|
||||
@@ -771,7 +950,13 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="sortPleaseWait"><![CDATA[Een ogenblik geduld. Paginas worden gesorteerd, dit kan even duren.<br/> <br/> Sluit dit venster niet tijdens het sorteren]]></key>
|
||||
</area>
|
||||
<area alias="speechBubbles">
|
||||
<key alias="contentPublishedFailedByEvent">Publicatie werd geannuleerd door een 3rd party plug-in</key>
|
||||
<key alias="validationFailedHeader">Validatie</key>
|
||||
<key alias="validationFailedMessage">Validatiefouten moeten worden opgelost voor dit item kan worden opgeslagen</key>
|
||||
<key alias="operationFailedHeader">Mislukt</key>
|
||||
<key alias="invalidUserPermissionsText">Wegens onvoldoende rechten kon deze handeling kon niet worden uitegevoerd </key>
|
||||
<key alias="operationCancelledHeader">Geannuleerd</key>
|
||||
<key alias="operationCancelledText">Uitvoering is g eannuleerd door de plugin van een 3e partij</key>
|
||||
<key alias="contentPublishedFailedByEvent">Publicatie werd geannuleerd doordeeen plugin van een 3e partij</key>
|
||||
<key alias="contentTypeDublicatePropertyType">Eigenschappen type bestaat al</key>
|
||||
<key alias="contentTypePropertyTypeCreated">Eigenschappen type aangemaakt</key>
|
||||
<key alias="contentTypePropertyTypeCreatedText"><![CDATA[Naam: %0% <br /> Data type: %1%]]></key>
|
||||
@@ -806,6 +991,8 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="fileSavedHeader">Bestand opgeslagen</key>
|
||||
<key alias="fileSavedText">Bestand opgeslagen zonder fouten</key>
|
||||
<key alias="languageSaved">Taal opgeslagen</key>
|
||||
<key alias="mediaTypeSavedHeader">Media Type opgeslagen</key>
|
||||
<key alias="memberTypeSavedHeader">Member Type opgeslagen</key>
|
||||
<key alias="pythonErrorHeader">Python script niet opgeslagen</key>
|
||||
<key alias="pythonErrorText">Python script kon niet worden opgeslagen door een fout</key>
|
||||
<key alias="pythonSavedHeader">Python script opeslagen!</key>
|
||||
@@ -824,6 +1011,11 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
<key alias="partialViewSavedText">Partial view opgeslagen zonder fouten!</key>
|
||||
<key alias="partialViewErrorHeader">Partial view niet opgeslagen</key>
|
||||
<key alias="partialViewErrorText">Er is een fout opgetreden bij het opslaan van het bestand.</key>
|
||||
<key alias="scriptSavedHeader">Script view opgeslagen</key>
|
||||
<key alias="scriptSavedText">Script view opgeslagen zonder fouten!</key>
|
||||
<key alias="scriptErrorHeader">Script view niet opgeslagen</key>
|
||||
<key alias="scriptErrorText">Er is een fout opgetreden bij het opslaan van dit bestand.</key>
|
||||
<key alias="cssErrorText">Er is een fout opgetreden bij het opslaan van dit bestand.</key>
|
||||
</area>
|
||||
<area alias="stylesheet">
|
||||
<key alias="aliasHelp">Gebruik CSS syntax bijv: h1, .redHeader, .blueTex</key>
|
||||
@@ -846,15 +1038,15 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
</area>
|
||||
<area alias="grid">
|
||||
<key alias="insertControl">Item toevoegen</key>
|
||||
<key alias="chooseLayout">Choose a layout</key>
|
||||
<key alias="addRows">Een rij aan de lay-out toevoegen</key>
|
||||
<key alias="addElement"><![CDATA[Klik om te starten op het <i class="icon icon-add blue"></i> teken onderaan en voeg je eerste item toe]]></key>
|
||||
<key alias="chooseLayout">Kies de indeling</key>
|
||||
<key alias="addRows">Kies een indeling voor deze pagina om content toe te kunnen voegen</key>
|
||||
<key alias="addElement"><![CDATA[<i class="icon icon-add blue"></i> Plaats een (extra) content blok]]></key>
|
||||
<key alias="dropElement">Drop content</key>
|
||||
<key alias="settingsApplied">Settings applied</key>
|
||||
|
||||
<key alias="contentNotAllowed">This content is not allowed here</key>
|
||||
<key alias="contentAllowed">This content is allowed here</key>
|
||||
<key alias="settingsApplied">Instellingen toegepast</key>
|
||||
|
||||
<key alias="contentNotAllowed">Deze content is hier niet toegestaan</key>
|
||||
<key alias="contentAllowed">Deze content is hier toegestaan</key>
|
||||
|
||||
<key alias="clickToEmbed">Klik om een item te embedden</key>
|
||||
<key alias="clickToInsertImage">Klik om een afbeelding in te voegen</key>
|
||||
<key alias="placeholderImageCaption">Afbeelding ondertitel...</key>
|
||||
@@ -883,7 +1075,79 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
|
||||
<key alias="allowAllEditors">Alle editors toelaten</key>
|
||||
<key alias="allowAllRowConfigurations">Alle rijconfiguraties toelaten</key>
|
||||
<key alias="setAsDefault">Instellen als standaard</key>
|
||||
<key alias="chooseExtra">Kies extra</key>
|
||||
<key alias="chooseDefault">Kies standaard</key>
|
||||
<key alias="areAdded">zijn toegevoegd</key>
|
||||
</area>
|
||||
|
||||
<area alias="contentTypeEditor">
|
||||
<key alias="compositions">Composities</key>
|
||||
<key alias="noTabs">Er zijn nog geen tabs toegevoegd</key>
|
||||
<key alias="addNewTab">Voeg een nieuwe tab toe</key>
|
||||
<key alias="addAnotherTab">Voeg nog een tab toe</key>
|
||||
<key alias="inheritedFrom">Inherited van</key>
|
||||
<key alias="addProperty">Voeg property toe</key>
|
||||
<key alias="requiredLabel">Verplicht label</key>
|
||||
|
||||
<key alias="enableListViewHeading">Zet list view aan</key>
|
||||
<key alias="enableListViewDescription">Laat de child nodes van het content item zien als een sorteer- en doorzoekbare lijstweergave zien. Deze child nodes worden dan niet in de boomstructuur getoond.</key>
|
||||
|
||||
<key alias="allowedTemplatesHeading">Toegestane Templates</key>
|
||||
<key alias="allowedTemplatesDescription">Kies welke templates toegestaan zijn om door de editors op dit content-type gebruikt te worden</key>
|
||||
<key alias="allowAsRootHeading">Sta toe op root-niveau</key>
|
||||
<key alias="allowAsRootDescription">Sta editors toe om content van dit type aan te maken op root-niveau</key>
|
||||
<key alias="allowAsRootCheckbox">Ja - sta content van dit type toe op root-niveau</key>
|
||||
|
||||
<key alias="childNodesHeading">Toegestane child node types</key>
|
||||
<key alias="childNodesDescription">Sta contetn van een bepaalde type toe om onder dit type aangemaakt te kunnen worden</key>
|
||||
|
||||
<key alias="chooseChildNode">Kies child node</key>
|
||||
<key alias="compositionsDescription">Overerfde tabs en properties van een bestaand document-type. Nieuwe tabs worden toegevoegd aan het huidige document-type of samengevoegd als een tab met de identieke naam al bestaat.</key>
|
||||
<key alias="compositionInUse">Dit content-type wordt gebruikt in een compositie en kan daarom niet zelf een compositie worden.</key>
|
||||
<key alias="noAvailableCompositions">Er zijn geen content-typen beschikbaar om als compositie te gebruiken.</key>
|
||||
|
||||
<key alias="availableEditors">Beschikbare editors</key>
|
||||
<key alias="reuse">Herbruik</key>
|
||||
<key alias="editorSettings">Editor instellingen</key>
|
||||
|
||||
<key alias="configuration">Configuratie</key>
|
||||
|
||||
<key alias="yesDelete">Ja, verwijder</key>
|
||||
|
||||
<key alias="movedUnderneath">is naar onder geplaatst</key>
|
||||
<key alias="copiedUnderneath">is naar onder gecopierd</key>
|
||||
<key alias="folderToMove">Selecteer de map om te verplaatsen</key>
|
||||
<key alias="folderToCopy">Selecteer de map om te kopieren</key>
|
||||
<key alias="structureBelow">naar de boomstructuur onder</key>
|
||||
|
||||
<key alias="allDocumentTypes">Alle Document types</key>
|
||||
<key alias="allDocuments">Alle documenten</key>
|
||||
<key alias="allMediaItems">Alle media items</key>
|
||||
|
||||
<key alias="usingThisDocument">die gebruik maken van dit document type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
|
||||
<key alias="usingThisMedia">die gebruik maken van dit media type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
|
||||
<key alias="usingThisMember">die gebruik maken van dit member type zullen permanent verwijderd worden. Bevestig aub dat je deze ook wilt verwijderen.</key>
|
||||
|
||||
<key alias="andAllDocuments">en alle documenten van dit type</key>
|
||||
<key alias="andAllMediaItems">en alle media items van dit type</key>
|
||||
<key alias="andAllMembers">en alle leden van dit type</key>
|
||||
|
||||
<key alias="thisEditorUpdateSettings">die gebruik maken van deze editor zullen geupdate worden met deze nieuwe instellingen</key>
|
||||
|
||||
<key alias="memberCanEdit">Lid kan bewerken</key>
|
||||
<key alias="showOnMemberProfile">Toon in het profiel van leden</key>
|
||||
<key alias="tabHasNoSortOrder">tab heeft geen sorteervolgorde</key>
|
||||
</area>
|
||||
|
||||
<area alias="modelsBuilder">
|
||||
<key alias="buildingModels">Models aan het gereneren</key>
|
||||
<key alias="waitingMessage">dit kan enige tijd duren, geduld aub</key>
|
||||
<key alias="modelsGenerated">Models gegenereerd</key>
|
||||
<key alias="modelsGeneratedError">Models konden niet gegenereerd worden</key>
|
||||
<key alias="modelsExceptionInUlog">Models generatie is mislukt, kijk in de Umbraco log voor details</key>
|
||||
</area>
|
||||
|
||||
<area alias="templateEditor">
|
||||
<key alias="alternativeField">Alternatief veld</key>
|
||||
<key alias="alternativeText">Alternatieve tekst</key>
|
||||
@@ -916,7 +1180,8 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
|
||||
</area>
|
||||
<area alias="translation">
|
||||
<key alias="assignedTasks">Taken aan jou toegewezen</key>
|
||||
<key alias="assignedTasksHelp"><![CDATA[Onderstaande lijst toont vertalingstaken aan jou toegewezen. Om een meer gedetailleerd overzicht te zien, met comments, klik op "Details" of de naam van de pagina. Je kan ook de pagina direct downloaden als XML door te klikken op "Download Xml".
|
||||
<key alias="assignedTasksHelp"><![CDATA[Onderstaande lijst toont vertalingstaken aan jou toegewezen. Om een meer gedetailleerd overzicht te zien, met comments, klik op "Details" of de naam van de pagina.
|
||||
Je kan ook de pagina direct downloaden als XML door te klikken op "Download Xml".
|
||||
Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de "Sluit" knop.
|
||||
]]></key>
|
||||
<key alias="closeTask">Sluit taak</key>
|
||||
@@ -932,18 +1197,24 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
|
||||
Dit is een geautomatiseerde mail om u op de hoogte te brengen dat document '%1%'
|
||||
is aangevraagd voor vertaling naar '%5%' door %2%.
|
||||
|
||||
Ga naar http://%3%/Umbraco/translation/default.aspx?id=%4% om te bewerken.
|
||||
Ga naar http://%3%/translation/details.aspx?id=%4% om te bewerken.
|
||||
Of log in bij Umbraco om een overzicht te krijgen van al jouw vertalingen.
|
||||
|
||||
Een prettige dag!
|
||||
|
||||
Met vriendelijke groet!
|
||||
|
||||
Dit is een bericht van uw Content Management Systeem.
|
||||
|
||||
|
||||
De Umbraco Robot
|
||||
]]></key>
|
||||
<key alias="mailSubject">[%0%] Vertaalopdracht voor %1%</key>
|
||||
<key alias="noTranslators">Geen vertaal-gebruikers gevonden. Maak eerst een vertaal-gebruiker aan voordat je pagina's voor vertaling verstuurd</key>
|
||||
<key alias="ownedTasks">Taken aangemaakt door jou</key>
|
||||
<key alias="ownedTasksHelp"><![CDATA[De lijst hieronder toont pagina's <strong>die je aanmaakte</strong>. Om een detailweergave met opmerkingen te zien, klik op "Detail" of op de paginanaam. Je kan ook de pagina in XML-formaat downloaden door op de "Download XML"-link te klikken. Om een vertalingstaak te sluiten, klik je op de "Sluiten"-knop in detailweergave.]]></key>
|
||||
<key alias="ownedTasksHelp"><![CDATA[De lijst hieronder toont pagina's <strong>die je aanmaakte</strong>.
|
||||
Om een detailweergave met opmerkingen te zien, klik op "Detail" of op de paginanaam.
|
||||
Je kan ook de pagina in XML-formaat downloaden door op de "Download XML"-link te klikken.
|
||||
Om een vertalingstaak te sluiten, klik je op de "Sluiten"-knop in detailweergave.]]></key>
|
||||
<key alias="pageHasBeenSendToTranslation">De pagina '%0%' is verstuurd voor vertaling</key>
|
||||
<key alias="noLanguageSelected">Kies de taal waarin deze contetn vertaald moet worden</key>
|
||||
<key alias="sendToTranslate">Stuur voor vertaling</key>
|
||||
<key alias="taskAssignedBy">Toegewezen door</key>
|
||||
<key alias="taskOpened">Taak geopend</key>
|
||||
@@ -973,7 +1244,8 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
|
||||
<key alias="memberGroups">Ledengroepen</key>
|
||||
<key alias="memberRoles">Rollen</key>
|
||||
<key alias="memberTypes">Ledentypes</key>
|
||||
<key alias="documentTypes">Documenttypes</key>
|
||||
<key alias="documentTypes">Documenttypen</key>
|
||||
<key alias="relationTypes">RelatieTypen</key>
|
||||
<key alias="packager">Packages</key>
|
||||
<key alias="packages">Packages</key>
|
||||
<key alias="python">Python-bestanden</key>
|
||||
@@ -985,6 +1257,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
|
||||
<key alias="stylesheets">Stylesheets</key>
|
||||
<key alias="templates">Sjablonen</key>
|
||||
<key alias="xslt">XSLT Bestanden</key>
|
||||
<key alias="analytics">Analytics</key>
|
||||
</area>
|
||||
<area alias="update">
|
||||
<key alias="updateAvailable">Nieuwe update beschikbaar</key>
|
||||
@@ -1010,6 +1283,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
|
||||
<key alias="mediastartnode">Startnode in Mediabibliotheek</key>
|
||||
<key alias="modules">Secties</key>
|
||||
<key alias="noConsole">Blokkeer Umbraco toegang</key>
|
||||
<key alias="oldPassword">Oude wachtwoord</key>
|
||||
<key alias="password">Wachtwoord</key>
|
||||
<key alias="resetPassword">Reset wachtwoord</key>
|
||||
<key alias="passwordChanged">Je wachtwoord is veranderd!</key>
|
||||
@@ -1030,10 +1304,138 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de
|
||||
<key alias="usertype">Gebruikerstype</key>
|
||||
<key alias="userTypes">Gebruikerstypes</key>
|
||||
<key alias="writer">Auteur</key>
|
||||
<key alias="translator">Vertaler</key>
|
||||
<key alias="change">Wijzig</key>
|
||||
|
||||
<key alias="yourProfile" version="7.0">Je profiel</key>
|
||||
<key alias="yourHistory" version="7.0">Je recente historie</key>
|
||||
<key alias="sessionExpires" version="7.0">Sessie verloopt over</key>
|
||||
</area>
|
||||
<area alias="validation">
|
||||
<key alias="validation">Validatie</key>
|
||||
<key alias="validateAsEmail">Valideer als email</key>
|
||||
<key alias="validateAsNumber">Valideer als nummer</key>
|
||||
<key alias="validateAsUrl">Valideer als Url</key>
|
||||
<key alias="enterCustomValidation">...of gebruik custom validatie</key>
|
||||
<key alias="fieldIsMandatory">Veld is verplicht</key>
|
||||
</area>
|
||||
<area alias="healthcheck">
|
||||
<!-- The following keys get these tokens passed in:
|
||||
0: Current value
|
||||
1: Recommended value
|
||||
2: XPath
|
||||
3: Configuration file path
|
||||
-->
|
||||
<key alias="checkSuccessMessage">Waarde is insteld naar the aanbevolen waarde: '%0%'.</key>
|
||||
<key alias="rectifySuccessMessage">Waarde was '%1%' voor XPath '%2%' in configuratie bestand '%3%'.</key>
|
||||
<key alias="checkErrorMessageDifferentExpectedValue">De verwachtte waarde voor '%2%' is '%1%' in configuratie bestand '%3%', maar is '%0%'.</key>
|
||||
<key alias="checkErrorMessageUnexpectedValue">Onverwachte waarde '%0%' gevonden voor '%2%' in configuratie bestand '%3%'.</key>
|
||||
|
||||
<!-- The following keys get these tokens passed in:
|
||||
0: Current value
|
||||
1: Recommended value
|
||||
-->
|
||||
<key alias="customErrorsCheckSuccessMessage">Custom foutmeldingen zijn ingesteld op '%0%'.</key>
|
||||
<key alias="customErrorsCheckErrorMessage">Custom foutmeldingen zijn momenteel '%0%'. Wij raden aan deze aan te passen naar '%1%' voor livegang.</key>
|
||||
<key alias="customErrorsCheckRectifySuccessMessage">Custom foutmeldingen aangepast naar '%0%'.</key>
|
||||
|
||||
<key alias="macroErrorModeCheckSuccessMessage">Macro foutmeldingen zijn ingesteld op'%0%'.</key>
|
||||
<key alias="macroErrorModeCheckErrorMessage">Macro foutmeldingen zijn ingesteld op '%0%'. Dit zal er voor zorgen dat bepaalde, of alle, pagina's van de website niet geladen kunnen worden als er errors in een Macro zitten. Corrigeren zal deze waarde aanpassen naar '%1%'.</key>
|
||||
<key alias="macroErrorModeCheckRectifySuccessMessage">Macro foutmeldingen zijn aangepast naar '%0%'.</key>
|
||||
|
||||
<!-- The following keys get these tokens passed in:
|
||||
0: Current value
|
||||
1: Recommended value
|
||||
2: Server version
|
||||
-->
|
||||
<key alias="trySkipIisCustomErrorsCheckSuccessMessage">Try Skip IIS Custom foutmeldingen is ingesteld op '%0%'. IIS versie '%1%' wordt gebruikt.</key>
|
||||
<key alias="trySkipIisCustomErrorsCheckErrorMessage">Try Skip IIS Custom foutmeldingen is ingesteld op '%0%'. Het wordt voor de gebruikte IIS versie (%2%) aangeraden deze in te stellen op '%1%'.</key>
|
||||
<key alias="trySkipIisCustomErrorsCheckRectifySuccessMessage">Try Skip IIS Custom foutmeldingen ingesteld op '%0%'.</key>
|
||||
|
||||
<!-- The following keys get predefined tokens passed in that are not all the same, like above -->
|
||||
<key alias="configurationServiceFileNotFound">Het volgende bestand bestaat niet: '%0%'.</key>
|
||||
<key alias="configurationServiceNodeNotFound"><![CDATA[<strong>'%0%'</strong> kon niet gevonden worden in configuratie bestand <strong>'%1%'</strong>.]]></key>
|
||||
<key alias="configurationServiceError">Er is een fout opgetreden. Bekijk de log file voor de volledige fout: %0%.</key>
|
||||
|
||||
<key alias="xmlDataIntegrityCheckMembers">Members - Totaal XML: %0%, Totaal: %1%, Total incorrect: %2%</key>
|
||||
<key alias="xmlDataIntegrityCheckMedia">Media - Totaal XML: %0%, Totaal: %1%, Total incorrect: %2%</key>
|
||||
<key alias="xmlDataIntegrityCheckContent">Content - Totaal XML: %0%, Totaal gepubliceerd: %1%, Total incorrect: %2%</key>
|
||||
|
||||
<key alias="httpsCheckValidCertificate">Het cerficaat van de website is ongeldig.</key>
|
||||
<key alias="httpsCheckInvalidCertificate">Cerficaat validatie foutmelding: '%0%'</key>
|
||||
<key alias="httpsCheckInvalidUrl">Fout bij pingen van URL %0% - '%1%'</key>
|
||||
<key alias="httpsCheckIsCurrentSchemeHttps">De site wordt momenteel %0% bekeken via HTTPS.</key>
|
||||
<key alias="httpsCheckConfigurationRectifyNotPossible">De appSetting 'umbracoUseSSL' in web.config staat op 'false'. Indien HTTPS gebruikt wordt moet deze op 'true' staan.</key>
|
||||
<key alias="httpsCheckConfigurationCheckResult">De appSetting 'umbracoUseSSL' in web.config is ingesteld op '%0%'. Cookies zijn %1% ingesteld als secure.</key>
|
||||
<key alias="httpsCheckEnableHttpsError">De 'umbracoUseSSL' waarde in web.config kon niet aangepast worden. Foutmelding: %0%</key>
|
||||
|
||||
<!-- The following keys don't get tokens passed in -->
|
||||
<key alias="httpsCheckEnableHttpsButton">HTTPS inschakelen</key>
|
||||
<key alias="httpsCheckEnableHttpsDescription">Zet in de appSettings van de web.config de umbracoSSL instelling op 'true'.</key>
|
||||
<key alias="httpsCheckEnableHttpsSuccess">De appSetting 'umbracoUseSSL' is nu ingesteld op 'true', cookies zullen als 'secure' worden aangemerkt.</key>
|
||||
|
||||
<key alias="rectifyButton">Fix</key>
|
||||
<key alias="cannotRectifyShouldNotEqual">Cannot fix a check with a value comparison type of 'ShouldNotEqual'.</key>
|
||||
<key alias="cannotRectifyShouldEqualWithValue">Cannot fix a check with a value comparison type of 'ShouldEqual' with a provided value.</key>
|
||||
<key alias="valueToRectifyNotProvided">Value to fix check not provided.</key>
|
||||
|
||||
<key alias="compilationDebugCheckSuccessMessage">Debug compiliate mode staat uit.</key>
|
||||
<key alias="compilationDebugCheckErrorMessage">Debug compiliate mode staat momenteel aan. Wij raden aan deze instelling uit te zetten voor livegang.</key>
|
||||
<key alias="compilationDebugCheckRectifySuccessMessage">Debug compiliate mode uitgezet.</key>
|
||||
|
||||
<key alias="traceModeCheckSuccessMessage">Trace mode staat uit.</key>
|
||||
<key alias="traceModeCheckErrorMessage">Trace mode staat momenteel aan. Wij raden aan deze instelling uit te zetten voor livegang.</key>
|
||||
<key alias="traceModeCheckRectifySuccessMessage">Trace mode uitgezet.</key>
|
||||
|
||||
<key alias="folderPermissionsCheckMessage">Alle mappen hebben de juiste permissie-instellingen!.</key>
|
||||
<!-- The following keys get these tokens passed in:
|
||||
0: Comma delimitted list of failed folder paths
|
||||
-->
|
||||
<key alias="requiredFolderPermissionFailed"><![CDATA[De volgende bestanden moeten wijzig-rechten krijgen om Umbraco goed te laten werken: <strong>%0%</strong>.]]></key>
|
||||
<key alias="optionalFolderPermissionFailed"><![CDATA[Aangeraden wordt de volgende bestanden wijzig-rechten te geven om Umbraco goed te laten werken: <strong>%0%</strong>. Als deze niet in gebruik zijn voor deze omgeving hoeft er geen actie te worden ondernomen.]]></key>
|
||||
|
||||
<key alias="filePermissionsCheckMessage">All files have the correct permissions set.</key>
|
||||
<!-- The following keys get these tokens passed in:
|
||||
0: Comma delimitted list of failed folder paths
|
||||
-->
|
||||
<key alias="requiredFilePermissionFailed"><![CDATA[De volgende bestanden moeten schrijf-rechten krijgen om Umbraco goed te laten werken: <strong>%0%</strong>.]]></key>
|
||||
<key alias="optionalFilePermissionFailed"><![CDATA[Aangeraden wordt de volgende bestanden schrijf-rechten te geven om Umbraco goed te laten werken: <strong>%0%</strong>. Als deze niet in gebruik zijn voor deze omgeving hoeft er geen actie te worden ondernomen.]]></key>
|
||||
|
||||
<key alias="clickJackingCheckHeaderFound"><![CDATA[De <strong>X-Frame-Options</strong> header of meta-tag om IFRAMEing door andere websites te voorkomen is aanwezig!]]></key>
|
||||
<key alias="clickJackingCheckHeaderNotFound"><![CDATA[De <strong>X-Frame-Options</strong> header of meta-tag om IFRAMEing door andere websites te voorkomen is NIET aanwezig.]]></key>
|
||||
<key alias="clickJackingSetHeaderInConfig">Voorkom IFRAMEing via web.config</key>
|
||||
<key alias="clickJackingSetHeaderInConfigDescription">Voegt de instelling toe aan de httpProtocol/customHeaders section in web.config om IFRAMEing door andere websites te voorkomen.</key>
|
||||
<key alias="clickJackingSetHeaderInConfigSuccess">De instelling om IFRAMEing door andere websites te voorkomen is toegevoegd aan de web.config!</key>
|
||||
<key alias="clickJackingSetHeaderInConfigError">Web.config kon niet aangepast worden door error: %0%</key>
|
||||
|
||||
<!-- The following key get these tokens passed in:
|
||||
0: Comma delimitted list of headers found
|
||||
-->
|
||||
<key alias="excessiveHeadersFound"><![CDATA[De volgende header welke informatie tonen over de gebruikte website technologie zijn aangetroffen: <strong>%0%</strong>.]]></key>
|
||||
<key alias="excessiveHeadersNotFound">Er zijn geen headeres gevonden welke informatie over de gebruikte website technologie prijsgeven!</key>
|
||||
|
||||
<key alias="smtpMailSettingsNotFound">In de Web.config werd system.net/mailsettings niet gevonden</key>
|
||||
<key alias="smtpMailSettingsHostNotConfigured">In de Web.config sectie system.net/mailsettings is de host niet geconfigureerd.</key>
|
||||
<key alias="smtpMailSettingsConnectionSuccess">SMTP instellingen zijn correct ingesteld en werken zoals verwacht.</key>
|
||||
<key alias="smtpMailSettingsConnectionFail">De SMTP server geconfigureerd met host '%0%' en poort '%1%' kon niet gevonden worden. Controleer of de SMTP instellingen in Web.config file system.net/mailsettings correct zijn.</key>
|
||||
|
||||
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notificatie email is verzonden naar <strong>%0%</strong>.]]></key>
|
||||
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notificatie email staat nog steeds op de default waarde van <strong>%0%</strong>.]]></key>
|
||||
</area>
|
||||
<area alias="redirectUrls">
|
||||
<key alias="disableUrlTracker">URL tracker uitzetten</key>
|
||||
<key alias="enableUrlTracker">URL tracker aanzetten</key>
|
||||
<key alias="originalUrl">Originele URL</key>
|
||||
<key alias="redirectedTo">Doorgestuurd naar</key>
|
||||
<key alias="noRedirects">Er zijn geen redirects</key>
|
||||
<key alias="noRedirectsDescription">Er wordt automatisch een redirect aangemaakt als een gepubliceerde pagina hernoemd of verplaatst wordt.</key>
|
||||
<key alias="removeButton">Verwijder</key>
|
||||
<key alias="confirmRemove">Weet je zeker dat je de redirect van '%0%' naar '%1%' wilt verwijderen?</key>
|
||||
<key alias="redirectRemoved">Redirect URL verwijderd.</key>
|
||||
<key alias="redirectRemoveError">Fout bij verwijderen redirect URL.</key>
|
||||
<key alias="confirmDisable">Weet je zeker dat je de URL tracker wilt uitzetten?</key>
|
||||
<key alias="disabledConfirm">URL tracker staat nu uit.</key>
|
||||
<key alias="disableError">Fout bij het uitzetten van de URL Tracker. Meer informatie kan gevonden worden in de log file.</key>
|
||||
<key alias="enabledConfirm">URL tracker staat nu aan.</key>
|
||||
<key alias="enableError">Fout bij het aanzetten van de URL tracker. Meer informatie kan gevonden worden in de log file.</key>
|
||||
</area>
|
||||
</language>
|
||||
|
||||
@@ -27,6 +27,9 @@
|
||||
<key alias="publish">Опубликовать</key>
|
||||
<key alias="refreshNode">Обновить узлы</key>
|
||||
<key alias="republish">Опубликовать весь сайт</key>
|
||||
<key alias="SetPermissionsForThePage">Установить разрешения для страницы '%0%'</key>
|
||||
<key alias="chooseWhereToMove">Выберите, куда переместить</key>
|
||||
<key alias="toInTheTreeStructureBelow">В структуре документов ниже</key>
|
||||
<key alias="restore" version="7.3.0">Восстановить</key>
|
||||
<key alias="rights">Разрешения</key>
|
||||
<key alias="rollback">Откатить</key>
|
||||
@@ -189,7 +192,7 @@
|
||||
<key alias="memberrole">Роль участника</key>
|
||||
<key alias="membertype">Тип участника</key>
|
||||
<key alias="noDate">Дата не указана</key>
|
||||
<key alias="nodeName">Заголовок страницы</key>
|
||||
<key alias="nodeName">Заголовок ссылки</key>
|
||||
<key alias="notmemberof">Не является членом групп(ы)</key>
|
||||
<key alias="otherElements">Свойства</key>
|
||||
<key alias="parentNotPublished">Этот документ опубликован, но скрыт, потому что его родительский документ '%0%' не опубликован</key>
|
||||
@@ -341,9 +344,10 @@
|
||||
<key alias="viewCacheItem">Просмотр элемента кэша</key>
|
||||
<key alias="createFolder">Создать папку...</key>
|
||||
<key alias="relateToOriginalLabel">Связать с оригиналом</key>
|
||||
<key alias="includeDescendants">Включая все дочерние</key>
|
||||
<key alias="theFriendliestCommunity">Самое дружелюбное сообщество</key>
|
||||
<key alias="linkToPage">Ссылка на страницу</key>
|
||||
<key alias="openInNewWindow">Открывает документ по ссылке в новом окне или вкладке браузера</key>
|
||||
<key alias="openInNewWindow">Открывать ссылку в новом окне или вкладке браузера</key>
|
||||
<key alias="linkToMedia">Ссылка на медиа-файл</key>
|
||||
<key alias="selectMedia">Выбрать медиа</key>
|
||||
<key alias="selectIcon">Выбрать значок</key>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
<umb:JsInclude ID="JsInclude1" runat="server" FilePath="Application/NamespaceManager.js" PathNameAlias="UmbracoClient" Priority="0" />
|
||||
<umb:JsInclude ID="JsInclude3" runat="server" FilePath="ui/jquery.js" PathNameAlias="UmbracoClient" Priority="1" />
|
||||
<umb:JsInclude ID="JsInclude4" runat="server" FilePath="lib/jquery-migrate/jquery-migrate.min.js" PathNameAlias="UmbracoRoot" Priority="1" />
|
||||
<umb:JsInclude ID="JsInclude6" runat="server" FilePath="ui/base2.js" PathNameAlias="UmbracoClient" Priority="1" />
|
||||
<umb:JsInclude ID="JsInclude11" runat="server" FilePath="UI/knockout.js" PathNameAlias="UmbracoClient" Priority="3" />
|
||||
<umb:JsInclude ID="JsInclude12" runat="server" FilePath="UI/knockout.mapping.js" PathNameAlias="UmbracoClient" Priority="4" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Executed when the application starts, binds to events and set global state */
|
||||
app.run(['userService', '$log', '$rootScope', '$location', 'navigationService', 'appState', 'editorState', 'fileManager', 'assetsService', 'eventsService', '$cookies', '$templateCache',
|
||||
function (userService, $log, $rootScope, $location, navigationService, appState, editorState, fileManager, assetsService, eventsService, $cookies, $templateCache) {
|
||||
app.run(['userService', '$log', '$rootScope', '$location', 'navigationService', 'appState', 'editorState', 'fileManager', 'assetsService', 'eventsService', '$cookies', '$templateCache', 'localStorageService',
|
||||
function (userService, $log, $rootScope, $location, navigationService, appState, editorState, fileManager, assetsService, eventsService, $cookies, $templateCache, localStorageService) {
|
||||
|
||||
//This sets the default jquery ajax headers to include our csrf token, we
|
||||
// need to user the beforeSend method because our token changes per user/login so
|
||||
@@ -13,6 +13,7 @@ app.run(['userService', '$log', '$rootScope', '$location', 'navigationService',
|
||||
|
||||
/** Listens for authentication and checks if our required assets are loaded, if/once they are we'll broadcast a ready event */
|
||||
eventsService.on("app.authenticated", function(evt, data) {
|
||||
|
||||
assetsService._loadInitAssets().then(function() {
|
||||
appState.setGlobalState("isReady", true);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* The main application controller
|
||||
*
|
||||
*/
|
||||
function MainController($scope, $rootScope, $location, $routeParams, $timeout, $http, $log, appState, treeService, notificationsService, userService, navigationService, historyService, updateChecker, assetsService, eventsService, umbRequestHelper, tmhDynamicLocale) {
|
||||
function MainController($scope, $rootScope, $location, $routeParams, $timeout, $http, $log, appState, treeService, notificationsService, userService, navigationService, historyService, updateChecker, assetsService, eventsService, umbRequestHelper, tmhDynamicLocale, localStorageService) {
|
||||
|
||||
//the null is important because we do an explicit bool check on this in the view
|
||||
//the avatar is by default the umbraco logo
|
||||
@@ -89,6 +89,14 @@ function MainController($scope, $rootScope, $location, $routeParams, $timeout, $
|
||||
$location.path("/").search("");
|
||||
historyService.removeAll();
|
||||
treeService.clearCache();
|
||||
|
||||
//if the user changed, clearout local storage too - could contain sensitive data
|
||||
localStorageService.clearAll();
|
||||
}
|
||||
|
||||
//if this is a new login (i.e. the user entered credentials), then clear out local storage - could contain sensitive data
|
||||
if (data.loginType === "credentials") {
|
||||
localStorageService.clearAll();
|
||||
}
|
||||
|
||||
//Load locale file
|
||||
@@ -3395,7 +3403,7 @@ angular.module("umbraco").controller("Umbraco.Overlays.MacroPickerController", M
|
||||
//used for the media picker dialog
|
||||
angular.module("umbraco")
|
||||
.controller("Umbraco.Overlays.MediaPickerController",
|
||||
function($scope, mediaResource, umbRequestHelper, entityResource, $log, mediaHelper, mediaTypeHelper, eventsService, treeService, $element, $timeout, $cookies, $cookieStore, localizationService) {
|
||||
function ($scope, mediaResource, umbRequestHelper, entityResource, $log, mediaHelper, mediaTypeHelper, eventsService, treeService, $element, $timeout, $cookies, localStorageService, localizationService) {
|
||||
|
||||
if (!$scope.model.title) {
|
||||
$scope.model.title = localizationService.localize("defaultdialogs_selectMedia");
|
||||
@@ -3409,7 +3417,7 @@ angular.module("umbraco")
|
||||
$scope.multiPicker = (dialogOptions.multiPicker && dialogOptions.multiPicker !== "0") ? true : false;
|
||||
$scope.startNodeId = dialogOptions.startNodeId ? dialogOptions.startNodeId : -1;
|
||||
$scope.cropSize = dialogOptions.cropSize;
|
||||
$scope.lastOpenedNode = $cookieStore.get("umbLastOpenedMediaNodeId");
|
||||
$scope.lastOpenedNode = localStorageService.get("umbLastOpenedMediaNodeId");
|
||||
if ($scope.onlyImages) {
|
||||
$scope.acceptedFileTypes = mediaHelper
|
||||
.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes);
|
||||
@@ -3527,8 +3535,7 @@ angular.module("umbraco")
|
||||
});
|
||||
$scope.currentFolder = folder;
|
||||
|
||||
// for some reason i cannot set cookies with cookieStore
|
||||
document.cookie = "umbLastOpenedMediaNodeId=" + folder.id;
|
||||
localStorageService.set("umbLastOpenedMediaNodeId", folder.id);
|
||||
|
||||
};
|
||||
|
||||
@@ -9084,18 +9091,24 @@ angular.module("umbraco").controller("Umbraco.Editors.Packages.DeleteController"
|
||||
fields: {},
|
||||
file: file
|
||||
}).progress(function (evt) {
|
||||
|
||||
// hack: in some browsers the progress event is called after success
|
||||
// this prevents the UI from going back to a uploading state
|
||||
if(vm.zipFile.uploadStatus !== "done" && vm.zipFile.uploadStatus !== "error") {
|
||||
|
||||
// set view state to uploading
|
||||
vm.state = 'uploading';
|
||||
// set view state to uploading
|
||||
vm.state = 'uploading';
|
||||
|
||||
// calculate progress in percentage
|
||||
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total, 10);
|
||||
// calculate progress in percentage
|
||||
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total, 10);
|
||||
|
||||
// set percentage property on file
|
||||
vm.zipFile.uploadProgress = progressPercentage;
|
||||
// set percentage property on file
|
||||
vm.zipFile.uploadProgress = progressPercentage;
|
||||
|
||||
// set uploading status on file
|
||||
vm.zipFile.uploadStatus = "uploading";
|
||||
// set uploading status on file
|
||||
vm.zipFile.uploadStatus = "uploading";
|
||||
|
||||
}
|
||||
|
||||
}).success(function (data, status, headers, config) {
|
||||
|
||||
@@ -11064,7 +11077,7 @@ angular.module("umbraco")
|
||||
.controller("Umbraco.PropertyEditors.GoogleMapsController",
|
||||
function ($element, $rootScope, $scope, notificationsService, dialogService, assetsService, $log, $timeout) {
|
||||
|
||||
assetsService.loadJs('http://www.google.com/jsapi')
|
||||
assetsService.loadJs('https://www.google.com/jsapi')
|
||||
.then(function () {
|
||||
google.load("maps", "3",
|
||||
{
|
||||
@@ -13274,7 +13287,8 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesL
|
||||
function activate() {
|
||||
vm.itemsWithoutFolders = filterOutFolders($scope.items);
|
||||
|
||||
if($scope.entityType === 'media') {
|
||||
//no need to make another REST/DB call if this data is not used when we are browsing the bin
|
||||
if ($scope.entityType === 'media' && !vm.isRecycleBin) {
|
||||
mediaTypeHelper.getAllowedImagetypes(vm.nodeId).then(function (types) {
|
||||
vm.acceptedMediatypes = types;
|
||||
});
|
||||
@@ -13503,7 +13517,9 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
|
||||
$scope.isNew = false;
|
||||
$scope.actionInProgress = false;
|
||||
$scope.selection = [];
|
||||
$scope.folders = [];
|
||||
$scope.folders = [];
|
||||
//tracks if we've already loaded the folders for the current node
|
||||
var foldersLoaded = false;
|
||||
$scope.listViewResultSet = {
|
||||
totalPages: 0,
|
||||
items: []
|
||||
@@ -13718,12 +13734,13 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
|
||||
});
|
||||
}
|
||||
|
||||
if ($scope.entityType === 'media') {
|
||||
|
||||
if (!foldersLoaded && $scope.entityType === 'media') {
|
||||
//The folders aren't loaded - we only need to do this once since we're never changing node ids
|
||||
mediaResource.getChildFolders($scope.contentId)
|
||||
.then(function (folders) {
|
||||
$scope.folders = folders;
|
||||
$scope.viewLoaded = true;
|
||||
foldersLoaded = true;
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
@@ -2890,7 +2890,9 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||
* Retrieves all media children with types used as folders.
|
||||
* Uses the convention of looking for media items with mediaTypes ending in
|
||||
* *Folder so will match "Folder", "bannerFolder", "secureFolder" etc,
|
||||
*
|
||||
*
|
||||
* NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
||||
*
|
||||
* ##usage
|
||||
* <pre>
|
||||
* mediaResource.getChildFolders(1234)
|
||||
@@ -2908,14 +2910,15 @@ function mediaResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||
parentId = -1;
|
||||
}
|
||||
|
||||
//NOTE: This will return a max of 500 folders, if more is required it needs to be paged
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"mediaApiBaseUrl",
|
||||
"GetChildFolders",
|
||||
[
|
||||
{ id: parentId }
|
||||
])),
|
||||
{
|
||||
id: parentId
|
||||
})),
|
||||
'Failed to retrieve child folders for media item ' + parentId);
|
||||
},
|
||||
|
||||
|
||||
@@ -121,15 +121,20 @@ angular.module('umbraco.security.interceptor')
|
||||
return promise;
|
||||
}, function(originalResponse) {
|
||||
// Intercept failed requests
|
||||
|
||||
// Make sure we have the configuration of the request (don't we always?)
|
||||
var config = originalResponse.config ? originalResponse.config : {};
|
||||
|
||||
// Make sure we have an object for the headers of the request
|
||||
var headers = config.headers ? config.headers : {};
|
||||
|
||||
//Here we'll check if we should ignore the error, this will be based on an original header set
|
||||
var headers = originalResponse.config ? originalResponse.config.headers : {};
|
||||
if (headers["x-umb-ignore-error"] === "ignore") {
|
||||
//Here we'll check if we should ignore the error (either based on the original header set or the request configuration)
|
||||
if (headers["x-umb-ignore-error"] === "ignore" || config.umbIgnoreErrors === true) {
|
||||
//exit/ignore
|
||||
return promise;
|
||||
}
|
||||
var filtered = _.find(requestInterceptorFilter(), function(val) {
|
||||
return originalResponse.config.url.indexOf(val) > 0;
|
||||
return config.url.indexOf(val) > 0;
|
||||
});
|
||||
if (filtered) {
|
||||
return promise;
|
||||
@@ -201,6 +206,7 @@ angular.module('umbraco.security.interceptor')
|
||||
// We have to add the interceptor to the queue as a string because the interceptor depends upon service instances that are not available in the config block.
|
||||
.config(['$httpProvider', function ($httpProvider) {
|
||||
$httpProvider.responseInterceptors.push('securityInterceptor');
|
||||
}]);
|
||||
}]);
|
||||
|
||||
|
||||
})();
|
||||
@@ -4889,6 +4889,19 @@ function mediaTypeHelper(mediaTypeResource, $q) {
|
||||
|
||||
var mediaTypeHelperService = {
|
||||
|
||||
isFolderType: function(mediaEntity) {
|
||||
if (!mediaEntity) {
|
||||
throw "mediaEntity is null";
|
||||
}
|
||||
if (!mediaEntity.contentTypeAlias) {
|
||||
throw "mediaEntity.contentTypeAlias is null";
|
||||
}
|
||||
|
||||
//if you create a media type, which has an alias that ends with ...Folder then its a folder: ex: "secureFolder", "bannerFolder", "Folder"
|
||||
//this is the exact same logic that is performed in MediaController.GetChildFolders
|
||||
return mediaEntity.contentTypeAlias.endsWith("Folder");
|
||||
},
|
||||
|
||||
getAllowedImagetypes: function (mediaId){
|
||||
|
||||
// Get All allowedTypes
|
||||
@@ -8744,7 +8757,7 @@ angular.module('umbraco.services')
|
||||
//when it's successful, return the user data
|
||||
setCurrentUser(data);
|
||||
|
||||
var result = { user: data, authenticated: true, lastUserId: lastUserId };
|
||||
var result = { user: data, authenticated: true, lastUserId: lastUserId, loginType: "credentials" };
|
||||
|
||||
//broadcast a global event
|
||||
eventsService.emit("app.authenticated", result);
|
||||
@@ -8772,7 +8785,7 @@ angular.module('umbraco.services')
|
||||
authResource.getCurrentUser()
|
||||
.then(function (data) {
|
||||
|
||||
var result = { user: data, authenticated: true, lastUserId: lastUserId };
|
||||
var result = { user: data, authenticated: true, lastUserId: lastUserId, loginType: "implicit" };
|
||||
|
||||
//TODO: This is a mega backwards compatibility hack... These variables SHOULD NOT exist in the server variables
|
||||
// since they are not supposed to be dynamic but I accidentally added them there in 7.1.5 IIRC so some people might
|
||||
|
||||
+427
-275
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,31 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.UserControl" %>
|
||||
<%@ Import Namespace="OurUmbraco.Documentation.Busineslogic.GithubSourcePull" %>
|
||||
|
||||
<script runat="server">
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
GetDocsButton.Click += GetDocsButton_Click;
|
||||
}
|
||||
|
||||
protected string Status = "";
|
||||
|
||||
void GetDocsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ZipDownloader.EnsureGitHubDocs(true);
|
||||
Status = "Done!";
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div>
|
||||
|
||||
<asp:Button runat="server" ID="GetDocsButton" Text="Get Docs!!"/>
|
||||
|
||||
<p>
|
||||
<%= Status %>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.UserControl" %>
|
||||
<%@ Import Namespace="OurUmbraco.Release" %>
|
||||
|
||||
<script runat="server">
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
GetYouTrackButton.Click += GetYouTrackButton_Click;
|
||||
}
|
||||
|
||||
protected string Status = "";
|
||||
|
||||
void GetYouTrackButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
var import = new Import();
|
||||
var result = import.SaveAllToFile();
|
||||
Status = result;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<div>
|
||||
|
||||
<asp:Button runat="server" ID="GetYouTrackButton" Text="Get YouTrack Releases"/>
|
||||
|
||||
<p>
|
||||
<%= Status %>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -49,7 +49,7 @@
|
||||
Umbraco web.config configuration documentation can be found here:
|
||||
http://our.umbraco.org/documentation/using-umbraco/config-files/#webconfig
|
||||
-->
|
||||
<add key="umbracoConfigurationStatus" value="7.5.7" />
|
||||
<add key="umbracoConfigurationStatus" value="7.5.11" />
|
||||
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/Hiccup.aspx,~/signalR,~/VSEnterpriseHelper.axd" />
|
||||
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/communityLogoGenerator,~/adhoc,~/signalR,~/apidocs,~/hangfire" />
|
||||
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
|
||||
@@ -105,6 +105,7 @@
|
||||
<add key="SpamBlockThreshold" value="90" />
|
||||
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
|
||||
<add key="UmbracoStarterKits" value="55E028E3-0C5B-4188-9722-7D14B4BD12C0,69E44BEB-15FF-4CEE-8B64-0A7DAE498657,0B0101F7-9394-48F3-A581-DD3F18480265" />
|
||||
<add key="UmbracoStarterKitDefault" value="ced954d1-8c0f-4abe-bdda-99e7a787d052"/>
|
||||
|
||||
<add key="SlackChannel" value="#our-spam-reports" />
|
||||
<add key="SlackToken" value="" />
|
||||
@@ -115,7 +116,7 @@
|
||||
<add key="AppVeyorWebHookAuthKey" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
|
||||
<add key="GoogleOAuthClientID" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
|
||||
<add key="GoogleOAuthSecret" value="it's a secret.. and no, this is not the secret, this key will transformed on the build server" />
|
||||
<add key="HangFireEnabled" value="false" />
|
||||
<add key="HangFireEnabled" value="true" />
|
||||
|
||||
<!-- this reCaptcha key pair ONLY works on localhost and will be transformed on the build server -->
|
||||
<add key="reCaptchaPublicKey" value="6LdwJQ4UAAAAAL9hZdbodu7UHh9t6rV1reGyj2nX" />
|
||||
@@ -149,7 +150,7 @@
|
||||
</mailSettings>
|
||||
</system.net>
|
||||
<system.web>
|
||||
<customErrors mode="Off" defaultRedirect="/error" />
|
||||
<customErrors mode="Off" defaultRedirect="/error/" />
|
||||
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
|
||||
<globalization culture="en-US" requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="en-US" />
|
||||
<httpRuntime requestValidationMode="2.0" maxRequestLength="1048576" executionTimeout="43200" enableVersionHeader="false" targetFramework="4.5" fcnMode="Single" relaxedUrlToFileSystemMapping="true" />
|
||||
@@ -180,7 +181,6 @@
|
||||
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="UmbracoModule" type="Umbraco.Web.UmbracoModule,umbraco" />
|
||||
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
|
||||
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" /></httpModules>
|
||||
<httpHandlers>
|
||||
<remove verb="*" path="*.asmx" />
|
||||
@@ -308,7 +308,7 @@
|
||||
</buildProviders>
|
||||
</compilation>
|
||||
<authentication mode="Forms">
|
||||
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" slidingExpiration="true" timeout="525600" />
|
||||
<forms requireSSL="true" name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" slidingExpiration="true" timeout="525600" />
|
||||
</authentication>
|
||||
<authorization>
|
||||
<allow users="?" />
|
||||
@@ -364,9 +364,6 @@
|
||||
<remove name="FormsAuthentication" />
|
||||
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
|
||||
<add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web" />
|
||||
|
||||
<remove name="ApplicationInsightsWebTracking" />
|
||||
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
|
||||
</modules>
|
||||
|
||||
<handlers accessPolicy="Read, Write, Script, Execute">
|
||||
@@ -423,6 +420,8 @@
|
||||
<customHeaders>
|
||||
<add name="P3P" value="policyref="http://our.umbraco.org/w3c/p3p.xml"" />
|
||||
<remove name="X-Powered-By" />
|
||||
<remove name="X-Frame-Options" />
|
||||
<add name="X-Frame-Options" value="SAMEORIGIN" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
|
||||
@@ -507,6 +506,10 @@
|
||||
</conditions>
|
||||
<action type="Redirect" url="{C:1}" redirectType="Permanent" appendQueryString="true" />
|
||||
</rule>
|
||||
<rule name="DocsProductsToAddons" patternSyntax="Wildcard" stopProcessing="true">
|
||||
<match url="documentation/products/*" />
|
||||
<action type="Redirect" url="/documentation/Add-ons/{R:1}" redirectType="Permanent" appendQueryString="true" />
|
||||
</rule>
|
||||
<!-- WIKI -->
|
||||
<rule name="RedirectWikiEvents" patternSyntax="Wildcard">
|
||||
<match url="wiki/reference/api-cheatsheet/using-applicationbase-to-register-events/*" />
|
||||
@@ -540,6 +543,14 @@
|
||||
<match url="wiki/reference/" />
|
||||
<action type="Redirect" url="/Documentation/Reference/" redirectType="Permanent" appendQueryString="true" />
|
||||
</rule>
|
||||
<rule name="WikiRss" patternSyntax="Wildcard">
|
||||
<match url="rss/wiki*" />
|
||||
<action type="Redirect" url="/Documentation/" redirectType="Permanent" appendQueryString="true" />
|
||||
</rule>
|
||||
<rule name="Courier2ToCourier" patternSyntax="Wildcard">
|
||||
<match url="projects/umbraco-pro/umbraco-courier-2" />
|
||||
<action type="Redirect" url="/projects/umbraco-pro/umbraco-courier" redirectType="Permanent" appendQueryString="true" />
|
||||
</rule>
|
||||
<rule name="ReleasesLanding" patternSyntax="ExactMatch" stopProcessing="true">
|
||||
<match url="releases" />
|
||||
<action type="Redirect" url="/contribute/releases/" />
|
||||
@@ -657,11 +668,31 @@
|
||||
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" />
|
||||
</system.webServer>
|
||||
</location>
|
||||
<system.diagnostics>
|
||||
<trace autoflush="true" indentsize="0">
|
||||
<listeners>
|
||||
<add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
|
||||
</listeners>
|
||||
</trace>
|
||||
</system.diagnostics>
|
||||
</configuration>
|
||||
<location path="repo">
|
||||
<system.webServer>
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<remove name="X-Frame-Options" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
</system.webServer>
|
||||
</location>
|
||||
<location path="repo_category">
|
||||
<system.webServer>
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<remove name="X-Frame-Options" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
</system.webServer>
|
||||
</location>
|
||||
<location path="repo_viewproject">
|
||||
<system.webServer>
|
||||
<httpProtocol>
|
||||
<customHeaders>
|
||||
<remove name="X-Frame-Options" />
|
||||
</customHeaders>
|
||||
</httpProtocol>
|
||||
</system.webServer>
|
||||
</location>
|
||||
</configuration>
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web.Mvc;
|
||||
using OurUmbraco.Community.Models;
|
||||
using OurUmbraco.Our.Api;
|
||||
using RestSharp;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web.Mvc;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using System.Text;
|
||||
|
||||
namespace OurUmbraco.Community.Controllers
|
||||
{
|
||||
public class GitHubContributorController : SurfaceController
|
||||
{
|
||||
/// <summary>
|
||||
/// Repositories to include in the combination of contributions
|
||||
/// </summary>
|
||||
private readonly string[] Repositories =
|
||||
{
|
||||
"Umbraco-CMS",
|
||||
"UmbracoDocs",
|
||||
"OurUmbraco",
|
||||
"Umbraco.Deploy.Contrib",
|
||||
"Umbraco.Courier.Contrib",
|
||||
"Umbraco.Deploy.ValueConnectors"
|
||||
};
|
||||
|
||||
protected string JsonPath
|
||||
{
|
||||
get { return Server.MapPath("~/App_Data/TEMP/GithubContributors.json"); }
|
||||
}
|
||||
|
||||
public List<GitHubCachedGlobalContributorModel> GetCachedContributors()
|
||||
{
|
||||
|
||||
if (!System.IO.File.Exists(JsonPath)) throw new Exception("The JSON file doesn't exist on disk");
|
||||
|
||||
|
||||
List<GitHubCachedGlobalContributorModel> temp = new List<GitHubCachedGlobalContributorModel>();
|
||||
|
||||
// Parse the JSON file from disk
|
||||
foreach (JToken token in Skybrud.Essentials.Json.JsonUtils.LoadJsonArray(JsonPath))
|
||||
{
|
||||
|
||||
temp.Add(token.ToObject<GitHubCachedGlobalContributorModel>());
|
||||
|
||||
}
|
||||
|
||||
return temp;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets data for all GitHub contributors for all listed Umbraco repositories,
|
||||
/// excluding the GitHub IDs of the HQ contributors from the text file list
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public ActionResult GitHubGetContributorsResult(bool force = false)
|
||||
{
|
||||
var model = new GitHubContributorsModel();
|
||||
model.Contributors = new List<GitHubCachedGlobalContributorModel>();
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
// If the file exists on disk and hasn't expired (AKA not older than one day), we should just load that
|
||||
if (force == false && System.IO.File.Exists(JsonPath) && System.IO.File.GetLastWriteTimeUtc(JsonPath) >= DateTime.UtcNow.AddDays(-1))
|
||||
{
|
||||
model.Contributors = GetCachedContributors();
|
||||
return PartialView("~/Views/Partials/Home/GitHubContributors.cshtml", model);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Load the contributors via the GitHub API and map to the cached model
|
||||
var contributors = GetContributors().Select(x => new GitHubCachedGlobalContributorModel(x));
|
||||
|
||||
// Serialize the contributors to raw JSON
|
||||
string rawJson = JsonConvert.SerializeObject(contributors, Formatting.Indented);
|
||||
|
||||
// Save the JSON to disk
|
||||
System.IO.File.WriteAllText(JsonPath, rawJson, Encoding.UTF8);
|
||||
|
||||
model.Contributors = contributors.ToList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Log the error so we can debug it later
|
||||
LogHelper.Error<GitHubContributorController>("Unable to load GitHub contributors from the GitHub API", ex);
|
||||
|
||||
// Load the contributors from the cache (if we have any)
|
||||
model.Contributors = GetCachedContributors();
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// Log the error so we can debug it later
|
||||
LogHelper.Error<GitHubContributorController>("Unable to load GitHub contributors from the GitHub API", ex);
|
||||
|
||||
}
|
||||
|
||||
return PartialView("~/Views/Partials/Home/GitHubContributors.cshtml", model);
|
||||
}
|
||||
|
||||
public List<GitHubGlobalContributorModel> GetContributors()
|
||||
{
|
||||
|
||||
|
||||
string configPath = Server.MapPath("~/config/githubhq.txt");
|
||||
if (!System.IO.File.Exists(configPath))
|
||||
{
|
||||
LogHelper.Debug<GitHubContributorController>("Config file was not found: " + configPath);
|
||||
throw new Exception("Config file was not found: " + configPath);
|
||||
}
|
||||
|
||||
string[] login = System.IO.File.ReadAllLines(configPath).Where(x => x.Trim() != "").Distinct().ToArray();
|
||||
|
||||
var githubController = new GitHubController();
|
||||
var gitHubContributors = new List<GitHubContributorModel>();
|
||||
foreach (var repo in Repositories)
|
||||
{
|
||||
var response = githubController.GetAllRepoContributors(repo);
|
||||
if (response.StatusCode == HttpStatusCode.OK &&
|
||||
response.ResponseStatus == ResponseStatus.Completed)
|
||||
{
|
||||
gitHubContributors.AddRange(response.Data);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogHelper.Warn<IGitHubContributorsModel>(string.Format("Invalid HTTP response for repository {0}", repo));
|
||||
}
|
||||
}
|
||||
|
||||
// filter to only include items from the last year (if we ran 4.6.1 we could have used ToUnixTimeSeconds())
|
||||
var filteredRange = DateTime.UtcNow.AddYears(-1).Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
|
||||
|
||||
foreach (var contrib in gitHubContributors)
|
||||
{
|
||||
var contribWeeks = contrib.Weeks.Where(x => x.W >= filteredRange).ToList();
|
||||
contrib.TotalAdditions = contribWeeks.Sum(x => x.A);
|
||||
contrib.TotalDeletions = contribWeeks.Sum(x => x.D);
|
||||
contrib.Total = contribWeeks.Sum(x => x.C);
|
||||
}
|
||||
|
||||
var filteredContributors = gitHubContributors
|
||||
.Where(g => !login.Contains(g.Author.Login))
|
||||
.GroupBy(g => g.Author.Id)
|
||||
.OrderByDescending(c => c.Sum(g => g.Total));
|
||||
|
||||
List<GitHubGlobalContributorModel> temp = new List<GitHubGlobalContributorModel>();
|
||||
|
||||
foreach (var group in filteredContributors)
|
||||
{
|
||||
var contributor = new GitHubGlobalContributorModel(group);
|
||||
if (contributor.TotalCommits > 0)
|
||||
{
|
||||
temp.Add(contributor);
|
||||
}
|
||||
}
|
||||
|
||||
return temp;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using OurUmbraco.Community.Models;
|
||||
|
||||
namespace OurUmbraco.Community.Controllers
|
||||
{
|
||||
|
||||
public class GitHubCachedGlobalContributorModel
|
||||
{
|
||||
|
||||
public int AuthorId { get; set; }
|
||||
|
||||
public string AuthorLogin { get; set; }
|
||||
|
||||
public string AuthorUrl { get; set; }
|
||||
|
||||
public string AuthorAvatarUrl { get; set; }
|
||||
|
||||
public int TotalCommits { get; set; }
|
||||
|
||||
public int TotalAdditions { get; set; }
|
||||
|
||||
public int TotalDeletions { get; set; }
|
||||
|
||||
public GitHubCachedGlobalContributorModel() { }
|
||||
|
||||
public GitHubCachedGlobalContributorModel(GitHubGlobalContributorModel contributor)
|
||||
{
|
||||
AuthorId = contributor.Author.Id;
|
||||
AuthorLogin = contributor.Author.Login;
|
||||
AuthorUrl = contributor.Author.HtmlUrl;
|
||||
AuthorAvatarUrl = contributor.Author.AvatarUrl;
|
||||
TotalCommits = contributor.TotalCommits;
|
||||
TotalAdditions = contributor.TotalAdditions;
|
||||
TotalDeletions = contributor.TotalDeletions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class GitHubGlobalContributorModel
|
||||
{
|
||||
public List<GitHubContributorModel> Items { get; set; }
|
||||
|
||||
public int Id
|
||||
{
|
||||
get { return Author.Id; }
|
||||
}
|
||||
|
||||
public int TotalCommits
|
||||
{
|
||||
get { return Items.Sum(x => x.Total); }
|
||||
}
|
||||
|
||||
public int TotalAdditions
|
||||
{
|
||||
get { return Items.Sum(x => x.TotalAdditions); }
|
||||
}
|
||||
|
||||
public int TotalDeletions
|
||||
{
|
||||
get { return Items.Sum(x => x.TotalDeletions); }
|
||||
}
|
||||
|
||||
public Author Author
|
||||
{
|
||||
get { return Items.First().Author; }
|
||||
}
|
||||
|
||||
public GitHubGlobalContributorModel(IEnumerable<GitHubContributorModel> items)
|
||||
{
|
||||
Items = items.ToList();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using OurUmbraco.Community.Models;
|
||||
using Skybrud.Essentials.Json.Extensions;
|
||||
using Skybrud.Social.Meetup;
|
||||
using Skybrud.Social.Meetup.Models.Events;
|
||||
using Skybrud.Social.Meetup.Models.Groups;
|
||||
using Skybrud.Social.Meetup.Responses.Events;
|
||||
using Skybrud.Social.Meetup.Responses.Groups;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web.Mvc;
|
||||
using Umbraco.Core.Cache;
|
||||
|
||||
namespace OurUmbraco.Community.Controllers {
|
||||
|
||||
public class MeetupsController : SurfaceController {
|
||||
|
||||
public ActionResult GetEvents() {
|
||||
|
||||
MeetupEventsModel model = new MeetupEventsModel {
|
||||
Items = new MeetupItem[0]
|
||||
};
|
||||
|
||||
try {
|
||||
|
||||
string configPath = Server.MapPath("~/config/MeetupUmbracoGroups.txt");
|
||||
if (!System.IO.File.Exists(configPath)) {
|
||||
LogHelper.Debug<MeetupsController>("Config file was not found: " + configPath);
|
||||
return PartialView("~/Views/Partials/Home/Meetups.cshtml", model);
|
||||
}
|
||||
|
||||
// Get the alias (urlname) of each group from the config file
|
||||
string[] aliases = System.IO.File.ReadAllLines(configPath).Where(x => x.Trim() != "").Distinct().ToArray();
|
||||
|
||||
model.Items =
|
||||
ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem<MeetupItem[]>("UmbracoSearchedMeetups",
|
||||
() => {
|
||||
|
||||
// Initialize a new service instance (we don't specify an API key since we're accessing public data)
|
||||
MeetupService service = new MeetupService();
|
||||
|
||||
List<MeetupItem> items = new List<MeetupItem>();
|
||||
|
||||
foreach (string alias in aliases) {
|
||||
|
||||
try {
|
||||
|
||||
// Get information about the group
|
||||
MeetupGroup group = service.Groups.GetGroup(alias).Body;
|
||||
|
||||
if (group.JObject.HasValue("next_event")) {
|
||||
|
||||
string nextEventId = group.JObject.GetString("next_event.id");
|
||||
|
||||
// Make the call to the Meetup.com API to get upcoming events
|
||||
MeetupGetEventsResponse res = service.Events.GetEvents(alias);
|
||||
|
||||
// Get the next event(s)
|
||||
MeetupEvent nextEvent = res.Body.FirstOrDefault(x => x.Id == nextEventId);
|
||||
|
||||
// Append the first event of the group
|
||||
if (nextEvent != null) items.Add(new MeetupItem(group, nextEvent));
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
LogHelper.Error<MeetupsController>("Could not get events from meetup.com for group with alias: " + alias, ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return items.OrderBy(x => x.Event.Time).ToArray();
|
||||
|
||||
}, TimeSpan.FromMinutes(30));
|
||||
|
||||
|
||||
} catch (Exception ex) {
|
||||
LogHelper.Error<MeetupsController>("Could not get events from meetup.com", ex);
|
||||
}
|
||||
|
||||
return PartialView("~/Views/Partials/Home/Meetups.cshtml", model);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using OurUmbraco.Community.Models;
|
||||
using OurUmbraco.Forum.Extensions;
|
||||
using Tweetinvi;
|
||||
using Tweetinvi.Models;
|
||||
using Tweetinvi.Parameters;
|
||||
@@ -15,49 +17,89 @@ namespace OurUmbraco.Community.Controllers
|
||||
{
|
||||
public class TwitterSearchController : SurfaceController
|
||||
{
|
||||
public ActionResult TwitterSearchResult(int numberOfResults = 6)
|
||||
public ActionResult TwitterSearchResult(int numberOfResults = 6, bool adminOverview = false)
|
||||
{
|
||||
if (numberOfResults > 30)
|
||||
var model = new TweetsModel { ShowAdminOverView = adminOverview };
|
||||
var member = Members.GetCurrentMember();
|
||||
if (member == null || member.IsHq() == false)
|
||||
model.ShowAdminOverView = false;
|
||||
|
||||
if (member.IsHq() == false && numberOfResults > 30)
|
||||
numberOfResults = 6;
|
||||
|
||||
ITweet[] filteredTweets = { };
|
||||
|
||||
ITweet[] filteredTweets = {};
|
||||
try
|
||||
{
|
||||
var tweets = ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem<ITweet[]>("UmbracoSearchedTweets",
|
||||
() =>
|
||||
{
|
||||
Auth.SetUserCredentials(ConfigurationManager.AppSettings["twitterConsumerKey"],
|
||||
ConfigurationManager.AppSettings["twitterConsumerSecret"],
|
||||
ConfigurationManager.AppSettings["twitterUserAccessToken"],
|
||||
ConfigurationManager.AppSettings["twitterUserAccessSecret"]);
|
||||
Tweetinvi.User.GetAuthenticatedUser();
|
||||
var tweets =
|
||||
ApplicationContext.ApplicationCache.RuntimeCache.GetCacheItem<ITweet[]>("UmbracoSearchedTweets",
|
||||
() =>
|
||||
{
|
||||
Auth.SetUserCredentials(ConfigurationManager.AppSettings["twitterConsumerKey"],
|
||||
ConfigurationManager.AppSettings["twitterConsumerSecret"],
|
||||
ConfigurationManager.AppSettings["twitterUserAccessToken"],
|
||||
ConfigurationManager.AppSettings["twitterUserAccessSecret"]);
|
||||
Tweetinvi.User.GetAuthenticatedUser();
|
||||
|
||||
var searchParameter = new SearchTweetsParameters("umbraco") { SearchType = SearchResultType.Recent };
|
||||
return Search.SearchTweets(searchParameter).ToArray();
|
||||
var searchParameter = new SearchTweetsParameters("umbraco")
|
||||
{
|
||||
SearchType = SearchResultType.Recent
|
||||
};
|
||||
return Search.SearchTweets(searchParameter).ToArray();
|
||||
|
||||
}, TimeSpan.FromMinutes(2));
|
||||
}, TimeSpan.FromMinutes(2));
|
||||
|
||||
var settingsNode = Umbraco.TypedContentAtRoot().FirstOrDefault();
|
||||
if (settingsNode != null)
|
||||
{
|
||||
var usernameFilter = settingsNode.GetPropertyValue<string>("twitterFilterAccounts")
|
||||
.ToLowerInvariant().Split(',').Where(x => x != string.Empty);
|
||||
.ToLowerInvariant().Split(',').Where(x => x != string.Empty).ToArray();
|
||||
var wordFilter = settingsNode.GetPropertyValue<string>("twitterFilterWords")
|
||||
.ToLowerInvariant().Split(',').Where(x => x != string.Empty);
|
||||
|
||||
filteredTweets = tweets.Where(x =>
|
||||
x.CreatedBy.UserIdentifier.ScreenName.ToLowerInvariant().ContainsAny(usernameFilter) == false
|
||||
&& x.Text.ToLowerInvariant().ContainsAny(wordFilter) == false)
|
||||
filteredTweets = tweets.Where(x =>
|
||||
x.CreatedBy.UserIdentifier.ScreenName.ToLowerInvariant().ContainsAny(usernameFilter) ==
|
||||
false
|
||||
&& x.UserMentions.Any(m => m.ScreenName.ContainsAny(usernameFilter)) == false
|
||||
&& x.Text.ToLowerInvariant().ContainsAny(wordFilter) == false
|
||||
&& x.Text.StartsWith("RT ") == false)
|
||||
.Take(numberOfResults)
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
model.Tweets = filteredTweets;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<ITweet>("Could not get tweets", ex);
|
||||
}
|
||||
|
||||
return PartialView("~/Views/Partials/Home/TwitterSearchUmbraco.cshtml", model);
|
||||
}
|
||||
|
||||
return PartialView("~/Views/Partials/Home/TwitterSearchUmbraco.cshtml", filteredTweets);
|
||||
[HttpPost]
|
||||
[ValidateAntiForgeryToken]
|
||||
public ActionResult MarkAsSpam(string twitterHandle)
|
||||
{
|
||||
var redirectUrl = HttpContext.Request.UrlReferrer.AbsoluteUri;
|
||||
|
||||
var member = Members.GetCurrentMember();
|
||||
var settingsNode = Umbraco.TypedContentAtRoot().FirstOrDefault();
|
||||
if (string.IsNullOrEmpty(twitterHandle)
|
||||
|| member == null
|
||||
|| member.IsHq() == false
|
||||
|| ModelState.IsValid == false
|
||||
|| settingsNode == null)
|
||||
return Redirect(redirectUrl);
|
||||
|
||||
var contentService = ApplicationContext.Services.ContentService;
|
||||
var settingsContent = contentService.GetById(settingsNode.Id);
|
||||
var twitterFilterAccountsValue = settingsContent.GetValue<string>("twitterFilterAccounts");
|
||||
settingsContent.SetValue("twitterFilterAccounts", string.Format("{0},{1}", twitterFilterAccountsValue, twitterHandle));
|
||||
var publishStatus = contentService.PublishWithStatus(settingsContent);
|
||||
if (publishStatus.Exception == null)
|
||||
LogHelper.Info<TwitterSearchController>(string.Format("Twitter handle {0} marked as spam by {1} (id: {2})", twitterHandle, member.Name, member.Id));
|
||||
|
||||
return Redirect(redirectUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
using System.Collections.Generic;
|
||||
using OurUmbraco.Community.Controllers;
|
||||
|
||||
namespace OurUmbraco.Community.Models
|
||||
{
|
||||
public class GitHubContributorsModel : IGitHubContributorsModel
|
||||
{
|
||||
public List<GitHubCachedGlobalContributorModel> Contributors { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace OurUmbraco.Community.Models
|
||||
{
|
||||
[DataContract]
|
||||
public class GitHubContributorModel : IGitHubContributorModel
|
||||
{
|
||||
|
||||
private List<Week> _weeks;
|
||||
|
||||
public int Total { get; set; }
|
||||
public int TotalAdditions { get; set; }
|
||||
public int TotalDeletions { get; set; }
|
||||
|
||||
[DataMember(Name = "weeks")]
|
||||
public List<Week> Weeks
|
||||
{
|
||||
get { return _weeks; }
|
||||
|
||||
set
|
||||
{
|
||||
_weeks = value;
|
||||
|
||||
|
||||
int totalAdditions = 0;
|
||||
int totalDeletions = 0;
|
||||
foreach (var week in _weeks)
|
||||
{
|
||||
totalDeletions += week.D;
|
||||
totalAdditions += week.A;
|
||||
}
|
||||
|
||||
TotalAdditions = totalAdditions;
|
||||
TotalDeletions = totalDeletions;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public Author Author { get; set; }
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class Week
|
||||
{
|
||||
/// <summary>
|
||||
/// Timestamp
|
||||
/// </summary>
|
||||
public int W { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Additions
|
||||
/// </summary>
|
||||
public int A { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Deletions
|
||||
/// </summary>
|
||||
public int D { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Commits
|
||||
/// </summary>
|
||||
public int C { get; set; }
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class Author
|
||||
{
|
||||
public string Login { get; set; }
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
[DataMember(Name = "avatar_url")]
|
||||
public string AvatarUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "gravatar_id")]
|
||||
public string GravatarId { get; set; }
|
||||
|
||||
public string Url { get; set; }
|
||||
|
||||
[DataMember(Name = "html_url")]
|
||||
public string HtmlUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "followers_url")]
|
||||
public string FollowersUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "following_url")]
|
||||
public string FollowingsUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "gists_url")]
|
||||
public string GistsUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "starred_url")]
|
||||
public string StarredUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "subscriptions_url")]
|
||||
public string SubscriptionsUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "organizations_url")]
|
||||
public string OrganizationsUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "repos_url")]
|
||||
public string ReposUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "events_url")]
|
||||
public string EventsUrl { get; set; }
|
||||
|
||||
[DataMember(Name = "received_events_url")]
|
||||
public string ReceivedEventsUrl { get; set; }
|
||||
|
||||
public string Type { get; set; }
|
||||
|
||||
[DataMember(Name = "site_admin")]
|
||||
public bool SiteAdmin { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace OurUmbraco.Community.Models
|
||||
{
|
||||
public interface IGitHubContributorModel
|
||||
{
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user