190 Commits

Author SHA1 Message Date
Sebastiaan Janssen 27f88dfb80 Fix detection of npm folder 2016-09-18 12:44:10 +02:00
Sebastiaan Janssen 252a9015dc Detect if npm is already there and don't download it again 2016-09-18 12:20:42 +02:00
Sebastiaan Janssen 166007c668 Use node 4.5 for building 2016-09-18 12:12:52 +02:00
Sebastiaan Janssen 0ad13cf309 Period at end of URL throws 500 error
https://forums.iis.net/post/1971705.aspx
2016-09-13 13:21:32 +02:00
Sebastiaan Janssen 9af7fc7752 More Wiki goodbyes 2016-09-10 12:18:03 +02:00
Sebastiaan Janssen 5d6c3aaee1 Goodbye Wiki 2016-09-10 12:13:20 +02:00
Sebastiaan Janssen 0fffc62360 Add a space instead of only removing special characters 2016-09-06 13:36:21 +02:00
Sebastiaan Janssen 7faf09a80f OUR-395 Search terms with square brackets YSOD 2016-09-06 13:31:07 +02:00
Sebastiaan Janssen 83ea40bc83 OUR-395 Search terms with square brackets YSOD 2016-09-06 13:18:16 +02:00
Sebastiaan Janssen 92babb8674 OUR-395 Search terms with square brackets YSOD 2016-09-06 13:13:29 +02:00
Sebastiaan Janssen abac4190aa Update T&C banner 2016-09-06 10:56:44 +02:00
Sebastiaan Janssen f23b7f1036 Upgrade to 7.5.3 2016-09-05 16:49:30 +02:00
Sebastiaan Janssen 3fd893a611 Use CDF for whatever we can 2016-09-04 16:58:18 +02:00
Sebastiaan Janssen af4a802b19 Don't remove the debug attribute for release 2016-09-04 14:51:38 +02:00
Sebastiaan Janssen 4a4e7c9874 Add default redirect for when customErrors is set to RemoteOnly 2016-09-04 14:50:04 +02:00
Sebastiaan Janssen 1e04654a16 Correct Dashboard.Dashboard.config to remove old dashboards and duplicates 2016-09-04 14:36:32 +02:00
Sebastiaan Janssen a16fece807 OUR-389Package Download Count Goes Down After Deleting a Download
Removes the delete button until we refactor this one day, that way you won't lose download counts
2016-09-04 14:15:07 +02:00
Sebastiaan Janssen 3f61b8c903 Re-populate location after submit with errors
Move css and js into their own files
2016-09-01 18:43:18 +02:00
Sebastiaan Janssen 088ce651c8 Show global TermsAndConditions changed banner if member is logged in and has no date at which they accepted the terms of service 2016-09-01 09:05:20 +02:00
Sebastiaan Janssen 67d48acbf6 OUR-335 Error when archiving project file 2016-08-31 22:46:48 +02:00
Sebastiaan Janssen f152e7bbe8 Moves GetMinimumUmbracoVersion into an extension method and adds it to a new column in the wikiFiles table and in the examine index 2016-08-31 22:28:44 +02:00
Stephan bb206a5cc5 OUR-419 - fix paging queries 2016-08-31 14:49:54 +02:00
Sebastiaan Janssen cd69617d76 Always open link in a new tab, we might be in the package installer so we don't want to navigate away 2016-08-30 20:27:37 +02:00
Sebastiaan Janssen 3e661e6cdd If the link isn't to Our Umbraco, make it open in a new tab and add rel=nofollow 2016-08-30 20:24:43 +02:00
Sebastiaan Janssen 24c9389e2e OUR-420 Cannot download new version of package from our.umbraco.org
The version returned in the MediaProvider HAS to be in the format of v750 instead of 7.5.0
The update in WikiFile.cs is so that we can display the correct version in the edit package wizard (the listed files need to show the 'v750' version too
2016-08-30 19:13:02 +02:00
Sebastiaan Janssen ccc6fb2043 Makes sure the terms and conditions page exists before we link to it. 2016-08-30 16:38:38 +02:00
Sebastiaan Janssen 00ad76fdd0 OUR-411 Add accepting terms and conditions when signing up 2016-08-30 16:28:28 +02:00
Sebastiaan Janssen 0c39411ff2 Make sure next deploy doesn't start the upgrader again 2016-08-23 14:29:07 +02:00
Sebastiaan Janssen 9222213757 Upgrade to 7.5.2 2016-08-23 14:04:32 +02:00
Sebastiaan Janssen b7d5fc0cf1 Upgrade to Umbraco 7.5.1 2016-08-21 15:31:56 +02:00
Sebastiaan Janssen 4b401048ae OUR-415 Clean up nested <span> elements in code blocks
OUR-413 Style code blocks after package descriptions have been cleaned up
2016-08-19 16:58:37 +02:00
Sebastiaan Janssen 7adcbd327a Merge pull request #92 from umbraco/TEMP-OUR-416
Decorate Search API Controller with CORS atrribute
2016-08-19 10:27:01 +02:00
Warren Buckley 0a777c44a6 Decorate Search API Controller with CORS atrribute 2016-08-19 08:49:41 +01:00
Sebastiaan Janssen 0797ecc574 Upgrade to 7.5.0 final 2016-08-17 16:35:03 +02:00
Sebastiaan Janssen b414a29b1d Cleanup: don't need Bcl and Microsoft.Net.Http installed as NuGet packages 2016-08-17 11:02:07 +02:00
Sebastiaan Janssen bd8b002ecf Adds new dashboards and switches to new packager trees 2016-08-17 11:01:29 +02:00
Sebastiaan Janssen b811d3d127 Fixes package file uploading 2016-08-16 18:59:47 +02:00
Sebastiaan Janssen 2c5aa5ed31 Search auto-suggest broken in projects section 2016-08-16 10:44:43 +02:00
Sebastiaan Janssen deae2a5a89 Fixes null reference error on the Union
Fixes the version range filter
Changes "newest" to "updated" filter text (newest is the default view already)
2016-08-15 21:03:06 +02:00
Sebastiaan Janssen 25327495ad Fix the old package repository and also clean the descriptions there 2016-08-15 17:05:44 +02:00
Sebastiaan Janssen 6e74e38e39 Remove removed files from csproj else deploy fails 2016-08-15 15:57:45 +02:00
Sebastiaan Janssen 1f7723d1ed Can't use C# 6 features 2016-08-15 15:48:39 +02:00
Sebastiaan Janssen 4133c2c009 Cleans descriptions of packages (strips all attributes so inline styles etc. don't get applied any more) 2016-08-15 15:11:27 +02:00
Sebastiaan Janssen 6b94c119a4 Reverts to old build method that works on build server 2016-08-15 15:11:27 +02:00
Shannon eccd0eec87 Fixes multiple versions issue 2016-08-15 14:22:23 +02:00
Shannon 6e2f578676 changed sort for packages to createDate instead of updateDate 2016-08-15 12:39:57 +02:00
Shannon 62bc966bfe ensures date is mapped and formatted correctly and that the details data is cached. 2016-08-11 20:38:56 +02:00
Shannon a810cc6bad Removes the approved filter from searches and viewing details, simplifies searches a bit, simplifies how the project data gets indexed, adds some fuzzy logic to the searching too and changes some boosting. 2016-08-11 20:24:01 +02:00
Shannon 1ca1e0ab87 Gets range queries working for versions, does some code cleanup, updates to latest examine updates the uVersion config file. 2016-08-11 16:00:04 +02:00
Shannon 3f17a57289 Gets all of the searches for packages consistent, ensures the package index has all of the right data and is indexed appropriately, updates to latest examine so we can use numerical range queries directly with lucene. 2016-08-11 15:02:36 +02:00
Shannon 16e61c9ac4 Ensures sorting for searching on projects is working correctly 2016-08-10 11:26:53 +02:00
Shannon 2c8e1fe3a2 fixes issue where pressing enter for searching will append a 'valid' parameter to the query 2016-08-10 11:25:43 +02:00
Shannon 85ed5b5c66 reverts KarmaProvider, it's legacy, not sure if it's actually used (hopefully not!) 2016-08-10 01:18:23 +02:00
Shannon 5c74a14f80 more updatedate changes and some notes 2016-08-10 01:17:30 +02:00
Shannon 6504f340ed updates main search listing for projects to use updateDate instead of createDate, makes this inline with the results for the back office 2016-08-10 01:15:28 +02:00
Shannon 6d1d1d398c updates the index service for projects 2016-08-10 00:53:47 +02:00
Shannon d5cab0fe92 Fixes up how the package search works for the back office in 7.5 and fixes up some indexing operations, all is looking pretty good now 2016-08-10 00:53:24 +02:00
Shannon 8b28b24d8f Fixes NPM and Gulp 2016-08-09 19:39:22 +02:00
Shannon 89b1e2d124 Fixes issue with passing in an invalid image request to the server when a package doesn't have a valid image 2016-08-09 17:15:29 +02:00
Shannon 2aed23b022 re-installs umbraco, now has proper nuget version targets, removes old access files, adds health check dashboard to the config. 2016-08-09 10:21:16 +02:00
Shannon 82dd7734dc Fixes security for api endpoints, fixes js reference issues, removes the old js from trying to be executed when signing up 2016-07-26 14:36:15 +02:00
Shannon 18e1ae74bf fixed the anchor for docs 2016-07-26 13:54:24 +02:00
Shannon 95a7bb32be update to beta2 of examine 2016-07-26 12:48:22 +02:00
Shannon 1075e8de1a Updates to correct version of Umbraco, updates the class lib to be net452 like the site 2016-07-26 12:43:35 +02:00
Shannon 1b319c5c55 Merge branch 'master' of https://github.com/umbraco/OurUmbraco 2016-07-26 10:56:49 +02:00
Shannon 5c6eb8213c updated umbraco 7.5 beta2, correct nuget version 2016-07-26 10:56:35 +02:00
Sebastiaan Janssen 640d6ab4ad Seems best practice to throw an exception here which returns a null auth ticket - see https://github.com/yreynhout/katana-clone/blob/master/src/Microsoft.Owin.Security.Google/GoogleAuthenticationHandler.cs#L220 2016-07-26 10:41:41 +02:00
Sebastiaan Janssen 1ea8a13dd0 Move Google Auth stuff to the class library 2016-07-22 16:45:11 +02:00
Sebastiaan Janssen 1f9e1ac764 Revert "I really don't want to do this, but if it helps TeamCity..?"
This reverts commit 2e62edb015.

Good thing it didn't work then
2016-07-22 16:30:10 +02:00
Sebastiaan Janssen 2e62edb015 I really don't want to do this, but if it helps TeamCity..? 2016-07-22 15:58:52 +02:00
Sebastiaan Janssen 1c766208dc Revert "Explicitly reference System.Runtime and Globalization"
This reverts commit e373687c75.
2016-07-22 15:46:11 +02:00
Sebastiaan Janssen e373687c75 Explicitly reference System.Runtime and Globalization 2016-07-22 15:43:06 +02:00
Sebastiaan Janssen f9c7a24871 Target .net 4.5.2? 2016-07-22 15:38:11 +02:00
Sebastiaan Janssen 04a25a84f7 Make sure that the text right after the last @ is umbraco.com/dk 2016-07-22 14:37:57 +02:00
Sebastiaan Janssen 948eea9c51 Enable Google auth for umbraco domain users 2016-07-22 13:32:32 +02:00
Sebastiaan Janssen 1ba26a4dd1 Comment out this old code so it doesn't throw errors all the time 2016-07-22 12:20:06 +02:00
Shannon 90d0ab7df1 Merge branch 'master' of https://github.com/umbraco/OurUmbraco 2016-07-22 11:34:42 +02:00
Shannon ac9007f1f6 Adds deep linking to docs 2016-07-22 11:34:37 +02:00
Sebastiaan Janssen 94a0d63ff2 Adds new files to csproj so they deploy 2016-07-19 17:59:33 +02:00
Sebastiaan Janssen 868770b553 Upgrade to 7.5.0-beta2 2016-07-19 17:00:02 +02:00
Sebastiaan Janssen 126de6dbe5 Change how some contexts work 2016-07-19 16:08:00 +02:00
Sebastiaan Janssen 26a88e1381 Also show alpha/beta/rc releases in the compare 2016-07-18 08:08:23 +02:00
Sebastiaan Janssen d398dfb024 Fixes dropdowns not working on mobile 2016-07-07 16:54:18 +02:00
Sebastiaan Janssen 3ec0a9eebd Link to the issue list from the release notes list 2016-07-06 18:58:10 +02:00
Sebastiaan Janssen 6cea47b608 Adds release notes for each version and ability to only show release notes 2016-07-06 18:43:20 +02:00
Sebastiaan Janssen aaccdbb1a4 Refactor of version compare, removed a lot of unnecessary code, made sure there's always a default compare, adds error messages
Copies the styling changes from PR 91
2016-07-06 18:22:45 +02:00
Sebastiaan Janssen 95cc9ba067 Merge pull request #90 from readingdancer/VersionCompare
Added a "Release Compare" section to allow you to compare the changes…
2016-06-24 18:41:01 +02:00
Sebastiaan Janssen b729494047 Adds migration for the Release Compare feature 2016-06-24 18:38:07 +02:00
Sebastiaan Janssen 76684a497e Updates the contribute landing page template 2016-06-21 15:54:42 +02:00
Shannon 75fb9d1986 oops adds category filter back in search 2016-06-21 13:55:33 +02:00
Shannon 5e9dd0d52e U4-8606 Package search in backoffice / Our broken
Fixes issue with the camel case formatter (core issue), fixes the search - it is a smarter search and actually compiles a more readable lucene query which yields nicer results than it did before.
2016-06-20 15:26:27 +02:00
Chris Houston b63c5f93c3 Added a "Release Compare" section to allow you to compare the changes between two versions. 2016-06-17 13:40:39 +01:00
Shannon e87a80b8ca updates index with fields and search 2016-06-14 12:23:49 +02:00
Shannon 7c507d9767 updates query, updates index to store package file count 2016-06-14 11:28:19 +02:00
Shannon 8cf00d0420 fixes sorting 2016-06-14 01:31:49 +02:00
Shannon f59bb01d3a fixes package search 2016-06-14 01:20:25 +02:00
Shannon Deminick 2eba7632ce Merge pull request #88 from leekelleher/feature/pkgrepo-restapi
Package Repo REST API
2016-06-13 23:12:04 +02:00
leekelleher a8ca4fc0f5 Implement the rest of the "Package Search" feature 2016-06-13 19:40:37 +01:00
leekelleher 6239d78858 [WIP] Started to implement the "Package Search" feature 2016-06-13 17:00:57 +01:00
leekelleher e78de056f2 Added package repo "Service".
Amended legacy `Util` and `WikiFile` code to accommodate newer queries.
2016-06-13 16:02:21 +01:00
leekelleher 060fb89496 Minor whitespace 2016-06-13 12:12:26 +01:00
leekelleher bc24b136ad Corrected typo in PackageDetails class name 2016-06-13 12:11:46 +01:00
Shannon c401398922 Updates controller with generic Search action and sort order 2016-06-13 13:09:33 +02:00
Shannon 96876b72d0 updates controller to have categories 2016-06-13 12:08:19 +02:00
Shannon af201ce6e6 Gets the api controller returning the right data structures 2016-06-12 21:40:31 +02:00
Shannon 80598056ee adds get categories 2016-06-12 19:25:34 +02:00
Shannon 341664e978 adds formatter 2016-06-12 19:10:30 +02:00
Shannon 5d070a021b Merge branch 'master' of https://github.com/umbraco/OurUmbraco 2016-06-12 18:07:41 +02:00
Shannon a6c3077f95 Ensures the right version of Umb is used in all projects, moves the starterkitcontroller to the right namespace, Creates new PackageRepositoryController, changes the routes for these controllers so they are specific and will have zero overlap with any other controller route, creates a versioned REST api endpoint for packages. 2016-06-12 18:07:32 +02:00
Shannon Deminick f3001b900a Merge pull request #86 from leekelleher/patch/pkgupload-dotnet-versions
Package upload: Updated ASP.NET version numbers
2016-06-12 17:43:39 +02:00
leekelleher 7b720101f5 Package upload: Updated ASP.NET version numbers
Added the most recent ASP.NET versions for the dropdown list
2016-06-12 16:17:22 +01:00
Shannon Deminick 4880f82561 Merge pull request #85 from leekelleher/feature/U4-8156
Extracts package's required Umbraco version metadata
2016-06-12 16:49:19 +02:00
leekelleher 5675a68b8c Package upload: amends styling of Umbraco versions
Quick and dirty fix to correct the styling of the Umbraco version selection on the package uploader options.
2016-06-12 15:11:00 +01:00
leekelleher e620c153d7 Extracts package's required Umbraco version metadata
When a package is uploaded to the Our Umbraco repository, we extract the "package.xml" manifest to detect the required (minimum) Umbraco version number.

This task is part of U4-8156, at CGRT16
2016-06-12 15:10:21 +01:00
Sebastiaan Janssen 031e8ec967 Don't delete users on Seb's DB 2016-06-12 12:04:08 +02:00
Sebastiaan Janssen f26ddc85f8 Whoops, hardcoded the DB name 2016-06-12 11:58:00 +02:00
Sebastiaan Janssen e516082c0e Fixes missing users for the Dev database 2016-06-12 11:46:12 +02:00
Sebastiaan Janssen 6b3313728b Move unzipped docs to the correct location 2016-05-28 14:28:24 +02:00
Sebastiaan Janssen 7adc171a0e Remove old docs before unzipping new ones and move downloaded docs to the correct location 2016-05-28 14:27:52 +02:00
Sebastiaan Janssen e1938c68d2 Make sure to take the correct filename 2016-05-28 13:44:19 +02:00
Sebastiaan Janssen ada3b38995 Properly replaced the documentation Unzip method this time 2016-05-28 13:39:52 +02:00
Sebastiaan Janssen a571e0b5bf Adds logging to the documentation downloader 2016-05-28 13:39:30 +02:00
Sebastiaan Janssen 7cc2fb3eca Adds logging to the documentation downloader 2016-05-28 13:22:42 +02:00
Sebastiaan Janssen 98f60d9410 Reverts to previous unzip behavior, will try again some other day 2016-05-27 16:52:32 +02:00
Sebastiaan Janssen b2a79b95e9 Whoops, build failed of course 2016-05-27 16:33:14 +02:00
Sebastiaan Janssen ad1c6da04f Add AppVeyorWebHookAuthKey and fix ZipDownloader 2016-05-27 16:23:31 +02:00
Shannon 638d3cc562 Adds auth filter for appveyor 2016-05-27 16:20:56 +02:00
Sebastiaan Janssen 1a65664c6c Uses easier unzip for ZipDownloader.cs & handles multiple artifacts in DocFxController 2016-05-27 16:00:19 +02:00
Sebastiaan Janssen 26d7b60159 apidocs is now reserved path, check if directory exists before deleting it 2016-05-27 15:04:25 +02:00
Shannon 85662496aa Adds docfx webhook to deploy csharp docs from appveyor 2016-05-27 13:52:51 +02:00
Sebastiaan Janssen e1246d1ae7 Send notification email when account gets approved 2016-05-01 18:06:06 +02:00
Sebastiaan Janssen 8110dcc4bf Send notification emails when a member gets approved 2016-05-01 17:36:51 +02:00
Sebastiaan Janssen 368e84b4d1 Fix redundant text-decoration 2016-04-28 11:12:07 +02:00
Sebastiaan Janssen abc7e39eb2 our.umbraco link styling absent on some pages 2016-04-28 10:33:35 +02:00
Sebastiaan Janssen 0b5e452032 OUR-390 Vote tooltip show regular tooltip on question 2016-04-28 10:06:38 +02:00
hartvig 1eecf4c4de Removing survey 2016-04-22 20:13:42 +02:00
Niels Hartvig 88d7edf5ee Merge branch 'master' of https://github.com/umbraco/OurUmbraco 2016-04-18 18:23:47 +02:00
Niels Hartvig 004ae6b023 Adding a wonderfully annoying survey 2016-04-18 18:23:14 +02:00
Sebastiaan Janssen ad0b3b7c71 Update README.md 2016-04-18 13:04:41 +02:00
Sebastiaan Janssen 70b63998a1 Oops, removed wrong wrapper :) 2016-04-15 10:38:26 +02:00
Sebastiaan Janssen fe52faa065 No wrapping div 2016-04-15 10:37:08 +02:00
Sebastiaan Janssen b7b3e18a3e Remove hardcoded notification 2016-04-15 10:32:33 +02:00
Sebastiaan Janssen 8f81ce037a Update notification bars 2016-04-15 10:31:05 +02:00
Sebastiaan Janssen 39aa7e5311 Update stylesheet for https://github.com/umbraco/OurUmbraco/pull/83 2016-04-14 18:02:15 +02:00
Sebastiaan Janssen 53c188c5b6 Upgrade to 7.4.3 2016-04-14 18:02:14 +02:00
hemraker 7d0578d8c1 Add spelling of words 2016-04-13 17:48:30 +02:00
hemraker c27b8790d5 Add analytics to banner link 2016-04-13 17:16:09 +02:00
hemraker 0e4f7718d4 Add banner to home 2016-04-13 16:39:15 +02:00
Sebastiaan Janssen 3035bff4dd Merge pull request #83 from Adolfi/OUR-387
OUR-387 Solved "green color" not showing on startpage of Our
2016-04-12 13:09:54 +02:00
Adolfi 302a678a07 OUR-387 Solved "green color" not showing on startpage of Our
http://issues.umbraco.org/issue/OUR-387

Added the "solved" class on the latestactivity forum-threads.

For some reasons, i did´nt get the /assets/css/style.min.css when i
cloned the repository, and i could´nt find it in
https://github.com/umbraco/OurUmbraco/tree/master/OurUmbraco.Site
either.

This css needs to be added to style.min.css:

.forum .forum-thread.solved {
background: rgba(163, 219, 120, 0.23) none repeat scroll 0 0;
border: 2px solid rgba(163, 219, 120, 0.66);
}
2016-04-12 12:57:56 +02:00
Simon Busborg 38fd648c43 Updated so that title and tags don't collide 2016-04-01 11:54:18 +02:00
Sebastiaan Janssen f5d3ef9480 Managed to reference the wrong type when tracking new forum topics 2016-03-25 20:28:28 +01:00
Sebastiaan Janssen be4a2a5aec Use the UmbracoCms NuGet package, correct the assembly versions which were wrong 2016-03-18 22:36:21 +01:00
Sebastiaan Janssen 4f58b4f2ea Update BCL 2016-03-18 21:11:00 +01:00
Sebastiaan Janssen 69cff0f328 FixedDisplayModes is no longer necessary 2016-03-18 21:05:47 +01:00
Sebastiaan Janssen 5727b06d4b Move Notifications projects into OurUmbraco project 2016-03-18 21:01:44 +01:00
Sebastiaan Janssen 17f1de89d2 Update modelsbuilder and urltracker 2016-03-18 19:36:18 +01:00
Sebastiaan Janssen 476eb858cd Upgrade to 7.4.2 2016-03-18 18:06:56 +01:00
Sebastiaan Janssen e7bbcb0029 Fixes GUID changing when updating a package 2016-03-13 17:25:06 +01:00
Sebastiaan Janssen d3d75c80ce Select the current forum for new topics if we're in an existing forum already 2016-03-13 13:33:14 +01:00
Sebastiaan Janssen 58503221f8 Allow replies if parent forum is archived 2016-03-13 13:32:29 +01:00
Sebastiaan Janssen 161b0fc47f Update web.Template.config with new redirects and correct Umbraco version 2016-03-13 13:15:58 +01:00
Sebastiaan Janssen 234420aed9 Allow replies even if parent forum is archived 2016-03-13 13:15:34 +01:00
Sebastiaan Janssen ef8e1cd45c Categories update and simplification 2016-03-13 13:02:00 +01:00
Sebastiaan Janssen 602c524f70 Remove uWestFest banner 2016-03-08 09:29:55 +01:00
Sebastiaan Janssen d179ac3703 Upgrade to 7.4.1 2016-02-18 07:55:54 +01:00
Simon Busborg b12871d47e fixed word break in forum post and overview 2016-02-15 12:09:11 +01:00
Simon Busborg 018dc957c3 Added word-break to fix to long words bugs 2016-02-15 12:04:45 +01:00
Sebastiaan Janssen 4f8d757e7f Add 7.4 to versions 2016-02-12 09:51:10 +01:00
Sebastiaan Janssen 295039b455 Upgrade to 7.4.0 final 2016-02-11 20:45:30 +01:00
Sebastiaan Janssen de732c4a86 Updates banner 2016-02-05 14:35:59 +01:00
Sebastiaan Janssen 7e692525ff Sync new web.config keys and adds google verification file 2016-02-05 14:05:27 +01:00
Sebastiaan Janssen 8423e6938f Last update for now 2016-02-05 13:10:50 +01:00
Sebastiaan Janssen e8e944d918 And removes final files that would break the publish 2016-02-05 13:04:47 +01:00
Sebastiaan Janssen 720d1f001c One does not simply add and remove files expecting MSBuild to understand.. 2016-02-05 12:59:44 +01:00
Sebastiaan Janssen 639b371b0e Hopefully this should actually upgrade everything to 74RC 2016-02-05 12:28:00 +01:00
Sebastiaan Janssen 1dba5261f8 Need to add modelsbuilder package 2016-02-05 11:17:38 +01:00
Sebastiaan Janssen b02fbcbaef Need to add the new version to the template as well 2016-02-05 11:08:05 +01:00
Sebastiaan Janssen 55ee5e9ae4 Prevent Google from indexing the version so that people don't get false-positives when Googling for a specific version 2016-02-05 11:06:27 +01:00
Sebastiaan Janssen e1d50b5da5 Upgrade to 7.4.0-RC 2016-02-05 11:06:26 +01:00
Paul Sterling 2b87f60066 Temporary uWestFest 2016 banner 2016-01-18 13:12:18 +01:00
Sebastiaan Janssen dc0f71e354 Update README.md 2016-01-05 15:25:28 +01:00
Sebastiaan Janssen 0467c69b88 One last TeamCity update, else umbraco will "upgrade" on each deploy 2015-12-18 14:03:05 +01:00
Sebastiaan Janssen ceabcc4ce4 It should be happy now. 2015-12-18 13:25:20 +01:00
Sebastiaan Janssen 9be6b66841 Fix up csproj some more 2015-12-18 12:33:43 +01:00
Sebastiaan Janssen da4f1f0f8a Hopefully helps with the TeamCity build 2015-12-18 12:12:28 +01:00
Sebastiaan Janssen 2191054412 Fix up csproj file 2015-12-18 11:32:39 +01:00
Sebastiaan Janssen e1cd3d576f Je me reverte pour logo - my french sucks 2015-12-18 10:57:07 +01:00
Sebastiaan Janssen c851acb92d Upgrade to 7.4.0-beta 2015-12-18 10:55:02 +01:00
hartvig 2db2b5df03 Merge pull request #81 from umbraco/hartvig-france
nous sommes france
2015-11-15 15:55:26 +01:00
1081 changed files with 90291 additions and 109789 deletions
+3
View File
@@ -61,3 +61,6 @@ OurUmbraco.Site/[Aa]ssets/css/style.min.css
OurUmbraco.Site/[Aa]ssets/js/app.min.js
.vs/
OurUmbraco.Site/App_Data/migrations/*.txt
OurUmbraco.Site/apidocs/
OurUmbraco.Site/App_Data/Documentation/
build/tools/node*
-3
View File
@@ -3,7 +3,4 @@
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="Umbraco 7 Nightly Feed" value="https://www.myget.org/F/umbraco72nightly/api/v2" />
</packageSources>
</configuration>
-155
View File
@@ -1,155 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
<!-- Enable the restore command to run before builds -->
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
<!-- Property that enables building a package from a project -->
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
<!-- Determines if package restore consent is required to restore packages -->
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
<!-- Download NuGet.exe if it does not already exist -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
</PropertyGroup>
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://www.myget.org/F/umbraco72nightly/api/v2" />
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<!-- Windows specific commands -->
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
<PackagesConfig>packages.config</PackagesConfig>
<PackagesDir>$(SolutionDir)packages</PackagesDir>
</PropertyGroup>
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\nuget.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<ResolveReferencesDependsOn Condition="$(RestorePackages) == 'true'">
RestorePackages;
$(ResolveReferencesDependsOn);
</ResolveReferencesDependsOn>
<!-- Make the build depend on restore packages -->
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
$(BuildDependsOn);
BuildPackage;
</BuildDependsOn>
</PropertyGroup>
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
parallel builds will have to wait for it to complete.
-->
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT" />
</Target>
<Target Name="_DownloadNuGet">
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
</Target>
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(RestoreCommand)"
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
<Exec Command="$(RestoreCommand)"
LogStandardErrorAsError="true"
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
</Target>
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
<Exec Command="$(BuildCommand)"
Condition=" '$(OS)' != 'Windows_NT' " />
<Exec Command="$(BuildCommand)"
LogStandardErrorAsError="true"
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<EnvKey ParameterType="System.String" Required="true" />
<EnvValue ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process);
}
catch {
}
]]>
</Code>
</Task>
</UsingTask>
</Project>
-22
View File
@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using uForum.Businesslogic;
namespace NotificationsCore.EventHandlers
{
public class Forum : umbraco.BusinessLogic.ApplicationBase
{
public Forum()
{
Comment.AfterCreate += new EventHandler<CreateEventArgs>(Comment_AfterCreate);
}
void Comment_AfterCreate(object sender, uForum.Businesslogic.CreateEventArgs e)
{
Comment c = (Comment)sender;
//InstantNotification.Execute("NewComment", c.Id);
}
}
}
-72
View File
@@ -1,72 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Reflection;
namespace NotificationsCore
{
public class InstantNotification
{
private delegate void ExecuteDelegate(string config, string assemblydir, string name, params object[] args);
private ExecuteDelegate ed;
public InstantNotification()
{
ed = new ExecuteDelegate(this.Execute);
}
public void Invoke(string config, string assemblydir, string name, params object[] args)
{
ed.BeginInvoke(config, assemblydir, name, args, null, null);
}
public void Execute(string config,string assemblydir, string name, params object[] args)
{
try
{
XmlDocument notifications = new XmlDocument();
notifications.Load(config);
XmlNode settings = notifications.SelectSingleNode("//global");
XmlNode node = notifications.SelectSingleNode(
string.Format("//instant//notification [@name = '{0}']", name));
XmlDocument details = new XmlDocument();
XmlNode cont = details.CreateElement("details");
cont.AppendChild(details.ImportNode(settings,true));
cont.AppendChild(details.ImportNode(node,true));
details.AppendChild(cont);
if (node != null)
{
string assemblyFile =
String.Format("{0}{1}.dll", assemblydir, node.Attributes["assembly"].Value);
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
Notification n =
(Notification)Activator.CreateInstance(
nAssembly.GetType(node.Attributes["type"].Value));
n.SendNotification(details, args);
}
else
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, 666, "not found");
}
}
catch (Exception e)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, 666, e.Message);
}
}
}
}
-12
View File
@@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace NotificationsCore.Interfaces
{
interface INotification
{
bool SendNotification(XmlNode details, params object[] args);
}
}
-17
View File
@@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using NotificationsCore.Interfaces;
using System.Xml;
namespace NotificationsCore
{
public abstract class Notification: INotification
{
#region INotification Members
public virtual bool SendNotification(XmlNode details, params object[] args) { return false; }
#endregion
}
}
-322
View File
@@ -1,322 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NotificationsCore</RootNamespace>
<AssemblyName>NotificationsCore</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkProfile />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="AutoMapper, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="AutoMapper.Net4, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="businesslogic, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\businesslogic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency.1.8.4\lib\net45\ClientDependency.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<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.5780.28253, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\cms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="controls, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
<HintPath>..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Examine, Version=0.1.68.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.68.0\lib\Examine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\packages\HtmlAgilityPack.1.4.9\lib\Net45\HtmlAgilityPack.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor, Version=2.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.3.0.0\lib\net45\ImageProcessor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor.Web, Version=4.4.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.4.0.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.5780.28247, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\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="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\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">
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security.Cookies, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebHelpers.3.2.3\lib\net45\Microsoft.Web.Helpers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MySql.Data, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.6.9.7\lib\net45\MySql.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="SQLCE4Umbraco, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\SQLCE4Umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\TidyNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.5780.28255, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Core, Version=1.0.5780.28249, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.DataLayer, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.DataLayer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.editorControls, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.editorControls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.MacroEngines, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.MacroEngines.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.providers, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.providers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Web.UI, Version=1.0.5780.28259, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Web.UI.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UmbracoExamine, Version=0.7.0.28253, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UmbracoExamine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.60829.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45\WebMatrix.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebMatrix.WebData, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.WebData.3.2.3\lib\net45\WebMatrix.WebData.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="InstantNotification.cs" />
<Compile Include="Interfaces\INotification.cs" />
<Compile Include="Notification.cs" />
<Compile Include="NotificationTypes\NewForumTopic.cs" />
<Compile Include="NotificationTypes\NewForumTopicComment.cs" />
<Compile Include="SheduledNotification.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OurUmbraco\OurUmbraco.csproj">
<Project>{a8e5c936-ecab-45b3-bfda-d12f680eb2a6}</Project>
<Name>OurUmbraco</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable 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('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
<Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
</Target>
<!-- 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="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-52
View File
@@ -1,52 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using System.Reflection;
using System.Xml;
namespace NotificationsCore
{
public class NotificationExecuter
{
public string Name { get; set; }
public double Interval { get; set; }
public string Assembly { get; set; }
public string Type { get; set; }
public XmlNode Details { get; set; }
Timer timer = new Timer();
public NotificationExecuter(string name, double interval, string assembly, string type, XmlNode details)
{
this.Name = name;
this.Interval = interval;
this.Assembly = assembly;
this.Type = type;
this.Details = details;
}
public void Start()
{
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Interval = Interval;
timer.Enabled = true;
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
string assemblyFile =
String.Format("{0}.dll", Assembly);
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
Notification n =
(Notification)Activator.CreateInstance(
nAssembly.GetType(Type));
n.SendNotification(Details);
}
}
}
@@ -1,113 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Data.SqlClient;
using umbraco.cms.businesslogic.member;
using umbraco.presentation.nodeFactory;
using umbraco.cms.businesslogic.web;
using System.Web;
using OurUmbraco.Forum.Models;
namespace NotificationsCore.NotificationTypes
{
public class NewForumTopic: Notification
{
public NewForumTopic()
{
}
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
{
try
{
var topic = (Topic)args[0];
string url = (string)args[1];
var memberName = (string)args[2];
if (topic.IsSpam)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Topic ID {0} is marked as spam, no notification sent{0}", topic.Id));
return true;
}
SmtpClient c = new SmtpClient();
//c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
MailAddress from = new MailAddress(
details.SelectSingleNode("//from/email").InnerText,
details.SelectSingleNode("//from/name").InnerText);
string subject = details.SelectSingleNode("//subject").InnerText;
string body = details.SelectSingleNode("//body").InnerText;
//currently using document api instead of nodefactory
Document forum = new Document(topic.ParentId);
subject = string.Format(subject, forum.Text);
var domain = details.SelectSingleNode("//domain").InnerText;
body = string.Format(body, forum.Text, "https://" + domain + url, memberName, topic.Title, HttpUtility.HtmlDecode(umbraco.library.StripHtml(topic.Body)));
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString);
SqlCommand comm = new SqlCommand("Select memberId from forumSubscribers where forumId = @forumId", conn);
comm.Parameters.AddWithValue("@forumId", topic.ParentId);
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
int mid = dr.GetInt32(0);
try
{
Member m = new Member(mid);
if (m.Id != topic.MemberId
&& (m.getProperty("bugMeNot").Value.ToString() != "1"))
{
MailMessage mm = new MailMessage();
mm.Subject = subject;
mm.Body = body;
mm.To.Add(m.Email);
mm.From = from;
c.Send(mm);
}
}
catch(Exception e)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1,
"[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message);
}
}
conn.Close();
}
catch (Exception e)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
}
return true;
}
}
}
@@ -1,107 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Data.SqlClient;
using umbraco.cms.businesslogic.member;
using System.Web;
using OurUmbraco.Forum.Models;
using Umbraco.Core.Models;
using Umbraco.Web;
using Umbraco.Core;
using Umbraco.Web.Security;
namespace NotificationsCore.NotificationTypes
{
public class NewForumTopicComment: Notification
{
public NewForumTopicComment()
{
}
public override bool SendNotification(System.Xml.XmlNode details, params object[] args)
{
try
{
Comment com = (Comment)args[0];
Topic topic = (Topic)args[1];
string url = (string)args[2];
string memberName = (string)args[3];
if (com.IsSpam)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, string.Format("[Notifications] Comment Id {{0}} is marked as spam, no notification sent{0}", com.Id));
return true;
}
//SMTP SETTINGS
SmtpClient c = new SmtpClient();
//c.Credentials = new System.Net.NetworkCredential(details.SelectSingleNode("//username").InnerText, details.SelectSingleNode("//password").InnerText);
//SENDER ADDRESS
MailAddress from = new MailAddress(
details.SelectSingleNode("//from/email").InnerText,
details.SelectSingleNode("//from/name").InnerText);
//Notification details
var domain = details.SelectSingleNode("//domain").InnerText;
var subject = string.Format(details.SelectSingleNode("//subject").InnerText, topic.Title);
var body = details.SelectSingleNode("//body").InnerText;
body = string.Format(body, topic.Title, "https://" + domain + url + "#comment-" + com.Id, memberName, HttpUtility.HtmlDecode(umbraco.library.StripHtml(com.Body)));
//connect to DB
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["umbracoDbDSN"].ConnectionString);
SqlCommand comm = new SqlCommand("Select memberId from forumTopicSubscribers where topicId = @topicId", conn);
comm.Parameters.AddWithValue("@topicId", topic.Id);
conn.Open();
//shit this must be so fucking slow
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
{
int mid = dr.GetInt32(0);
try
{
var m = new umbraco.cms.businesslogic.member.Member(mid);
if (m.Id != com.MemberId
&& m.getProperty("bugMeNot").Value.ToString() != "1")
{
MailMessage mm = new MailMessage();
mm.Subject = subject;
mm.Body = body;
mm.To.Add(m.Email);
mm.From = from;
c.Send(mm);
}
}
catch (Exception e)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1,
"[Notifications] Error sending mail to " + mid.ToString() + " " + e.Message);
}
}
conn.Close();
}
catch (Exception e)
{
umbraco.BusinessLogic.Log.Add(umbraco.BusinessLogic.LogTypes.Debug, -1, "[Notifications]" + e.Message);
}
return true;
}
}
}
-36
View File
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Notification")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Notification")]
[assembly: AssemblyCopyright("Copyright © 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("df83d509-8920-49a4-a9e0-41665d8bfa42")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
-52
View File
@@ -1,52 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using System.Reflection;
using System.Xml;
namespace NotificationsCore
{
public class SheduledNotification
{
public string Name { get; set; }
public double Interval { get; set; }
public string Assembly { get; set; }
public string Type { get; set; }
public XmlNode Details { get; set; }
Timer timer = new Timer();
public SheduledNotification(string name, double interval, string assembly, string type, XmlNode details)
{
this.Name = name;
this.Interval = interval;
this.Assembly = assembly;
this.Type = type;
this.Details = details;
}
public void Start()
{
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Interval = Interval;
timer.Enabled = true;
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
string assemblyFile =
String.Format("{0}.dll", Assembly);
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
Notification n =
(Notification)Activator.CreateInstance(
nAssembly.GetType(Type));
n.SendNotification(Details);
}
}
}
-59
View File
@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
-42
View File
@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
<package id="Examine" version="0.1.68.0" targetFramework="net451" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="semver" version="1.1.2" targetFramework="net451" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
</packages>
-10
View File
@@ -1,10 +0,0 @@
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="url" value="http://dreamingofawhitechristmas.our.umbraco.org/umbraco/plugins/Notifications/SheduledTaskTrigger.aspx"/>
<add key="interval" value="900000"/>
<!--
<add key="configFile" value="C:\Users\Tim Geyssens\Documents\Visual Studio 2008\Umbraco\OUR\NotificationMailer\NotificationMailer.config"/>
-->
</appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup></configuration>
-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<notification name="New forum post" interval="200" assembly="temp" type="temp">
<from>
<name>Our umbraco</name>
<email>robot@umbraco.org</email>
</from>
<subject>There has been a new post</subject>
<body>There has been a new post</body>
</notification>
<notification name="Another forum post" interval="100" assembly="temp" type="temp">
<from>
<name>Our umbraco</name>
<email>robot@umbraco.org</email>
</from>
<subject>There has been a new post</subject>
<body>There has been a new post</body>
</notification>
</configuration>
@@ -1,53 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using System.Reflection;
using Notifications;
using System.Xml;
namespace NotificationMailer
{
public class NotificationExecuter
{
public string Name { get; set; }
public double Interval { get; set; }
public string Assembly { get; set; }
public string Type { get; set; }
public XmlNode Details { get; set; }
Timer timer = new Timer();
public NotificationExecuter(string name, double interval, string assembly, string type, XmlNode details)
{
this.Name = name;
this.Interval = interval;
this.Assembly = assembly;
this.Type = type;
this.Details = details;
}
public void Start()
{
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Interval = Interval;
timer.Enabled = true;
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
string assemblyFile =
String.Format("{0}.dll", Assembly);
Assembly nAssembly = System.Reflection.Assembly.LoadFrom(assemblyFile);
Notification n =
(Notification)Activator.CreateInstance(
nAssembly.GetType(Type));
n.SendNotification(Details);
}
}
}
@@ -1,85 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{F41D51B7-3ECF-4C4C-955E-6E761345E18E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NotificationMailer</RootNamespace>
<AssemblyName>NotificationMailer</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Data" />
<Reference Include="System.Management" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="NotificationService.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="NotificationService.Designer.cs">
<DependentUpon>NotificationService.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="ProjectInstaller.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ProjectInstaller.Designer.cs">
<DependentUpon>ProjectInstaller.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="NotificationService.resx">
<DependentUpon>NotificationService.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ProjectInstaller.resx">
<DependentUpon>ProjectInstaller.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.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="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
-40
View File
@@ -1,40 +0,0 @@
namespace NotificationMailer
{
partial class NotificationService
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// NotificationService
//
this.ServiceName = "NotificationService";
}
#endregion
}
}
-88
View File
@@ -1,88 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Xml;
using System.Configuration;
using System.Threading;
using System.Net;
namespace NotificationMailer
{
public partial class NotificationService : ServiceBase
{
public NotificationService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = double.Parse(ConfigurationSettings.AppSettings["interval"]);
timer.Enabled = true;
timer.Start();
//XmlDocument notifications = new XmlDocument();
//notifications.Load(ConfigurationSettings.AppSettings["configFile"]);
//XmlNode settings = notifications.SelectSingleNode("//global");
//XmlNodeList xnl = notifications.SelectNodes("//sheduled//notification");
//foreach (XmlNode node in xnl)
//{
// XmlDocument details = new XmlDocument();
// XmlNode cont = details.CreateElement("details");
// cont.AppendChild(details.ImportNode(settings, true));
// cont.AppendChild(details.ImportNode(node, true));
// details.AppendChild(cont);
// SheduledNotification n =
// new SheduledNotification(
// node.Attributes["name"].Value,
// double.Parse(node.Attributes["interval"].Value),
// node.Attributes["assembly"].Value,
// node.Attributes["type"].Value,
// details);
// Thread nThread = new Thread(new ThreadStart(n.Start));
// nThread.Start();
//}
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(ConfigurationSettings.AppSettings["url"]);
HttpWebResponse response = (HttpWebResponse)
request.GetResponse();
}
protected override void OnStop()
{
}
//public static string GetNodeValue(XmlNode n)
//{
// if (n == null || n.FirstChild == null)
// return string.Empty;
// return n.FirstChild.Value;
//}
}
}
-123
View File
@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
-23
View File
@@ -1,23 +0,0 @@
using System;
using System.Collections.Generic;
using System.ServiceProcess;
using System.Text;
namespace NotificationMailer
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new NotificationService()
};
ServiceBase.Run(ServicesToRun);
}
}
}
-58
View File
@@ -1,58 +0,0 @@
namespace NotificationMailer
{
partial class ProjectInstaller
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
//
// serviceProcessInstaller1
//
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
this.serviceProcessInstaller1.Password = null;
this.serviceProcessInstaller1.Username = null;
//
// serviceInstaller1
//
this.serviceInstaller1.ServiceName = "NotificationService";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
//
// ProjectInstaller
//
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
this.serviceProcessInstaller1,
this.serviceInstaller1});
}
#endregion
private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
private System.ServiceProcess.ServiceInstaller serviceInstaller1;
}
}
-19
View File
@@ -1,19 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
namespace NotificationMailer
{
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
}
}
-129
View File
@@ -1,129 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="serviceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="serviceInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>196, 17</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>
@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("NotificationMailer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NotificationMailer")]
[assembly: AssemblyCopyright("Copyright © 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d9a67c91-946c-4774-b7d7-dc4f97a17a1d")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
-31
View File
@@ -1,31 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace NotificationsWeb
{
public class Config
{
private static string _path = umbraco.GlobalSettings.FullpathToRoot + Path.DirectorySeparatorChar + "config" + Path.DirectorySeparatorChar;
private static string _filename = "Notification.config";
public static string AssemblyDir
{
get
{
return umbraco.GlobalSettings.FullpathToRoot + Path.DirectorySeparatorChar + "bin" + Path.DirectorySeparatorChar;
}
}
public static string ConfigurationFile
{
get
{
return _path + _filename;
}
}
}
}
-346
View File
@@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{6CF53D68-BD81-47BB-8F56-350A1B04F114}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NotificationsWeb</RootNamespace>
<AssemblyName>NotificationsWeb</AssemblyName>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkProfile />
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="AutoMapper, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="AutoMapper.Net4, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="businesslogic, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\businesslogic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency.1.8.4\lib\net45\ClientDependency.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<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.5780.28253, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\cms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="controls, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
<HintPath>..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Examine, Version=0.1.68.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.68.0\lib\Examine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\packages\HtmlAgilityPack.1.4.9\lib\Net45\HtmlAgilityPack.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor, Version=2.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.3.0.0\lib\net45\ImageProcessor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor.Web, Version=4.4.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.4.0.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.5780.28247, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\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="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\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">
<HintPath>..\packages\Microsoft.AspNet.Identity.Core.2.2.1\lib\net45\Microsoft.AspNet.Identity.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Owin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.3.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.3.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.3.0.1\lib\net45\Microsoft.Owin.Security.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security.Cookies, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.Cookies.3.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.Security.OAuth.3.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebHelpers.3.2.3\lib\net45\Microsoft.Web.Helpers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MiniProfiler, Version=2.1.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3, processorArchitecture=MSIL">
<HintPath>..\packages\MiniProfiler.2.1.0\lib\net40\MiniProfiler.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MySql.Data, Version=6.9.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.6.9.7\lib\net45\MySql.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Semver, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="SQLCE4Umbraco, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\SQLCE4Umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.Mobile" />
<Reference Include="System.Xml.Linq" />
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\TidyNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.5780.28255, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Core, Version=1.0.5780.28249, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.DataLayer, Version=1.0.5780.28252, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.DataLayer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.editorControls, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.editorControls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.MacroEngines, Version=1.0.5780.28258, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.MacroEngines.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.providers, Version=1.0.5780.28254, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\umbraco.providers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Web.UI, Version=1.0.5780.28259, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\Umbraco.Web.UI.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UmbracoExamine, Version=0.7.0.28253, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UmbracoExamine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.60829.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.3.1\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebMatrix.Data, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.Data.3.2.3\lib\net45\WebMatrix.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WebMatrix.WebData, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebPages.WebData.3.2.3\lib\net45\WebMatrix.WebData.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Api\NotificationsController.cs" />
<Compile Include="Config.cs" />
<Compile Include="EventHandlers\Forum.cs" />
<Compile Include="Library\Utils.cs" />
<Compile Include="Models\ForumSubscriber.cs" />
<Compile Include="Models\ForumTopicSubscriber.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Services\NotificationService.cs" />
<Compile Include="Singleton.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Notification\Notification.csproj">
<Project>{80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2}</Project>
<Name>Notification</Name>
</ProjectReference>
<ProjectReference Include="..\OurUmbraco\OurUmbraco.csproj">
<Project>{a8e5c936-ecab-45b3-bfda-d12f680eb2a6}</Project>
<Name>OurUmbraco</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<!-- 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="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<ProjectExtensions />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable 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('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureBclBuildImported" BeforeTargets="BeforeBuild" Condition="'$(BclBuildImported)' == ''">
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=317567." HelpKeyword="BCLBUILD2001" />
<Error Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" Text="The build restored NuGet packages. Build the project again to include these packages in the build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317568." HelpKeyword="BCLBUILD2002" />
</Target>
</Project>
@@ -1,35 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("NotificationsWeb")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NotificationsWeb")]
[assembly: AssemblyCopyright("Copyright © 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
-59
View File
@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
-42
View File
@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
<package id="Examine" version="0.1.68.0" targetFramework="net451" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="semver" version="1.1.2" targetFramework="net451" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
</packages>
+1 -1
View File
@@ -10,7 +10,7 @@ var gulp = require('gulp'),
imageMin = require('gulp-imagemin'),
clean = require('gulp-clean'),
svgmin = require('gulp-svgmin'),
cmq = require('gulp-combine-media-queries');
cmq = require('gulp-group-css-media-queries');
rename = require('gulp-rename');
var settings = {
+18 -18
View File
@@ -4,25 +4,25 @@
"description": "Umbraco Our gulpjs config",
"main": "gulpfile.js",
"private": true,
"dependencies": {
},
"dependencies": {},
"devDependencies": {
"gulp": "3.8.x",
"gulp-util": "2.2.x",
"gulp-watch": "0.6.x",
"gulp-minify-css": "1.1.x",
"node-sass": "3.2.x",
"gulp-sass": "2.0.x",
"gulp-combine-media-queries": "0.1.x",
"gulp-imagemin": "0.6.x",
"gulp-autoprefixer": "2.3.1",
"gulp-uglify": "0.3.x",
"gulp-jshint": "1.6.x",
"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"
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean": "*",
"gulp-concat": "^2.6.0",
"gulp-group-css-media-queries": "^1.1.0",
"gulp-imagemin": "^3.0.2",
"gulp-jshint": "^2.0.1",
"gulp-minify-css": "^1.2.4",
"gulp-rename": "*",
"gulp-sass": "^2.3.2",
"gulp-svgmin": "^1.2.2",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.7",
"gulp-watch": "^4.3.9",
"jshint": "^2.9.2",
"jshint-stylish": "^2.2.0",
"node-sass": "^3.8.0"
},
"scripts": {
"test": "gulp build --verbose"
+2 -2
View File
@@ -57,7 +57,7 @@ function GetSearchFilters(cssClass) {
if(cssClass === undefined) {
filters.category = undefined;
} else {
var category = cssClass.replace("-search-input", "");
var category = cssClass.replace("-search-input valid", "").replace("-search-input", "");
filters.category = category;
}
@@ -112,7 +112,7 @@ var projectSearch = _.debounce(function(ev) {
//iterate
_.each(response.items, function(item){
var image = (item.Fields.image && item.Fields.image.length > 0) ? item.Fields.image : "<i class='icon-Box'></i>";
var image = (item.Fields.image && item.Fields.image.length > 0) ? item.Fields.image : null;
var itemData = {
nodeName: item.Fields.nodeName,
body: _.escape(item.Fields.body.substring(0, 150)),
@@ -228,7 +228,7 @@
font-size: 1.1rem;
@media (min-width: $md) {
font-size: 1.5rem;
font-size: 1.35rem;
}
}
}
@@ -244,7 +244,7 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
align-items: flex-start;
.category, .version {
a {
@@ -260,13 +260,13 @@
.topic {
flex: 0 0 100%;
@media (min-width: $md) {
flex: 0 0 72%;
margin-right: 3%;
}
margin-bottom: .2rem;
word-break: break-all;
@media (min-width: $md) {
flex: 0 0 70%;
padding-right: 3px;
}
}
@@ -276,7 +276,7 @@
flex: 0 0 100%;
@media (min-width: $md) {
flex: 0 0 25%;
flex: 0 0 30%;
flex-direction: column;
}
@@ -30,7 +30,7 @@ header {
left: 0;
width: 100%;
}
.navigation {
position: relative;
z-index: 200;
@@ -54,11 +54,11 @@ header {
.logo {
background: url('/media/7514486/nous-sommes-france.png');
background: url('../images/logo.svg');
background-repeat: no-repeat;
background-position: left center;
background-size: 30px auto;
height: 60px;
line-height: 60px;
@@ -66,24 +66,21 @@ header {
text-indent: 40px;
text-decoration: none;
position: relative;
z-index: 300;
font-size: 1rem;
font-size: 1.15rem;
@include transition(all, .2s);
@media (min-width: $md) {
background-size: 40px auto;
text-indent: 46px;
text-indent: 50px;
&:hover {
color: rgba(#fff, .66);
background-size: 36px auto;
background-position: 4px center;
opacity: .6;
}
}
}
@@ -381,10 +378,10 @@ header {
height: 100%;
background: rgba($color-our, .98);
transform: translate(0, -100%);
@include transition(transform, .3s);
visibility: hidden;
opacity: 0;
@@ -480,4 +477,3 @@ header {
background: transparent;
}
}
@@ -145,6 +145,10 @@
font-size: .95rem;
line-height: 1.3;
h3 {
word-break: break-all;
}
a {
text-decoration: none;
display: block;
@@ -545,3 +549,8 @@
.topic-row.solved + .topic-row.solved {
margin-top: 20px;
}
.forum .forum-thread.solved {
background: rgba(163, 219, 120, 0.23) none repeat scroll 0 0;
border: 2px solid rgba(163, 219, 120, 0.66);
}
@@ -216,13 +216,9 @@
}
a {
text-decoration: none;
a {
text-decoration: underline;
font-family: $font-family;
&:hover {
text-decoration: underline;
}
}
@@ -129,7 +129,7 @@ section.forum {
.forum-thread, .person-activity {
background: #fff;
padding: 15px;
padding: 25px;
margin-bottom: 30px;
border: 1px solid darken(#f6f6f6, 5%);
transition: box-shadow .2s;
@@ -182,6 +182,7 @@ section.forum {
color: #000;
line-height: 1.3;
font-size: 1rem;
word-break: break-all;
@media (min-width: $md) {
font-size: 1.1rem;
-14
View File
@@ -1,14 +0,0 @@
<access>
<page id="1057" loginPage="4729" noRightsPage="4729" simple="False">
<group id="standard" />
</page>
<page id="6772" loginPage="1056" noRightsPage="1056" simple="False">
<group id="standard" />
</page>
<page id="8283" loginPage="1056" noRightsPage="4729" simple="False">
<group id="wiki editor" />
</page>
<page id="8615" loginPage="1056" noRightsPage="4729" simple="False">
<group id="wiki editor" />
</page>
</access>
-11
View File
@@ -1,11 +0,0 @@
<access>
<page id="1057" loginPage="4729" noRightsPage="4729" simple="False">
<group id="standard" />
</page>
<page id="6772" loginPage="1056" noRightsPage="1056" simple="False">
<group id="standard" />
</page>
<page id="8283" loginPage="1056" noRightsPage="4729" simple="False">
<group id="wiki editor" />
</page>
</access>
@@ -0,0 +1,31 @@
function modelsBuilderController($scope, umbRequestHelper, $log, $http, modelsBuilderResource) {
$scope.generate = function() {
$scope.generating = true;
umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
'Failed to generate.')
.then(function (result) {
$scope.generating = false;
$scope.dashboard = result;
});
};
$scope.reload = function () {
$scope.ready = false;
modelsBuilderResource.getDashboard().then(function (result) {
$scope.dashboard = result;
$scope.ready = true;
});
};
function init() {
modelsBuilderResource.getDashboard().then(function(result) {
$scope.dashboard = result;
$scope.ready = true;
});
}
init();
}
angular.module("umbraco").controller("Umbraco.Dashboard.ModelsBuilderController", modelsBuilderController);
@@ -0,0 +1,41 @@
<div id="modelsBuilder" ng-controller="Umbraco.Dashboard.ModelsBuilderController">
<div ng-show="ready" style="float: right;">
<button type="button" class="btn" ng-click="reload()"><span>Reload</span></button>
</div>
<h3>Models Builder</h3>
<div ng-show="!ready">
Loading...
</div>
<div ng-show="ready">
<div ng-bind-html-unsafe="dashboard.text"></div>
<div ng-if="dashboard.outOfDateModels">
<p>Models are <strong>out-of-date</strong>.
</p>
</div>
<div ng-if="dashboard.canGenerate">
<div ng-if="dashboard.generateCausesRestart">
<p style="color: red; font-weight: bold;">Generating models will restart the application.</p>
</div>
<div ng-show="!generating">
<button type="button" ng-click="generate()" class="btn btn-danger">
<span>Generate models</span>
</button>
</div>
<div class="umb-loader-wrapper" ng-show="generating">
<div class="umb-loader"></div>
</div>
</div>
<div ng-if="dashboard.lastError" style="margin-top: 32px;" ng-show="!generating">
<span style="color: red; font-weight: bold;">Last generation failed with the following error:</span>
<pre style="width: 80%; white-space: pre-line; background: #f8f8f8; padding: 4px; font-size: small;">{{dashboard.lastError}}</pre>
</div>
</div>
</div>
@@ -0,0 +1,23 @@
function modelsBuilderResource($q, $http, umbRequestHelper) {
return {
getModelsOutOfDateStatus: function () {
return umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetModelsOutOfDateStatus")),
"Failed to get models out-of-date status");
},
buildModels: function () {
return umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
"Failed to build models");
},
getDashboard: function () {
return umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetDashboard")),
"Failed to get dashboard");
}
};
}
angular.module("umbraco.resources").factory("modelsBuilderResource", modelsBuilderResource);
@@ -0,0 +1,7 @@
{
//array of files we want to inject into the application on app_start
javascript: [
'~/App_Plugins/ModelsBuilder/modelsbuilder.controller.js',
'~/App_Plugins/ModelsBuilder/modelsbuilder.resource.js'
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+1 -1
View File
@@ -1 +1 @@
<svg height="50" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h50v50H0z"/><path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M35.89 30.054L25 40.944l-10.89-10.89M25 9v31.445"/></svg>
<svg height="50" viewBox="0 0 50 50" width="50" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h50v50H0z"/><path fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M35.891 30.054L25 40.943l-10.89-10.89M25 9v31.445"/></svg>

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 276 B

+1 -1
View File
@@ -1 +1 @@
<svg height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="M396.6 160l19.4 20.7L256 352 96 180.7l19.3-20.7L256 310.5"/></svg>
<svg height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="M396.6 160l19.4 20.7L256 352 96 180.7l19.3-20.7L256 310.5z"/></svg>

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 163 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#98D768" d="M-267 316l8-5v-8l14-17h-36l14 17"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#98D768" d="M-267 316l8-5v-8l14-17h-36l14 17z"/></svg>

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 131 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#191919" d="M-267 316l8-5v-8l14-17h-36l14 17"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-281 286 36 30"><path fill="#191919" d="M-267 316l8-5v-8l14-17h-36l14 17z"/></svg>

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 131 B

+1
View File
@@ -1 +1,2 @@
<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>c:\ourtestpublish</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
@@ -1,5 +1,10 @@
@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">
@@ -28,10 +33,28 @@
</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())
{
@Html.Partial("home/forumactivity")
@@ -1,6 +1,55 @@
@using OurUmbraco.Documentation.Busineslogic
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<style>
#markdown-docs .anchorjs-link {
color: #ff6e00 !important;
font-size: 20px !important;
text-decoration: none !important;
}
#markdown-docs a.offset-anchor {
visibility: hidden;
position: relative;
top: -100px;
display: block;
}
</style>
@*<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.2.1/anchor.js"></script>*@
<script type="text/javascript" src="/scripts/anchorjs/anchorjs.custom.js"></script>
<script type="text/javascript">
$(document).ready(function () {
anchors.options = {
placement: 'left',
visible: "hover",
anchorCreated: function(e) {
var id = $(e).attr('id');
//clear it's id since we'll be creating a custom anchor point with an offset
$(e).removeAttr("id");
$(e).addClass("anchorjs-heading");
$(e).prepend("<a class='offset-anchor' id='" + id + "'></a>");
}
};
anchors.add('.markdown-syntax h1, .markdown-syntax h2, .markdown-syntax h3, .markdown-syntax h4, .markdown-syntax h5, .markdown-syntax h5');
var element = $(window.location.hash);
if (element.length === 1) {
setTimeout(function() {
//hightlight it
element.closest(".anchorjs-heading").css("color", "#ff6e00");
element.closest(".anchorjs-heading").find("a").not(".anchorjs-link").css("color", "#ff6e00");
}, 100);
}
$("#markdown-docs .anchorjs-link").click(function() {
if (element.length === 1) {
//un hightlight it
element.closest(".anchorjs-heading").css("color", "inherit");
element.closest(".anchorjs-heading").find("a").not(".anchorjs-link").css("color", "inherit");
}
});
});
</script>
@{
var path = HttpContext.Current.Items[MarkdownLogic.MarkdownPathKey].ToString();
var ml = new MarkdownLogic(path) { PrefixLinks = false };
@@ -17,7 +17,7 @@
bool.TryParse(Request["noreplies"], out noreplies);
var cat = -1;
if (CurrentPage.Level > 3)
if (CurrentPage.Level > 2)
{
cat = CurrentPage.Id;
}
@@ -47,9 +47,9 @@
var pages = (totalTopics / pageSize) + 1;
var categories = CurrentPage.AncestorOrSelf(2);
var categories = Model.Content.AncestorOrSelf(2);
}
@if (Model.Content.NewTopicsAllowed() == false)
@if (Model.Content.NewTopicsAllowed() == false || Model.Content.AncestorOrSelfIsArchived())
{
var notification = Model.Content.GetPropertyValue<string>("mainNotification");
if (string.IsNullOrWhiteSpace(notification))
@@ -84,17 +84,17 @@
{
foreach (var tag in CurrentPage.Parent.Children)
{
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Parent.Name - @tag.Name</option>
<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 main in categories.Children)
foreach (var tag in categories.Children)
{
foreach (var tag in main.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.Parent.Name - @tag.Name</option>
<option class="@tag.Name.ToLower().Replace(" ", "")" value="@tag.Id" @(CurrentPage.Id == tag.Id ? "selected" : null)>@tag.Name</option>
}
}
}
@@ -1,10 +1,11 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.NotificationsWeb.Library
@inherits Umbraco.Web.Macros.PartialViewMacroPage
<div class="utility-actions">
@if (Members.IsLoggedIn())
{
if (Model.Content.NewTopicsAllowed())
if (Model.Content.AncestorOrSelfIsArchived() == false && Model.Content.NewTopicsAllowed())
{
<a href="#" class="button create-new-thread" data-controller="topic">
<i class="icon-Add"></i><span>Create new</span>
@@ -15,23 +16,20 @@
var subscribed = false;
if (mem != null)
{
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
subscribed = Utils.IsSubscribedToForum(CurrentPage.Id, mem.Id);
}
if (CurrentPage.Level == 4)
if (subscribed)
{
if (subscribed)
{
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
<i class="icon-Bookmark"></i><span>Following</span>
</a>
}
else
{
<a href="#" class="follow button transparent" data-id="@CurrentPage.Id" data-controller="">
<i class="icon-Bookmark"></i><span>Follow</span>
</a>
}
<a href="#" class="follow button following" data-id="@CurrentPage.Id" data-controller="">
<i class="icon-Bookmark"></i><span>Following</span>
</a>
}
else
{
<a href="#" class="follow button transparent" data-id="@CurrentPage.Id" data-controller="">
<i class="icon-Bookmark"></i><span>Follow</span>
</a>
}
}
else
@@ -19,7 +19,7 @@
var cat = Umbraco.TypedContent(topic.ParentId);
var mem = Members.GetById(topic.LatestReplyAuthor) ?? Members.GetById(topic.MemberId);
<a href="@topic.GetUrl()" class="forum-thread">
<a href="@topic.GetUrl()" class="forum-thread @Umbraco.If(topic.Answer > 0, " solved")">
<div class="avatar">
@if(mem != null)
@@ -2,6 +2,7 @@
@using System.Web.Mvc.Html
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Library
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
@@ -98,7 +99,7 @@
var subscribed = false;
if (mem != null)
{
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
}
if (Members.IsAdmin())
@@ -149,4 +150,14 @@
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,5 +1,6 @@
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Library
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var topicService = new TopicService(ApplicationContext.DatabaseContext);
@@ -15,7 +16,7 @@
var subscribed = false;
if (mem != null)
{
subscribed = NotificationsWeb.Library.Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
subscribed = Utils.IsSubscribedToForumTopic(topic.Id, mem.Id);
}
if (Members.IsAdmin())
@@ -17,18 +17,22 @@
@if (CurrentPage.Parent.DocumentTypeAlias != "Project")
{
var categories = Model.Content.AncestorOrSelf(2).Children.Where(m => m.NewTopicsAllowed()).ToList();
var categoriesIncludeCurrentPage = categories.Any(x => x.Id == Model.Content.Id);
<div class="col-sm-3 col-xs-6">
<select name="topic-category" id="topic-category" class="markdown-control">
<option value="" selected="" disabled="">Choose a category</option>
@foreach (var main in Model.Content.AncestorOrSelf(2).Children)
@if (categoriesIncludeCurrentPage)
{
foreach (var cat in main.Children)
{
if (cat.NewTopicsAllowed())
{
<option class="@cat.Name.ToLower().Replace(" ", "")" value="@cat.Id">@cat.Parent.Name - @cat.Name</option>
}
}
<option value="" disabled="">Choose a category</option>
}
else
{
<option value="" selected="" disabled="">Choose a category</option>
}
@foreach (var cat in categories)
{
<option class="@cat.Name.ToLower().Replace(" ", "")" value="@cat.Id" selected="@(cat.Id == Model.Content.Id ? "" : null)">@cat.Name</option>
}
</select>
</div>
@@ -135,8 +139,10 @@
<div class="body markdown-syntax">
{{#isSpam}}
<div class="alert">
Sorry if we're causing you any inconvenience but this comment has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your comment. <br>
Only moderators and the comment author starter can see this comment. When this comment has been marked as clean, this comment will be shown as normal.<br>
Sorry if we're causing you any inconvenience but this comment has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
Only moderators and the comment author can see this comment. When this comment has been approved this comment will be shown as normal. After that, your future comments will not need manual approval. <br /><br />
<strong>Note:</strong>We will send you an email when your account has been approved.<br /><br />
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
</div>
{{/isSpam}}
{{{body}}}
@@ -12,7 +12,10 @@
}
}
@if (showNotification)
@Html.Action("RenderTerms", "TermsAndConditions")
@* We'll show it differently on the homepage *@
@if (showNotification && Model.Content.Id != home.Id)
{
<div class="alertbar__yellow">
@Html.Raw(notificationText)
@@ -1,5 +1,5 @@
@using NotificationsWeb.Services
@using OurUmbraco.Forum.Services
@using OurUmbraco.NotificationsWeb.Services
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
@@ -1,10 +1,14 @@
@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
@{
//This is the main Our project search
const int pagesToShowLeft = 4;
const int pagesToShowRight = 2;
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "createDate";
var page = !string.IsNullOrEmpty(Request["page"]) ? int.Parse(Request["page"]) : 1;
var category = Request["category"];
@@ -21,15 +25,15 @@
headline = category == "uaas" ? "Umbraco as a Service" : category.ToLowerInvariant();
}
var filters = new List<SearchFilters>();
var searchFilters = new SearchFilters(BooleanOperation.And);
//MUST be live
searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
var filters = new List<SearchFilters> { searchFilters };
if (!string.IsNullOrEmpty(category))
{
var categoryFilters = new SearchFilters(BooleanOperation.Or);
//NOTE: We could add multiple category searches here if we wanted to match on multiple,
// you'd need to split the 'category' query string into each category and add a filter per item
// since it is an "OR" clause above it will match any of the categories
//NOTE: categories are indexed as lower case and are not tokenized so must be an exact match and therefore
// require quotes
//NOTE: categories are indexed as lower case and are not tokenized so must be an exact match and therefore require quotes
if (category.ToLowerInvariant() == "uaas".ToLowerInvariant())
{
@@ -45,21 +49,36 @@
if (!string.IsNullOrEmpty(version))
{
var versionFilters = new SearchFilters(BooleanOperation.Or);
//NOTE: We could add multiple version searches here if we wanted to match on multiple,
// you'd need to split the 'version' query string into each version and add a filter per item
// since it is an "OR" clause above it will match any of the versions, if however you wanted to filter
// to only match projects that are tagged for the inclusive versions, you'd change the Boolean op to AND.
//NOTE: We are doing a *wildcard* search here because versions are stored as comma delimited values in the index
// when I release the next version of Examine this will be different since we'll store each version separately in the same version
// field which will be nicer to query.
versionFilters.Filters.Add(new SearchFilter("versions", string.Format("{0}.*", version.Trim())));
filters.Add(versionFilters);
//need to clean up this string, it could be all sorts of things
var parsedVersion = version.GetFromUmbracoString();
if (parsedVersion != null)
{
var fromVersion = parsedVersion.GetNumericalValue();
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);
}
}
var searcher = new OurSearcher(term, "project", orderMode, filters: filters, maxResults: pageSize * page);
var examineOrder = orderMode;
if (examineOrder == "popularity")
{
examineOrder = string.Concat(orderMode, "[Type=INT]");
}
else if (examineOrder == "createDate")
{
examineOrder = string.Concat(orderMode, "[Type=LONG]");
}
var search = searcher.Search();
//TODO: cache for 1 minute with this key just need to ensure the enumerable in the result is finalized
//var key = string.Format("ListProjects.{0}.{1}.{2}.{3}.{4}", page, orderMode, term, version, category);
var searcher = new OurSearcher(term,
"project", examineOrder,
filters: filters, maxResults: pageSize * page);
var search = searcher.Search("projectSearcher");
var total = search.SearchResults.TotalItemCount;
var pages = (total / pageSize) + 1;
@@ -90,23 +109,30 @@
return defaultVal;
}
public string ParseVersion(string version)
public string ParseVersion(SearchResult result)
{
if (string.IsNullOrEmpty(version))
var versions = result.GetValues("versions").ToList();
if (result.Fields.Keys.Contains("versions"))
{
versions.Add(result["versions"]);
}
var orderedVersions = versions
.Select(x =>
{
Version v;
return Version.TryParse(x, out v) ? v : null;
}).WhereNotNull()
.OrderByDescending(x => x)
.ToArray();
if (orderedVersions.Any() == false)
return "n/a";
var versions = version.Trim(',').Split(',').Select(decimal.Parse).ToArray();
if (orderedVersions.Length == 1)
return orderedVersions.First() + "+";
if (!versions.Any())
return "n/a";
if (versions.Count() == 1)
return (versions.First()) + "+";
var high = versions.Max();
var low = versions.Min();
return high.ToString("N2") + "-" + low.ToString("N2");
return orderedVersions.Min() + " - " + orderedVersions.Max();
}
}
<h1>Browse @headline projects</h1>
@@ -114,7 +140,11 @@
<div class="box">
<div class="row">
<div class="col-xs-2 col-md-1">
{[ if (image != null) { ]}
<img src="{{image}}" alt="">
{[ } else { ]}
<i class='icon-Box'></i>
{[ } ]}
</div>
<div class="col-xs-10 col-md-6">
<div class="forum-thread-text">
@@ -173,7 +203,7 @@
<div class="other">
<div class="package-badge">
<span class="package-name">version</span>
<span class="package-number">@ParseVersion(GetField(childPage.Fields, "versions"))</span>
<span class="package-number">@ParseVersion(childPage)</span>
</div>
<span class="stats">
<span class="downloads">
@@ -187,8 +217,8 @@
</div>
</div>
</div>
}
}
}
}
<nav class="pagination" role="navigation">
@if (page > 1)
{
@@ -199,7 +229,7 @@
{
<a class="@Umbraco.If(i == page, "active")" href="?page=@i&@url">@i</a>
}
@if (page < pages)
{
<span>&hellip;</span>
@@ -1,6 +1,7 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using OurUmbraco.Forum.Extensions
@using OurUmbraco.Our
@using OurUmbraco.Project
@using OurUmbraco.Project.Services
@using OurUmbraco.Wiki.BusinessLogic
@@ -65,7 +66,7 @@
<div class="package-detail-description">
<h1>@project.Name</h1>
@Html.Raw(project.GetPropertyValue("description"))
@Html.Raw(project.GetPropertyValue<string>("description").CleanHtmlAttributes())
</div>
@@ -118,6 +119,10 @@
<div class="type-description">
uploaded @release.CreateDate.ToShortDateString() by @owner.Name<br>
<span>For Umbraco: @string.Join(", ", release.Versions.Select(x => x.Name)) & .NET Version: @release.DotNetVersion</span>
@if (string.IsNullOrWhiteSpace(release.MinimumVersionStrict) == false)
{
<span><strong>Note that the minimum version required to install this package is @release.MinimumVersionStrict</strong></span>
}
</div>
</div>
</a>
@@ -0,0 +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 (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;
}
}
@@ -2,19 +2,23 @@
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "updateDate";
var orderMode = !string.IsNullOrEmpty(Request["orderBy"]) ? Request["orderBy"] : "createDate";
var page = !string.IsNullOrEmpty(Request["page"]) ? int.Parse(Request["page"]) : 1;
var category = Request["category"];
var version = Request["version"];
var term = Request["term"];
var pageSize = 50;
//TODO: If we are searching on projects, they need to be filtered to approved/live!
//TODO: Depending on what order by this is, we need to pass in a data
// type here, for example, if its an INT or a Date!
OurSearcher searcher = new OurSearcher(term, orderBy: orderMode);
IEnumerable<SearchResult> result = new List<SearchResult>();
var url = "orderBy=" + orderMode + "&q=" + term + "&version=" + version;
var pages = 0;
if(string.IsNullOrEmpty(term) == false){
var search = searcher.Search();
var total = search.SearchResults.TotalItemCount;
@@ -0,0 +1,13 @@
@using OurUmbraco.Our.Controllers
@model OurUmbraco.Our.Models.TermsAndConditionsModel
@if (Model.ShowTermsAndConditionsBanner)
{
<div class="alertbar__blue">
Hi! The <a href="/terms-and-conditions">terms and conditions</a> for Our Umbraco have changed. <a href="/terms-and-conditions">Give them a read (we promise they're short)</a>.<br />
Your continued use of this site after changes are posted constitutes your acceptance of the terms and conditions as modified.<br />
@using (Html.BeginUmbracoForm<TermsAndConditionsController>("AcceptTerms"))
{
<input type="submit" value="Okay, noted" style="margin-top: 10px;" class="button" />
}
</div>
}
@@ -18,6 +18,7 @@
var topic = topicService.CurrentTopic(this.Context, ApplicationContext.ApplicationCache.RequestCache);
var forum = Umbraco.TypedContent(topic.ParentId);
var forumReadOnly = forum.NewTopicsAllowed() == 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()))
@@ -48,8 +49,23 @@
<a href="/member/@commentAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(commentAuthor, 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)
{
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a> (marked as the answer)<br />", html, vote.MemberId, vote.MemberName);
}
else
{
html = string.Format("{0}<a href=\"/member/{1}\">{2}</a><br />", html, vote.MemberId, vote.MemberName);
}
}
<div class="highfive-count">
@*html = string.Format("{0}<a href=\"/documentation/our/karma\" class=\"explain\">what is this?</a><br />", html);*@
}
<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"))
@@ -70,8 +86,10 @@
{
<span>You can see this comment because you're a moderator of the forum.</span><br/><br/>
}
Sorry if we're causing you any inconvenience but this comment has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your comment. <br/>
Only moderators and the comment author starter can see this comment. When this comment has been marked as clean, this comment will be shown as normal.<br/>
Sorry if we're causing you any inconvenience but this comment has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
Only moderators and the comment author can see this comment. When this comment has been approved this comment will be shown as normal. After that, your future comments will not need manual approval.<br /><br />
<strong>Note:</strong> We will send you an email when your account has been approved.<br /><br />
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
</div>
}
@@ -39,15 +39,22 @@
<div class="comment-inner">
<a href="/member/@topicAuthor.Id" class="photo">@Html.Raw(OurUmbraco.Our.Utils.GetMemberAvatar(topicAuthor, 75))</a>
<div class="highfive highfive-question">
<div class="highfive-count">
@{
var html = "High fives from:<br />";
foreach (var vote in Model.Votes)
{
html = string.Format("{0}<a href='/member/{1}'>{2}</a><br />", html, vote.MemberId, vote.MemberName);
}
@*html = string.Format("{0}<a href=\"/documentation/our/karma\" class=\"explain\">what is this?</a><br />", html);*@
}
<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 (currentMember.Id != Model.MemberId)
{
<a href="#" data-id="@Model.Id"><img src="/assets/images/highfive.svg" alt="high five" />High Five</a>
<a href="#" data-id="@Model.Id"><img src="/assets/images/highfive.svg" alt="high five"/>High Five</a>
}
}
</div>
@@ -77,10 +84,12 @@
<div class="alert">
@if (Members.IsAdmin())
{
<span>You can see this topic because you're a moderator of the forum.</span><br /><br />
<span>You can see this topic because you're a moderator of the forum.</span><br/><br/>
}
Sorry if we're causing you any inconvenience but this topic has been automatically marked as spam. A moderator has been notified and will evaluate the validity of your topic. <br />
Only moderators and the topic author starter can see this topic. When this topic has been marked as clean, this topic will be shown as normal.<br />
Sorry if we're causing you any inconvenience but this post has been automatically marked for manual approval. A moderator has been notified and will evaluate to make sure you're not trying to post spam. <br />
Only moderators and the post author can see this post. When this post has been approved this post will be shown as normal. After that, your future posts will not need manual approval.<br /><br />
<strong>Note:</strong> We will send you an email when your account has been approved.<br /><br />
<strong>Why are we doing this?</strong> We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually. Again, sorry for the inconvenience, we much appreciate your contribution and your patience while we approve your account.
</div>
}
@@ -5,7 +5,9 @@
{
string markup = Model.editor.config.markup.ToString();
markup = markup.Replace("#value#", Model.value.ToString());
var UmbracoHelper = new UmbracoHelper(UmbracoContext.Current);
markup = markup.Replace("#value#", UmbracoHelper.ReplaceLineBreaksForHtml(Model.value.ToString()));
markup = markup.Replace("#style#", Model.editor.config.style.ToString());
<text>
@@ -1,106 +1,71 @@
@using OurUmbraco.Our
@using OurUmbraco.Our.Controllers
@inherits Umbraco.Web.Mvc.UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
@inherits UmbracoViewPage<OurUmbraco.Our.Models.RegisterModel>
@{
Html.EnableClientValidation(true);
Html.EnableUnobtrusiveJavaScript(true);
}
<div id="update-avatar-dialog" class="community-dialog">
<div>
<p><b>Upload avatar</b></p>
<p class="invalid-file">The select file type is invalid. File must be gif, png, jpg, jpeg.</p>
<input type="file" name="file" id="file" data-action="/umbraco/api/community/imageupload" />
<div style="text-align:center;">
<button class="button transparent tiny">Cancel<div class="span" style="display:none;"><div class=" loader"></div></div></button>
</div>
</div>
</div>
<div class="profile-settings">
<strong>Your details</strong>
<div class="profile-settings-forms">
<p>We just need some basic information from you:</p>
<div id="registrationForm" class="profile-settings-forms">
@using (Html.BeginUmbracoForm<RegisterController>("HandleSubmit"))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<div class="avatar" id="avatar">
<label for="avatar">
Avatar
</label>
<div class="avatar-image inked">
@if (Model.Avatar != null)
{
@Html.Raw(Utils.GetLocalAvatar(Model.Avatar ?? "", 100, ""))
}
else
{
@Html.Raw(Utils.GetLocalAvatar("/media/avatar/default.gif", 100, "Umbraco Logo"))
}
<span>Change image</span>
</div>
@Html.HiddenFor(m => m.Avatar)
@Html.ValidationMessageFor(m => m.Avatar)
</div>
<div class="profile-input" id="username">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
</div>
<div class="profile-input" id="email">
@Html.LabelFor(m => m.Email)
@Html.TextBoxFor(m => m.Email)
@Html.ValidationMessageFor(m => m.Email)
@Html.TextBoxFor(m => m.Email)
</div>
<div class="profile-input" id="password">
@Html.LabelFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
@Html.PasswordFor(m => m.Password, new { @class = "password-input" })
@Html.ValidationMessageFor(m => m.Password)
</div>
<div class="profile-input confirm-password" id="repeat-password">
@Html.LabelFor(m => m.RepeatPassword)
@Html.PasswordFor(m => m.RepeatPassword, new { @class = "password-input" })
@Html.ValidationMessageFor(m => m.Password)
</div>
<div class="profile-input" id="bio">
@Html.LabelFor(m => m.Bio)
@Html.TextAreaFor(m => m.Bio)
</div>
<div class="profile-input" id="twitter-alias">
@Html.LabelFor(m => m.TwitterAlias)
<em>Are you on Twitter? We have an active Twitter community. Follow the <a href="https://twitter.com/search?f=tweets&vertical=default&q=umbraco&src=typd" target="_blank">umbraco search term</a> and join the conversation.</em>
@Html.TextBoxFor(m => m.TwitterAlias)
</div>
<div class="profile-input" id="located-at">
@Html.LabelFor(m => m.Location)
@Html.TextBoxFor(m => m.Location)
<em>When your location is displayed correctly on the map below, enough information has been provided.</em>
@Html.ValidationMessageFor(m => m.Location)
@Html.HiddenFor(m => m.Location)
@Html.HiddenFor(m => m.Latitude)
@Html.HiddenFor(m => m.Longitude)
<div id="map"></div>
<input id="pac-input" class="controls" type="text" placeholder="Search for your location">
</div>
<div class="profile-input" id="personal">
@Html.HiddenFor(m => m.Flickr)
@Html.HiddenFor(m => m.Bio)
</div>
<input class="button green" type="submit" value="Register">
<div class="profile-input" id="terms-conditions">
@Html.CheckBoxFor(m => m.AgreeTerms) <label for="AgreeTerms"><em>I agree to the <a href="/terms-and-conditions" target="_blank">terms and conditions</a> of using the Our Umbraco website.</em></label>
@Html.ValidationMessageFor(m => m.AgreeTerms)
</div>
<input class="button green" type="submit" value="Sign up">
}
</div>
</div>
<script type="text/javascript" src="/scripts/register.js"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyASbfPWsRxZgSnmH2jaQlrWNE7VTV5QuwI&libraries=places&callback=initAutocomplete"></script>
<link rel="stylesheet" type="text/css" href="/css/register.css" />
@@ -22,6 +22,8 @@ namespace OurUmbraco.Site.Views.Search
var nodeTypeAlias = Request.QueryString["cat"];
//TODO: If we are searching on projects, they need to be filtered to approved/live!
int forumId;
var forumName = string.Empty;
var filters = new List<SearchFilters>();
@@ -66,6 +68,8 @@ namespace OurUmbraco.Site.Views.Search
}
var ourSearcher = new OurSearcher(Request.QueryString["q"],
//TODO: Depending on what order by this is, we need to pass in a data
// type here, for example, if its an INT or a Date!
orderBy: orderBy,
maxResults: 100,
nodeTypeAlias:
+21 -22
View File
@@ -1,14 +1,24 @@
<?xml version="1.0"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
@@ -22,18 +32,14 @@
<add namespace="Umbraco.Web.Mvc" />
<add namespace="umbraco" />
<add namespace="Examine" />
<add namespace="Umbraco.Web.PublishedContentModels" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
</system.web.webPages.razor><appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
</appSettings><system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
<!--
@@ -43,23 +49,16 @@
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
</system.web><system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<remove name="BlockViewHandler" />
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
</system.webServer></configuration>
+13 -10
View File
@@ -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="1562814933" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<clientDependency version="1272768233" 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,18 +19,19 @@ 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>
@@ -44,14 +45,16 @@ 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>
</clientDependency>
+25 -15
View File
@@ -30,17 +30,12 @@
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/developer/developerdashboardvideos.html
</control>
</tab>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
<tab caption="Xml Data Integrity Report">
<control>
views/dashboard/developer/xmldataintegrityreport.html
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection">
@@ -66,19 +61,14 @@
<access>
<grant>admin</grant>
</access>
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/default/startupdashboardintro.html
</control>
</tab>
<tab caption="Change password">
<control showOnce="false" addPanel="false" panelCaption="">
views/dashboard/ChangePassword.html
</control>
</tab>
<tab caption="Url Tracker">
<control addPanel="true">~/Umbraco/UrlTracker/InfoCaster.Umbraco.UrlTracker.UI.UrlTrackerManagerWrapper.ascx</control>
<tab caption="Redirect URL Management">
<control>
views/dashboard/developer/redirecturls.html
</control>
</tab>
</section>
@@ -114,4 +104,24 @@
</control>
</tab>
</section>
<section alias="UmbracoHealthCheck">
<areas>
<area>developer</area>
</areas>
<tab caption="Health Check">
<control>
views/dashboard/developer/healthcheck.html
</control>
</tab>
</section>
<section alias="UmbracoModelsBuilder">
<areas>
<area>developer</area>
</areas>
<tab caption="Models Builder">
<control>
/App_Plugins/ModelsBuilder/modelsbuilder.htm
</control>
</tab>
</section>
</dashBoard>
@@ -82,12 +82,17 @@ More information and documentation can be found on CodePlex: http://umbracoexami
<add Name="popularity" EnableSorting="true" Type="INT" />
<add Name="karma" EnableSorting="true" Type="INT" />
<add Name="downloads" EnableSorting="true" Type="INT" />
<add Name="packageFiles" Type="INT" />
<add Name="projectLive" />
<add Name="approved" />
<add Name="image" />
<add Name="versions" />
<add Name="compatVersions" />
<add Name="categoryFolder" />
<add Name="uniqueId" />
<add Name="worksOnUaaS" />
<add Name="worksOnUaaS" />
<add Name="minimumVersionStrict" />
</IndexUserFields>
</IndexSet>
@@ -7,5 +7,5 @@
<add key="virtualRoot" value="~/media/" />
</Parameters>
</Provider>
</FileSystemProviders>
+26 -1
View File
@@ -436,6 +436,31 @@
<add key="documentation/implementation/routing/pipeline" value="/documentation/implementation/Routing/Default-Routing/" />
<add key="documentation/implementation/routing/pipeline/ishortstringhelper" value="/documentation/Legacy/" />
<add key="documentation/references/searching/examine/full-configuration" value="/documentation/Reference/Config/ExamineSettings/" />
<add key="documentation/references/searching/examine/full-configuration" value="/documentation/Reference/Config/ExamineSettings/" />
<!-- WIKI -->
<add key="wiki/reference/webconfig" value="/Documentation/Reference/Config/WebConfig" />
<add key="wiki/reference/files-and-folders/permissions" value="/Documentation/Getting-Started/Setup/Install/Permissions" />
<add key="wiki/reference/api-cheatsheet/creating-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
<add key="wiki/reference/api-cheatsheet/modifying-document-properties" value="/Documentation/Reference/Management/Models/Content" />
<add key="wiki/reference/api-cheatsheet/attaching-document-event-handlers" value="/Documentation/Reference/Events/ContentService-Events" />
<add key="wiki/reference/api-cheatsheet/attaching-document-event-handlers/change-the-documents-template" value="/Documentation/Reference/Management/Models/Content" />
<add key="wiki/reference/api-cheatsheet/working-with-nodefactory" value="/Documentation/Reference/Querying/IPublishedContent" />
<add key="wiki/reference/api-cheatsheet/enumerating-documents" value="/Documentation/Reference/Querying/IPublishedContent" />
<add key="wiki/reference/api-cheatsheet/working-with-members" value="/Documentation/Getting-Started/Data/Members" />
<add key="wiki/reference/api-cheatsheet/working-with-members/membertypes-creator-and-createmembertype-page" value="/Documentation/Getting-Started/Data/Members" />
<add key="wiki/reference/api-cheatsheet/working-with-members/manually-selecting-member-properties" value="/Documentation/Getting-Started/Data/Members" />
<add key="wiki/reference/api-cheatsheet/relationtypes-and-relations" value="/Documentation/Reference/Management/Services/RelationService" />
<add key="wiki/reference/api-cheatsheet/relationtypes-and-relations/object-guids-for-creating-relation-types" value="/apidocs/csharp/api/Umbraco.Core.Constants.ObjectTypes.html" />
<add key="wiki/reference/api-cheatsheet/publishing-and-republishing" value="/Documentation/Reference/Management/Services/ContentService" />
<add key="wiki/reference/api-cheatsheet/moving-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
<add key="wiki/reference/api-cheatsheet/unpublish-a-document" value="/Documentation/Reference/Management/Services/ContentService" />
<add key="wiki/reference/api-cheatsheet/using-iapplicationeventhandler-to-register-events" value="/Documentation/Reference/Events/ContentService-Events" />
<add key="wiki/reference/files-and-folders/system-files-and-folders" value="/Documentation/Getting-Started/Setup/Install/Permissions" />
<add key="wiki/reference/files-and-folders/files-in-the-config-folder/umbracosettingsconfig" value="/Documentation/Reference/Config/umbracoSettings" />
<add key="wiki/reference/files-and-folders/files-in-the-config-folder/404handlersconfig" value="/Documentation/Reference/Routing/Request-Pipeline/IContentFinder" />
<add key="wiki/reference/files-and-folders/dashboardconfig" value="/Documentation/Extending/Dashboards" />
<add key="wiki/reference/umbracolibrary" value="/apidocs/csharp/api" />
</rewriteMap>
</rewriteMaps>
+22 -4
View File
@@ -16,8 +16,8 @@
<instant>
<notification name="NewTopic"
assembly="NotificationsCore"
type="NotificationsCore.NotificationTypes.NewForumTopic">
assembly="OurUmbraco"
type="OurUmbraco.NotificationsCore.NotificationTypes.NewForumTopic">
<subject>Umbraco community: New topic in '{0}' forum</subject>
<body>{2} just added a new topic to the '{0}' forum.
@@ -41,8 +41,8 @@ You can unsubscribe from your profile on our.umbraco.org
</notification>
<notification name="NewComment"
assembly="NotificationsCore"
type="NotificationsCore.NotificationTypes.NewForumTopicComment">
assembly="OurUmbraco"
type="OurUmbraco.NotificationsCore.NotificationTypes.NewForumTopicComment">
<subject>Umbraco community: New comment in topic '{0}'</subject>
<body>{2} just added a new comment to the '{0}' topic.
@@ -59,6 +59,24 @@ You can view the new comment here:
Thank You from the Umbraco Community!
--------------------------------------------------
You get this notification because you are subscribed to the '{0}' topic notifications.
You can unsubscribe from your profile on our.umbraco.org
</body>
</notification>
<notification name="AccountApproved">
<subject>Umbraco community: Account approved</subject>
<body>Hi there!
You recently posted on the our.umbraco.org forum for one of your first times.
This triggered a manual check to make sure you weren't posting any spam.
Good news: one of our moderators has just approved your accounta and your future posts will no longer be marked for manual approval.
We're sorry for the inconvenience; We're dealing with a spam problem that cannot be fought with automated systems. Therefore, we approve each account that has a low number of posts manually.
Thank You from the Umbraco Community!
--------------------------------------------------
You get this notification because you posted to our forum.
You can unsubscribe from your profile on our.umbraco.org
</body>
</notification>
+8 -8
View File
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<applications>
<add alias="content" name="Content" icon="traycontent" sortOrder="0" />
<add alias="media" name="Media" icon="traymedia" sortOrder="1" />
<add alias="settings" name="Settings" icon="traysettings" sortOrder="2" />
<add alias="developer" name="Developer" icon="traydeveloper" sortOrder="3" />
<add alias="users" name="Users" icon="trayuser" sortOrder="4" />
<add alias="member" name="Members" icon="traymember" sortOrder="5" />
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6" />
<add alias="translation" name="Translation" icon="traytranslation" sortOrder="7" />
<add alias="content" name="Content" icon="traycontent" sortOrder="0"/>
<add alias="media" name="Media" icon="traymedia" sortOrder="1"/>
<add alias="settings" name="Settings" icon="traysettings" sortOrder="2"/>
<add alias="developer" name="Developer" icon="traydeveloper" sortOrder="3"/>
<add alias="users" name="Users" icon="trayusers" sortOrder="4"/>
<add alias="member" name="Members" icon="traymember" sortOrder="5"/>
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6"/>
<add alias="translation" name="Translation" icon="traytranslation" sortOrder="7"/>
</applications>
+251 -225
View File
@@ -2,220 +2,246 @@
<!-- Any changes to this file requires the application (umbraco) to restart -->
<!-- This can be done by touching the web.config or recycling the application pool -->
<tinymceConfig>
<commands>
<command>
<umbracoAlias>code</umbracoAlias>
<icon>images/editor/code.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="code">code</tinyMceCommand>
<priority>1</priority>
</command>
<command>
<commands>
<command>
<umbracoAlias>code</umbracoAlias>
<name>Code</name>
<icon>images/editor/code.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="code">code</tinyMceCommand>
<priority>1</priority>
</command>
<command>
<umbracoAlias>codemirror</umbracoAlias>
<name>Code mirror</name>
<icon>images/editor/code.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="codemirror">codemirror</tinyMceCommand>
<priority>1</priority>
</command>
<command>
<umbracoAlias>removeformat</umbracoAlias>
<icon>images/editor/removeformat.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="removeformat">removeformat</tinyMceCommand>
<priority>2</priority>
</command>
<command>
<umbracoAlias>Undo</umbracoAlias>
<icon>images/editor/undo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="undo">undo</tinyMceCommand>
<priority>11</priority>
</command>
<command>
<umbracoAlias>Redo</umbracoAlias>
<icon>images/editor/redo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="redo">redo</tinyMceCommand>
<priority>12</priority>
</command>
<command>
<umbracoAlias>Cut</umbracoAlias>
<icon>images/editor/cut.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="cut">cut</tinyMceCommand>
<priority>13</priority>
</command>
<command>
<umbracoAlias>Copy</umbracoAlias>
<icon>images/editor/copy.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="copy">copy</tinyMceCommand>
<priority>14</priority>
</command>
<command>
<umbracoAlias>styleselect</umbracoAlias>
<icon>images/editor/showStyles.png</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="styleselect">styleselect</tinyMceCommand>
<priority>20</priority>
</command>
<command>
<umbracoAlias>bold</umbracoAlias>
<icon>images/editor/bold.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bold">bold</tinyMceCommand>
<priority>21</priority>
</command>
<command>
<umbracoAlias>italic</umbracoAlias>
<icon>images/editor/italic.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="italic">italic</tinyMceCommand>
<priority>22</priority>
</command>
<command>
<umbracoAlias>Underline</umbracoAlias>
<icon>images/editor/underline.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="underline">underline</tinyMceCommand>
<priority>23</priority>
</command>
<command>
<umbracoAlias>Strikethrough</umbracoAlias>
<icon>images/editor/strikethrough.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="strikethrough">strikethrough</tinyMceCommand>
<priority>24</priority>
</command>
<command>
<umbracoAlias>JustifyLeft</umbracoAlias>
<icon>images/editor/justifyleft.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignleft">justifyleft</tinyMceCommand>
<priority>31</priority>
</command>
<command>
<umbracoAlias>JustifyCenter</umbracoAlias>
<icon>images/editor/justifycenter.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="aligncenter">justifycenter</tinyMceCommand>
<priority>32</priority>
</command>
<command>
<umbracoAlias>JustifyRight</umbracoAlias>
<icon>images/editor/justifyright.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignright">justifyright</tinyMceCommand>
<priority>33</priority>
</command>
<command>
<umbracoAlias>JustifyFull</umbracoAlias>
<icon>images/editor/justifyfull.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignjustify">alignjustify</tinyMceCommand>
<priority>34</priority>
</command>
<command>
<umbracoAlias>bullist</umbracoAlias>
<icon>images/editor/bullist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bullist">bullist</tinyMceCommand>
<priority>41</priority>
</command>
<command>
<umbracoAlias>numlist</umbracoAlias>
<icon>images/editor/numlist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="numlist">numlist</tinyMceCommand>
<priority>42</priority>
</command>
<command>
<umbracoAlias>Outdent</umbracoAlias>
<icon>images/editor/outdent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="outdent">outdent</tinyMceCommand>
<priority>43</priority>
</command>
<command>
<umbracoAlias>Indent</umbracoAlias>
<icon>images/editor/indent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="indent">indent</tinyMceCommand>
<priority>44</priority>
</command>
<command>
<umbracoAlias>mceLink</umbracoAlias>
<icon>images/editor/link.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="link">link</tinyMceCommand>
<priority>51</priority>
</command>
<command>
<umbracoAlias>unlink</umbracoAlias>
<icon>images/editor/unLink.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="unlink">unlink</tinyMceCommand>
<priority>52</priority>
</command>
<command>
<umbracoAlias>mceInsertAnchor</umbracoAlias>
<icon>images/editor/anchor.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="anchor">anchor</tinyMceCommand>
<priority>53</priority>
</command>
<command>
<umbracoAlias>mceImage</umbracoAlias>
<icon>images/editor/image.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmediapicker">image</tinyMceCommand>
<priority>61</priority>
</command>
<command>
<umbracoAlias>umbracomacro</umbracoAlias>
<icon>images/editor/insMacro.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmacro">umbracomacro</tinyMceCommand>
<priority>62</priority>
</command>
<command>
<umbracoAlias>mceInsertTable</umbracoAlias>
<icon>images/editor/table.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="table">table</tinyMceCommand>
<priority>63</priority>
</command>
<command>
<umbracoAlias>umbracoembed</umbracoAlias>
<icon>images/editor/media.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbembeddialog">umbracoembed</tinyMceCommand>
<priority>66</priority>
</command>
<command>
<umbracoAlias>inserthorizontalrule</umbracoAlias>
<icon>images/editor/hr.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="hr">hr</tinyMceCommand>
<priority>71</priority>
</command>
<command>
<umbracoAlias>subscript</umbracoAlias>
<icon>images/editor/sub.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="subscript">subscript</tinyMceCommand>
<priority>72</priority>
</command>
<command>
<umbracoAlias>superscript</umbracoAlias>
<icon>images/editor/sup.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="superscript">superscript</tinyMceCommand>
<priority>73</priority>
</command>
<command>
<umbracoAlias>mceCharMap</umbracoAlias>
<icon>images/editor/charmap.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="charmap">charmap</tinyMceCommand>
<priority>74</priority>
</command>
</commands>
<plugins>
<umbracoAlias>removeformat</umbracoAlias>
<name>Remove format</name>
<icon>images/editor/removeformat.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="removeformat">removeformat</tinyMceCommand>
<priority>2</priority>
</command>
<command>
<umbracoAlias>undo</umbracoAlias>
<name>Undo</name>
<name>Remove Format</name>
<icon>images/editor/undo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="undo">undo</tinyMceCommand>
<priority>11</priority>
</command>
<command>
<umbracoAlias>redo</umbracoAlias>
<name>Redo</name>
<icon>images/editor/redo.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="redo">redo</tinyMceCommand>
<priority>12</priority>
</command>
<command>
<umbracoAlias>cut</umbracoAlias>
<name>Cut</name>
<icon>images/editor/cut.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="cut">cut</tinyMceCommand>
<priority>13</priority>
</command>
<command>
<umbracoAlias>copy</umbracoAlias>
<name>Copy</name>
<icon>images/editor/copy.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="copy">copy</tinyMceCommand>
<priority>14</priority>
</command>
<command>
<umbracoAlias>paste</umbracoAlias>
<name>Paste</name>
<icon>images/editor/paste.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="paste">paste</tinyMceCommand>
<priority>15</priority>
</command>
<command>
<umbracoAlias>styleselect</umbracoAlias>
<name>Style select</name>
<icon>images/editor/showStyles.png</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="styleselect">styleselect</tinyMceCommand>
<priority>20</priority>
</command>
<command>
<umbracoAlias>bold</umbracoAlias>
<name>Bold</name>
<icon>images/editor/bold.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bold">bold</tinyMceCommand>
<priority>21</priority>
</command>
<command>
<umbracoAlias>italic</umbracoAlias>
<name>Italic</name>
<icon>images/editor/italic.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="italic">italic</tinyMceCommand>
<priority>22</priority>
</command>
<command>
<umbracoAlias>underline</umbracoAlias>
<name>Underline</name>
<icon>images/editor/underline.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="underline">underline</tinyMceCommand>
<priority>23</priority>
</command>
<command>
<umbracoAlias>strikethrough</umbracoAlias>
<name>Strikethrough</name>
<icon>images/editor/strikethrough.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="strikethrough">strikethrough</tinyMceCommand>
<priority>24</priority>
</command>
<command>
<umbracoAlias>justifyleft</umbracoAlias>
<name>Justify left</name>
<icon>images/editor/justifyleft.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignleft">justifyleft</tinyMceCommand>
<priority>31</priority>
</command>
<command>
<umbracoAlias>justifycenter</umbracoAlias>
<name>Justify center</name>
<icon>images/editor/justifycenter.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="aligncenter">justifycenter</tinyMceCommand>
<priority>32</priority>
</command>
<command>
<umbracoAlias>justifyright</umbracoAlias>
<name>Justify right</name>
<icon>images/editor/justifyright.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignright">justifyright</tinyMceCommand>
<priority>33</priority>
</command>
<command>
<umbracoAlias>justifyfull</umbracoAlias>
<name>Justify full</name>
<icon>images/editor/justifyfull.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="alignjustify">alignjustify</tinyMceCommand>
<priority>34</priority>
</command>
<command>
<umbracoAlias>bullist</umbracoAlias>
<name>Bullet list</name>
<icon>images/editor/bullist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="bullist">bullist</tinyMceCommand>
<priority>41</priority>
</command>
<command>
<umbracoAlias>numlist</umbracoAlias>
<name>Numbered list</name>
<icon>images/editor/numlist.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="numlist">numlist</tinyMceCommand>
<priority>42</priority>
</command>
<command>
<umbracoAlias>outdent</umbracoAlias>
<name>Decrease indent</name>
<icon>images/editor/outdent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="outdent">outdent</tinyMceCommand>
<priority>43</priority>
</command>
<command>
<umbracoAlias>indent</umbracoAlias>
<name>Increase indent</name>
<icon>images/editor/indent.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="indent">indent</tinyMceCommand>
<priority>44</priority>
</command>
<command>
<umbracoAlias>mceLink</umbracoAlias>
<name>Insert/edit link</name>
<icon>images/editor/link.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="link">link</tinyMceCommand>
<priority>51</priority>
</command>
<command>
<umbracoAlias>unlink</umbracoAlias>
<name>Remove link</name>
<icon>images/editor/unLink.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="unlink">unlink</tinyMceCommand>
<priority>52</priority>
</command>
<command>
<umbracoAlias>mceInsertAnchor</umbracoAlias>
<name>Anchor</name>
<icon>images/editor/anchor.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="anchor">anchor</tinyMceCommand>
<priority>53</priority>
</command>
<command>
<umbracoAlias>mceImage</umbracoAlias>
<name>Image</name>
<icon>images/editor/image.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmediapicker">image</tinyMceCommand>
<priority>61</priority>
</command>
<command>
<umbracoAlias>umbracomacro</umbracoAlias>
<name>Macro</name>
<icon>images/editor/insMacro.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbmacro">umbracomacro</tinyMceCommand>
<priority>62</priority>
</command>
<command>
<umbracoAlias>mceInsertTable</umbracoAlias>
<name>Table</name>
<icon>images/editor/table.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="table">table</tinyMceCommand>
<priority>63</priority>
</command>
<command>
<umbracoAlias>umbracoembed</umbracoAlias>
<name>Embed</name>
<icon>images/editor/media.gif</icon>
<tinyMceCommand value="" userInterface="true" frontendCommand="umbembeddialog">umbracoembed</tinyMceCommand>
<priority>66</priority>
</command>
<command>
<umbracoAlias>inserthorizontalrule</umbracoAlias>
<name>Horizontal rule</name>
<icon>images/editor/hr.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="hr">hr</tinyMceCommand>
<priority>71</priority>
</command>
<command>
<umbracoAlias>subscript</umbracoAlias>
<name>Subscript</name>
<icon>images/editor/sub.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="subscript">subscript</tinyMceCommand>
<priority>72</priority>
</command>
<command>
<umbracoAlias>superscript</umbracoAlias>
<name>Superscript</name>
<icon>images/editor/sup.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="superscript">superscript</tinyMceCommand>
<priority>73</priority>
</command>
<command>
<umbracoAlias>mceCharMap</umbracoAlias>
<name>Character map</name>
<icon>images/editor/charmap.gif</icon>
<tinyMceCommand value="" userInterface="false" frontendCommand="charmap">charmap</tinyMceCommand>
<priority>74</priority>
</command>
</commands>
<plugins>
<plugin loadOnFrontend="true">code</plugin>
<plugin loadOnFrontend="true">codemirror</plugin>
<plugin loadOnFrontend="true">paste</plugin>
<plugin loadOnFrontend="true">umbracolink</plugin>
<plugin loadOnFrontend="true">anchor</plugin>
<plugin loadOnFrontend="true">charmap</plugin>
<plugin loadOnFrontend="true">table</plugin>
<plugin loadOnFrontend="true">codemirror</plugin>
<plugin loadOnFrontend="true">paste</plugin>
<plugin loadOnFrontend="true">umbracolink</plugin>
<plugin loadOnFrontend="true">anchor</plugin>
<plugin loadOnFrontend="true">charmap</plugin>
<plugin loadOnFrontend="true">table</plugin>
<plugin loadOnFrontend="true">lists</plugin>
</plugins>
<validElements>
<![CDATA[+a[id|style|rel|data-id|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
<plugin loadOnFrontend="true">hr</plugin>
</plugins>
<validElements>
<![CDATA[+a[id|style|rel|data-id|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|
ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],
-strike[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],
img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],
@@ -227,24 +253,24 @@ thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|heig
-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],
dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],
param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*]]]>
</validElements>
<invalidElements>font</invalidElements>
</validElements>
<invalidElements>font</invalidElements>
<!-- this area is for custom config settings that should be added during TinyMCE initialization -->
<customConfig>
<!-- <config key="myKey">mySetting</config>-->
<config key="entity_encoding">raw</config>
<config key="codemirror">
{
"indentOnInit": false,
"path": "../../../../lib/codemirror",
"config": {
},
"jsFiles": [
],
"cssFiles": [
]
}
</config>
</customConfig>
<!-- this area is for custom config settings that should be added during TinyMCE initialization -->
<customConfig>
<!-- <config key="myKey">mySetting</config>-->
<config key="entity_encoding">raw</config>
<config key="codemirror">
{
"indentOnInit": false,
"path": "../../../../lib/codemirror",
"config": {
},
"jsFiles": [
],
"cssFiles": [
]
}
</config>
</customConfig>
</tinymceConfig>
+60 -29
View File
@@ -1,41 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<trees>
<!--Content-->
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, umbraco" />
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco" />
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder"
type="Umbraco.Web.Trees.ContentTreeController, umbraco"/>
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder"
type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco"/>
<!--Media-->
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, umbraco" />
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco" />
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder"
type="Umbraco.Web.Trees.MediaTreeController, umbraco"/>
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder"
type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco"/>
<!--Settings-->
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" />
<add application="settings" alias="templates" title="Templates" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" initialize="true" sortOrder="1"/>
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2" />
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5" />
<add application="settings" alias="mediaTypes" title="Media Types" type="umbraco.loadMediaTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
<add application="settings" alias="nodeTypes" title="Document Types" type="umbraco.loadNodeTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="7" />
<!--Developer-->
<add initialize="true" sortOrder="0" alias="datatype" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco" />
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" />
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6" title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder" />
<add initialize="true" sortOrder="0" alias="documentTypes" application="settings" title="Document Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.ContentTypeTreeController, umbraco"/>
<add application="settings" alias="templates" title="Templates" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" initialize="true" sortOrder="1"/>
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder"
type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2"/>
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder"
sortOrder="3"/>
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen=""
initialize="false" sortOrder="0"/>
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"/>
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5"/>
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder"
sortOrder="6"/>
<add initialize="true" sortOrder="7" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco"/>
<!--Developer-->
<add initialize="true" sortOrder="1" alias="dataTypes" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder"
type="Umbraco.Web.Trees.DataTypeTreeController, umbraco"/>
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"/>
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder"
iconOpen="icon-folder" sortOrder="4"/>
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5"/>
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6"
title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder"/>
<!--Users-->
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" />
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0"/>
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder"
iconOpen="icon-folder" sortOrder="1"/>
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco"
iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"/>
<!--Members-->
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, umbraco" />
<add application="member" alias="memberGroup" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" />
<add application="member" alias="memberType" title="Member Types" type="umbraco.loadMemberTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.MemberTreeController, umbraco"/>
<add initialize="true" sortOrder="1" alias="memberTypes" application="member" title="Member Types" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.MemberTypeTreeController, umbraco"/>
<add application="member" sortOrder="2" alias="memberGroups" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder"
iconOpen="icon-folder"/>
<!--Translation-->
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco" />
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco" />
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder"
iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco"/>
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder"
iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco"/>
<!-- Custom -->
<!--<add application="myApplication" alias="myTree" title="Me Tree" type="MyNamespace.myTree, MyAssembly"
iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="10" />-->
<add initialize="true" sortOrder="0" alias="packager" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open"
type="Umbraco.Web.Trees.PackagesTreeController, umbraco"/>
</trees>
+9 -5
View File
@@ -6,23 +6,27 @@
<!-- versions do not require voteName or voteDescription if vote=false -->
<!-- versions required package targeting require the key name and description fields -->
<configuration default="v49">
<configuration default="v750">
<versions>
<!-- version key="v5" name="Version 5.0.x" description="Compatible with version 5.0.x" vote="false"/ -->
<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"/>
<version key="v720" name="Version 7.2.x" description="Compatible with version 7.2.x" vote="true" voteDescription="Version 7.2.x" voteName="7.2.x"/>
<version key="v710" name="Version 7.1.x" description="Compatible with version 7.1.x" vote="true" voteDescription="Version 7.1.x" voteName="7.1.x"/>
<version key="v700" name="Version 7.0.x" description="Compatible with version 7.0.x" vote="true" voteDescription="Version 7.0.x" voteName="7.0.x"/>
<version key="v610" name="Version 6.1.x" description="Compatible with version 6.1.x" vote="true" voteDescription="Version 6.1.x" voteName="6.1.x"/>
<version key="v600" name="Version 6.0.x" description="Compatible with version 6.0.x" vote="true" voteDescription="Version 6.0.x" voteName="6.0.x"/>
<!-- NOTE: this one NEEDS to be there in order to be able to upload screenshots. Reaally? Yes, really. - SJ -->
<version key="nan" name="Not version dependant" description="Works with all versions of umbraco, as it does not contain any version dependencies" vote="false"/>
<!--
<version key="v411" name="Version 4.11.x" description="Compatible with version 4.11.x" vote="true" voteDescription="Version 4.11.x" voteName="4.11.x"/>
<version key="v410" name="Version 4.10.x" description="Compatible with version 4.10.x" vote="true" voteDescription="Version 4.10.0" voteName="4.10.0"/>
<version vote="true" voteDescription="Version 4.9.1" voteName="4.9.1"/>
<version key="v49" name="Version 4.9.x" description="Compatible with version 4.9.x" vote="true" voteDescription="Version 4.9.0" voteName="4.9.0"/>
<!-- NOTE: this one NEEDS to be there in order to be able to upload screenshots. Reaally? Yes, really. - SJ -->
<version key="nan" name="Not version dependant" description="Works with all versions of umbraco, as it does not contain any version dependencies" vote="false"/>
<!--<version vote="true" voteDescription="Version 4.8.1" voteName="4.8.1"/>
<version vote="true" voteDescription="Version 4.8.1" voteName="4.8.1"/>
<version key="v48" name="Version 4.8.x" description="Compatible with version 4.8.x" vote="true" voteDescription="Version 4.8.0" voteName="4.8.0"/>
<version vote="true" voteDescription="Version 4.7.2" voteName="4.7.2"/>
<version vote="true" voteDescription="Version 4.7.1.1" voteName="4.7.1.1"/>
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<settings>
<!--
@@ -200,10 +200,8 @@
Configure it here if you need anything specific. Needs to be a complete url with scheme and umbraco
path, eg http://mysite.com/umbraco. NOT just "mysite.com" or "mysite.com/umbraco" or "http://mysite.com".
-->
<web.routing
trySkipIisCustomErrors="true"
internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false"
umbracoApplicationUrl="">
<web.routing trySkipIisCustomErrors="true" internalRedirectPreservesTemplate="false" disableAlternativeTemplates="false" disableFindContentByIdPath="false"
umbracoApplicationUrl="">
</web.routing>
</settings>
+98
View File
@@ -0,0 +1,98 @@
.controls {
margin-top: 10px;
border: 1px solid transparent;
border-radius: 2px 0 0 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
height: 32px;
outline: none;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}
#pac-input {
background-color: #fff;
font-family: Roboto;
font-size: 15px;
font-weight: 300;
margin-left: 12px;
padding: 0 11px 0 13px;
text-overflow: ellipsis;
width: 470px !important;
display: none;
}
#pac-input:focus {
border-color: #4d90fe;
}
.pac-container {
font-family: Roboto;
}
#type-selector {
color: #fff;
background-color: #4d90fe;
padding: 5px 11px 0px 11px;
}
#type-selector label {
font-family: Roboto;
font-size: 13px;
font-weight: 300;
}
#target {
width: 345px;
}
#map {
width: 500px;
height: 460px;
margin-top: 4px;
}
#registrationForm {
max-width: 640px;
}
#registrationForm label {
margin: 4px 0;
display: block;
font-size: 16px;
font-weight: bold;
}
#registrationForm .profile-input em {
margin: 4px 0;
display: block;
}
#registrationForm input.button {
margin: 10px 0;
display: block;
}
#terms-conditions input {
display: inline;
float: left;
}
#terms-conditions {
margin-top: 20px;
margin-bottom: 20px;
}
#terms-conditions label {
padding-top: 1px;
padding-left: 28px;
}
.field-validation-error {
color: red;
display: block;
margin: 4px 0;
}
.input-validation-error {
border-color: red !important;
}
+274
View File
@@ -0,0 +1,274 @@
/* This is the default Tooltipster theme (feel free to modify or duplicate and create multiple themes!): */
.tooltipster-default {
border-radius: 5px;
border: 2px solid #000;
background: #4c4c4c;
color: #fff;
}
/* Use this next selector to style things like font-size and line-height: */
.tooltipster-default .tooltipster-content {
font-family: Arial, sans-serif;
font-size: 14px;
line-height: 16px;
padding: 8px 10px;
overflow: hidden;
}
/* This next selector defines the color of the border on the outside of the arrow. This will automatically match the color and size of the border set on the main tooltip styles. Set display: none; if you would like a border around the tooltip but no border around the arrow */
.tooltipster-default .tooltipster-arrow .tooltipster-arrow-border {
/* border-color: ... !important; */
}
/* If you're using the icon option, use this next selector to style them */
.tooltipster-icon {
cursor: help;
margin-left: 4px;
}
/* This is the base styling required to make all Tooltipsters work */
.tooltipster-base {
padding: 0;
font-size: 0;
line-height: 0;
position: absolute;
left: 0;
top: 0;
z-index: 9999999;
pointer-events: none;
width: auto;
overflow: visible;
}
.tooltipster-base .tooltipster-content {
overflow: hidden;
}
/* These next classes handle the styles for the little arrow attached to the tooltip. By default, the arrow will inherit the same colors and border as what is set on the main tooltip itself. */
.tooltipster-arrow {
display: block;
text-align: center;
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: -1;
}
.tooltipster-arrow span, .tooltipster-arrow-border {
display: block;
width: 0;
height: 0;
position: absolute;
}
.tooltipster-arrow-top span, .tooltipster-arrow-top-right span, .tooltipster-arrow-top-left span {
border-left: 8px solid transparent !important;
border-right: 8px solid transparent !important;
border-top: 8px solid;
bottom: -7px;
}
.tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-top-left .tooltipster-arrow-border {
border-left: 9px solid transparent !important;
border-right: 9px solid transparent !important;
border-top: 9px solid;
bottom: -7px;
}
.tooltipster-arrow-bottom span, .tooltipster-arrow-bottom-right span, .tooltipster-arrow-bottom-left span {
border-left: 8px solid transparent !important;
border-right: 8px solid transparent !important;
border-bottom: 8px solid;
top: -7px;
}
.tooltipster-arrow-bottom .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
border-left: 9px solid transparent !important;
border-right: 9px solid transparent !important;
border-bottom: 9px solid;
top: -7px;
}
.tooltipster-arrow-top span, .tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-bottom span, .tooltipster-arrow-bottom .tooltipster-arrow-border {
left: 0;
right: 0;
margin: 0 auto;
}
.tooltipster-arrow-top-left span, .tooltipster-arrow-bottom-left span {
left: 6px;
}
.tooltipster-arrow-top-left .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
left: 5px;
}
.tooltipster-arrow-top-right span, .tooltipster-arrow-bottom-right span {
right: 6px;
}
.tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border {
right: 5px;
}
.tooltipster-arrow-left span, .tooltipster-arrow-left .tooltipster-arrow-border {
border-top: 8px solid transparent !important;
border-bottom: 8px solid transparent !important;
border-left: 8px solid;
top: 50%;
margin-top: -7px;
right: -7px;
}
.tooltipster-arrow-left .tooltipster-arrow-border {
border-top: 9px solid transparent !important;
border-bottom: 9px solid transparent !important;
border-left: 9px solid;
margin-top: -8px;
}
.tooltipster-arrow-right span, .tooltipster-arrow-right .tooltipster-arrow-border {
border-top: 8px solid transparent !important;
border-bottom: 8px solid transparent !important;
border-right: 8px solid;
top: 50%;
margin-top: -7px;
left: -7px;
}
.tooltipster-arrow-right .tooltipster-arrow-border {
border-top: 9px solid transparent !important;
border-bottom: 9px solid transparent !important;
border-right: 9px solid;
margin-top: -8px;
}
/* Some CSS magic for the awesome animations - feel free to make your own custom animations and reference it in your Tooltipster settings! */
.tooltipster-fade {
opacity: 0;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
-ms-transition-property: opacity;
transition-property: opacity;
}
.tooltipster-fade-show {
opacity: 1;
}
.tooltipster-grow {
-webkit-transform: scale(0,0);
-moz-transform: scale(0,0);
-o-transform: scale(0,0);
-ms-transform: scale(0,0);
transform: scale(0,0);
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
-webkit-backface-visibility: hidden;
}
.tooltipster-grow-show {
-webkit-transform: scale(1,1);
-moz-transform: scale(1,1);
-o-transform: scale(1,1);
-ms-transform: scale(1,1);
transform: scale(1,1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-swing {
opacity: 0;
-webkit-transform: rotateZ(4deg);
-moz-transform: rotateZ(4deg);
-o-transform: rotateZ(4deg);
-ms-transform: rotateZ(4deg);
transform: rotateZ(4deg);
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
}
.tooltipster-swing-show {
opacity: 1;
-webkit-transform: rotateZ(0deg);
-moz-transform: rotateZ(0deg);
-o-transform: rotateZ(0deg);
-ms-transform: rotateZ(0deg);
transform: rotateZ(0deg);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
}
.tooltipster-fall {
top: 0;
-webkit-transition-property: top;
-moz-transition-property: top;
-o-transition-property: top;
-ms-transition-property: top;
transition-property: top;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-fall-show {
}
.tooltipster-fall.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
top: 0px !important;
opacity: 0;
}
.tooltipster-slide {
left: -40px;
-webkit-transition-property: left;
-moz-transition-property: left;
-o-transition-property: left;
-ms-transition-property: left;
transition-property: left;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-slide.tooltipster-slide-show {
}
.tooltipster-slide.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
left: 0px !important;
opacity: 0;
}
/* CSS transition for when contenting is changing in a tooltip that is still open. The only properties that will NOT transition are: width, height, top, and left */
.tooltipster-content-changing {
opacity: 0.5;
-webkit-transform: scale(1.1, 1.1);
-moz-transform: scale(1.1, 1.1);
-o-transform: scale(1.1, 1.1);
-ms-transform: scale(1.1, 1.1);
transform: scale(1.1, 1.1);
}
@@ -0,0 +1 @@
google-site-verification: google98fb13fcf3cf0ae7.html
@@ -1,34 +1,34 @@
@using System.Configuration
@{
var blogsXmlFile = Server.MapPath("~/App_Data/communityblogs.xml");
var random = Guid.NewGuid();
// var blogsXmlFile = Server.MapPath("~/App_Data/communityblogs.xml");
var yahooPipesId = ConfigurationManager.AppSettings["YahooPipesId"];
// var random = Guid.NewGuid();
var url = string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&rnd={1}", yahooPipesId, random);
// var yahooPipesId = ConfigurationManager.AppSettings["YahooPipesId"];
if(File.GetLastWriteTime(blogsXmlFile) < DateTime.Now.AddMinutes(-60))
{
string html = "";
// var url = string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&_render=rss&rnd={1}", yahooPipesId, random);
using(WebClient client = new WebClient())
{
html = client.DownloadString(url);
}
// if(File.GetLastWriteTime(blogsXmlFile) < DateTime.Now.AddMinutes(-60))
// {
// string html = "";
html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.info?_id={0}", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&amp;_render=rss&amp;page=2", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
using(StreamWriter writer = new StreamWriter(blogsXmlFile, false))
{
writer.WriteLine(html);
}
}
// using(WebClient client = new WebClient())
// {
// html = client.DownloadString(url);
// }
string blogs = File.ReadAllText(blogsXmlFile);
Response.ContentType = "application/xml";
Response.Write(blogs);
// html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.info?_id={0}", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
// html = html.Replace(string.Format("http://pipes.yahoo.com/pipes/pipe.run?_id={0}&amp;_render=rss&amp;page=2", yahooPipesId), "http://our.umbraco.org/rss/communityblogs/");
// using(StreamWriter writer = new StreamWriter(blogsXmlFile, false))
// {
// writer.WriteLine(html);
// }
// }
// string blogs = File.ReadAllText(blogsXmlFile);
// Response.ContentType = "application/xml";
//Response.Write(blogs);
}
@@ -1,163 +1,202 @@
@using System.Text.RegularExpressions
@using System.Xml;
@using Examine.LuceneEngine.Providers
@using Examine.SearchCriteria
@using OurUmbraco.MarketPlace.Interfaces
@using OurUmbraco.MarketPlace.ListingItem
@using OurUmbraco.Our
@using OurUmbraco.Our.Examine
@using OurUmbraco.Project
@using Umbraco.Core
@using Umbraco.Web
@{
var projectsProvider = new OurUmbraco.MarketPlace.NodeListing.NodeListingProvider();
var take = 30;
var filters = new List<SearchFilters>();
var searchFilters = new SearchFilters(BooleanOperation.And);
//MUST be live
searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
filters.Add(searchFilters);
//Get the version that the package repository is displaying for
var version = "v45";
if (Request.QueryString["fullVersion"] != null)
{
version = Request.QueryString["fullVersion"];
}
//need to clean up this string, it could be all sorts of things
var parsedVersion = version.GetFromUmbracoString();
if (parsedVersion != null)
{
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);
}
var ourSearcher = new OurSearcher(string.Empty, "project", "popularity[Type=INT]", maxResults: take, filters: filters);
var wrapperClass = "notLoggedIn";
var qs = Request.RawUrl.Substring( Request.RawUrl.IndexOf('?')+1 );
var qs = Request.RawUrl.Substring(Request.RawUrl.IndexOf('?') + 1);
var version = "v45";
if(Request.QueryString["version"] != null){
version = Request.QueryString["version"].ToLower();
}
const string uniqueWhatever = "E295637E-E957-4CCA-92CE-BF5D58F9FF59";
var cacheKey = uniqueWhatever + "[" + version + "]";
var cache = ApplicationContext.Current.ApplicationCache.RuntimeCache;
IEnumerable<IListingItem> projects = (IEnumerable<IListingItem>)cache.GetCacheItem(cacheKey, () =>
{
return projectsProvider
.GetListingsByKarma(0, take, true, false)
.Where(x => !x.NotAPackage &&
(string.Join("", x.UmbracoVerionsSupported).Contains("nan") ||
string.Join("", x.UmbracoVerionsSupported).Contains(version)));
}, TimeSpan.FromMinutes(10));
var found = ourSearcher.Search("projectSearcher");
//var result = projectsProvider
// .GetListingsByKarma(0, take, true, false)
// .Where(x => !x.NotAPackage &&
// (string.Join("", x.UmbracoVerionsSupported).Contains("nan") ||
// string.Join("", x.UmbracoVerionsSupported).Contains(version)));
var pUrl = "/repo_viewproject?" + qs + "&project_id=";
var favs = new List<IListingItem>();
var favs = new List<PublishedContentListingItem>();
if(umbraco.library.IsLoggedOn()){
if (umbraco.library.IsLoggedOn())
{
wrapperClass = "loggedIn";
var memId = umbraco.cms.businesslogic.member.Member.GetCurrentMember().Id;
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var memId = umbraco.cms.businesslogic.member.Member.GetCurrentMember().Id;
var projectsProvider = new OurUmbraco.MarketPlace.NodeListing.NodeListingProvider();
var iterator = OurUmbraco.Powers.Library.Xslt.ItemsVotedFor(memId, "powersproject").Current.Select("//id");
while (iterator.MoveNext() && iterator.CurrentPosition < 20)
{
var node = (IHasXmlNode)iterator.Current;
if(node != null){
string id = umbraco.xmlHelper.GetNodeValue(node.GetNode());
if(id != null){
try{
var project = projectsProvider.GetListing(int.Parse(id), false);
if(project != null){
favs.Add(project);
if (node != null)
{
var id = umbraco.xmlHelper.GetNodeValue(node.GetNode());
if (id != null)
{
var content = umbracoHelper.TypedContent(id);
if (content != null)
{
try
{
var project = (PublishedContentListingItem)projectsProvider.GetListing(content, false);
if (project != null)
{
//set the category name
favs.Add(project);
}
}
catch
{
//do nothing
}
}catch{
//do nothing
}
}
}
}
favs = favs.Where(x => !x.NotAPackage && (string.Join("",x.UmbracoVerionsSupported).Contains("nan") || string.Join("",x.UmbracoVerionsSupported).Contains(version) )).ToList();
favs = favs.Where(x => !x.NotAPackage && (string.Join("", x.UmbracoVerionsSupported).Contains("nan") || string.Join("", x.UmbracoVerionsSupported).Contains(version))).ToList();
}
}
}
<div class="@wrapperClass">
<div class="projectDiv">
<h1>Popular Packages</h1>
<p>The most popular packages, based on karma and downloads</p>
<ul class="projects">
@foreach(var project in projects)
{
<li class="clearfix">
<div class="deliPackage">
<div class="brief">
@{
var screenShot = project.DefaultScreenshot;
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50&format=png" : "/css/img/package2.png";
}
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a></h3>
<div class="projectDiv">
<h1>Popular Packages</h1>
<p>The most popular packages, based on karma and downloads</p>
<ul class="projects">
@foreach (var project in found.SearchResults)
{
<li class="clearfix">
<div class="deliPackage">
<div class="category">@project.GetCategoryName()</div>
</div>
<div class="brief">
<div class="hiLite">
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a></p>
</div>
@{
var screenShot = project.Fields.ContainsKey("image") ? project["image"] : string.Empty;
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50&format=png" : "/css/img/package2.png";
}
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
<div class="popularity">
<div class="karma">
@project.Karma
<small>Karma</small>
</div>
<div class="downloads">
@project.Downloads
<small>Downloads</small>
</div>
</div>
<h3><a rel="@project["uniqueId"]" href="@pUrl@project.Id">@project["nodeName"]</a>
</h3>
<div class="category">@project["categoryFolder"]</div>
</div>
<div class="hiLite">
<p>
<a rel="@project["uniqueId"]" title="@project["nodeName"]" href="@pUrl@project.Id">
@ShortenText(project[string.Concat(LuceneIndexer.SpecialFieldPrefix, "body")])
</a>
</p>
</div>
<div class="popularity">
<div class="karma">
@project["karma"]
<small>Karma</small>
</div>
<div class="downloads">
@project["downloads"]
<small>Downloads</small>
</div>
</div>
</div>
</li>
}
</ul>
</div>
@if (favs.Any())
{
<div class="favsDiv">
<h1>Your favorites</h1>
<p>This is your favourites, based on your karma votes and downloads</p>
<ul class="projects">
@foreach (var project in @favs)
{
<li class="clearfix">
<div class="deliPackage">
<div class="brief">
@{
var screenShot = project.DefaultScreenshot;
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50" : "/css/img/package2.png";
}
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a>
</h3>
<div class="category">@project.PublishedContent.Parent.Name</div>
</div>
<div class="hiLite">
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a>
</p>
</div>
<div class="popularity">
<div class="karma">
@project.Karma
<small>Karma</small>
</div>
<div class="downloads">
@project.Downloads
<small>Downloads</small>
</div>
</div>
</div>
</li>
}
</ul>
</div>
</li>
}
</ul>
</div>
@if(favs.Count() > 0){
<div class="favsDiv">
<h1>Your favorites</h1>
<p>This is your favourites, based on your karma votes and downloads</p>
<ul class="projects">
@foreach(var project in @favs)
{
<li class="clearfix">
<div class="deliPackage">
<div class="brief">
@{
var screenShot = project.DefaultScreenshot;
var image = string.IsNullOrEmpty(screenShot) == false ? screenShot + "?bgcolor=fff&width=50&height=50" : "/css/img/package2.png";
}
<a href="@pUrl@project.Id" class="packageIcon" style="background: url('@image') no-repeat top left;">Package</a>
<h3><a rel="@project.ProjectGuid" href="@pUrl@project.Id">@project.Name</a></h3>
<div class="category">@project.GetCategoryName()</div>
</div>
<div class="hiLite">
<p><a rel="@project.ProjectGuid" title="@project.Name" href="@pUrl@project.Id">@ShortenText(project.Description)</a></p>
</div>
<div class="popularity">
<div class="karma">
@project.Karma
<small>Karma</small>
</div>
<div class="downloads">
@project.Downloads
<small>Downloads</small>
</div>
</div>
</div>
</li>
}
</ul>
</div>
}else{
<a href="#" id="loginToSeeFavs" class="rounded">Log in to see your favourites</a>
}
}
else
{
<a href="#" id="loginToSeeFavs" class="rounded">Log in to see your favourites</a>
}
</div>
@@ -10,7 +10,8 @@
var Project = ProjectsProvider.GetListing(projectId, false);
var node = new umbraco.NodeFactory.Node(projectId);
var parentId = node.Parent.Id;
var categoryName = node.Parent.Name;
var pUrl = "repo/project?id=";
string descCssClass = "noWrap";
@@ -61,7 +62,7 @@
<ul id="breadcrumb">
<li><a href="/repo?@qs">Repository</a> &rarr;</li>
<li><a href="/repo_category?@qs&category_id=@parentId">@Project.GetCategoryName()</a> &rarr;</li>
<li><a href="/repo_category?@qs&category_id=@parentId">@categoryName</a> &rarr;</li>
<li>@Project.Name</li>
</ul>
@@ -130,7 +131,7 @@
<div>
<div id="projectDescriptionText" class="@descCssClass">
@Html.Raw(Project.Description)
@Html.Raw(Project.Description.CleanHtmlAttributes())
</div>
<div class="divider" style="clear:left;"></div>
@@ -12,10 +12,12 @@
<h1>Contribute to the Umbraco Project</h1>
<div class="options">
<div>
<umbraco:Item field="bodyText" runat="server" />
</div>
<umbraco:Macro Alias="ContentLanding-Summary" runat="server" />
<div class="options">
<umbraco:Macro Alias="ContentLanding-Summary" runat="server" />
</div>
</div>
</div>
</asp:Content>
+46 -38
View File
@@ -48,14 +48,10 @@
<meta name="author" content="">
<CD:HackedCdfLoader runat="server" ID="Loader" />
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="/assets/css/style.min.css" />
<CD:HtmlInclude runat="server">
<link rel="stylesheet" type="text/css" href="/assets/css/style.min.css" />
</CD:HtmlInclude>
<link href="https://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" />
<asp:PlaceHolder runat="server" ID="CssPlaceHolder"></asp:PlaceHolder>
@@ -73,7 +69,7 @@
<script>
var _prum = [['id', '529dbcf6abe53d055a000000'],
['mark', 'firstbyte', (new Date()).getTime()]];
['mark', 'firstbyte', (new Date()).getTime()]];
(function () {
var s = document.getElementsByTagName('script')[0]
, p = document.createElement('script');
@@ -84,15 +80,16 @@
</script>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-120590-4', 'auto');
ga('send', 'pageview');
</script>
</head>
<%
@@ -105,7 +102,7 @@
<body class="<%= bodyCss %>">
<form runat="server">
<umbraco:Macro Alias="MembersQuickMenu" runat="server"></umbraco:Macro>
<div class="wrapper">
@@ -135,7 +132,7 @@
</div>
</header>
<%
var ms = new MembershipHelper(UmbracoContext.Current);
var member = ms.GetCurrentMember();
@@ -147,22 +144,24 @@
if (memberIsBlocked == false)
{
%>
<umbraco:Macro Alias="GlobalAlertBar" runat="server"></umbraco:Macro>
<asp:ContentPlaceHolder ID="Search" runat="server" />
<umbraco:Macro Alias="GlobalAlertBar" runat="server"></umbraco:Macro>
<asp:ContentPlaceHolder ID="Main" runat="server" />
<% } else { %>
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Computer says no</h1>
<p>Unfortunaly, it seems that your account has been blocked.</p>
</div>
</div>
</div>
</section>
<asp:ContentPlaceHolder ID="Search" runat="server" />
<asp:ContentPlaceHolder ID="Main" runat="server" />
<% }
else
{ %>
<section class="forum">
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">Computer says no</h1>
<p>Unfortunaly, it seems that your account has been blocked.</p>
</div>
</div>
</div>
</section>
<% } %>
<footer>
@@ -171,7 +170,15 @@
<div class="col-xs-12">
Our.umbraco.org is the community mothership for Umbraco, the open source asp.net cms. With a friendly forum for all your questions, a comprehensive documentation and a ton of packages from the community.
This site is running <data id="umbraco-version" value='<%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %>'>Umbraco version <%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %></data>
<% if (Request.UserAgent.ToLower().Contains("googlebot"))
{ %>
This site is running Umbraco.
<% }
else
{ %>
This site is running
<data id="umbraco-version" value='<%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %>'>Umbraco version <%= Umbraco.Core.Configuration.UmbracoVersion.GetSemanticVersion() %></data>
<% } %>
</div>
</div>
@@ -188,15 +195,15 @@
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pagedown/1.0/Markdown.Sanitizer.js"> </script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/0.8.1/mustache.min.js"> </script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js"></script>
<script type="text/javascript" src="/assets/js/jquery.ajaxfileupload.js"></script>
<script type="text/javascript" src="/assets/js/jquery.scrolly.js"></script>
<script type="text/javascript" src="/assets/js/lodash.min.js"></script>
<script type="text/javascript" src="/assets/js/community.js"></script>
<script type="text/javascript" src="/assets/js/app.min.js"></script>
<script type="text/javascript" src="/assets/js/editor.min.js"></script>
<CD:HtmlInclude runat="server">
<script type="text/javascript" src="/assets/js/jquery.ajaxfileupload.js"></script>
<script type="text/javascript" src="/assets/js/jquery.scrolly.js"></script>
<script type="text/javascript" src="/assets/js/lodash.min.js"></script>
<script type="text/javascript" src="/assets/js/community.js"></script>
<script type="text/javascript" src="/assets/js/app.min.js"></script>
<script type="text/javascript" src="/assets/js/editor.min.js"></script>
</CD:HtmlInclude>
<asp:PlaceHolder runat="server" ID="JavaScriptPlaceHolder"></asp:PlaceHolder>
@@ -205,6 +212,7 @@
classOnScroll('header', 'sticky', 10);
</script>
<asp:ContentPlaceHolder ID="EndScripts" runat="server" />
</form>
</body>
+1 -1
View File
@@ -12,7 +12,7 @@
<li class="filter-orderBy">
<h3>Projects</h3>
<ul class="level-2">
<li><h4><a href="?orderBy=createDate">Newest projects</a></h4></li>
<li><h4><a href="?orderBy=updateDate">Updated projects</a></h4></li>
<li><h4><a href="?orderBy=popularity">Popular projects</a></h4></li>
</ul>
</li>
@@ -0,0 +1,219 @@
<%@ Master Language="C#" MasterPageFile="~/masterpages/Master.master" AutoEventWireup="true" %>
<%@ Import Namespace="Umbraco.Web" %>
<%@ Import Namespace="OurUmbraco.Release" %>
<%@ Import Namespace="Umbraco.Core.Models" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Main" runat="server">
<div class="has-sidebar release">
<div class="page-content">
<div class="sidebar-area">
<div class="sidebar-content">
<div class="content-wrapper">
<nav>
<ul class="level-1">
<%-- <%
foreach (var currentRelease in allReleases.Where(x => x.released && x.currentRelease))
{
%>
<li>
<a class="active" href="/contribute/releases/<%= currentRelease.version.Replace(".", string.Empty) %>"><h3>Latest Release - v<%= currentRelease.version %></h3></a>
</li>
<% } %>--%>
<li>
<a href="/contribute/progress">
<h3>In Progress</h3>
</a>
</li>
<li class="active open">
<a href="/contribute/releases">
<h3>All releases</h3>
</a>
<ul class="level-2">
<li class="active">
<a href="/contribute/releases/compare">
<h4>Compare Versions</h4>
</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<!-- .content-wrapper -->
</div>
<!-- .sidebar-content -->
</div>
<div class="main-area">
<div class="main-content">
<div class="content-wrapper">
<div>
<umbraco:Macro linkToCurrent="1" Alias="Breadcrumb" runat="server"></umbraco:Macro>
</div>
<style>
.release .explain {
margin-top: 20px;
border-bottom: 1px solid #eee;
border-top: 1px solid #eee;
}
.release .explain h2 {
margin-top: 12px;
font-size: 2em;
margin-bottom: .3rem;
color: rgba(0,0,0,.8);
}
.release .dot {
border: none;
}
.release .dot.big {
position: relative;
text-indent: 0;
margin: 15px !important;
float: left;
}
.statuses ul {
list-style-type: none;
}
.statuses ul li {
position: relative;
margin-bottom: 10px;
padding-left: 10px;
}
.statuses li:before {
position: absolute;
top: -4px;
left: -25px;
font-size: 1.5em;
}
.release .markdown-syntax a {
text-decoration: none;
}
.release .markdown-syntax a:hover {
text-decoration: underline;
}
.markdown-syntax.douh {
margin-top: 0 !important;
}
.release .chart {
height: 60px;
width: 60px;
top: inherit;
left: inherit;
text-align: center;
}
.release .chart p {
vertical-align: middle;
line-height: 2.7rem;
display: inline-block;
}
.release .chart canvas {
top: 0;
left: 0;
}
.release .chartDesc {
float: left;
position: relative;
line-height: 3.6em;
}
.release select {
border-radius: 0;
padding: 10px;
background-position: 95% center;
float: left;
}
.release .titles {
padding: 12px 15px;
font-size: .8rem;
text-transform: uppercase;
font-weight: 700;
letter-spacing: .5px;
}
.release .to {
margin-left: 20px;
margin-right: 20px;
}
.release .button {
float: right;
}
.explain .col-xs-12 {
min-height: 50px;
}
.error {
color: red !important;
}
</style>
<div class="container">
<div class="row markdown-syntax douh">
<div class="col-sm-12">
<h1>Compare Releases</h1>
<umbraco:Macro Alias="ReleasesDropdown" runat="server" />
</div>
</div>
</div>
</div>
<!-- .content-wrapper -->
</div>
<!-- .main-content -->
</div>
<!-- .main-area -->
</div>
<!-- .page-content -->
</div>
<!-- has-sidebar -->
</asp:Content>
<asp:Content ContentPlaceHolderID="EndScripts" runat="server">
<script src="https://cdnjs.cloudflare.com/ajax/libs/easy-pie-chart/2.1.4/jquery.easypiechart.min.js"></script>
<script type="text/javascript">
function offsetAnchor() {
if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 120);
}
}
$(window).on("hashchange", function () {
offsetAnchor();
});
//window.setTimeout(function () {
// offsetAnchor();
//}, 1);
setTimeout(function () {
$('.chart').easyPieChart({
size: 60,
barColor: '#569327',
scaleColor: false,
trackColor: '#daf0c9'
});
offsetAnchor();
}, 300);
</script>
</asp:Content>
@@ -31,9 +31,14 @@
<li>
<a href="/contribute/progress"><h3>In Progress</h3></a>
</li>
<li class="active">
<li class="active open">
<a href="/contribute/releases"><h3>All releases</h3></a>
</li>
<ul class="level-2">
<li>
<a href="/contribute/releases/compare"><h4>Compare Versions</h4></a>
</li>
</ul>
</li>
</ul>
</nav>
+45 -36
View File
@@ -1,53 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AspNetMvc" version="3.0.20105.1" targetFramework="net4" />
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
<package id="AutoMapper" version="3.0.0" targetFramework="net452" />
<package id="ClientDependency" version="1.9.1" targetFramework="net452" />
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
<package id="ClientDependency-Mvc5" 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.68.0" targetFramework="net451" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
<package id="ImageProcessor" version="2.3.0.0" targetFramework="net451" />
<package id="ImageProcessor.Web" version="4.4.0.0" targetFramework="net451" />
<package id="Examine" version="0.1.69.0" targetFramework="net452" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net452" />
<package id="ImageProcessor" version="2.4.4.0" targetFramework="net452" />
<package id="ImageProcessor.Web" version="4.6.4.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="net451" />
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net452" />
<package id="Markdown" version="1.14.4" targetFramework="net452" />
<package id="MarkdownSharp" version="1.13.0.0" targetFramework="net4" />
<package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
<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" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net451" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net451" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net451" />
<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.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net451" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net451" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net451" />
<package id="MySql.Data" version="6.9.7" targetFramework="net451" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net452" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
<package id="MiniProfiler" version="2.1.0" targetFramework="net452" />
<package id="MySql.Data" version="6.9.8" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
<package id="Owin" version="1.0" targetFramework="net452" />
<package id="RestSharp" version="104.1" targetFramework="net4" />
<package id="semver" version="1.1.2" targetFramework="net451" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.3.1" targetFramework="net451" />
<package id="UrlTracker" version="3.8" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
<package id="semver" version="1.1.2" targetFramework="net452" />
<package id="SharpZipLib" version="0.86.0" 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="Umbraco.ModelsBuilder" version="3.0.4" targetFramework="net452" />
<package id="UmbracoCms" version="7.5.3" targetFramework="net452" />
<package id="UmbracoCms.Core" version="7.5.3" 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" />
<package id="UrlTracker" version="3.11" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net452" />
<package id="YouTrackSharp" version="2.0.11.0" targetFramework="net4" />
</packages>
@@ -0,0 +1,353 @@
/**
* AnchorJS - v3.2.1 - 2016-07-18
* https://github.com/bryanbraun/anchorjs
* Copyright (c) 2016 Bryan Braun; Licensed MIT
*/
/* SD: This has been modified to support an offset */
/* eslint-env amd, node */
// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
(function (root, factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {
// Browser globals (root is window)
root.AnchorJS = factory();
root.anchors = new root.AnchorJS();
}
}(this, function () {
'use strict';
function AnchorJS(options) {
this.options = options || {};
this.elements = [];
/**
* Assigns options to the internal options object, and provides defaults.
* @param {Object} opts - Options object
*/
function _applyRemainingDefaultOptions(opts) {
opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'.
opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
// Using Math.floor here will ensure the value is Number-cast and an integer.
opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
opts.anchorCreated = opts.hasOwnProperty('anchorCreated') ? opts.anchorCreated : null; // no callback by default
}
_applyRemainingDefaultOptions(this.options);
/**
* Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
* https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
* @return {Boolean} - true if the current device supports touch.
*/
this.isTouchDevice = function () {
return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
};
/**
* Add anchor links to page elements.
* @param {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
* to. Also accepts an array or nodeList containing the relavant elements.
* @return {this} - The AnchorJS object
*/
this.add = function (selector) {
var elements,
elsWithIds,
idList,
elementID,
i,
index,
count,
tidyText,
newTidyText,
readableID,
anchor,
visibleOptionToUse,
indexesToDrop = [];
// We reapply options here because somebody may have overwritten the default options object when setting options.
// For example, this overwrites all options but visible:
//
// anchors.options = { visible: 'always'; }
_applyRemainingDefaultOptions(this.options);
visibleOptionToUse = this.options.visible;
if (visibleOptionToUse === 'touch') {
visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
}
// Provide a sensible default selector, if none is given.
if (!selector) {
selector = 'h1, h2, h3, h4, h5, h6';
}
elements = _getElements(selector);
if (elements.length === 0) {
return false;
}
_addBaselineStyles();
// We produce a list of existing IDs so we don't generate a duplicate.
elsWithIds = document.querySelectorAll('[id]');
idList = [].map.call(elsWithIds, function assign(el) {
return el.id;
});
for (i = 0; i < elements.length; i++) {
if (this.hasAnchorJSLink(elements[i])) {
indexesToDrop.push(i);
continue;
}
if (elements[i].hasAttribute('id')) {
elementID = elements[i].getAttribute('id');
} else {
tidyText = this.urlify(elements[i].textContent);
// Compare our generated ID to existing IDs (and increment it if needed)
// before we add it to the page.
newTidyText = tidyText;
count = 0;
do {
if (index !== undefined) {
newTidyText = tidyText + '-' + count;
}
index = idList.indexOf(newTidyText);
count += 1;
} while (index !== -1);
index = undefined;
idList.push(newTidyText);
elements[i].setAttribute('id', newTidyText);
elementID = newTidyText;
}
readableID = elementID.replace(/-/g, ' ');
// The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
// '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
anchor = document.createElement('a');
anchor.className = 'anchorjs-link ' + this.options.class;
anchor.href = '#' + elementID;
anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
anchor.setAttribute('data-anchorjs-icon', this.options.icon);
if (visibleOptionToUse === 'always') {
anchor.style.opacity = '1';
}
if (this.options.icon === '\ue9cb') {
anchor.style.fontFamily = 'anchorjs-icons';
anchor.style.fontStyle = 'normal';
anchor.style.fontVariant = 'normal';
anchor.style.fontWeight = 'normal';
anchor.style.lineHeight = 1;
// We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
// height of the heading. This isn't the case for icons with `placement: left`, so we restore
// line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
// see https://github.com/bryanbraun/anchorjs/issues/39.
if (this.options.placement === 'left') {
anchor.style.lineHeight = 'inherit';
}
}
if (this.options.placement === 'left') {
anchor.style.position = 'absolute';
anchor.style.marginLeft = '-1em';
anchor.style.paddingRight = '0.5em';
elements[i].insertBefore(anchor, elements[i].firstChild);
} else { // if the option provided is `right` (or anything else).
anchor.style.paddingLeft = '0.375em';
elements[i].appendChild(anchor);
}
//execute the callback
if (this.options.anchorCreated !== null) {
this.options.anchorCreated(elements[i]);
}
}
for (i = 0; i < indexesToDrop.length; i++) {
elements.splice(indexesToDrop[i] - i, 1);
}
this.elements = this.elements.concat(elements);
return this;
};
/**
* Removes all anchorjs-links from elements targed by the selector.
* @param {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
* OR a nodeList / array containing the DOM elements.
* @return {this} - The AnchorJS object
*/
this.remove = function (selector) {
var index,
domAnchor,
elements = _getElements(selector);
for (var i = 0; i < elements.length; i++) {
domAnchor = elements[i].querySelector('.anchorjs-link');
if (domAnchor) {
// Drop the element from our main list, if it's in there.
index = this.elements.indexOf(elements[i]);
if (index !== -1) {
this.elements.splice(index, 1);
}
// Remove the anchor from the DOM.
elements[i].removeChild(domAnchor);
}
}
return this;
};
/**
* Removes all anchorjs links. Mostly used for tests.
*/
this.removeAll = function () {
this.remove(this.elements);
};
/**
* Urlify - Refine text so it makes a good ID.
*
* To do this, we remove apostrophes, replace nonsafe characters with hyphens,
* remove extra hyphens, truncate, trim hyphens, and make lowercase.
*
* @param {String} text - Any text. Usually pulled from the webpage element we are linking to.
* @return {String} - hyphen-delimited text for use in IDs and URLs.
*/
this.urlify = function (text) {
// Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!']./()*\
var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'\]\.\/\(\)\*\\]/g,
urlText;
// The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
// even after setting options. This can be useful for tests or other applications.
if (!this.options.truncate) {
_applyRemainingDefaultOptions(this.options);
}
// Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
// Example string: // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
urlText = text.trim() // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
.replace(/\'/gi, '') // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
.replace(nonsafeChars, '-') // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
.replace(/-{2,}/g, '-') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
.substring(0, this.options.truncate) // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
.replace(/^-+|-+$/gm, '') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
.toLowerCase(); // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
return urlText;
};
/**
* Determines if this element already has an AnchorJS link on it.
* Uses this technique: http://stackoverflow.com/a/5898748/1154642
* @param {HTMLElemnt} el - a DOM node
* @return {Boolean} true/false
*/
this.hasAnchorJSLink = function (el) {
var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
return hasLeftAnchor || hasRightAnchor || false;
};
/**
* Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
* It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
* @param {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
* OR a nodeList / array containing the DOM elements.
* @return {Array} - An array containing the elements we want.
*/
function _getElements(input) {
var elements;
if (typeof input === 'string' || input instanceof String) {
// See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
elements = [].slice.call(document.querySelectorAll(input));
// I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
} else if (Array.isArray(input) || input instanceof NodeList) {
elements = [].slice.call(input);
} else {
throw new Error('The selector provided to AnchorJS was invalid.');
}
return elements;
}
/**
* _addBaselineStyles
* Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
*/
function _addBaselineStyles() {
// We don't want to add global baseline styles if they've been added before.
if (document.head.querySelector('style.anchorjs') !== null) {
return;
}
var style = document.createElement('style'),
linkRule =
' .anchorjs-link {' +
' opacity: 0;' +
' text-decoration: none;' +
' -webkit-font-smoothing: antialiased;' +
' -moz-osx-font-smoothing: grayscale;' +
' }',
hoverRule =
' *:hover > .anchorjs-link,' +
' .anchorjs-link:focus {' +
' opacity: 1;' +
' }',
anchorjsLinkFontFace =
' @font-face {' +
' font-family: "anchorjs-icons";' +
' font-style: normal;' +
' font-weight: normal;' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
' src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype");' +
' }',
pseudoElContent =
' [data-anchorjs-icon]::after {' +
' content: attr(data-anchorjs-icon);' +
' }',
firstStyleEl;
style.className = 'anchorjs';
style.appendChild(document.createTextNode('')); // Necessary for Webkit.
// We place it in the head with the other style tags, if possible, so as to
// not look out of place. We insert before the others so these styles can be
// overridden if necessary.
firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
if (firstStyleEl === undefined) {
document.head.appendChild(style);
} else {
document.head.insertBefore(style, firstStyleEl);
}
style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
}
}
return AnchorJS;
}));
-32
View File
@@ -56,38 +56,6 @@ window.location = "/search?q=" + encodeURIComponent(jQuery('#searchField').val()
/* SIGNUP FORM RELATED */
function lookupTwitter(field){
var f = $(field);
if(f.val() != ""){
var turl = "/base/twitter/Profile/" + f.val() + ".aspx";
$.get(turl, function(d){
var buddyIcon = $(d).find("user profile_image_url").text();
if(buddyIcon != ""){
$("label[class != 'inputLabel']",f.parent()).remove();
f.after("<label class='success'><img src='" + buddyIcon + "'/> We found you!</label>");
}
else
$("label[class != 'inputLabel']",f.parent()).remove();
});
}}
function lookupEmail(field){
var f = $(field);
if(!f.hasClass("error") && f.val() != ""){
var turl = "/umbraco/api/Community/IsEmailUnique/?email=" + f.val();
$.get(turl, function(d){
if( jQuery("value",d).text() != "true"){
$("label[class != 'inputLabel']",f.parent()).remove();
f.after("<label class='error'>Email already registered</label>");}
else
$("label[class != 'inputLabel']",f.parent()).remove();
});
}
}
function killButton(button, label){
var b = $(button);
b.after("<em class='yellow'>" + label + "</em>");

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