Compare commits

...

164 Commits

Author SHA1 Message Date
hartvig fec91ebd75 Setting version number to 4.6.0 - ahhh 2011-01-11 19:08:15 -01:00
PerPloug 335c7a4333 Missing *.pdb files removal from nant 2011-01-11 18:28:35 -01:00
PerPloug 648ac811e8 Merge 2011-01-11 12:52:22 -01:00
PerPloug f6475b3812 Changes default.nant build ID to 4.6 RC1 2011-01-11 12:50:47 -01:00
hartvig ef5cb3dd4c RC 2011-01-11 12:49:36 -01:00
hartvig 4c76081568 Fix to find all dashboards for a section (even if scattered over multiple area elements) 2011-01-11 12:31:30 -01:00
PerPloug 0889e9c033 Merge, Work items: 29844 2011-01-11 12:21:12 -01:00
PerPloug 700aa48a2e New Nibble.ZipUpload.dll which lowercases extensions before creating media items 2011-01-11 12:18:58 -01:00
hartvig 43ccf77d7e Adds helper text for SQL CE 2011-01-11 12:15:22 -01:00
hartvig 24d5eefe38 Merge 2011-01-11 12:02:56 -01:00
hartvig 551bcdde2f Work items: 29830 2011-01-11 11:59:04 -01:00
PerPloug 6f1776fb69 Work items: 29769 adds 40px to the member create dialog 2011-01-11 11:58:39 -01:00
PerPloug 33618f9c2a Merge 2011-01-11 11:36:52 -01:00
PerPloug ff39e069db Reproduced #29779, Calling RefreshContent() after database upgrade fixes empty paths
work items: 29779
2011-01-11 11:32:56 -01:00
PerPloug a2357bad85 Reproduced #29779, Calling RefreshContent() after database upgrade fixes empty paths
work items: 29779
2011-01-11 11:30:07 -01:00
hartvig 3d02429285 Merge 2011-01-11 11:18:34 -01:00
hartvig cef7401ff8 Work items: 29778 2011-01-11 11:14:31 -01:00
PerPloug 8fb62265b7 Work items: 29836 2011-01-11 10:53:17 -01:00
PerPloug 62db053500 Fixes #29836 CloseTriggrs type changed to CloseTriggers (modal.js line 27) 2011-01-11 10:49:51 -01:00
hartvig 0edf5a5e5e Work items: 29841 2011-01-11 10:31:57 -01:00
hartvig dc1be04202 Work items: 29848 2011-01-11 10:24:39 -01:00
hartvig 5c70ba1eb8 Work items: 28882 2011-01-11 10:03:08 -01:00
hartvig 38b1385b66 Fixes issues with uploading files/images. Work items: 29196 2011-01-11 09:42:28 -01:00
boxbinary b9849a2ded Fixes: "Installer bug in IE8: password confirm message is white color. you can't see it"
Work Items: 29843
2011-01-11 09:32:38 +00:00
hartvig 792450328d Work items: 29846 2011-01-11 07:20:03 -01:00
psterling babf5dabe2 fixes #29792 - Link to UrlRewritingManual in the UrlRewriting.config is not working 2011-01-11 03:02:18 +08:00
psterling 1e3eaf8094 updates to license links in about dialog 2011-01-11 02:54:35 +08:00
psterling fec878227e update database installation video link in installer database step 2011-01-11 01:20:39 +08:00
starfighter83 a1abd9dd18 Merge 2011-01-10 14:11:32 -01:00
starfighter83 44e01c09d6 Fixes: Tilde (~) in media path (when getting property value in .net)
Work Items: 28598
2011-01-10 14:11:19 -01:00
hartvig 6eb738e0d3 Fixes issue with SQL CE and loading macros on front end: Work Items: 29781 2011-01-10 13:33:55 -01:00
PerPloug c50d2e994e Adds RazorEngine.core and .templates to nant build 2011-01-10 13:24:56 -01:00
pgregorynz 058b195a12 Timeout bar translation keys for EN 2011-01-10 01:10:45 -13:00
pgregorynz bff788f048 lockout modal styling 2011-01-10 01:03:00 -13:00
hartvig cc96e01b4c Enhanced Razor support. Adds caching, pre-compilation of templates and support for helpers and more. Work items: 29817 2011-01-10 12:23:26 -01:00
starfighter83 b57b18c0b1 Merge 2011-01-10 11:22:38 -01:00
starfighter83 631eb1fecb Fixes: Macros inserted in the RTE get extraneous <p> tags above and below
Work Items: 21883
2011-01-10 11:22:07 -01:00
hartvig 564fa2659b Work Items: 29822 2011-01-10 08:28:58 -01:00
starfighter83 2177686e43 Make sure user is logged back in when he enters correct password 2011-01-07 14:46:54 -01:00
starfighter83 36e0b28e70 Merge 2011-01-07 14:33:12 -01:00
starfighter83 4ac3a5537e Does a lock out instead of a logout when user is idle to long 2011-01-07 14:32:19 -01:00
boxbinary 51977637b7 UX Tweak: Removes shadow from body text in installer. Modifies shadow on step tabs and h1. 2011-01-07 14:09:17 +00:00
PerPloug ee4477f6ab Merge 2011-01-07 10:41:19 -01:00
PerPloug 8baa2db7e7 Removing unnedded update.ascx file from installer 2011-01-07 10:31:59 -01:00
PerPloug 5d3aeee02f Adds upgrade support to installer 2011-01-07 10:18:34 -01:00
pgregorynz 6da0a00e06 Dashboard updates 2011-01-06 22:17:40 -13:00
starfighter83 7d69bed9c9 Fixed: Exception "This document already has a DocumentElement node"
Work Items: 29412
2011-01-07 09:56:19 -01:00
starfighter83 d182a297b8 Merge 2011-01-07 09:21:13 -01:00
starfighter83 aa3b8fb808 Fixed: Juno, installing starter kit from developer section works but ends in YSOD
Fixed: Juno, installing skin from developer section works but ends in YSOD
Work Items: 29821, 29820
2011-01-07 09:20:32 -01:00
boxbinary 73e552d105 Merge 2011-01-07 01:26:06 +00:00
boxbinary 8f2f81b558 Code env fix: Removes source control bindings from csproj files.
Code env fix: Modified .hgignore to ignore .vs10x files and anything in App_Data\TEMP
Fix: upon saving a document type, if the alias has changed, document Xml is regenerated in the db and the Xml caches are told to update.
Fix: upon saving a document type, if the name has changed, the tree updates with that change
Work Items: 29197, 28738
2011-01-07 01:23:09 +00:00
slace 48ff65e597 adding CurrentPage to the .NET macros 2011-01-06 12:22:34 -11:00
slace 58874238cc Adding a more detailed exception when parsing fails for LINQ to Umbraco 2011-01-06 12:09:24 -11:00
Tim Saunders 8062df53f8 Renabled paging paging on skinning step in installer as it is now dynamic. 2011-01-06 19:32:42 +00:00
Tim Saunders 9df031c6fd Text ammendmens to the installer and hiding of the next and back buttons on the skin page. NOTE: These will need to be re-enabled when there are more skins. 2011-01-06 16:43:36 +00:00
starfighter83 b17e54976f small update (related to chrome / macro) 2011-01-06 14:50:19 -01:00
starfighter83 28479e5257 Merge 2011-01-06 13:56:55 -01:00
starfighter83 fb90e44dad Fixes 28639: Chrome crashes in 4.5 when editing macro parameters in TinyMCE 2011-01-06 13:55:38 -01:00
Adam Shallcross 76fc41f14e Merge merged css changes into repo 2011-01-06 14:31:53 +00:00
Adam Shallcross 60a3d581ab Added missing files and updated CSS for missing styles on starter kit panel and bg in text to make it stand out a bit more from the page 2011-01-06 14:19:42 +00:00
starfighter83 c4385335a1 Fixes 29249: Publish At and Remove At do not work 2011-01-06 10:42:19 -01:00
starfighter83 2f90f76348 adds web.config. ... .xslt 2011-01-06 09:24:41 -01:00
starfighter83 873ee6a7d1 Merge 2011-01-06 09:06:06 -01:00
starfighter83 fa54d0a1e8 Fixes 29799: Macro Container: ordering macros throws exception on some nodes 2011-01-06 09:04:41 -01:00
pgregorynz 413fe775d1 Removed references to the installer images directory from presentation project 2011-01-05 12:49:26 -13:00
pgregorynz dd1119bcad Merge 2011-01-05 12:35:49 -13:00
pgregorynz 9efc931b92 adding link to getting started to the THEEND step on the installer 2011-01-05 12:14:09 -13:00
pgregorynz 09a785537e Adding link to getting started guide on dashboard 2011-01-05 12:09:28 -13:00
Tim Saunders d851afd8e2 Merged installer text changes 2011-01-05 13:05:33 +00:00
Tim Saunders e883a22093 Installer text and spelling corrections. 2011-01-05 12:58:42 +00:00
starfighter83 7dea3b872f Fixes broken build 2011-01-05 11:45:28 -01:00
starfighter83 6795f700d5 small updates to skinning 2011-01-05 11:38:49 -01:00
starfighter83 682104a1f1 some includes (related to TinyMCE upgrade) 2011-01-05 09:21:31 -01:00
starfighter83 d29eb77383 Updates TinyMCE to 3.3.9.3 (latest stable) 2011-01-05 09:17:29 -01:00
starfighter83 07804c149b Merge 2011-01-05 08:17:20 -01:00
starfighter83 b89257b96c Fixes issue with macro container css not being found 2011-01-05 08:15:42 -01:00
Tim Saunders 288ae8826c Updated the instruction text to fix grammar, spelling and readability issues 2011-01-04 18:20:49 +00:00
starfighter83 d00e9c502a Fixes 29798: Importing Document Type with a Master set adds properties to incorrect tab 2011-01-04 08:48:16 -01:00
starfighter83 f4c976e600 updates /config/create/ui.xml 2011-01-04 08:34:19 -01:00
starfighter83 83322a1916 Fixes 29790: Could not find file zipUpload.config 2011-01-04 08:07:26 -01:00
starfighter83 8a9a625964 Fixes 27419: Deleting copied content nodes with an uploadfile property results in deletion of original uploaded file 2011-01-03 09:15:35 -01:00
starfighter83 b0dcfec61e Merge 2011-01-03 08:37:11 -01:00
starfighter83 13d93de517 Merge 2011-01-03 08:36:52 -01:00
starfighter83 0a39ee90c2 trying to merge 2011-01-03 08:36:19 -01:00
starfighter83 b8b39ae890 Fixes: created documnet type can't be deleted, I can assure you that this is a bug. Work Items : 29789 2011-01-03 08:34:26 -01:00
psterling feff4a5713 Fixes #29793 to allow arbitrary return value length from user-defined /base methods 2010-12-31 01:26:39 +08:00
slace d3df402d4a setting the umbraco.config to be ignored and adding a DynamicNode method to do AncestorOrSelf 2010-12-28 00:04:11 -11:00
hartvig 87d96f389d Fixes #29784 and #29788 + updates jQuery to v1.4.4 2010-12-27 09:27:07 -01:00
slace fc23004a1b fixing spelling error 2010-12-26 18:19:08 -11:00
slace 4ec0aaab24 adding pluralization support for finding children 2010-12-26 18:05:47 -11:00
slace cbf9a2e7e0 changed the DynamicNode to also handle child types through property accessors as well 2010-12-26 17:50:21 -11:00
slace 6bf2b10231 web.config changes 2010-12-26 16:27:47 -11:00
slace 792aff0f1a merge 2010-12-25 22:47:48 -11:00
slace 2bbf3c8af2 changin the DLR macro engine also contain a dynamic object 2010-12-25 22:45:32 -11:00
slace c239578bd8 updating hgignore to handle v5 source 2010-12-25 22:37:03 -11:00
slace 0c3f57f537 making the DynamicNode object work more like a Node object without having to rely on reflection 2010-12-25 22:36:12 -11:00
pgregorynz 6b423f5082 move remaining images to umbraco_client/installer images directory remove /install/images 2010-12-23 11:08:45 -13:00
pgregorynz cbea0ad4e7 sets the ie images for the filter in lt7.css to be relative in the installer to allow images from umbraco_client directory 2010-12-23 10:58:27 -13:00
hartvig f18fe684cd It's a beta, baby! 2010-12-23 22:40:56 -01:00
hartvig 4795bb9f43 Fixes caching issue in IE installer 2010-12-23 22:14:38 -01:00
hartvig 63d5615698 Fixes installer ie issue (by duplicating image files - better fix for final release) 2010-12-23 21:42:40 -01:00
hartvig 216ab8c966 Updates to NodeFactory 2010-12-23 20:42:50 -01:00
starfighter83 e5f734acf3 small changes to noNodes page 2010-12-23 10:05:28 -01:00
starfighter83 3646f8af4b Fixes #29760: Update design of no nodes page (so it fits with new installer) 2010-12-23 09:57:21 -01:00
starfighter83 8d16887ba9 Fixes #29771: Juno, installer, when installing starter kit progress has caption for skins 2010-12-23 09:40:23 -01:00
starfighter83 fb7f28e00d Moving installer js and css so it can be used on no nodes page 2010-12-23 09:35:44 -01:00
starfighter83 057ab8cd15 Fixes #29770 : Juno, developer / packages / install skin avoid installing the same skin twice 2010-12-23 06:48:03 -01:00
starfighter83 9203fb6fed Fixes #29768, Juno, installer, last step, replace community blog and twitter feed with video feed 2010-12-23 06:30:01 -01:00
starfighter83 389454868d Fixes #29766 : Juno, default dashboards, 'Click to hide this in the future' nearly invisible 2010-12-23 06:02:14 -01:00
starfighter83 25daf42363 Merge 2010-12-23 05:52:09 -01:00
slace 7b91c3beab merge 2010-12-22 13:39:47 -11:00
slace a36cda81e3 merge 2010-12-22 13:38:33 -11:00
PerPloug aa5f57432d Missing children and ChildrenAslist methods on nodefactory wrapper 2010-12-22 20:25:55 -01:00
PerPloug 386f008dd7 Node Factory Wrapper to ensure backwards compat 2010-12-22 20:04:58 -01:00
psterling 34e0b10633 Fixes #28796 - public access null reference exception with Single User Page Protection 2010-12-23 03:14:01 +08:00
starfighter83 4f5d4c05c1 fixes 29764: Juno, ysod when creating doctype under other doctype 2010-12-22 13:42:44 -01:00
starfighter83 0e6bb6fb10 Merge 2010-12-22 12:32:06 -01:00
starfighter83 93f934b0c1 Fixes #29765 : Juno, can't add params to macro 2010-12-22 12:30:53 -01:00
PerPloug 8c7636558b macroEngines build file 2010-12-22 10:41:27 -01:00
hartvig 7d4430855f Excluding unit tests from default build 2010-12-22 09:56:54 -01:00
hartvig abacb50ee8 Updates to unit tests and ContentType caching 2010-12-22 09:48:53 -01:00
PerPloug 0b1c8e39e6 Merge 2010-12-22 09:00:48 -01:00
PerPloug b0a46e6a06 Merge 2010-12-22 09:00:22 -01:00
PerPloug f27c625439 updated nant build for razord 2010-12-22 08:59:48 -01:00
PerPloug d027fdb3d0 updated nant build for razord 2010-12-22 08:56:52 -01:00
starfighter83 4a40b1046e Merge 2010-12-22 08:09:26 -01:00
starfighter83 10c9c14037 Fixes js error in IE / skin customizer 2010-12-22 08:07:47 -01:00
psterling f29a93422e Copy updates to default dashboards 2010-12-22 03:52:23 +08:00
starfighter83 2c3c6ce391 fixes #29745: New Installer, if you don't install starter kit, don't show 'Preview your new site' option 2010-12-21 11:52:14 -01:00
starfighter83 5105a2c9ef small update to abstractdataeditor 2010-12-21 11:49:06 -01:00
starfighter83 6a92a2f321 Fixes #29759: Not possible to make a property that is using a datatype with the usercontrolwrapper mandatory 2010-12-21 10:02:09 -01:00
starfighter83 4578054f1b fixed #29758: ValidationProperty not picked up when using AbstractDataEditor 2010-12-21 09:39:55 -01:00
starfighter83 1d26a0353b update to usercontrol wrapper, detect if value is xml (if it is, don't store in cdata) 2010-12-21 08:14:41 -01:00
starfighter83 b375ddf1f8 Fixes 29631, tilde not resolved (PropertyContextHelpOption set to icon) 2010-12-20 13:03:47 -01:00
starfighter83 df2cfec816 implements #29749 , return proper http status code when base fails 2010-12-20 12:48:34 -01:00
starfighter83 89182fc3a9 update to usercontrolwrapper prevalue editor, so it loads any additional settings after saving usercontrol selection 2010-12-20 12:12:53 -01:00
starfighter83 bf73588b6e Merge 2010-12-17 08:04:09 -01:00
starfighter83 e29fe682b7 makes it possible to have custom settings on datatypes using the usercontrol wrapper 2010-12-17 08:00:08 -01:00
hartvig c9c7eed6d9 Merge 2010-12-16 23:58:10 -01:00
hartvig 9b56b76ad4 Merge 2010-12-16 23:57:47 -01:00
hartvig 94722e82dd Adding support for Public Properties on Dashboard controls (simply add values as attributes on the <control/> element [case-sensitive!]) 2010-12-16 23:39:31 -01:00
slace a03fe234e8 adding hgignore to default head 2010-12-16 11:13:53 -11:00
slace 5e83d590f9 removing (and ignoring) the .suo file 2010-12-16 11:09:50 -11:00
Tim Saunders ddbbf5e799 Various bug fixes and enhancements to the installer, including: stop animation of progress bar when it reaches 100%, Fixed validtion display errors, fixed database form JQuery issues. 2010-12-16 18:31:18 +00:00
starfighter83 6e51d690ce XsltExtension attribute (now also searches in assemblies, not only app_code) 2010-12-16 11:15:56 -01:00
slace 6a69202f5e some clean up of the restExtension.cs file to make it a bit more robust 2010-12-16 00:28:45 -11:00
starfighter83 06f6111876 updates RestExtension attribute so it also picks up types from app_code 2010-12-16 09:33:08 -01:00
starfighter83 0d91a841ff Merge 2010-12-16 09:09:57 -01:00
starfighter83 47e9aa6088 introduces the RestExtension and RestExtensionMethod attribute 2010-12-16 09:06:39 -01:00
PerPloug 7c7df808b4 nuget.build file 2010-12-15 13:43:24 -01:00
PerPloug 34eea0742b Merge 2010-12-15 13:40:48 -01:00
PerPloug 78c97971aa Missing nuget.build file 2010-12-15 13:32:32 -01:00
starfighter83 4f37fb0c00 Changes targetframework back to 3.5 2010-12-15 13:24:53 -01:00
starfighter83 60ca487ea3 Merge 2010-12-15 12:43:43 -01:00
starfighter83 777a857b6b Merge 2010-12-15 12:40:29 -01:00
starfighter83 712571fc38 fixes broken build 2010-12-15 12:39:49 -01:00
starfighter83 1c08fc0351 WIP another small change to /umbraco/developer/packages/starterkits.aspx page (styling the skin overview) 2010-12-15 11:44:33 -01:00
starfighter83 e765df10fe WIP skinning, change to /umbraco/developer/packages/starterkits.aspx page 2010-12-15 11:33:15 -01:00
PerPloug 84d88161fa nuget.build file for building umbraco dlls as a nuget package 2010-12-15 09:28:25 -01:00
PerPloug accb94c415 Changes from Temp Juno SVN Repo 2010-12-15 09:27:05 -01:00
slace 4c0852c0e8 Adding section on submitting bugs 2010-12-14 11:39:13 -11:00
slace e21057e9c8 Adding readme file 2010-12-14 11:38:48 -11:00
boxbinary 03de5ca711 Adding 'Getting started' note following TFS migration 2010-12-14 22:29:40 +00:00
admin 99d0b8c37e Adding tags 2010-12-14 03:19:56 +08:00
347 changed files with 10995 additions and 3335 deletions
+24
View File
@@ -0,0 +1,24 @@
# use glob syntax
syntax: glob
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
[Bb]in
[Db]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.suo
[sS]ource
[sS]andbox
umbraco.config
*.vs10x
App_Data\TEMP\*
+6
View File
@@ -0,0 +1,6 @@
d0aba247db91d1b70c39c6397b965ca370a67497 Sprint-Juno-A
0b8f67be2ca8faf008151d87f232c698de69e735 Release-4.5.0
5960c073250926d202861a09472f5f334da6e283 Sprint-Juno-B
f15d4ff81a8368e9d42788f7e0ae726f7a70a3b1 Release-4.0.3
283065df4d3c27245267709dd2644a479c4f62a5 Release-4.0.4.2
ffc34b23e1a03785e4098afa4290d8c03cf10115 Release-4.5.2
+24
View File
@@ -0,0 +1,24 @@
Hi! Thanks for grabbing the Umbraco sourcecode.
===========================================
NOTE - DEFAULT BRANCH EMPTY - December 2010
===========================================
- With the help of CodePlex we have migrated much of our previous changesets (as of Dec 13th 2010) from TFS to Mercurial.
- However, not everything could be migrated to our new branching workflow. So for each nominal group of 4.x changes, we've created named branches. For upcoming 5.x changesets, we'll adhere to our new workflow which we'll describe on the Wiki for contributors.
- FOR THE MOMENT, the 'default' branch is empty - pending the addition of the 5.0 changesets
- To switch to the codebase on which you want to work, 'hg update' to the named branch (e.g. "4.6.0") or tag (e.g. "Release-4.5.2") and browse or work from that point.
Thanks to Matt Hawley at CodePlex for his help in our migration!
Cheers,
The Umbraco Team
http://umbraco.org
http://our.umbraco.org
http://umbraco.codeplex.com
+8 -216
View File
@@ -1,221 +1,13 @@
umbraco v3 is licensed under the open source license CPL - Common Public License (attached below). Please notice that it's only v3 that uses the CPL. The prior versions (v2.0, v2.1 and v2.1.x) uses GPL.
Umbraco CMS version 4.5 is licensed under the OSI approved MIT License:
Important License Guidelines - How we see and adopt the CPL
- You're free to choose whatever license (both open source and properary licenses) for any umbraco extensions you make as long as these are distributed alone and not bundled with umbraco.
- umbraco may only be distributed as a whole. You may not use part of umbraco to create another stand-alone application, this could be using the UI parts to create another CMS.
- You may not re-brand umbraco
- If in doubt, please contact us (http://umbraco.org) before using our software for other than the original purpose. We have a commercial non-CPL license for those in doubt, wishes not to use CPL licensed software or wishes to build a new product based on parts of umbraco (see http://umbraco.org).
Copyright (c) 2007-2010 umbraco I/S
Common Public License Version 1.0
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
1. DEFINITIONS
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"Contribution" means:
a) in the case of the initial Contributor, the initial code and
documentation distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from and are
distributed by that particular Contributor. A Contribution 'originates' from a
Contributor if it was added to the Program by such Contributor itself or anyone
acting on such Contributor's behalf. Contributions do not include additions to
the Program which: (i) are separate modules of software distributed in
conjunction with the Program under their own license agreement, and (ii) are not
derivative works of the Program.
"Contributor" means any person or entity that distributes the Program.
"Licensed Patents " mean patent claims licensable by a Contributor which are
necessarily infringed by the use or sale of its Contribution alone or when
combined with the Program.
"Program" means the Contributions distributed in accordance with this Agreement.
"Recipient" means anyone who receives the Program under this Agreement,
including all Contributors.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide, royalty-free copyright license to
reproduce, prepare derivative works of, publicly display, publicly perform,
distribute and sublicense the Contribution of such Contributor, if any, and such
derivative works, in source code and object code form.
b) Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
Patents to make, use, sell, offer to sell, import and otherwise transfer the
Contribution of such Contributor, if any, in source code and object code form.
This patent license shall apply to the combination of the Contribution and the
Program if, at the time the Contribution is added by the Contributor, such
addition of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other combinations
which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses
to its Contributions set forth herein, no assurances are provided by any
Contributor that the Program does not infringe the patent or other intellectual
property rights of any other entity. Each Contributor disclaims any liability to
Recipient for claims brought by any other entity based on infringement of
intellectual property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby assumes sole
responsibility to secure any other intellectual property rights needed, if any.
For example, if a third party patent license is required to allow Recipient to
distribute the Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient
copyright rights in its Contribution, if any, to grant the copyright license set
forth in this Agreement.
3. REQUIREMENTS
A Contributor may choose to distribute the Program in object code form under its
own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all warranties and
conditions, express and implied, including warranties or conditions of title and
non-infringement, and implied warranties or conditions of merchantability and
fitness for a particular purpose;
ii) effectively excludes on behalf of all Contributors all liability for
damages, including direct, indirect, special, incidental and consequential
damages, such as lost profits;
iii) states that any provisions which differ from this Agreement are offered
by that Contributor alone and not by any other party; and
iv) states that source code for the Program is available from such
Contributor, and informs licensees how to obtain it in a reasonable manner on or
through a medium customarily used for software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the Program.
Contributors may not remove or alter any copyright notices contained within the
Program.
Each Contributor must identify itself as the originator of its Contribution, if
any, in a manner that reasonably allows subsequent Recipients to identify the
originator of the Contribution.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with
respect to end users, business partners and the like. While this license is
intended to facilitate the commercial use of the Program, the Contributor who
includes the Program in a commercial product offering should do so in a manner
which does not create potential liability for other Contributors. Therefore, if
a Contributor includes the Program in a commercial product offering, such
Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
every other Contributor ("Indemnified Contributor") against any losses, damages
and costs (collectively "Losses") arising from claims, lawsuits and other legal
actions brought by a third party against the Indemnified Contributor to the
extent caused by the acts or omissions of such Commercial Contributor in
connection with its distribution of the Program in a commercial product
offering. The obligations in this section do not apply to any claims or Losses
relating to any actual or alleged intellectual property infringement. In order
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
Contributor in writing of such claim, and b) allow the Commercial Contributor to
control, and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may participate in
any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product
offering, Product X. That Contributor is then a Commercial Contributor. If that
Commercial Contributor then makes performance claims, or offers warranties
related to Product X, those performance claims and warranties are such
Commercial Contributor's responsibility alone. Under this section, the
Commercial Contributor would have to defend claims against the other
Contributors related to those performance claims and warranties, and if a court
requires any other Contributor to pay any damages as a result, the Commercial
Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
Recipient is solely responsible for determining the appropriateness of using and
distributing the Program and assumes all risks associated with its exercise of
rights under this Agreement, including but not limited to the risks and costs of
program errors, compliance with applicable laws, damage to or loss of data,
programs or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable
law, it shall not affect the validity or enforceability of the remainder of the
terms of this Agreement, and without further action by the parties hereto, such
provision shall be reformed to the minimum extent necessary to make such
provision valid and enforceable.
If Recipient institutes patent litigation against a Contributor with respect to
a patent applicable to software (including a cross-claim or counterclaim in a
lawsuit), then any patent licenses granted by that Contributor to such Recipient
under this Agreement shall terminate as of the date such litigation is filed. In
addition, if Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
itself (excluding combinations of the Program with other software or hardware)
infringes such Recipient's patent(s), then such Recipient's rights granted under
Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails to
comply with any of the material terms or conditions of this Agreement and does
not cure such failure in a reasonable period of time after becoming aware of
such noncompliance. If all Recipient's rights under this Agreement terminate,
Recipient agrees to cease use and distribution of the Program as soon as
reasonably practicable. However, Recipient's obligations under this Agreement
and any licenses granted by Recipient relating to the Program shall continue and
survive.
Everyone is permitted to copy and distribute copies of this Agreement, but in
order to avoid inconsistency the Agreement is copyrighted and may only be
modified in the following manner. The Agreement Steward reserves the right to
publish new versions (including revisions) of this Agreement from time to time.
No one other than the Agreement Steward has the right to modify this Agreement.
IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
as the Agreement Steward to a suitable separate entity. Each new version of the
Agreement will be given a distinguishing version number. The Program (including
Contributions) may always be distributed subject to the version of the Agreement
under which it was received. In addition, after a new version of the Agreement
is published, Contributor may elect to distribute the Program (including its
Contributions) under the new version. Except as expressly stated in Sections
2(a) and 2(b) above, Recipient receives no rights or licenses to the
intellectual property of any Contributor under this Agreement, whether
expressly, by implication, estoppel or otherwise. All rights in the Program not
expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the
intellectual property laws of the United States of America. No party to this
Agreement will bring a legal action under this Agreement more than one year
after the cause of action arose. Each party waives its rights to a jury trial in
any resulting litigation.
Umbraco versions prior to 4.5 were licensed under a combination of MIT and a propriatary UI license. The license history can be found here:
http://umbraco.codeplex.com/license
@@ -352,18 +352,42 @@ namespace umbraco.Linq.Core.Node
if (string.IsNullOrEmpty(data))
{
//non-mandatory structs which have no value will be null
p.SetValue(node, null, null);
try
{
p.SetValue(node, null, null);
}
catch (FormatException ex)
{
throw new FormatException(
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
}
}
else
{
//non-mandatory structs which do have a value have to be cast based on the type of their Nullable<T>, found from the first (well, only) GenericArgument
p.SetValue(node, Convert.ChangeType(data, p.PropertyType.GetGenericArguments()[0]), null);
try
{
p.SetValue(node, Convert.ChangeType(data, p.PropertyType.GetGenericArguments()[0]), null);
}
catch (FormatException ex)
{
throw new FormatException(
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
}
}
}
else
{
// TODO: Address how Convert.ChangeType works in globalisation
p.SetValue(node, Convert.ChangeType(data, p.PropertyType), null);
try
{
p.SetValue(node, Convert.ChangeType(data, p.PropertyType), null);
}
catch (FormatException ex)
{
throw new FormatException(
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
}
}
}
}
@@ -12,10 +12,14 @@
<AssemblyName>umbraco.Linq.Core</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<umbracoPresentationPath>..\..\..\..\..\umbraco\presentation\bin</umbracoPresentationPath>
<FileUpgradeFlags>
</FileUpgradeFlags>
@@ -146,4 +150,4 @@
<PropertyGroup>
<PostBuildEvent>XCOPY "$(TargetPath)" "$(SolutionDir)\umbraco\presentation\bin" /Y</PostBuildEvent>
</PropertyGroup>
</Project>
</Project>
+9
View File
@@ -0,0 +1,9 @@
!! Umbraco - the simple, flexible and friendly ASP.NET CMS
For the first time on the Microsoft platform a free user and developer friendly cms that makes it quick and easy to create websites - or a breeze to build complex web applications. umbraco got award-winning integration capabilities and supports your ASP.NET User and Custom Controls out of the box. It's a developers dream and your users will love it too. Used by more than 57.000 active websites including Heinz.com, Peugeot.com, NAIAS.com and Microsofts documentinteropinitiative.org website you can be sure that the technology is proven, stable and scales.
[url:More info at http://umbraco.org|http://umbraco.org]
!! Forums
We have a forum running on [url:http://our.umbraco.org]. The discussions area on CodePlex will be for discussions on developing the core, and not on Umbraco-implementations or extensions in general. For those topics, please use [url:http://our.umbraco.org].
!! Submitting Issues
Another way you can contribute to Umbraco is by providing issue reports, for information on how to submit an issue report refer to our [url:online guide|http://our.umbraco.org/wiki/how-tos/submitting-bug-reports].
+2 -2
View File
@@ -4,8 +4,8 @@
<Deployment enabled="false" />
<Execution>
<Hosts type="ASP.NET" skipUnhostableTests="false">
<AspNet name="ASP.NET" executionType="WebDev" urlToTest="http://localhost:52453">
<DevelopmentServer pathToWebSite="C:\Users\hartvig\Documents\Visual Studio 2008\Projects\Core\branches\4.1.0\umbraco\presentation" webApplicationRoot="/" />
<AspNet name="ASP.NET" executionType="WebDev" urlToTest="http://localhost:6557">
<DevelopmentServer pathToWebSite="C:\Users\hartvig\Documents\Visual Studio 2010\Projects\Core\umbraco\presentation" webApplicationRoot="/" />
</AspNet>
</Hosts>
<TestTypeSpecific>
@@ -12,10 +12,14 @@
<AssemblyName>SQLCE4Umbraco</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -18,7 +18,7 @@ namespace umbraco.editorControls.macrocontainer
{
[ClientDependency(ClientDependencyType.Javascript, "ui/jqueryui.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Css, "/macroContainer/macroContainer.css", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Css, "macroContainer/macroContainer.css", "UmbracoClient")]
public class Editor : UpdatePanel, IDataEditor
{
private IData _data;
@@ -257,18 +257,24 @@ namespace umbraco.editorControls.macrocontainer
{
string number = temp.Substring(temp.LastIndexOf('=') + 1);
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number));
if (current.Visible)
value += current.MacroTag;
if (this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number) != null)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number));
if (current.Visible)
value += current.MacroTag;
}
}
}
else
{
for (int i = 0; i < _maxNumber; i++)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
if (current.Visible)
value += current.MacroTag;
if (this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()) != null)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
if (current.Visible)
value += current.MacroTag;
}
}
}
_data.Value = value;
+1 -2
View File
@@ -5,7 +5,6 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using umbraco.BusinessLogic;
using umbraco.DataLayer;
using umbraco.presentation.nodeFactory;
using umbraco.presentation;
using ClientDependency.Core.Controls;
using ClientDependency.Core;
@@ -152,7 +151,7 @@ namespace umbraco.editorControls.tags
// we need an empty try/catch as Node.GetCurrent() will throw an exception if we're outside of Umbraco Context
try
{
Node currentNode = Node.GetCurrent();
NodeFactory.Node currentNode = NodeFactory.Node.GetCurrent();
if (currentNode != null)
{
pageId = currentNode.Id.ToString();
@@ -260,6 +260,10 @@ namespace umbraco.editorControls.tinymce
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid",SqlParams);
// we need to populate the parameters again due to an issue with SQL CE
SqlParams = new IParameter[] {
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams);
}
@@ -126,6 +126,10 @@ namespace umbraco.editorControls.ultimatepicker
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
// need to unlock the parameters (for SQL CE compat)
SqlParams = new IParameter[] {
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
@@ -27,10 +27,14 @@
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<OldToolsVersion>3.5</OldToolsVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
@@ -344,6 +348,7 @@
<Compile Include="tinymce\TinyMCELegacyControl.cs" />
<Compile Include="tinymce\tinyMCEImageHelper.cs" />
<Compile Include="tinymce\tinyMCEPreValueConfigurator.cs" />
<Compile Include="userControlWrapper\usercontrolData.cs" />
<Compile Include="wysiwyg\editorButton.cs" />
<Compile Include="tinyMCE3\TinyMCE.cs" />
<Compile Include="tinyMCE3\tinyMCE3dataType.cs" />
@@ -104,8 +104,9 @@ namespace umbraco.editorControls
//}
// Find filename
_text = SafeUrl(this.PostedFile.FileName);
// Find filename (removed the safe url here as it removes fullpath characters (such as c:\ becomes c:) - the safe url should only be used when saving the
// local filename
_text = this.PostedFile.FileName;
string filename;
string _fullFilePath;
@@ -113,7 +114,8 @@ namespace umbraco.editorControls
if (umbraco.UmbracoSettings.UploadAllowDirectories)
{
filename = _text.Substring(_text.LastIndexOf(IOHelper.DirSepChar) + 1, _text.Length - _text.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower();
// moved the safeUrl call to here as it's the local file name to be stored
filename = SafeUrl(_text.Substring(_text.LastIndexOf(IOHelper.DirSepChar) + 1, _text.Length - _text.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower());
// Create a new folder in the /media folder with the name /media/propertyid
@@ -84,7 +84,11 @@ namespace umbraco.editorControls.uploadfield
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid",SqlParams);
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams);
// need to unlock the parameters (for SQL CE compat)
SqlParams = new IParameter[] {
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
}
protected override void Render(HtmlTextWriter writer)
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace umbraco.editorControls.userControlGrapper
{
public class usercontrolData : umbraco.cms.businesslogic.datatype.DefaultData
{
public usercontrolData(umbraco.cms.businesslogic.datatype.BaseDataType DataType) : base(DataType) { }
public override System.Xml.XmlNode ToXMl(System.Xml.XmlDocument data)
{
if (this.Value != null)
{
XmlDocument xd = new XmlDocument();
try
{
xd.LoadXml(this.Value.ToString());
return data.ImportNode(xd.DocumentElement, true);
}
catch
{
return base.ToXMl(data);
}
}
else
{
return base.ToXMl(data);
}
}
}
}
@@ -10,14 +10,25 @@ using System.Web.UI.HtmlControls;
using umbraco.interfaces;
using umbraco.editorControls;
using umbraco.cms.businesslogic.datatype;
using System.Collections.Generic;
using umbraco.IO;
namespace umbraco.editorControls.userControlGrapper
{
[ValidationProperty("Value")]
public class usercontrolDataEditor : System.Web.UI.WebControls.PlaceHolder, umbraco.interfaces.IDataEditor
{
private umbraco.interfaces.IData _data;
private string _usercontrolPath;
public object Value
{
get
{
return ((IUsercontrolDataEditor)Controls[0]).value;
}
}
public usercontrolDataEditor(umbraco.interfaces.IData Data, string UsercontrolPath)
{
@@ -49,13 +60,52 @@ namespace umbraco.editorControls.userControlGrapper
{
base.OnInit (e);
this.Controls.Add(
new System.Web.UI.UserControl().LoadControl(_usercontrolPath));
Control oControl = new System.Web.UI.UserControl().LoadControl(_usercontrolPath);
if (HasSettings(oControl.GetType()))
{
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
List<Setting<string, string>> s = ss.GetSettings(((umbraco.cms.businesslogic.datatype.DefaultData)_data).DataTypeDefinitionId);
ss.Dispose();
foreach (Setting<string, string> setting in s)
{
try
{
if(!string.IsNullOrEmpty(setting.Key))
{
oControl.GetType().InvokeMember(setting.Key, System.Reflection.BindingFlags.SetProperty, null, oControl, new object[] { setting.Value });
}
}
catch (MissingMethodException ex) { }
}
}
this.Controls.Add(oControl);
if (!Page.IsPostBack)
((IUsercontrolDataEditor)Controls[0] as IUsercontrolDataEditor).value = _data.Value;
}
private bool HasSettings(Type t)
{
bool hasSettings = false;
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
if (o.Length > 0)
{
hasSettings = true;
break;
}
}
return hasSettings;
}
}
}
@@ -31,7 +31,7 @@ namespace umbraco.editorControls.userControlGrapper
get
{
if (_baseData == null)
_baseData = new umbraco.cms.businesslogic.datatype.DefaultData(this);
_baseData = new usercontrolData(this);
return _baseData;
}
}
@@ -13,6 +13,8 @@ using umbraco.BusinessLogic;
using umbraco.editorControls;
using umbraco.IO;
using System.Collections.Generic;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.userControlGrapper
{
@@ -30,7 +32,9 @@ namespace umbraco.editorControls.userControlGrapper
private DropDownList _dropdownlist;
private DropDownList _dropdownlistUserControl;
private PlaceHolder _phSettings;
private Dictionary<string, DataEditorSettingType> dtSettings = new Dictionary<string, DataEditorSettingType>();
public usercontrolPrevalueEditor(umbraco.cms.businesslogic.datatype.BaseDataType DataType)
{
@@ -52,15 +56,20 @@ namespace umbraco.editorControls.userControlGrapper
_dropdownlistUserControl = new DropDownList();
_dropdownlistUserControl.ID = "usercontrol";
_phSettings = new PlaceHolder();
_phSettings.ID = "settings";
// put the childcontrols in context - ensuring that
// the viewstate is persisted etc.
Controls.Add(_dropdownlist);
Controls.Add(_dropdownlistUserControl);
Controls.Add(_phSettings);
// populate the usercontrol dropdown
_dropdownlistUserControl.Items.Add(new ListItem(ui.Text("choose"), ""));
populateUserControls( IOHelper.MapPath( SystemDirectories.Usercontrols) );
}
private void populateUserControls(string path)
@@ -104,9 +113,93 @@ namespace umbraco.editorControls.userControlGrapper
if (config != "")
{
_dropdownlistUserControl.SelectedValue = config;
}
_dropdownlist.SelectedValue = _datatype.DBType.ToString();
}
//check for settings
if (!string.IsNullOrEmpty(Configuration))
LoadSetttings(Configuration);
}
private Dictionary<string, DataEditorSetting> GetSettings(Type t)
{
Dictionary<string, DataEditorSetting> settings = new Dictionary<string, DataEditorSetting>();
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
if (o.Length > 0)
settings.Add(p.Name, (DataEditorSetting)o[0]);
}
return settings;
}
private bool HasSettings(Type t)
{
bool hasSettings = false;
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
{
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
if (o.Length > 0)
{
hasSettings = true;
break;
}
}
return hasSettings;
}
private void LoadSetttings(string fileName)
{
if (System.IO.File.Exists(IOHelper.MapPath("~/" + fileName)))
{
UserControl oControl = (UserControl)this.Page.LoadControl(@"~/" + fileName);
Type type = oControl.GetType();
Dictionary<string, DataEditorSetting> settings = GetSettings(type);
foreach (KeyValuePair<string, DataEditorSetting> kv in settings)
{
DataEditorSettingType dst = kv.Value.GetDataEditorSettingType();
dtSettings.Add(kv.Key, dst);
DataEditorPropertyPanel panel = new DataEditorPropertyPanel();
panel.Text = kv.Value.GetName();
panel.Text += "<br/><small>" + kv.Value.description + "</small>";
if (HasSettings(type))
{
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
List<Setting<string, string>> s = ss.GetSettings(_datatype.DataTypeDefinitionId);
ss.Dispose();
if (s.Find(set => set.Key == kv.Key).Value != null)
dst.Value = s.Find(set => set.Key == kv.Key).Value;
}
panel.Controls.Add(dst.RenderControl(kv.Value));
_phSettings.Controls.Add(panel);
}
}
}
@@ -123,18 +216,48 @@ namespace umbraco.editorControls.userControlGrapper
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
//settings
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
//ss.ClearSettings(_datatype.DataTypeDefinitionId);
int i = 0;
foreach (KeyValuePair<string, DataEditorSettingType> k in dtSettings)
{
ss.InsertSetting(_datatype.DataTypeDefinitionId, k.Key, k.Value.Value, i);
i++;
}
ss.Dispose();
if (dtSettings.Count == 0)
{
if (!string.IsNullOrEmpty(Configuration))
LoadSetttings(Configuration);
}
}
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("<table>");
writer.WriteLine("<tr><th>Database datatype</th><td>");
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Database datatype</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlist.RenderControl(writer);
writer.Write("</td></tr>");
writer.Write("<tr><th>Usercontrol:</th><td>");
writer.Write("</div></div>");
writer.WriteLine("<div class=\"propertyItem\">");
writer.WriteLine("<div class=\"propertyItemheader\">Usercontrol:</div>");
writer.WriteLine("<div class=\"propertyItemContent\">");
_dropdownlistUserControl.RenderControl(writer);
writer.Write("</td></tr>");
writer.Write("</table>");
writer.Write("</div></div>");
_phSettings.RenderControl(writer);
}
public string Configuration
@@ -27,10 +27,14 @@
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
@@ -10,10 +10,14 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>umbraco.uicontrols</RootNamespace>
<AssemblyName>controls</AssemblyName>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
@@ -12,10 +12,14 @@
<AssemblyName>umbraco.webservices</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
+8 -6
View File
@@ -1,16 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<createUI>
<nodeType alias="nodeTypes">
<header>Nodetype</header>
<usercontrol>/create/nodeType.ascx</usercontrol>
<tasks>
<create assembly="umbraco" type="nodetypeTasks" />
<delete assembly="umbraco" type="nodetypeTasks" />
</tasks>
</nodeType>
<nodeType alias="initnodeTypes">
<header>Nodetype</header>
<usercontrol>/create/nodeType.ascx</usercontrol>
<tasks>
<create assembly="umbraco" type="nodetypeTasks" />
</tasks>
</nodeType>
<nodeType alias="nodeTypes">
<header>Nodetype</header>
<usercontrol>/create/simple.ascx</usercontrol>
<tasks>
<delete assembly="umbraco" type="nodetypeTasks" />
</tasks>
</nodeType>
+1 -1
View File
@@ -6,7 +6,7 @@
look at http://www.urlrewriting.net/.
Remember to read the manual!
http://umbraco.org/redir/urlRewritingManual
http://our.umbraco.org/wiki/recommendations/recommended-reading-for-web-developers
The sample below rewrites a url from
"/product/someproductid.aspx" to
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<zipUpload>
<fileNodeTypeId>1033</fileNodeTypeId>
<imageNodeTypeId>1032</imageNodeTypeId>
<folderNodeTypeId>1031</folderNodeTypeId>
<imageFileExtensions>jpeg,jpg,gif,bmp,png,tiff,tif</imageFileExtensions>
</zipUpload>
+17 -7
View File
@@ -18,7 +18,7 @@
<property name="build.dir" value="${root.dir}\build" />
<property name="dlls.dir" value="${root.dir}\foreign dlls" />
<property name="build.version" value="4.6 Alpha "/>
<property name="build.version" value="4.6 RC 1"/>
<property name="docs.dir" value="${root.dir}\docs" />
@@ -71,7 +71,14 @@
<arg value="/p:ToolsVersion=4.0" />
</exec>
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / &quot;${build.dir}&quot;"/>
</target>
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
<arg value="${root.dir}\umbraco.MacroEngines.Juno\umbraco.MacroEngines.csproj" />
<arg value="/v:n" />
<arg value="/p:WarningLevel=0" />
<arg value="/p:ToolsVersion=4.0" />
</exec>
</target>
<!-- Directories and files -->
@@ -85,7 +92,6 @@
</fileset>
</copy>
<!-- DLR FILES -->
<delete>
<fileset>
@@ -127,8 +133,11 @@
<!-- 4.6 Files -->
<copy file="${root.dir}\umbraco.MacroEngines.Juno\bin\Debug\umbraco.MacroEngines.dll" tofile="${build.dir}\bin\umbraco.MacroEngines.dll" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\umbraco.MacroEngines.Juno\bin\Debug\umbraco.MacroEngines.pdb" tofile="${build.dir}\bin\umbraco.MacroEngines.pdb" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\foreign dlls\System.Web.Razor.dll" tofile="${build.dir}\bin\System.Web.Razor.dll" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\foreign dlls\RazorEngine.Core.dll" tofile="${build.dir}\bin\RazorEngine.Core.dll" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\foreign dlls\RazorEngine.Templates.dll" tofile="${build.dir}\bin\RazorEngine.Templates.dll" failonerror="false" overwrite="true"/>
<!--standard /data/packages files-->
<mkdir dir="${build.dir}\App_Data" />
<copy file="${root.dir}\config templates\packages\installedPackages.config" tofile="${build.dir}\app_data\packages\installed\installedPackages.config" failonerror="false" overwrite="true"/>
@@ -175,12 +184,13 @@
<include name="${build.dir}/**/*.resx" />
<include name="${build.dir}/**/*.user" />
<include name="${build.dir}/**/*.bak" />
<include name="${build.dir}/**/*.pdb" />
<include name="${build.dir}/PrecompiledApp.config" />
<include name="${build.dir}/web.config.template" />
<include name="${build.dir}/*.xslt" />
<include name="${build.dir}/web.STANDARD.config" />
<include name="${build.dir}/web.*.config" />
<include name="${build.dir}/site.py" />
</fileset>
</delete>
Binary file not shown.
Binary file not shown.
Binary file not shown.
+149
View File
@@ -0,0 +1,149 @@
<?xml version="1.0" ?>
<project name="umbraco" default="test" basedir=".">
<description>Build the umbraco 4.6 Application for asp.net 3.5</description>
<property name="nant.settings.currentframework" value="net-2.0" />
<!-- filenames and directories, generally won't change -->
<property name="public.dir" value="C:\Users\per\Documents\Projects\NugetServer\GalleryServer\src\Gallery.Server\App_Data\packages" />
<property name="root.dir" value="${directory::get-current-directory()}" />
<property name="source.dir" value="${root.dir}\umbraco\presentation" />
<property name="build.dir" value="${root.dir}\build" />
<property name="dlls.dir" value="${root.dir}\foreign dlls" />
<property name="nuget.dir" value="${root.dir}\nuget" />
<property name="nuget.app" value="C:\Program Files (x86)\nuget\nuget.exe" />
<property name="nuget.spec" value="${public.dir}\..\umbraco.nuspec" />
<property name="build.version" value="4.6.Beta"/>
<property name="win.dir" value="C:\windows" />
<target name="build" depends="init">
<!-- set everything to writable-->
<attrib normal="true" readonly="false">
<fileset basedir="${root.dir}">
<include name="**/*" />
</fileset>
</attrib>
<!-- Remove those damn DLR dlls that might be left behind by careless devs...-->
<!-- They will get added again after build is completed, no worries no dependencies during build-->
<delete>
<fileset>
<include name="${source.dir}\bin\IronPython.dll" />
<include name="${source.dir}\bin\IronPython.Modules.dll" />
<include name="${source.dir}\bin\IronRuby.dll" />
<include name="${source.dir}\bin\IronRuby.Libraries.dll" />
<include name="${source.dir}\bin\IronRuby.Libraries.Yaml.dll" />
<include name="${source.dir}\bin\Microsoft.Dynamic.dll" />
<include name="${source.dir}\bin\Microsoft.ScriptinG.Core.dll" />
<include name="${source.dir}\bin\Microsoft.Scripting.Debugging.dll" />
<include name="${source.dir}\bin\Microsoft.Scripting.dll" />
<include name="${source.dir}\bin\Microsoft.Scripting.ExtensionAttribute.dll" />
</fileset>
</delete>
<!-- build for 2.0 -->
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
<arg value="${root.dir}\umbraco.sln" />
<arg value="/v:n" />
<arg value="/p:WarningLevel=0" />
<arg value="/p:ToolsVersion=3.5" />
</exec>
<exec program="${win.dir}\microsoft.net\framework\v2.0.50727\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / &quot;${build.dir}\Net20&quot;"/>
<!-- build for 4.0 -->
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
<arg value="${root.dir}\umbraco.sln" />
<arg value="/v:n" />
<arg value="/p:WarningLevel=0" />
<arg value="/p:ToolsVersion=4.0" />
</exec>
<exec program="${win.dir}\microsoft.net\framework\v2.0.50727\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / &quot;${build.dir}\Net40&quot;"/>
</target>
<!-- Directories and files -->
<target name="directories" depends="build">
<!-- asp.net 2.0 SP1 DLR dlls -->
<delete>
<fileset>
<include name="${build.dir}\**\*" />
<exclude name="${build.dir}\**\businesslogic.dll" />
<exclude name="${build.dir}\**\cms.dll" />
<exclude name="${build.dir}\**\controls.dll" />
<exclude name="${build.dir}\**\Examine.dll" />
<exclude name="${build.dir}\**\interfaces.dll" />
<exclude name="${build.dir}\**\Microsoft.ApplicationBlocks.Data.dll" />
<exclude name="${build.dir}\**\umbraco.DataLayer.dll" />
<exclude name="${build.dir}\**\umbraco.dll" />
<exclude name="${build.dir}\**\umbraco.editorcontrols.dll" />
<exclude name="${build.dir}\**\umbraco.linq.core.dll" />
<exclude name="${build.dir}\**\umbraco.macrorenderings.dll" />
<exclude name="${build.dir}\**\umbraco.providers.dll" />
<exclude name="${build.dir}\**\UmbracoExamine.dll" />
</fileset>
</delete>
<copy todir="${nuget.dir}\lib\Net20">
<fileset basedir="${build.dir}\Net20\bin">
<include name="*.dll" />
</fileset>
</copy>
<copy todir="${nuget.dir}\lib\Net40">
<fileset basedir="${build.dir}\Net40\bin">
<include name="*.dll" />
</fileset>
</copy>
<copy file="${nuget.spec}" tofile="${nuget.dir}\umbraco.nuspec" failonerror="false" overwrite="true"/>
<xmlpoke
file="${nuget.dir}\umbraco.nuspec"
xpath="/package/metadata/version"
value="${build.version}" />
</target>
<!-- will produce the a clean /build folder and nothing else-->
<target name="nuget" depends="directories">
<exec program="${nuget.app}" commandline="pack &quot;${nuget.dir}\umbraco.nuspec&quot; /o &quot;${public.dir}&quot;"/>
</target>
<target name="test">
<exec program="${nuget.app}" commandline="pack &quot;${nuget.dir}\umbraco.nuspec&quot; /o &quot;${public.dir}&quot;"/>
</target>
<target name="init" description="init tasks for the build">
<!-- Clean the plugins dir any leftovers, only tinyMCE belongs in here -->
<delete>
<fileset>
<include name="${build.dir}\umbraco\plugins\*" />
<exclude name="${build.dir}\umbraco\plugins\tinymce3" />
</fileset>
</delete>
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}" />
<delete dir="${nuget.dir}" />
<mkdir dir="${nuget.dir}" />
<mkdir dir="${nuget.dir}\lib\Net20" />
<mkdir dir="${nuget.dir}\lib\Net40" />
</target>
</project>
@@ -11,38 +11,41 @@ namespace umbraco.MacroEngines
{
#region IMacroEngine Members
public string Name
public virtual string Name
{
get { return "Umbraco DLR Macro Engine"; }
}
public List<string> SupportedExtensions
public virtual List<string> SupportedExtensions
{
get
{
var exts = new List<string> {"py", "rb"};
var exts = new List<string> { "py", "rb" };
return exts;
}
}
public Dictionary<string, IMacroGuiRendering> SupportedProperties
public virtual Dictionary<string, IMacroGuiRendering> SupportedProperties
{
get { throw new NotImplementedException(); }
}
public bool Validate(string code, INode currentPage, out string errorMessage)
public virtual bool Validate(string code, INode currentPage, out string errorMessage)
{
throw new NotImplementedException();
}
public string Execute(MacroModel macro, INode currentPage)
public virtual string Execute(MacroModel macro, INode currentPage)
{
string fileEnding = macro.ScriptName.Substring(macro.ScriptName.LastIndexOf('.')).Trim('.');
MacroScriptEngine mse = MacroScriptEngine.LoadEngineByFileExtension(fileEnding);
var vars = new SortedDictionary<string, object> {{"currentPage", currentPage}};
var vars = new SortedDictionary<string, object>
{
{"currentPage", new DynamicNode(currentPage)}
};
foreach (MacroPropertyModel prop in macro.Properties)
{
vars.Add(prop.Key, prop.Value);
+203 -34
View File
@@ -2,29 +2,27 @@
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text;
using umbraco.interfaces;
using umbraco.presentation.nodeFactory;
namespace umbraco.MacroEngines
{
public class DynamicNode : DynamicObject
{
private INode n;
private readonly INode n;
public DynamicNode(INode n)
{
this.n = n;
if (n != null)
this.n = n;
else
throw new ArgumentNullException("n", "A node must be provided to make a dynamic instance");
}
public List<DynamicNode> GetChildrenAsList
public IEnumerable<DynamicNode> GetChildrenAsList
{
get
{
List<DynamicNode> nodes = new List<DynamicNode>();
foreach(Node nn in n.ChildrenAsList)
nodes.Add(new DynamicNode(nn));
return nodes;
return from nn in n.ChildrenAsList
select new DynamicNode(nn);
}
}
@@ -37,10 +35,6 @@ namespace umbraco.MacroEngines
{
result = GetChildrenAsList;
return true;
} else if (name == "Parent")
{
result = new DynamicNode(n.Parent);
return true;
}
var data = n.GetProperty(name);
@@ -50,33 +44,208 @@ namespace umbraco.MacroEngines
data = n.GetProperty(name.Substring(0, 1).ToLower() + name.Substring((1)));
}
if (data != null)
{
result = data.Value;
return true;
} else
{
try
{
result = n.GetType().InvokeMember(binder.Name,
System.Reflection.BindingFlags.GetProperty |
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.NonPublic,
null,
n,
null);
return true;
} catch
{
result = "";
return false;
}
}
//check if the alias is that of a child type
var typeChildren = n.ChildrenAsList
.Where(x => MakePluralName(x.NodeTypeAlias) == name || x.NodeTypeAlias == name);
if (typeChildren.Any())
{
result = typeChildren
.Select(x => new DynamicNode(x));
return true;
}
return base.TryGetMember(binder, out result);
try
{
result = n.GetType().InvokeMember(binder.Name,
System.Reflection.BindingFlags.GetProperty |
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.NonPublic,
null,
n,
null);
return true;
}
catch
{
result = null;
return false;
}
}
//this is from SqlMetal and just makes it a bit of fun to allow pluralisation
private static string MakePluralName(string name)
{
if ((name.EndsWith("x", StringComparison.OrdinalIgnoreCase) || name.EndsWith("ch", StringComparison.OrdinalIgnoreCase)) || (name.EndsWith("ss", StringComparison.OrdinalIgnoreCase) || name.EndsWith("sh", StringComparison.OrdinalIgnoreCase)))
{
name = name + "es";
return name;
}
if ((name.EndsWith("y", StringComparison.OrdinalIgnoreCase) && (name.Length > 1)) && !IsVowel(name[name.Length - 2]))
{
name = name.Remove(name.Length - 1, 1);
name = name + "ies";
return name;
}
if (!name.EndsWith("s", StringComparison.OrdinalIgnoreCase))
{
name = name + "s";
}
return name;
}
private static bool IsVowel(char c)
{
switch (c)
{
case 'O':
case 'U':
case 'Y':
case 'A':
case 'E':
case 'I':
case 'o':
case 'u':
case 'y':
case 'a':
case 'e':
case 'i':
return true;
}
return false;
}
public DynamicNode AncestorOrSelf(Func<DynamicNode, bool> func)
{
var node = this;
while (node != null)
{
if (func(node)) return node;
node = node.Parent;
}
return node;
}
public DynamicNode Parent
{
get { return new DynamicNode(n.Parent); }
}
public int Id
{
get { return n.Id; }
}
public int template
{
get { return n.template; }
}
public int SortOrder
{
get { return n.SortOrder; }
}
public string Name
{
get { return n.Name; }
}
public string Url
{
get { return n.Url; }
}
public string UrlName
{
get { return n.UrlName; }
}
public string NodeTypeAlias
{
get { return n.NodeTypeAlias; }
}
public string WriterName
{
get { return n.WriterName; }
}
public string CreatorName
{
get { return n.CreatorName; }
}
public int WriterID
{
get { return n.WriterID; }
}
public int CreatorID
{
get { return n.CreatorID; }
}
public string Path
{
get { return n.Path; }
}
public DateTime CreateDate
{
get { return n.CreateDate; }
}
public DateTime UpdateDate
{
get { return n.UpdateDate; }
}
public Guid Version
{
get { return n.Version; }
}
public string NiceUrl
{
get { return n.NiceUrl; }
}
public int Level
{
get { return n.Level; }
}
public List<IProperty> PropertiesAsList
{
get { return n.PropertiesAsList; }
}
public List<INode> ChildrenAsList
{
get { return n.ChildrenAsList; }
}
public IProperty GetProperty(string alias)
{
return n.GetProperty(alias);
}
public System.Data.DataTable ChildrenAsTable()
{
return n.ChildrenAsTable();
}
public System.Data.DataTable ChildrenAsTable(string nodeTypeAliasFilter)
{
return n.ChildrenAsTable(nodeTypeAliasFilter);
}
}
}
+113 -20
View File
@@ -1,6 +1,10 @@
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace umbraco.MacroEngines.Razor {
namespace umbraco.MacroEngines.Razor
{
using System;
using System.CodeDom.Compiler;
using System.IO;
@@ -13,9 +17,11 @@ namespace umbraco.MacroEngines.Razor {
/// <summary>
/// Compiles razor templates.
/// </summary>
internal class RazorCompiler {
internal class RazorCompiler
{
#region Fields
private readonly IRazorProvider provider;
private Type templateBaseType;
#endregion
#region Constructor
@@ -23,7 +29,8 @@ namespace umbraco.MacroEngines.Razor {
/// Initialises a new instance of <see cref="RazorCompiler"/>.
/// </summary>
/// <param name="provider">The provider used to compile templates.</param>
public RazorCompiler(IRazorProvider provider) {
public RazorCompiler(IRazorProvider provider)
{
if (provider == null)
throw new ArgumentNullException("provider");
@@ -38,7 +45,8 @@ namespace umbraco.MacroEngines.Razor {
/// <param name="className">The class name of the dynamic type.</param>
/// <param name="template">The template to compile.</param>
/// <param name="modelType">[Optional] The mode type.</param>
private CompilerResults Compile(string className, string template, Type modelType = null) {
private CompilerResults Compile(string className, string template, Type modelType = null)
{
var languageService = provider.CreateLanguageService();
var codeDom = provider.CreateCodeDomProvider();
var host = new RazorEngineHost(languageService);
@@ -56,9 +64,11 @@ namespace umbraco.MacroEngines.Razor {
? typeof(TemplateBaseDynamic)
: typeof(TemplateBase<>).MakeGenericType(modelType));
templateBaseType = baseType;
generator.GeneratedClass.BaseTypes.Add(baseType);
using (var reader = new StreamReader(new MemoryStream(Encoding.ASCII.GetBytes(template)))) {
using (var reader = new StreamReader(new MemoryStream(Encoding.ASCII.GetBytes(template))))
{
parser.Parse(reader, generator);
}
@@ -66,25 +76,20 @@ namespace umbraco.MacroEngines.Razor {
generator.GeneratedExecuteMethod.Statements.Insert(0, new CodeExpressionStatement(statement));
var builder = new StringBuilder();
using (var writer = new StringWriter(builder)) {
using (var writer = new StringWriter(builder))
{
codeDom.GenerateCodeFromCompileUnit(generator.GeneratedCode, writer, new CodeGeneratorOptions());
}
var @params = new CompilerParameters();
// @params.ReferencedAssemblies.Add("System");
// @params.ReferencedAssemblies.Add("System.Web");
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (!assembly.IsDynamic)
@params.ReferencedAssemblies.Add(assembly.Location);
}
var parameters = new CompilerParameters();
AddReferences(parameters);
@params.GenerateInMemory = true;
@params.IncludeDebugInformation = false;
@params.GenerateExecutable = false;
@params.CompilerOptions = "/target:library /optimize";
parameters.GenerateInMemory = true;
parameters.IncludeDebugInformation = false;
parameters.GenerateExecutable = false;
parameters.CompilerOptions = "/target:library /optimize";
var result = codeDom.CompileAssemblyFromSource(@params, new[] { builder.ToString() });
var result = codeDom.CompileAssemblyFromSource(parameters, new[] { builder.ToString() });
return result;
}
@@ -94,7 +99,8 @@ namespace umbraco.MacroEngines.Razor {
/// <param name="template">The template to compile.</param>
/// <param name="modelType">[Optional] The model type.</param>
/// <returns>An instance of <see cref="ITemplate"/>.</returns>
public ITemplate CreateTemplate(string template, Type modelType = null) {
public ITemplate CreateTemplate(string template, Type modelType = null)
{
string className = Regex.Replace(Guid.NewGuid().ToString("N"), @"[^A-Za-z]*", "");
var result = Compile(className, template, modelType);
@@ -107,5 +113,92 @@ namespace umbraco.MacroEngines.Razor {
return instance;
}
#endregion
/// <summary>
/// Adds any required references to the compiler parameters.
/// </summary>
/// <param name="parameters">The compiler parameters.</param>
private void AddReferences(CompilerParameters parameters)
{
var list = new List<string>();
IEnumerable<string> coreRefs = GetCoreReferences();
foreach (string location in coreRefs)
{
list.Add(location.ToLowerInvariant());
}
IEnumerable<string> baseRefs = GetBaseTypeReferencedAssemblies();
foreach (string location in baseRefs)
{
list.Add(location.ToLowerInvariant());
}
foreach (string location in list)
System.Diagnostics.Debug.Print(location);
IEnumerable<string> distinctList = list.Distinct(new AssemblyVersionComparer());
parameters.ReferencedAssemblies.AddRange(distinctList.ToArray());
}
/// <summary>
/// Gets the locations of assemblies referenced by a custom base template type.
/// </summary>
/// <returns>An enumerable of reference assembly locations.</returns>
private IEnumerable<string> GetBaseTypeReferencedAssemblies()
{
if (templateBaseType == null)
return new string[0];
return templateBaseType.Assembly
.GetReferencedAssemblies()
.Select(n => Assembly.ReflectionOnlyLoad(n.FullName).Location);
}
/// <summary>
/// Gets the locations of all core referenced assemblies.
/// </summary>
/// <returns>An enumerable of reference assembly locations.</returns>
private static IEnumerable<string> GetCoreReferences()
{
var refs = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.IsDynamic).Select(a => a.Location);
return refs.Concat(typeof(RazorCompiler)
.Assembly
.GetReferencedAssemblies().Select(n => Assembly.ReflectionOnlyLoad(n.FullName).Location));
}
}
public class AssemblyVersionComparer : IEqualityComparer<string>
{
bool IEqualityComparer<string>.Equals(string x, string y)
{
x = findAssemblyName(x);
y = findAssemblyName(y);
return (x.Contains(y) || y.Contains(x));
}
int IEqualityComparer<string>.GetHashCode(string obj)
{
// 1) find the assembly name without version number and path (xxx.yyy.dll)
obj = findAssemblyName(obj);
// 2) send det som hashcode
if (Object.ReferenceEquals(obj, null))
return 0;
return obj.GetHashCode();
}
private string findAssemblyName(string fullAssemblyPath)
{
Regex r = new Regex(@"\\([^\\]*.dll)");
Match m = r.Match(fullAssemblyPath);
if (m.Groups.Count > 0)
{
fullAssemblyPath = m.Groups[0].Value;
}
return fullAssemblyPath;
}
}
}
+58 -11
View File
@@ -1,12 +1,15 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Web;
using RazorEngine;
using RazorEngine.Templating;
using umbraco.cms.businesslogic.macro;
using umbraco.interfaces;
using umbraco.IO;
using RE = RazorEngine;
namespace umbraco.MacroEngines
{
@@ -14,7 +17,7 @@ namespace umbraco.MacroEngines
{
public string Name
{
get { return "Razor Enggine"; }
get { return "Razor Engine"; }
}
public List<string> SupportedExtensions
@@ -42,25 +45,46 @@ namespace umbraco.MacroEngines
string template = !String.IsNullOrEmpty(macro.ScriptCode) ? macro.ScriptCode : loadScript(IOHelper.MapPath(SystemDirectories.Python + "/" + macro.ScriptName));
try
{
//TODO: Add caching support
// if (CacheTemplate)
// result = Razor.Parse(template, new DynamicNode(currentPage), this.ID + "_razorTemplate");
// else
// {
result = Razor.Razor.Parse(template, new DynamicNode(currentPage));
Razor.SetTemplateBaseType(typeof(UmbracoTemplateBase<>));
result = Razor.Parse(template, new DynamicNode(currentPage), macro.CacheIdenitifier);
}
catch (TemplateException ee)
{
string error = ee.ToString();
if (ee.Errors.Count > 0)
{
error += "</p><strong>Detailed errors:</strong><br/><ul style=\"list-style-type: disc; margin: 1em 0;\">";
foreach (var err in ee.Errors)
error += string.Format("<li style=\"display: list-item;\">{0}</li>", err.ToString());
error += "</ul><p>";
}
result = string.Format(
"<div class=\"error\"><h3>Razor Macro Engine</h3><p><em>An TemplateException occured while parsing the following code:</em></p><p>{0}</p><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Your Razor template:</h4><code>{1}</code><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Cache key:</h4><p>{2}</p></div>",
error,
HttpContext.Current.Server.HtmlEncode(template),
friendlyCacheKey(macro.CacheIdenitifier));
}
// }
catch (Exception ee)
{
result = string.Format(
"<div class=\"error\"><h1>Razor Macro Engine</h1><em>An error occured while rendering the following code:</em><br /><p>{0}</p><code>{1}</code></div>",
"<div class=\"error\"><h3>Razor Macro Engine</h3><em>An unknown error occured while rendering the following code:</em><br /><p>{0}</p><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Your Razor template:</h4><code>{1}</code><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Cache key:</h4><p>{2}</p></div>",
ee.ToString(),
HttpContext.Current.Server.HtmlEncode(template));
HttpContext.Current.Server.HtmlEncode(template),
friendlyCacheKey(macro.CacheIdenitifier));
}
return result;
}
private string friendlyCacheKey(string cacheKey)
{
if (!String.IsNullOrEmpty(cacheKey))
return cacheKey;
else
return "<em>No caching defined</em>";
}
private string loadScript(string scriptName)
{
if (File.Exists(scriptName))
@@ -70,5 +94,28 @@ namespace umbraco.MacroEngines
return String.Empty;
}
}
public abstract class UmbracoTemplateBase<T> : TemplateBase<T>
{
private object m_model;
public override T Model
{
get
{
return (T)m_model;
}
set
{
m_model = value;
}
}
public string ToUpperCase(string name)
{
return name.ToUpper();
}
}
}
@@ -12,10 +12,14 @@
<AssemblyName>umbraco.MacroEngines</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -38,17 +42,22 @@
<Reference Include="Microsoft.Scripting">
<HintPath>..\foreign dlls\DLR 4.0\Microsoft.Scripting.dll</HintPath>
</Reference>
<Reference Include="RazorEngine.Core">
<HintPath>..\foreign dlls\RazorEngine.Core.dll</HintPath>
</Reference>
<Reference Include="RazorEngine.Templates">
<HintPath>..\foreign dlls\RazorEngine.Templates.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\foreign dlls\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
@@ -56,14 +65,6 @@
<Compile Include="DynamicNode.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RazorEngine.cs" />
<Compile Include="Razor\CSharpRazorProvider.cs" />
<Compile Include="Razor\IRazorProvider.cs" />
<Compile Include="Razor\ITemplate.cs" />
<Compile Include="Razor\Razor.cs" />
<Compile Include="Razor\RazorCompiler.cs" />
<Compile Include="Razor\TemplateBase.cs" />
<Compile Include="Razor\TemplateException.cs" />
<Compile Include="Razor\VBRazorProvider.cs" />
<Compile Include="Scripting\MacroScript.cs" />
<Compile Include="Scripting\ScriptEngine.cs" />
</ItemGroup>
@@ -87,8 +88,7 @@
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy "$(TargetPath)" "$(SolutionDir)\umbraco\presentation\bin" /Y
xcopy "$(SolutionDir)foreign dlls\System.Web.Razor.dll" "$(SolutionDir)\umbraco\presentation\bin" /Y</PostBuildEvent>
<PostBuildEvent>xcopy "$(ProjectDir)bin\debug\umbraco.MacroEngines.*" "$(ProjectDir)..\presentation\bin\" /Y</PostBuildEvent>
</PropertyGroup>
<!-- 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.
@@ -12,10 +12,14 @@
<AssemblyName>umbraco.MacroEngines.Legacy</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+4 -3
View File
@@ -1,4 +1,5 @@
using umbraco.cms.businesslogic.web;
using System.Diagnostics;
using umbraco.cms.businesslogic.web;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using umbraco.BusinessLogic;
@@ -274,6 +275,7 @@ namespace umbraco.Test
var versions = doc.GetVersions().ToList();
Assert.AreEqual(versionCount + 1, versions.Count());
string propertyTypeAlias = prop.PropertyType.Alias;
prop.Value = "updated!"; //udpate the prop
Assert.AreNotEqual(originalPropVal, prop.Value);
@@ -281,8 +283,7 @@ namespace umbraco.Test
doc.RollBack(versions.OrderBy(x => x.Date).Last().Version, m_User);
var rolledBack = new Document(id);
Assert.AreEqual(originalPropVal, rolledBack.GenericProperties.ToList().Where(x => x.PropertyType.Alias == "headerText").First().Value);
Assert.AreEqual(originalPropVal, rolledBack.GenericProperties.ToList().Where(x => x.PropertyType.Alias == propertyTypeAlias).First().Value);
}
/// <summary>
+2 -1
View File
@@ -1,4 +1,5 @@
using umbraco.cms.businesslogic.web;
using System.Diagnostics;
using umbraco.cms.businesslogic.web;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
+3 -2
View File
@@ -109,7 +109,8 @@ namespace umbraco.Test
Assert.AreEqual<int>(t.Id, doc.Template);
//now delete, this should throw the exception
var hasException = false;
// changed by NH as the API will cleanup instead!
/* var hasException = false;
try
{
t.delete();
@@ -119,7 +120,7 @@ namespace umbraco.Test
hasException = true;
}
Assert.IsTrue(hasException);
*/
//ok, now that we've proved it can't be removed, we'll remove the data in order
doc.delete(true);
Assert.IsFalse(Document.IsNode(doc.Id));
+8 -4
View File
@@ -13,10 +13,14 @@
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
+1 -55
View File
@@ -45,6 +45,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{05329D
config templates\config\umbracoSettings.config = config templates\config\umbracoSettings.config
config templates\config\UrlRewriting.config = config templates\config\UrlRewriting.config
config templates\config\xsltExtensions.config = config templates\config\xsltExtensions.config
config templates\config\zipUpload.config = config templates\config\zipUpload.config
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{58072405-85D0-45CA-8F5C-EA8928C32A6A}"
@@ -110,60 +111,6 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "umbraco.MacroEngines", "umbraco.MacroEngines.Juno\umbraco.MacroEngines.csproj", "{89C09045-1064-466B-B94A-DB3AFE2A5853}"
EndProject
Global
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 17
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs01
SccLocalPath0 = .
SccProjectUniqueName1 = umbraco\\presentation\\umbraco.presentation.csproj
SccProjectName1 = umbraco/presentation
SccLocalPath1 = umbraco\\presentation
SccProjectUniqueName2 = umbraco\\businesslogic\\umbraco.businesslogic.csproj
SccProjectName2 = umbraco/businesslogic
SccLocalPath2 = umbraco\\businesslogic
SccProjectUniqueName3 = umbraco\\cms\\umbraco.cms.csproj
SccProjectName3 = umbraco/cms
SccLocalPath3 = umbraco\\cms
SccProjectUniqueName4 = umbraco\\interfaces\\umbraco.interfaces.csproj
SccProjectName4 = umbraco/interfaces
SccLocalPath4 = umbraco\\interfaces
SccProjectUniqueName5 = components\\editorControls\\umbraco.editorControls.csproj
SccProjectName5 = components/editorControls
SccLocalPath5 = components\\editorControls
SccProjectUniqueName6 = components\\macroRenderings\\umbraco.macroRenderings.csproj
SccProjectName6 = components/macroRenderings
SccLocalPath6 = components\\macroRenderings
SccProjectUniqueName7 = umbraco\\providers\\umbraco.providers.csproj
SccProjectName7 = umbraco/providers
SccLocalPath7 = umbraco\\providers
SccProjectUniqueName8 = umbraco\\datalayer\\umbraco.datalayer.csproj
SccProjectName8 = umbraco/datalayer
SccLocalPath8 = umbraco\\datalayer
SccProjectUniqueName9 = components\\umbraco.controls\\umbraco.controls.csproj
SccProjectName9 = components/umbraco.controls
SccLocalPath9 = components\\umbraco.controls
SccProjectUniqueName10 = components\\umbraco.webservices\\umbraco.webservices.csproj
SccProjectName10 = components/umbraco.webservices
SccLocalPath10 = components\\umbraco.webservices
SccProjectUniqueName11 = LinqToUmbraco\\src\\umbraco.Linq\\Core\\umbraco.Linq.Core.csproj
SccProjectName11 = LinqToUmbraco/src/umbraco.Linq/Core
SccLocalPath11 = LinqToUmbraco\\src\\umbraco.Linq\\Core
SccProjectUniqueName12 = umbraco\\umbraco.Legacy\\umbraco.Legacy.csproj
SccProjectName12 = umbraco/umbraco.Legacy
SccLocalPath12 = umbraco\\umbraco.Legacy
SccProjectUniqueName13 = umbraco.Test\\umbraco.Test.csproj
SccProjectName13 = umbraco.Test
SccLocalPath13 = umbraco.Test
SccProjectUniqueName14 = components\\SQLCE4Umbraco\\SqlCE4Umbraco.csproj
SccProjectName14 = components/SQLCE4Umbraco
SccLocalPath14 = components\\SQLCE4Umbraco
SccProjectUniqueName15 = umbraco.MacroEngines\\umbraco.MacroEngines.Legacy.csproj
SccProjectName15 = umbraco.MacroEngines
SccLocalPath15 = umbraco.MacroEngines
SccProjectUniqueName16 = umbraco.MacroEngines.Juno\\umbraco.MacroEngines.csproj
SccProjectName16 = umbraco.MacroEngines.Juno
SccLocalPath16 = umbraco.MacroEngines.Juno
EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = umbraco2.vsmdi
EndGlobalSection
@@ -229,7 +176,6 @@ Global
{6AE67079-2C00-476C-81DE-2800D1AC14BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6AE67079-2C00-476C-81DE-2800D1AC14BC}.Release|Any CPU.Build.0 = Release|Any CPU
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Debug|Any CPU.Build.0 = Debug|Any CPU
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Release|Any CPU.ActiveCfg = Release|Any CPU
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
+1 -1
View File
@@ -18,7 +18,7 @@ namespace umbraco
{
#region Private static fields
// CURRENT UMBRACO VERSION ID
private static string _currentVersion = "4.6.0.Alpha";
private static string _currentVersion = "4.6.0";
private static string _reservedUrlsCache;
private static string _reservedPathsCache;
+52
View File
@@ -15,8 +15,60 @@ namespace umbraco.BusinessLogic.Utils
public static class TypeFinder
{
/// <summary>
/// Searches all loaded assemblies for classes marked with the attribute passed in.
/// </summary>
/// <returns>A list of found types</returns>
public static List<Type> FindClassesMarkedWithAttribute(Type attribute)
{
List<Type> types = new List<Type>();
bool searchGAC = false;
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
{
//don't check any types if the assembly is part of the GAC
if (!searchGAC && assembly.GlobalAssemblyCache)
continue;
foreach (Type type in assembly.GetTypes())
{
if (type.GetCustomAttributes(attribute, true).Length > 0)
{
types.Add(type);
}
}
}
// also add types from app_code
try
{
// only search the App_Code folder if it's not empty
DirectoryInfo appCodeFolder = new DirectoryInfo(IOHelper.MapPath(IOHelper.ResolveUrl("~/App_code")));
if (appCodeFolder.GetFiles().Length > 0)
{
foreach (Type type in System.Reflection.Assembly.Load("App_Code").GetTypes())
{
if (type.GetCustomAttributes(attribute, true).Length > 0)
{
types.Add(type);
}
}
}
}
catch { } // Empty catch - this just means that an App_Code assembly wasn't generated by the files in folder
return types;
}
/// <summary>
/// Searches all loaded assemblies for classes of the type passed in.
/// </summary>
@@ -27,10 +27,14 @@
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<OldToolsVersion>3.5</OldToolsVersion>
<IsWebBootstrapper>true</IsWebBootstrapper>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+47 -40
View File
@@ -443,6 +443,18 @@ namespace umbraco.cms.businesslogic
}
}
/// <summary>
/// Clears the locally loaded tabs which forces them to be reloaded next time they requested
/// </summary>
public void ClearVirtualTabs()
{
foreach (TabI t in getVirtualTabs)
Tab.FlushCache(t.Id, t.ContentType);
m_VirtualTabs = null;
}
/// <summary>
/// The list of ContentType Id's that defines which Content (by ContentType) can be created as child
/// to the Content of this ContentType
@@ -595,8 +607,6 @@ namespace umbraco.cms.businesslogic
[MethodImpl(MethodImplOptions.Synchronized)]
public int AddVirtualTab(string Caption)
{
// Remove from cache
FlushFromCache(Id);
// Get tab count
int tabCount = SqlHelper.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsTab WHERE contenttypeNodeId = @nodeId",
@@ -607,6 +617,10 @@ namespace umbraco.cms.businesslogic
SqlHelper.CreateParameter("@nodeId", Id),
SqlHelper.CreateParameter("@text", Caption),
SqlHelper.CreateParameter("@sortorder", tabCount + 1));
// Remove from cache
FlushFromCache(Id);
return SqlHelper.ExecuteScalar<int>("SELECT MAX(id) FROM cmsTab");
}
@@ -787,7 +801,6 @@ namespace umbraco.cms.businesslogic
ContentType ct = new ContentType(id);
Cache.ClearCacheItem(string.Format("UmbracoContentType{0}", id));
Cache.ClearCacheItem(ct.GetPropertiesCacheKey());
ct.ClearVirtualTabs();
@@ -822,16 +835,7 @@ namespace umbraco.cms.businesslogic
return "ContentType_PropertyTypes_Content:" + this.Id;
}
/// <summary>
/// Clears the locally loaded tabs which forces them to be reloaded next time they requested
/// </summary>
private void ClearVirtualTabs()
{
foreach (TabI t in getVirtualTabs)
Tab.FlushCache(t.Id, t.ContentType);
m_VirtualTabs = null;
}
/// <summary>
/// Checks if we've loaded the virtual tabs into memory and if not gets them from the databse.
@@ -858,7 +862,7 @@ namespace umbraco.cms.businesslogic
{
while (dr.Read())
{
m_VirtualTabs.Add(new Tab(dr.GetInt("id"), dr.GetString("text"), dr.GetInt("sortOrder"), this, true));
m_VirtualTabs.Add(new Tab(dr.GetInt("id"), dr.GetString("text"), dr.GetInt("sortOrder"), this));
}
}
@@ -964,20 +968,39 @@ namespace umbraco.cms.businesslogic
/// <param name="caption">The caption.</param>
/// <param name="sortOrder">The sort order.</param>
/// <param name="cType">Type of the c.</param>
public Tab(int id, string caption, int sortOrder, ContentType cType, bool loadInheritedProperties)
public Tab(int id, string caption, int sortOrder, ContentType cType)
{
_id = id;
_caption = caption;
_sortOrder = sortOrder;
_contenttype = cType;
}
// NH: the cachekey needs to combine the tab and the content type id, due to master content types enables sharing of tabs between child types
string cacheKey = generateCacheKey(id, cType.Id);
_propertytypes =
Cache.GetCacheItem<PropertyType[]>(cacheKey, propertyTypesCacheSyncLock, TimeSpan.FromMinutes(10),
public static Tab GetTab(int id)
{
Tab tab = null;
using (IRecordsReader dr = SqlHelper.ExecuteReader(
string.Format(
"Select Id, text, contenttypeNodeId, sortOrder from cmsTab where Id = {0} order by sortOrder",
id)))
{
if (dr.Read())
{
tab = new Tab(id, dr.GetString("text"), dr.GetInt("sortOrder"), new ContentType(dr.GetInt("contenttypeNodeId")));
}
dr.Close();
}
return tab;
}
private PropertyType[] getPropertyTypes(bool loadInheritedPropertyTypes)
{
return
Cache.GetCacheItem<PropertyType[]>(generateCacheKey(Id, ContentType), propertyTypesCacheSyncLock, TimeSpan.FromMinutes(10),
delegate
{
string contentTypeModifier = loadInheritedProperties ? "" : String.Format(" and contentTypeId = {0}", cType.Id);
string contentTypeModifier = loadInheritedPropertyTypes ? "" : String.Format(" and contentTypeId = {0}", ContentType);
List<PropertyType> tmp = new List<PropertyType>();
@@ -996,25 +1019,7 @@ namespace umbraco.cms.businesslogic
}
return tmp.ToArray();
});
}
public static Tab GetTab(int id)
{
Tab tab = null;
using (IRecordsReader dr = SqlHelper.ExecuteReader(
string.Format(
"Select Id, text, contenttypeNodeId, sortOrder from cmsTab where Id = {0} order by sortOrder",
id)))
{
if (dr.Read())
{
tab = new Tab(id, dr.GetString("text"), dr.GetInt("sortOrder"), new ContentType(dr.GetInt("contenttypeNodeId")),
true);
}
dr.Close();
}
return tab;
}
/// <summary>
@@ -1037,6 +1042,8 @@ namespace umbraco.cms.businesslogic
/// </summary>
public void Delete()
{
SqlHelper.ExecuteNonQuery("update cmsPropertyType set tabId = NULL where tabid = @id",
SqlHelper.CreateParameter("@id", Id));
SqlHelper.ExecuteNonQuery("delete from cmsTab where id = @id",
SqlHelper.CreateParameter("@id", Id));
}
@@ -1181,7 +1188,7 @@ namespace umbraco.cms.businesslogic
/// </summary>
public PropertyType[] PropertyTypes
{
get { return _propertytypes; }
get { return getPropertyTypes(true); }
}
public int ContentType
@@ -675,6 +675,8 @@ namespace umbraco.cms.businesslogic.packager
for (int t = 0; t < tabs.Length; t++)
tabNames += tabs[t].Caption + ";";
Hashtable ht = new Hashtable();
foreach (XmlNode t in n.SelectNodes("Tabs/Tab"))
{
@@ -685,7 +687,7 @@ namespace umbraco.cms.businesslogic.packager
}
}
dt.ClearVirtualTabs();
// Get all tabs in hashtable
Hashtable tabList = new Hashtable();
foreach (cms.businesslogic.ContentType.TabI t in dt.getVirtualTabs.ToList())
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
namespace umbraco.cms.businesslogic.datatype
{
@@ -82,10 +83,35 @@ namespace umbraco.cms.businesslogic.datatype
}
[ValidationProperty("Value")]
public class AbstractDataEditorControl : System.Web.UI.WebControls.WebControl, interfaces.IDataEditor
{
private cms.businesslogic.datatype.BaseDataType _datatype;
// property is used as a wrapper around the actual controls ValidationProperty
public object Value {
get
{
var attr = this.Control.GetType().GetCustomAttributes(typeof(ValidationPropertyAttribute), true);
if (attr != null && attr.Length > 0)
{
//get value of marked property
System.Reflection.PropertyInfo info = this.Control.GetType().GetProperty(((ValidationPropertyAttribute)attr[0]).Name);
return info.GetValue(this.Control, null);
}
else
{
//not marked so no validation
return "ok";
}
}
}
public AbstractDataEditorControl(cms.businesslogic.datatype.BaseDataType DataType)
{
_datatype = DataType;
@@ -49,11 +49,18 @@ namespace umbraco.cms.businesslogic.datatype
{
get
{
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
interfaces.IDataType dt = f.DataType(_controlId);
dt.DataTypeDefinitionId = Id;
if (_controlId != Guid.Empty)
{
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
interfaces.IDataType dt = f.DataType(_controlId);
dt.DataTypeDefinitionId = Id;
return dt;
return dt;
}
else
{
return null;
}
}
set
{
@@ -233,7 +240,11 @@ namespace umbraco.cms.businesslogic.datatype
int newId = CMSNode.MakeNew(-1, _objectType, u.Id, 1, Text, UniqueId).Id;
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
Guid FirstcontrolId = f.GetAll()[0].Id;
// initial control id changed to empty to ensure that it'll always work no matter if 3rd party configurators fail
// ref: http://umbraco.codeplex.com/workitem/29788
Guid FirstcontrolId = Guid.Empty;
SqlHelper.ExecuteNonQuery("Insert into cmsDataType (nodeId, controlId, dbType) values (" + newId.ToString() + ",@controlId,'Ntext')",
SqlHelper.CreateParameter("@controlId", FirstcontrolId));
@@ -87,6 +87,15 @@ namespace umbraco.cms.businesslogic.datatype
}
}
public int DataTypeDefinitionId
{
get
{
return _dataType.DataTypeDefinitionId;
}
}
#region IData Members
/// <summary>
@@ -47,8 +47,12 @@ namespace umbraco.cms.businesslogic.datatype.controls
/// <returns></returns>
public IDataType GetNewObject(Guid DataEditorId)
{
if (DataEditorId == Guid.Empty)
{
throw new ArgumentException("DataEditorId is empty. This usually means that no data editor was defined for the data type. To correct this update the entry in the cmsDataType table to ensure it matches a Guid from an installed data editor.");
}
IDataType newObject = Activator.CreateInstance(_controls[DataEditorId]) as IDataType;
return newObject;
return newObject;
}
/// <summary>
+45
View File
@@ -1,5 +1,7 @@
using System;
using System.Data;
using System.Security.Cryptography;
using System.Text;
using System.Xml;
using System.Runtime.CompilerServices;
@@ -503,6 +505,49 @@ namespace umbraco.cms.businesslogic.macro
}
}
public static MacroTypes FindMacroType(string xslt, string scriptFile, string scriptType, string scriptAssembly)
{
if (!string.IsNullOrEmpty(xslt))
return MacroTypes.XSLT;
else
{
if (!string.IsNullOrEmpty(scriptFile))
return MacroTypes.Script;
else
{
if (!string.IsNullOrEmpty(scriptType) && scriptType.ToLower().IndexOf(".ascx") > -1)
{
return MacroTypes.UserControl;
}
else if (!string.IsNullOrEmpty(scriptType) && !string.IsNullOrEmpty(scriptAssembly))
return MacroTypes.CustomControl;
}
}
return MacroTypes.Unknown;
}
public static string GenerateCacheKeyFromCode(string input)
{
if (String.IsNullOrEmpty(input))
throw new ArgumentNullException("input", "An MD5 hash cannot be generated when 'input' parameter is null!");
// step 1, calculate MD5 hash from input
MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// step 2, convert byte array to hex string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
//Macro events
//Delegates
@@ -12,16 +12,20 @@ namespace umbraco.cms.businesslogic.macro
{
public string Name { get; set; }
public string Alias { get; set; }
public string MacroControlIdentifier { get; set; }
public MacroTypes MacroType { get; set; }
public string TypeAssembly { get; set; }
public string TypeName { get; set; }
public string Xslt { get; set; }
public string ScriptName { get; set; }
public string ScriptCode { get; set; }
public string ScriptLanguage { get; set; }
public int CacheDuration { get; set; }
public bool CacheByPage { get; set; }
public bool CacheByMember { get; set; }
public string CacheIdenitifier { get; set; }
public List<MacroPropertyModel> Properties { get; set; }
@@ -43,6 +47,8 @@ namespace umbraco.cms.businesslogic.macro
CacheByMember = cacheByMember;
Properties = new List<MacroPropertyModel>();
MacroType = Macro.FindMacroType(Xslt, ScriptName, TypeName, TypeAssembly);
}
}
@@ -63,4 +69,16 @@ namespace umbraco.cms.businesslogic.macro
Value = value;
}
}
public enum MacroTypes
{
XSLT = 1,
CustomControl = 2,
UserControl = 3,
Unknown = 4,
Python = 5,
Script = 6
}
}
@@ -28,24 +28,25 @@ namespace umbraco.cms.businesslogic.skinning.tasks
HtmlDocument doc = new HtmlDocument();
doc.Load(IO.IOHelper.MapPath(SystemDirectories.Masterpages) + "/" + TargetFile);
if (doc.DocumentNode.SelectSingleNode(string.Format("//link [@href = '{0}']", Value)) == null)
{
//if (doc.DocumentNode.SelectSingleNode(string.Format("//link [@href = '{0}']", Value)) == null)
//{
HtmlNode target = doc.DocumentNode.SelectSingleNode(string.IsNullOrEmpty(TargetSelector) ? "//head" : TargetSelector.ToLower());
if (target != null)
{
HtmlNode s = new HtmlNode(HtmlNodeType.Element, doc, 0);
s.Name = "link";
s.Attributes.Add("rel", "stylesheet");
s.Attributes.Add("type", "text/css");
HtmlNode s = doc.CreateElement("link");
//s.Name = "link";
s.Attributes.Append("rel", "stylesheet");
s.Attributes.Append("type", "text/css");
s.Attributes.Add("href", Value);
s.Attributes.Append("href", Value);
if (!string.IsNullOrEmpty(Media))
s.Attributes.Add("media", Media);
s.Attributes.Append("media", Media);
target.AppendChild(s);
@@ -56,9 +57,9 @@ namespace umbraco.cms.businesslogic.skinning.tasks
}
else
d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
}
else
d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
//}
//else
// d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
return d;
}
@@ -72,7 +73,7 @@ namespace umbraco.cms.businesslogic.skinning.tasks
if (s != null)
{
s.Remove();
s.RemoveAll();
doc.Save(IO.IOHelper.MapPath(SystemDirectories.Masterpages) + "/" + TargetFile);
@@ -47,7 +47,7 @@ namespace umbraco.cms.businesslogic.skinning.tasks
{
if (target.Attributes[TargetAttribute] == null)
{
target.Attributes.Add(TargetAttribute, Value);
target.Attributes.Append(TargetAttribute, Value);
}
else
{
+30 -21
View File
@@ -32,31 +32,40 @@ namespace umbraco.cms.businesslogic.web
_checkedPages.Clear();
}
static object _locko = new object();
public static XmlDocument AccessXml
{
get {
if (_accessXmlContent == null)
{
if (_accessXmlSource == null)
{
//if we pop it here it'll make for better stack traces ;)
_accessXmlSource = IOHelper.MapPath(SystemFiles.AccessXml, false);
}
get
{
if (_accessXmlContent == null)
{
lock (_locko)
{
if (_accessXmlContent == null)
{
if (_accessXmlSource == null)
{
//if we pop it here it'll make for better stack traces ;)
_accessXmlSource = IOHelper.MapPath(SystemFiles.AccessXml, false);
}
_accessXmlContent = new XmlDocument();
_accessXmlContent = new XmlDocument();
if (!System.IO.File.Exists(_accessXmlSource))
{
System.IO.FileStream f = System.IO.File.Open(_accessXmlSource, FileMode.Create);
System.IO.StreamWriter sw = new StreamWriter(f);
sw.WriteLine("<access/>");
sw.Close();
f.Close();
}
_accessXmlContent.Load(_accessXmlSource);
}
return _accessXmlContent;
}
if (!System.IO.File.Exists(_accessXmlSource))
{
System.IO.FileStream f = System.IO.File.Open(_accessXmlSource, FileMode.Create);
System.IO.StreamWriter sw = new StreamWriter(f);
sw.WriteLine("<access/>");
sw.Close();
f.Close();
}
_accessXmlContent.Load(_accessXmlSource);
}
}
}
return _accessXmlContent;
}
}
public static void AddMembershipRoleToDocument(int documentId, string role) {
+57 -1
View File
@@ -1283,7 +1283,63 @@ namespace umbraco.cms.businesslogic.web
// Copy the properties of the current document
var props = GenericProperties;
foreach (Property p in props)
newDoc.getProperty(p.PropertyType.Alias).Value = p.Value;
{
//copy file if it's an upload property (so it doesn't get removed when original doc get's deleted)
IDataType uploadField = new Factory().GetNewObject(new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c"));
if (p.PropertyType.DataTypeDefinition.DataType.Id == uploadField.Id
&& p.Value.ToString() != ""
&& File.Exists(IOHelper.MapPath(p.Value.ToString())))
{
int propId = newDoc.getProperty(p.PropertyType.Alias).Id;
System.IO.Directory.CreateDirectory(IOHelper.MapPath(SystemDirectories.Media + "/" + propId.ToString()));
string fileCopy = IOHelper.MapPath(
SystemDirectories.Media + "/" +
propId.ToString() + "/" +
new FileInfo(IOHelper.MapPath(p.Value.ToString())).Name);
File.Copy(IOHelper.MapPath(p.Value.ToString()), fileCopy);
string relFilePath =
SystemDirectories.Media + "/" +
propId.ToString() + "/" +
new FileInfo(IOHelper.MapPath(p.Value.ToString())).Name;
if (SystemDirectories.Root == string.Empty)
relFilePath = relFilePath.TrimStart('~');
newDoc.getProperty(p.PropertyType.Alias).Value = relFilePath;
//copy thumbs
FileInfo origFile = new FileInfo(IOHelper.MapPath(p.Value.ToString()));
foreach(FileInfo thumb in origFile.Directory.GetFiles("*_thumb*"))
{
if (!File.Exists(IOHelper.MapPath(
SystemDirectories.Media + "/" +
propId.ToString() + "/" +
thumb.Name)))
{
thumb.CopyTo(IOHelper.MapPath(
SystemDirectories.Media + "/" +
propId.ToString() + "/" +
thumb.Name));
}
}
}
else
{
newDoc.getProperty(p.PropertyType.Alias).Value = p.Value;
}
}
// Relate?
if (RelateToOrignal)
+10 -5
View File
@@ -27,10 +27,14 @@
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
@@ -101,7 +105,8 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\foreign dlls\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack">
<Reference Include="HtmlAgilityPack, Version=1.4.0.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\foreign dlls\HtmlAgilityPack.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib">
@@ -198,7 +198,7 @@ namespace umbraco.DataLayer.Utility.Installer
if (!String.IsNullOrEmpty(v.Table) && !String.IsNullOrEmpty(v.Field) && !String.IsNullOrEmpty(v.Value))
{
IRecordsReader reader = SqlHelper.ExecuteReader(string.Format("SELECT {0} FROM {1} WHERE {0}={2}", v.Field, v.Table, v.Value));
if (!reader.HasRecords)
if (!reader.Read())
continue;
}
else if (String.IsNullOrEmpty(v.Table))
+8 -4
View File
@@ -10,10 +10,14 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>umbraco.DataLayer</RootNamespace>
<AssemblyName>umbraco.DataLayer</AssemblyName>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
+8 -4
View File
@@ -27,10 +27,14 @@
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
<!--
<section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
ASPNETAJAX ** DISABLED BY ALEX NORCLIFFE 2010 06 03 FOR COMPATIBILITY WITH RUNNING UNDER .NET 4
USERS CAN ADD THIS THEMSELVES IF THEY WISH TO USE ASP.NET AJAX
-->
<!--<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>-->
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="umbraco.presentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false" />
<section name="Examine" type="Examine.Config.ExamineSettings, Examine" requirePermission="false" />
<section name="ExamineLuceneIndexSets" type="UmbracoExamine.Config.ExamineLuceneIndexes, UmbracoExamine" requirePermission="false" />
</configSections>
<urlrewritingnet configSource="config\UrlRewriting.config" />
<!-- <microsoft.scripting configSource="config\scripting.config" />-->
<clientDependency configSource="config\ClientDependency.config" />
<Examine configSource="config\ExamineSettings.config" />
<ExamineLuceneIndexSets configSource="config\ExamineIndex.config" />
<appSettings>
<add key="umbracoDbDSN" value="server=.\sqlexpress;database=4.6-beta;integrated security=false;user id=sa;pwd=password!" />
<add key="umbracoConfigurationStatus" value="4.6.0.beta" />
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd" />
<add key="umbracoReservedPaths" value="~/umbraco,~/install/" />
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
<add key="umbracoStorageDirectory" value="~/App_Data" />
<add key="umbracoPath" value="~/umbraco" />
<add key="umbracoEnableStat" value="false" />
<add key="umbracoHideTopLevelNodeFromPath" value="true" />
<add key="umbracoEditXhtmlMode" value="true" />
<add key="umbracoUseDirectoryUrls" value="false" />
<add key="umbracoDebugMode" value="true" />
<add key="umbracoTimeOutInMinutes" value="20" />
<add key="umbracoVersionCheckPeriod" value="7" />
<add key="umbracoDisableXsltExtensions" value="true" />
<add key="umbracoDefaultUILanguage" value="en" />
<add key="umbracoProfileUrl" value="profiler" />
<add key="umbracoUseSSL" value="false" />
<add key="umbracoUseMediumTrust" value="false" />
<!--
Set this to true to enable storing the xml cache locally to the IIS server even if the app files are stored centrally on a SAN/NAS
Alex Norcliffe 2010 02 for 4.1
-->
<add key="umbracoContentXMLUseLocalTemp" value="false" />
</appSettings>
<system.net>
<mailSettings>
<smtp>
<network host="127.0.0.1" userName="username" password="password" />
</smtp>
</mailSettings>
</system.net>
<!-- REMOVE FOR BETA -->
<!-- added by NH to test foreign membership providers-->
<connectionStrings>
<remove name="LocalSqlServer" />
<!--<add name="LocalSqlServer" connectionString="server=.\sqlexpress;database=aspnetdb;user id=DBUSER;password=DBPASSWORD" providerName="System.Data.SqlClient"/>-->
</connectionStrings>
<system.web>
<!-- <trust level="Medium" originUrl=".*" /> -->
<customErrors mode="Off" />
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
<xhtmlConformance mode="Strict" />
<pages enableEventValidation="false">
<!-- ASPNETAJAX -->
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="umbraco" namespace="umbraco.presentation.templateControls" assembly="umbraco" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<httpModules>
<!-- URL REWRTIER -->
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
<!-- UMBRACO -->
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule, umbraco" />
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule, umbraco" />
<!-- ASPNETAJAX -->
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<!-- CLIENT DEPENDENCY -->
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
</httpModules>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
<!-- UMBRACO CHANNELS -->
<add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
<add verb="*" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
<!-- CLIENT DEPENDENCY -->
<add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
<!-- SPELL CHECKER -->
<add verb="GET,HEAD,POST" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
</httpHandlers>
<compilation defaultLanguage="c#" debug="true" batch="false">
<assemblies>
<!-- ASPNETAJAX -->
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<!--<add assembly="Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
</assemblies>
</compilation>
<authentication mode="Forms">
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<authorization>
<allow users="?" />
</authorization>
<!-- Membership Provider -->
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />
</providers>
</membership>
<!-- added by NH to support membership providers in access layer -->
<roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
<providers>
<clear />
<add name="UmbracoRoleProvider" type="umbraco.providers.members.UmbracoRoleProvider" />
</providers>
</roleManager>
<!-- Sitemap provider-->
<siteMap defaultProvider="UmbracoSiteMapProvider" enabled="true">
<providers>
<clear />
<add name="UmbracoSiteMapProvider" type="umbraco.presentation.nodeFactory.UmbracoSiteMapProvider" defaultDescriptionAlias="description" securityTrimmingEnabled="true" />
</providers>
</siteMap>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<remove name="UrlRewriteModule" />
<remove name="umbracoRequestModule" />
<remove name="viewstateMoverModule" />
<remove name="umbracoBaseRequestModule" />
<remove name="ClientDependencyModule" />
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
</modules>
<handlers accessPolicy="Read, Write, Script, Execute">
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<remove name="Channels" />
<remove name="Channels_Word" />
<remove name="ClientDependency" />
<remove name="SpellChecker" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" name="Channels" preCondition="integratedMode" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
<add verb="*" name="Channels_Word" preCondition="integratedMode" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
<add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
<add verb="GET,HEAD,POST" preCondition="integratedMode" name="SpellChecker" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
</handlers>
</system.webServer>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<runtime>
<!-- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
-->
</runtime>
</configuration>
+211
View File
@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
<!--
<section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
ASPNETAJAX ** DISABLED BY ALEX NORCLIFFE 2010 06 03 FOR COMPATIBILITY WITH RUNNING UNDER .NET 4
USERS CAN ADD THIS THEMSELVES IF THEY WISH TO USE ASP.NET AJAX
-->
<!--<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>-->
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="umbraco.presentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false" />
<section name="Examine" type="Examine.Config.ExamineSettings, Examine" requirePermission="false" />
<section name="ExamineLuceneIndexSets" type="UmbracoExamine.Config.ExamineLuceneIndexes, UmbracoExamine" requirePermission="false" />
</configSections>
<urlrewritingnet configSource="config\UrlRewriting.config" />
<!-- <microsoft.scripting configSource="config\scripting.config" />-->
<clientDependency configSource="config\ClientDependency.config" />
<Examine configSource="config\ExamineSettings.config" />
<ExamineLuceneIndexSets configSource="config\ExamineIndex.config" />
<appSettings>
<add key="umbracoDbDSN" value="server=.\sqlexpress;database=umbraco-nightly;integrated security=true;" />
<add key="umbracoConfigurationStatus" value="4.6.0.Alpha" />
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd" />
<add key="umbracoReservedPaths" value="~/umbraco,~/install/" />
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
<add key="umbracoStorageDirectory" value="~/App_Data" />
<add key="umbracoPath" value="~/umbraco" />
<add key="umbracoEnableStat" value="false" />
<add key="umbracoHideTopLevelNodeFromPath" value="true" />
<add key="umbracoEditXhtmlMode" value="true" />
<add key="umbracoUseDirectoryUrls" value="false" />
<add key="umbracoDebugMode" value="true" />
<add key="umbracoTimeOutInMinutes" value="20" />
<add key="umbracoVersionCheckPeriod" value="7" />
<add key="umbracoDisableXsltExtensions" value="true" />
<add key="umbracoDefaultUILanguage" value="en" />
<add key="umbracoProfileUrl" value="profiler" />
<add key="umbracoUseSSL" value="false" />
<add key="umbracoUseMediumTrust" value="false" />
<!--
Set this to true to enable storing the xml cache locally to the IIS server even if the app files are stored centrally on a SAN/NAS
Alex Norcliffe 2010 02 for 4.1
-->
<add key="umbracoContentXMLUseLocalTemp" value="false" />
</appSettings>
<system.net>
<mailSettings>
<smtp>
<network host="127.0.0.1" userName="username" password="password" />
</smtp>
</mailSettings>
</system.net>
<!-- REMOVE FOR BETA -->
<!-- added by NH to test foreign membership providers-->
<connectionStrings>
<remove name="LocalSqlServer" />
<!--<add name="LocalSqlServer" connectionString="server=.\sqlexpress;database=aspnetdb;user id=DBUSER;password=DBPASSWORD" providerName="System.Data.SqlClient"/>-->
</connectionStrings>
<system.web>
<!-- <trust level="Medium" originUrl=".*" /> -->
<customErrors mode="Off" />
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
<xhtmlConformance mode="Strict" />
<pages enableEventValidation="false">
<!-- ASPNETAJAX -->
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="umbraco" namespace="umbraco.presentation.templateControls" assembly="umbraco" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>
</pages>
<httpModules>
<!-- URL REWRTIER -->
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
<!-- UMBRACO -->
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule, umbraco" />
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule, umbraco" />
<!-- ASPNETAJAX -->
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<!-- CLIENT DEPENDENCY -->
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
</httpModules>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
<!-- UMBRACO CHANNELS -->
<add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
<add verb="*" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
<!-- CLIENT DEPENDENCY -->
<add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
<!-- SPELL CHECKER -->
<add verb="GET,HEAD,POST" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
</httpHandlers>
<compilation defaultLanguage="c#" debug="true" batch="false">
<assemblies>
<!-- ASPNETAJAX -->
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<!--<add assembly="Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
</assemblies>
</compilation>
<authentication mode="Forms">
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<authorization>
<allow users="?" />
</authorization>
<!-- Membership Provider -->
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />
</providers>
</membership>
<!-- added by NH to support membership providers in access layer -->
<roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
<providers>
<clear />
<add name="UmbracoRoleProvider" type="umbraco.providers.members.UmbracoRoleProvider" />
</providers>
</roleManager>
<!-- Sitemap provider-->
<siteMap defaultProvider="UmbracoSiteMapProvider" enabled="true">
<providers>
<clear />
<add name="UmbracoSiteMapProvider" type="umbraco.presentation.nodeFactory.UmbracoSiteMapProvider" defaultDescriptionAlias="description" securityTrimmingEnabled="true" />
</providers>
</siteMap>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ScriptModule" />
<remove name="UrlRewriteModule" />
<remove name="umbracoRequestModule" />
<remove name="viewstateMoverModule" />
<remove name="umbracoBaseRequestModule" />
<remove name="ClientDependencyModule" />
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
</modules>
<handlers accessPolicy="Read, Write, Script, Execute">
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<remove name="Channels" />
<remove name="Channels_Word" />
<remove name="ClientDependency" />
<remove name="SpellChecker" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add verb="*" name="Channels" preCondition="integratedMode" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
<add verb="*" name="Channels_Word" preCondition="integratedMode" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
<add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
<add verb="GET,HEAD,POST" preCondition="integratedMode" name="SpellChecker" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
</handlers>
</system.webServer>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5" />
<providerOption name="WarnAsError" value="false" />
</compiler>
</compilers>
</system.codedom>
<runtime>
<!-- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
-->
</runtime>
</configuration>
+8 -71
View File
@@ -13,7 +13,6 @@
</control>
</tab>
</section>
<section alias="StartupDeveloperDashboardSection">
<areas>
<area>developer</area>
@@ -27,7 +26,6 @@
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection">
<areas>
<area>media</area>
@@ -44,7 +42,6 @@
</control>
</tab>
</section>
<section alias="StartupDashboardSection">
<access>
<deny>translator</deny>
@@ -52,6 +49,11 @@
<areas>
<area>content</area>
</areas>
<tab caption="Property Test">
<control addPanel="true" panelCaption="PropertyTest" First="Hello World" Second="Even more" Third="[#userContentStartNode]" Fourth="yaddi">
/usercontrols/propertyTest.ascx
</control>
</tab>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/startupdashboardintro.ascx
@@ -70,7 +72,6 @@
<control addPanel="true">/umbraco/dashboard/changepassword.ascx</control>
</tab>
</section>
<section alias="StartupMemberDashboardSection">
<areas>
<area>member</area>
@@ -87,75 +88,12 @@
</control>
</tab>
</section>
<!--
<section>
<access>
<deny>translator</deny>
</access>
<section alias="Comments">
<areas>
<area>default</area>
<area>content</area>
</areas>
<tab caption="Last Edits">
<control>
/umbraco/dashboard/latestEdits.ascx
<access><grant>writer</grant><grant>editor</grant><deny>administrator</deny></access></control>
</tab>
<tab caption="Hidden from all but admins">
<access>
<grant>administrator</grant>
<grant>writer</grant>
</access>
<control>
<access>
<deny>writer</deny>
</access>
/umbraco/dashboard/latestEdits.ascx
</control>
</tab>
<tab caption="Only for devs">
<access>
<grant>administrator</grant>
<grantBySection>settings</grantBySection>
<deny>writer</deny>
</access>
<control>
<access>
<grant>administrator</grant>
<grant>writer</grant>
</access>
/umbraco/dashboard/latestEdits.ascx
</control>
</tab>
</section>
<section>
<areas>
<area>default</area>
<area>content</area>
</areas>
<tab caption="Contact Logs">
<control>/usercontrols/dashboards/ContactForm_logs.ascx</control>
</tab>
<tab caption="Email a Friend Logs">
<control>/usercontrols/dashboards/EmailAFriendForm_logs.ascx</control>
</tab>
</section>
<section>
<areas>
<area>default</area>
<area>member</area>
</areas>
<tab caption="Search Members">
<control>/umbraco/members/membersearch.ascx</control>
</tab>
</section>
<section id="contour">
<areas>
<area>contour</area>
</areas>
<tab caption="Umbraco Contour">
<control>/umbraco/plugins/umbracocontour/formsdashboard.ascx</control>
<tab caption="Comments">
<control>/usercontrols/blog/CommentModeration.ascx</control>
</tab>
</section>
<section alias="MyDashboardSection">
@@ -170,5 +108,4 @@
<control>/usercontrols/dashboards/EmailAFriendForm_logs.ascx</control>
</tab>
</section>
-->
</dashBoard>
@@ -29,5 +29,6 @@
Any bugs or problems with the rewriter, contact Anders/Duckie
-->
<add name="CWS_emaiAFriendID" virtualUrl="^~/email-a-friend/(.[0-9]*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/email-a-friend.aspx?nodeID=$1" ignoreCase="true" />
<add name="CWS_emaiAFriendID" virtualUrl="^~/email-a-friend/(.[0-9]*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/email-a-friend.aspx?nodeID=$1" ignoreCase="true" />
</rewrites>
</urlrewritingnet>
@@ -5,11 +5,12 @@
<user>0</user>
<startNode>1080</startNode>
<fullTree>False</fullTree>
<documentTypeAlias>FAQItem</documentTypeAlias>
<documentTypeAlias>umbBlog</documentTypeAlias>
<fields>
<categories>
</categories>
<description>answer</description>
<description>
</description>
<excerpt>
</excerpt>
</fields>
@@ -10,7 +10,7 @@
<permission method="setProperty" allowAll="false" />
</ext>
-->
<ext assembly="Umlaut.Umb.Blog" type="Umlaut.Umb.Blog.Library.Base" alias="Blog4Umbraco">
<ext assembly="Runway.Blog" type="Runway.Blog.Library.Base" alias="umbBlog">
<permission method="CreateComment" returnXml="false" allowAll="true" />
<permission method="GetGravatarImage" returnXml="false" allowAll="true" />
</ext>
+170 -216
View File
@@ -1,228 +1,182 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="noNodes.aspx.cs" Inherits="umbraco.presentation.config.splashes.noNodes" %>
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<!DOCTYPE html>
<html>
<head runat="server">
<meta charset="utf-8">
<title>Umbraco
<%=umbraco.GlobalSettings.CurrentVersion%>
- no pages found</title>
<cc1:UmbracoClientDependencyLoader runat="server" ID="ClientLoader" />
<umb:JsInclude ID="JsInclude4" runat="server" FilePath="ui/jquery.js" PathNameAlias="UmbracoClient"
Priority="0" />
<style type="text/css">
body
{
font-size: 11px;
width: 100%;
font-family: Trebuchet MS, verdana, arial, Lucida Grande;
text-align: center;
padding-top: 25px;
margin: 0px;
}
#Panel1_content
{
margin-left: 1px;
background: url(images/background.png) no-repeat bottom center;
width: 100%;
}
#Panel1_content p
{
font-size: 11px;
line-height: 15px;
}
#buttons
{
position: absolute;
bottom: 5px;
width: 648px;
}
#buttons #next
{
float: right;
}
#buttons #back
{
float: left;
}
#loadingBar
{
visibility: hidden;
padding-left: 220px;
}
#loadingBar img
{
width: 220px;
}
#contentScroll
{
overflow: auto;
width: 100%;
height: 545px;
padding-right: 7px;
}
h1
{
font-size: 2em;
margin-top: 5px;
margin-bottom: 5px;
}
h2
{
font-size: 1.4em;
margin-top: 5px;
margin-bottom: 5px;
}
.error, .notice, .success
{
padding: .8em;
padding-top: 0em;
padding-bottom: 0em;
margin-bottom: .5em;
border: 2px solid #ddd;
}
.error
{
background: #FBE3E4;
color: #8a1f11;
border-color: #FBC2C4;
}
.notice
{
background: #FFF6BF;
color: #514721;
border-color: #FFD324;
}
.success
{
background: #E6EFC2;
color: #264409;
border-color: #C6D880;
}
.error a
{
color: #8a1f11;
}
.notice a
{
color: #514721;
}
.success a
{
color: #264409;
}
#videos
{
padding: 0px;
width: 400px;
text-align: center;
margin: auto;
font-size: 11px;
}
#videos td
{
text-align: center;
}
#videos a
{
color: #666;
text-decoration: none;
}
#videos img
{
padding: 1px;
border: none;
display: block;
margin: auto;
}
#videos.single
{
margin: 0px;
width: 150px;
}
#nitros p
{
display: none;
}
#nitros h2
{
font-size: 1.2em;
}
#nitros h3
{
font-size: 1em;
margin-bottom: 0px;
margin-top: 0px;
}
#nitros .umbNitroList input
{
float: left;
}
#nitros .umbNitroList div.nitro
{
float: left;
padding: 3px 0px 5px 10px;
clear: right;
}
</style>
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css" />
<link media="all" type="text/css" rel="stylesheet" href="../../umbraco_client/installer/css/reset.css" />
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/all.css" />
<link media="all" type="text/css" rel="stylesheet" href="../../umbraco_client/installer/css/form.css" />
<script src="../../umbraco_client/installer/js/jquery.1.4.4.js" type="text/javascript"></script>
<script src="../../umbraco_client/installer/js/jquery.ui.selectmenu.js" type="text/javascript"></script>
<script src="../../umbraco_client/installer/js/jquery.main.js" type="text/javascript"></script>
<script src="../../umbraco_client/passwordStrength/passwordstrength.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/lt7.css" />
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="../../umbraco_client/installer/js/ie-png.js"></script><![endif]-->
</head>
<body>
<body class="theend">
<form id="Form1" method="post" runat="server">
<asp:ScriptManager runat="server" ID="umbracoScriptManager">
</asp:ScriptManager>
<cc1:UmbracoPanel Style="text-align: left;" ID="Panel1" runat="server" Height="600px"
AutoResize="false" Width="680px" Text="No pages found">
<div id="contentScroll">
<div style="text-align: center; padding: 15px;">
<img src="worker.png" align="middle" title="Umbraco logo" alt="Umbraco logo" />
<h1>
Looks like there's still work to do</h1>
<p>
You're seeing the wonderful image above because your website doesn't contain any
<strong>published</strong> content yet.</p>
<p>
So get rid of that historic piece of web art by starting umbraco and publishing
some content. You can do this by clicking the "launch umbraco" button below.
</p>
<p>
<input type="button" value="Launch umbraco" id="bt_launch" runat="server" />
</p>
<br />
<h2 style="border-top: 1px solid #ccc; padding-top: 10px;">
Off to a great start</h2>
<p>
You can watch our intro videos on how to get off to a fast and easy start</p>
<table id="videos">
<tr>
<td>
<a target="_blank" href="http://umbraco.org/documentation/videos/getting-started/building-a-simple-site">
<img runat="server" id="vid1" src="~/install/images/packagesVid1.png" />
<span>Watch: Building a simple site.</span> </a>
</td>
<td>
<a target="_blank" href="http://umbraco.org/documentation/videos/getting-started/using-packages">
<img runat="server" id="vid2" src="~/install/images/packagesVid2.png" />
<span>Watch: using packages</span> </a>
</td>
</tr>
</table>
<p>
If you need more information on how to use umbraco, visit <a href="http://umbraco.org/documentation">
the books section on umbraco.org</a>.
</p>
</div>
</div>
<div id="buttons">
</div>
</cc1:UmbracoPanel>
<!-- all page -->
<section id="wrapper">
<div class="wholder">
<!-- header -->
<header id="header">
<div class="holder">
<strong class="logo"><a href="#">Umbraco</a></strong>
</div>
</header>
<!-- all content -->
<section id="main">
<!-- content -->
<section class="content">
<script type="text/javascript">
jQuery(document).ready(function () {
$.post("../../install/utills/p.aspx?feed=sitebuildervids",
function (data) {
jQuery("#ajax-sitebuildervids").html(data);
});
$.post("../../install/utills/p.aspx?feed=developervids",
function (data) {
jQuery("#ajax-developervids").html(data);
});
});
</script>
<!-- done box -->
<div class="tab main-tabinfo">
<div class="container">
<h1>
Looks like there's still work to do</h1>
<p>
You're seeing the wonderful page because your website doesn't contain any
<strong>published</strong> content yet.
</p>
<p>
So get rid of this page by starting umbraco and publishing
some content. You can do this by clicking the "set up your new website" button below.
</p>
<ul class="btn-web">
<li class="btn-set"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/umbraco.aspx"><span>Launch umbraco</span></a></li>
</ul>
</div>
<div class="threcol">
<div class="t">
&nbsp;</div>
<div class="hold">
<aside class="col1">
<h2>Useful links</h2>
<p>Weve put together some useful links to help you get started with Umbraco.</p>
<nav class="links">
<ul>
<li><a href="http://our.umbraco.org?ref=ourFromInstaller">our.umbraco.org</a></li>
</ul>
<ul>
<li><a href="http://our.umbraco.org/wiki?ref=LatestDocsFromInstaller">New documentation</a></li>
<li><a href="http://our.umbraco.org/projects?ref=LatestProjectsFromInstaller">New Projects</a></li>
<li><a href="http://our.umbraco.org/forum?ref=LatesTalkFromInstaller">Forum Talk</a></li>
</ul>
</nav>
</aside>
<aside class="col2">
<h2>Sitebuilder introduction</h2>
<div id="ajax-sitebuildervids"><small>Loading...</small></div>
</aside>
<aside class="col3">
<h2>Developer introduction</h2>
<div id="ajax-developervids"><small>Loading...</small></div>
</aside>
</div>
</div>
</div>
</section>
</section>
</div>
</section>
<!-- bg page -->
<div class="bg-main">
<div class="color2">
<div class="bg-c"></div>
</div>
<div class="color3">
<div class="bg-c"></div>
</div>
<div class="color1">
<div class="bg-c"></div>
</div>
<div class="color4">
<div class="bg-c"></div>
</div>
<div class="color5">
<div class="bg-c"></div>
</div>
</div>
</form>
</body>
</html>
@@ -25,10 +25,7 @@ namespace umbraco.presentation.config.splashes
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
protected void Page_Load(object sender, EventArgs e)
{
ClientLoader.DataBind();
bt_launch.Attributes.Add("onclick", "document.location.href='" + ResolveUrl(SystemDirectories.Umbraco) + "/';");
vid1.Src = SystemDirectories.Install + "/images/packagesVid1.png";
vid2.Src = SystemDirectories.Install + "/images/packagesVid2.png";
}
}
}
@@ -12,24 +12,6 @@ namespace umbraco.presentation.config.splashes {
public partial class noNodes {
/// <summary>
/// ClientLoader control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::umbraco.uicontrols.UmbracoClientDependencyLoader ClientLoader;
/// <summary>
/// JsInclude4 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::ClientDependency.Core.Controls.JsInclude JsInclude4;
/// <summary>
/// Form1 control.
/// </summary>
@@ -38,50 +20,5 @@ namespace umbraco.presentation.config.splashes {
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm Form1;
/// <summary>
/// umbracoScriptManager control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.ScriptManager umbracoScriptManager;
/// <summary>
/// Panel1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::umbraco.uicontrols.UmbracoPanel Panel1;
/// <summary>
/// bt_launch control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlInputButton bt_launch;
/// <summary>
/// vid1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlImage vid1;
/// <summary>
/// vid2 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlImage vid2;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<XsltExtensions>
<!-- <ext assembly="your.assemblyName" type="your.class.name" alias="yourAlias">
<!-- <ext assembly="your.assemblyName" type="your.class.name" alias="yourAlias">
</ext> -->
</XsltExtensions>
<ext assembly="umbraco.editorControls" type="umbraco.editorControls.tags.library" alias="tagsLib">
</ext>
</XsltExtensions>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<zipUpload>
<fileNodeTypeId>1033</fileNodeTypeId>
<imageNodeTypeId>1032</imageNodeTypeId>
<folderNodeTypeId>1031</folderNodeTypeId>
<imageFileExtensions>jpeg,jpg,gif,bmp,png,tiff,tif</imageFileExtensions>
</zipUpload>
+16 -13
View File
@@ -15,6 +15,7 @@ using umbraco.cms.businesslogic.web;
using umbraco.DataLayer;
using umbraco.IO;
using umbraco.BusinessLogic.Utils;
using umbraco.presentation.nodeFactory;
namespace umbraco
{
@@ -298,7 +299,7 @@ namespace umbraco
if (updateSitemapProvider && SiteMap.Provider is presentation.nodeFactory.UmbracoSiteMapProvider)
{
presentation.nodeFactory.UmbracoSiteMapProvider prov = (presentation.nodeFactory.UmbracoSiteMapProvider)SiteMap.Provider;
prov.UpdateNode(new umbraco.presentation.nodeFactory.Node(d.Id, true));
prov.UpdateNode(new umbraco.NodeFactory.Node(d.Id, true));
}
}
}
@@ -432,20 +433,22 @@ namespace umbraco
}
// clear cached field values
System.Web.Caching.Cache httpCache = HttpContext.Current.Cache;
string cachedFieldKeyStart = String.Format("contentItem{0}_", d.Id);
List<string> foundKeys = new List<string>();
foreach (DictionaryEntry cacheItem in httpCache)
if (HttpContext.Current != null)
{
string key = cacheItem.Key.ToString();
if (key.StartsWith(cachedFieldKeyStart))
foundKeys.Add(key);
System.Web.Caching.Cache httpCache = HttpContext.Current.Cache;
string cachedFieldKeyStart = String.Format("contentItem{0}_", d.Id);
List<string> foundKeys = new List<string>();
foreach (DictionaryEntry cacheItem in httpCache)
{
string key = cacheItem.Key.ToString();
if (key.StartsWith(cachedFieldKeyStart))
foundKeys.Add(key);
}
foreach (string foundKey in foundKeys)
{
httpCache.Remove(foundKey);
}
}
foreach (string foundKey in foundKeys)
{
httpCache.Remove(foundKey);
}
umbraco.BusinessLogic.Actions.Action.RunActionHandlers(d, ActionPublish.Instance);
FireAfterUpdateDocumentCache(d, e);
+12 -12
View File
@@ -11,23 +11,23 @@
<umb1:PageTitle runat="server" />
<link media="all" rel="stylesheet" href="css/jquery-ui-1.8.6.custom.css">
<link media="all" type="text/css" rel="stylesheet" href="css/reset.css" />
<link media="all" rel="stylesheet" href="css/all.css">
<link media="all" type="text/css" rel="stylesheet" href="css/form.css" />
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css">
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/reset.css" />
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/all.css">
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/form.css" />
<script src="js/jquery.1.4.4.js" type="text/javascript"></script>
<script src="js/jquery.ui.selectmenu.js" type="text/javascript"></script>
<script src="js/jquery.main.js" type="text/javascript"></script>
<script src="../umbraco_client/installer/js/jquery.1.4.4.js" type="text/javascript"></script>
<script src="../umbraco_client/installer/js/jquery.ui.selectmenu.js" type="text/javascript"></script>
<script src="../umbraco_client/installer/js/jquery.main.js" type="text/javascript"></script>
<script src="../umbraco_client/passwordStrength/passwordstrength.js" type="text/javascript"></script>
<!--[if lt IE 9]>
<link media="all" rel="stylesheet" href="css/lt7.css">
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/lt7.css">
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="js/ie-png.js"></script><![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="../umbraco_client/installer/js/ie-png.js"></script><![endif]-->
</head>
<body class="<%= currentStepClass %>">
@@ -125,9 +125,9 @@
</div>
<div class="carusel">
<ul>
<li><img src="images/img09.jpg" alt="image description"></li>
<li><img src="images/img10.jpg" alt="image description"></li>
<li><img src="images/img11.jpg" alt="image description"></li>
<li><img src="../umbraco_client/installer/images/img09.jpg" alt="image description"></li>
<li><img src="../umbraco_client/installer/images/img10.jpg" alt="image description"></li>
<li><img src="../umbraco_client/installer/images/img11.jpg" alt="image description"></li>
</ul>
</div>
+8 -8
View File
@@ -58,16 +58,15 @@ namespace umbraco.presentation.install
_name.Text = (stepCounter).ToString() + " - " + i.Name;
} else
e.Item.Visible = false;
}
}
public void GotoNextStep(string currentStep)
{
InstallerStep _s = InstallerSteps().GotoNextStep(currentStep);
Response.Redirect("?installStep=" + _s.Alias);
}
public void GotoNextStep(string currentStep)
{
InstallerStep _s = InstallerSteps().GotoNextStep(currentStep);
Response.Redirect("?installStep=" + _s.Alias);
}
#region Web Form Designer generated code
@@ -86,9 +85,10 @@ namespace umbraco.presentation.install
} catch {
Response.Redirect(SystemDirectories.Umbraco + "/logout.aspx?redir=" + Server.UrlEncode(Request.RawUrl));
}
//set the first step to upgrade.
if (string.IsNullOrEmpty(_installStep))
_installStep = "upgrade";
// if (string.IsNullOrEmpty(_installStep))
// _installStep = "upgrade";
}
if (string.IsNullOrEmpty(_installStep))
@@ -4,6 +4,7 @@ using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.installer;
using umbraco.cms.businesslogic.packager;
using umbraco.cms.businesslogic.web;
namespace umbraco.presentation.install.steps.Definitions
{
@@ -27,10 +28,17 @@ namespace umbraco.presentation.install.steps.Definitions
public override bool Completed()
{
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
return true;
if (InstalledPackage.GetAllInstalledPackages().Count > 0)
return true;
else
return false;
if (Document.GetRootDocuments().Count() > 0)
return true;
return false;
}
}
}
@@ -1,14 +1,12 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="loadStarterKitDesigns.ascx.cs" Inherits="umbraco.presentation.install.steps.Skinning.loadStarterKitDesigns" %>
<%@ Import Namespace="umbraco.cms.businesslogic.packager.repositories" %>
<asp:PlaceHolder ID="pl_loadStarterKitDesigns" runat="server">
<asp:Panel id="pl_CustomizeSkin" runat="server" Visible="false">
<h3>Starter kit and skin have been installed</h3>
<p id="customizelink"><a target="_blank" href="<%= umbraco.GlobalSettings.Path %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank">Browse and customize your new site</a></p>
</asp:Panel>
<div id="skinselector">
<asp:Repeater ID="rep_starterKitDesigns" runat="server">
<HeaderTemplate>
@@ -28,8 +26,8 @@
<ItemTemplate>
<li>
<div class="image-hold">
<img class="faik-mask" src="images/bg-img.png" alt="image description" width="152" height="129">
<img class="faik-mask-ie6" src="images/bg-img-ie.png" alt="image description" width="201" height="178">
<img class="faik-mask" src="../umbraco_client/installer/images/bg-img.png" alt="image description" width="152" height="129">
<img class="faik-mask-ie6" src="../umbraco_client/installer/images/bg-img-ie.png" alt="image description" width="201" height="178">
<div class="image">
<img class="zoom-img" src="<%# ((Skin)Container.DataItem).Thumbnail %>" alt="<%# ((Skin)Container.DataItem).Text %>" width="134" height="103">
@@ -8,8 +8,18 @@ using umbraco.BusinessLogic;
namespace umbraco.presentation.install.steps.Skinning
{
public delegate void StarterKitDesignInstalledEventHandler();
public partial class loadStarterKitDesigns : System.Web.UI.UserControl
{
public event StarterKitDesignInstalledEventHandler StarterKitDesignInstalled;
protected virtual void OnStarterKitDesignInstalled()
{
StarterKitDesignInstalled();
}
public Guid StarterKitGuid { get; set; }
private cms.businesslogic.packager.repositories.Repository repo;
@@ -31,16 +41,20 @@ namespace umbraco.presentation.install.steps.Skinning
{
base.OnInit(e);
if (repo.HasConnection())
{
try
{
//clear progress bar cache
Helper.clearProgress();
//clear progress bar cache
Helper.clearProgress();
rep_starterKitDesigns.DataSource = repo.Webservice.Skins(StarterKitGuid.ToString());
rep_starterKitDesigns.DataBind();
var skinsCollection = repo.Webservice.Skins(StarterKitGuid.ToString());
var numberOfSkins = skinsCollection.Length;
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "skinCounter", "var numberOfSkins = " + numberOfSkins, true);
rep_starterKitDesigns.DataSource = skinsCollection;
rep_starterKitDesigns.DataBind();
}
catch (Exception ex)
{
@@ -72,60 +86,72 @@ namespace umbraco.presentation.install.steps.Skinning
Guid kitGuid = new Guid(((LinkButton)sender).CommandArgument);
Helper.setProgress(5, "Fetching starting kit from the repository", "");
cms.businesslogic.packager.Installer installer = new cms.businesslogic.packager.Installer();
if (repo.HasConnection())
if (!cms.businesslogic.skinning.Skinning.IsSkinInstalled(kitGuid))
{
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
Helper.setProgress(15, "Connected to repository", "");
Helper.setProgress(5, "Fetching starting kit from the repository", "");
string tempFile = p.Import(repo.fetch(kitGuid.ToString()));
p.LoadConfig(tempFile);
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
cms.businesslogic.packager.Installer installer = new cms.businesslogic.packager.Installer();
Helper.setProgress(30, "Installing starter kit files", "");
p.InstallFiles(pID, tempFile);
Helper.setProgress(50, "Installing starter kit umbraco objects", "");
p.InstallBusinessLogic(pID, tempFile);
Helper.setProgress(60, "Finishing starter kit instatllation", "");
p.InstallCleanUp(pID, tempFile);
library.RefreshContent();
Helper.setProgress(80, "Retrieving list of skins, compatible with this starter kit", "");
if (cms.businesslogic.skinning.Skinning.GetAllSkins().Count > 0)
if (repo.HasConnection())
{
cms.businesslogic.skinning.Skinning.ActivateAsCurrentSkin(cms.businesslogic.skinning.Skinning.GetAllSkins()[0]);
}
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
Helper.setProgress(15, "Connected to repository", "");
Helper.setProgress(100, "Starter kit installation has been completed", "");
string tempFile = p.Import(repo.fetch(kitGuid.ToString()));
p.LoadConfig(tempFile);
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
try
{
Helper.setProgress(30, "Installing skin files", "");
p.InstallFiles(pID, tempFile);
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus))
Helper.setProgress(50, "Installing skin system objects", "");
p.InstallBusinessLogic(pID, tempFile);
Helper.setProgress(60, "Finishing skin installation", "");
p.InstallCleanUp(pID, tempFile);
library.RefreshContent();
Helper.setProgress(80, "Activating skin", "");
if (cms.businesslogic.skinning.Skinning.GetAllSkins().Count > 0)
{
GlobalSettings.ConfigurationStatus = GlobalSettings.CurrentVersion;
Application["umbracoNeedConfiguration"] = false;
cms.businesslogic.skinning.Skinning.ActivateAsCurrentSkin(cms.businesslogic.skinning.Skinning.GetAllSkins()[0]);
}
Helper.setProgress(100, "Skin installation has been completed", "");
try
{
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus))
{
GlobalSettings.ConfigurationStatus = GlobalSettings.CurrentVersion;
Application["umbracoNeedConfiguration"] = false;
}
}
catch
{
}
try
{
Helper.RedirectToNextStep(Page);
}
catch
{
OnStarterKitDesignInstalled();
}
}
catch{
Helper.RedirectToNextStep(Page);
else
{
ShowConnectionError();
}
Helper.RedirectToNextStep(Page);
}
else
{
ShowConnectionError();
}
}
}
@@ -32,7 +32,7 @@
<li class="add-thanks">
<asp:LinkButton runat="server" class="single-tab declineStarterKits" ID="declineStarterKits" OnClientClick="return confirm('Are you sure you do not want to install a starter kit?');" OnClick="NextStep">
<img class="zoom-img" src="images/btn-no-thanks.png" alt="image description" width="150" height="204">
<img class="zoom-img" src="../umbraco_client/installer/images/btn-no-thanks.png" alt="image description" width="150" height="204">
</asp:LinkButton>
<em>&nbsp;</em>
@@ -10,8 +10,19 @@ using System.IO;
namespace umbraco.presentation.install.steps.Skinning
{
public delegate void StarterKitInstalledEventHandler();
public partial class loadStarterKits : System.Web.UI.UserControl
{
public event StarterKitInstalledEventHandler StarterKitInstalled;
protected virtual void OnStarterKitInstalled()
{
StarterKitInstalled();
}
private cms.businesslogic.packager.repositories.Repository repo;
private string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66";
@@ -82,7 +93,7 @@ namespace umbraco.presentation.install.steps.Skinning
if (repo.HasConnection())
{
Helper.setProgress(20, "Downloading skin files...", "");
Helper.setProgress(20, "Downloading starter kit files...", "");
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
@@ -90,10 +101,10 @@ namespace umbraco.presentation.install.steps.Skinning
p.LoadConfig(tempFile);
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
Helper.setProgress(40, "Installing skin files", "");
Helper.setProgress(40, "Installing starter kit files", "");
p.InstallFiles(pID, tempFile);
Helper.setProgress(60, "Installing skin system objects", "");
Helper.setProgress(60, "Installing starter kit system objects", "");
p.InstallBusinessLogic(pID, tempFile);
Helper.setProgress(80, "Cleaning up after installation", "");
@@ -101,9 +112,16 @@ namespace umbraco.presentation.install.steps.Skinning
library.RefreshContent();
Helper.setProgress(100, "Skin has been installed", "");
((skinning)Parent.Parent.Parent.Parent.Parent).showStarterKitDesigns(kitGuid);
Helper.setProgress(100, "Starter kit has been installed", "");
try
{
((skinning)Parent.Parent.Parent.Parent.Parent).showStarterKitDesigns(kitGuid);
}
catch
{
OnStarterKitInstalled();
}
}
else
{
@@ -1,50 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="boost.ascx.cs" Inherits="umbraco.presentation.install.steps.boost" %>
<h1>Step 5/5: Install a foundation?</h1>
<asp:Panel ID="pl_boost" Runat="server" Visible="True">
<asp:RadioButton GroupName="mode" ID="rb_install" Checked="true" runat="server" style="float: left; margin: 10px;" />
<div class="rbChoice" style="float: left; padding: 0px 10px 10px 10px; width: 80%;">
<h3 style="margin-top: 10px;">Add 'Runway' - a great foundation for building websites<br />
<span style="font-size: 80%; color: #999;">Recommended</span></h3>
<div style="width: 150px; float: right; margin: 0px 0px 15px 15px; text-align: center;">
<a target="_blank" style="color: #666; text-decoration: none;" href="http://umbraco.org/documentation/videos/getting-started/what-is-runway-and-modules">
<img src="images/packagesVid1.png" style="border: none;" />
<br /><span>Watch: What is Runway</span>
</a>
</div>
<p>Runway makes it easy to build sharp websites using the latest modules from the umbraco community. You'll still have full control of design, markup and document models but with Runway you'll be ready for take off right from the beginning. </p>
<p>When you click next, you'll get a basic website and then you can choose from the latest and greatest functionality
that's offered by our friendly community with the click of your mouse - from Galleries to FAQs, from RSS fetchers to News, from the necessities to the cream on the top.</p>
</div>
<br style="clear: both;"/>
<asp:RadioButton GroupName="mode" ID="rb_noInstall" runat="server" style="float: left; margin: 10px;" />
<div class="rbChoice" style="float: left; padding: 0px 10px 10px 10px; width: 80%;">
<h3 style="margin-top: 10px;">No foundation, please<br />
<span style="font-size: 80%; color: #999;">Only recommended for experienced users</span></h3>
If you're an experienced umbraco user and want to setup everything manually this is the right choice. Be aware that
you'll be unable to create content until you've setup your Document Types and Templates (<a href="http://umbraco.org/redir/runwayOnYourOwn" target="_blank">Learn how</a>).<br />
</div>
<br style="clear: both;"/>
</asp:Panel>
<asp:Panel ID="pl_nitros" Runat="server" Visible="false">
<h2>Runway is installed</h2>
<p>
Below is our list of recommended modules to get you started. If you fancy some more, toggle the <a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">full list of community modules by clicking here</a>. <br /> <br />
To add modules, simply mark the ones you would like to install and click "Install selected modules" button.
</p>
<div id="nitros">
<asp:PlaceHolder ID="ph_nitros" runat="server" />
</div>
</asp:Panel>
@@ -1,110 +0,0 @@
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using umbraco.IO;
namespace umbraco.presentation.install.steps {
public partial class boost : System.Web.UI.UserControl {
protected override void OnInit(EventArgs e) {
base.OnInit(e);
//if this is an upgrade, skip this step...
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
Response.Redirect("default.aspx?installStep=theend");
if (cms.businesslogic.packager.InstalledPackage.isPackageInstalled("ae41aad0-1c30-11dd-bd0b-0800200c9a66")) {
pl_nitros.Visible = true;
pl_boost.Visible = false;
ph_nitros.Controls.Add(new UserControl().LoadControl( SystemDirectories.Umbraco + "/developer/packages/LoadNitros.ascx"));
Button btNext = (Button)Page.FindControl("next");
btNext.Text = "Continue without installing";
btNext.OnClientClick = "showProgress(this,'loadingBar'); return true;";
btNext.Click += btNext_Done;
} else {
pl_nitros.Visible = false;
pl_boost.Visible = true;
Button btNext = (Button)Page.FindControl("next");
btNext.OnClientClick = "showProgress(this,'loadingBar'); return true;";
btNext.Click += new EventHandler(btNext_Click);
}
}
protected override bool OnBubbleEvent(object source, EventArgs args) {
pl_nitros.Controls.Clear();
HtmlGenericControl modulesInstalledHeader = new HtmlGenericControl("h2");
modulesInstalledHeader.InnerText = "Runway and modules has been installed";
uicontrols.Feedback fb = new global::umbraco.uicontrols.Feedback();
fb.type = global::umbraco.uicontrols.Feedback.feedbacktype.success;
fb.Text = "<strong>Modules installed successfully.</strong> Each module can be uninstalled under the 'installed packages' section in the umbraco backend";
Button btNext = (Button)Page.FindControl("next");
btNext.Text = "Next »";
pl_nitros.Controls.Add(modulesInstalledHeader);
pl_nitros.Controls.Add(fb);
return base.OnBubbleEvent(source, args);
}
protected void Page_Load(object sender, EventArgs e) {}
void btNext_Done(object sender, EventArgs e) {
Response.Redirect("default.aspx?installStep=theend");
}
void btNext_Click(object sender, EventArgs e) {
if (rb_install.Checked) {
string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66";
string packageGuid = "ae41aad0-1c30-11dd-bd0b-0800200c9a66";
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
cms.businesslogic.packager.repositories.Repository repo = cms.businesslogic.packager.repositories.Repository.getByGuid(repoGuid);
if (repo.HasConnection()) {
string tempFile = p.Import(repo.fetch(packageGuid));
p.LoadConfig(tempFile);
int pID = p.CreateManifest(tempFile, packageGuid, repoGuid);
p.InstallBusinessLogic(pID, tempFile);
p.InstallCleanUp(pID, tempFile);
//pushing the content to the cache..
library.RefreshContent();
pl_nitros.Visible = true;
pl_boost.Visible = false;
ph_nitros.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/developer/packages/LoadNitros.ascx"));
Button btNext = (Button)Page.FindControl("next");
btNext.Text = "Continue without installing";
} else {
uicontrols.Feedback fb = new global::umbraco.uicontrols.Feedback();
fb.type = global::umbraco.uicontrols.Feedback.feedbacktype.error;
fb.Text = "<strong>No connection to repository.</strong> Runway could not be installed as there was no connection to: '" + repo.RepositoryUrl + "'";
pl_boost.Controls.Clear();
pl_boost.Controls.Add(fb);
}
} else {
Response.Redirect("default.aspx?installStep=theend");
}
}
}
}
@@ -1,61 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace umbraco.presentation.install.steps {
public partial class boost {
/// <summary>
/// pl_boost control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel pl_boost;
/// <summary>
/// rb_install control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton rb_install;
/// <summary>
/// rb_noInstall control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton rb_noInstall;
/// <summary>
/// pl_nitros control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Panel pl_nitros;
/// <summary>
/// ph_nitros control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder ph_nitros;
}
}
@@ -4,15 +4,13 @@
<!-- database box -->
<div class="tab main-tabinfo">
<div class="container">
<h1>
Database configuration</h1>
<h1>Database configuration</h1>
<p>
To complete this step, you must know some information regarding your database server
(”connection string”). Please contact your ISP if necessary. If youre installingon
a local machine or server you might need information from your system administrator.</p>
<p>
<strong>If you do not have any database available,</strong> you can choose the embedded
database which does not require any information from you ISP or system administrators.</p>
<strong>To complete this step you will either need a blank database or if you do not have a blank database available, you can choose the SQL CE 4 embedded
database (This is the recommended approach for first time users or if you are unsure).</strong></p>
<p>
If you are not using the SQL CE 4 embedded database you will need the connection details for your database, such as the
&quot;connection string&quot;. You may need to contact your system administrator or web host for this information.</p>
</div>
<!-- database -->
<div class="database-hold">
@@ -21,7 +19,7 @@
<div class="step">
<div class="container">
<p>
<strong>1. Do you have a blank database already installed?</strong></p>
<strong>1. Do you have a blank database already installed OR do you want to use a SQL CE 4 embedded database?</strong></p>
<ul class="mini-tabset">
<li class="btn-yes"><a href="#database-step1" class="database-tab"><span>yes</span></a></li>
<li class="btn-no"><a href="#database-step2" class="database-tab"><span>no</span></a></li>
@@ -34,7 +32,7 @@
<div class="container">
<p>
<strong>2. Now choose your database type below.</strong></p>
<div class="row select">
<div class="select">
<asp:DropDownList runat="server" ID="DatabaseType" CssClass="sel">
<asp:ListItem Value="" Text="Please choose" Selected="True" />
<asp:ListItem Value="SqlServer" Text="Microsoft SQL Server" />
@@ -45,30 +43,24 @@
</div>
</div>
</div>
</div>
<!-- step1-2 -->
<div id="database-step1-2">
<div class="step">
<div class="container">
<p>
<strong>3. Instructions:</strong> Please fill out the below fields to connect to
your database.</p>
<p class="instructionText">
<strong>3. Connection details:</strong> Please fill out the connection information for your database.</p>
<div class="instruction-hold">
<div class="row embeddedError" runat="server" id="embeddedFilesMissing" style="display: none;">
<p>
<strong>Missing files:</strong> SQL CE 4 requires that you manually add the SQL
CE 4 runtime to your Umbraco installation.<br />
<a href="http://our.umbraco.org/wiki/install-and-setup/using-sql-ce-4-with-juno"
target="_blank">More instructions</a>.
You can either follow the instructions above to add SQL CE 4 or choose another database
type.
You can either use the following <a href="http://our.umbraco.org/wiki/install-and-setup/using-sql-ce-4-with-juno"
target="_blank">instructions</a> on how to add SQL CE 4 or select another database type from the dropdown above.
</p>
</div>
<div class="row embedded" style="display: none;">
<p>
<strong>Nothing to configure:</strong>SQL CE 4 does not require any configuration
so simply click the "install" button below to continue.
<strong>Nothing to configure:</strong>SQL CE 4 does not require any configuration,
simply click the "install" button to continue.
</p>
</div>
@@ -79,7 +71,7 @@
<asp:Literal ID="lt_dbError" runat="server" /></strong></p>
</div>
<script type="text/javascript">
jQuery(document).ready(function () { showDatabaseSettings(); });
jQuery(document).ready(function () { showDatabaseSettings(); });
</script>
</asp:PlaceHolder>
<div class="row sql" runat="server" id="DatabaseServerItem">
@@ -130,7 +122,7 @@
Alternatively, you can install Microsoft SQL Server, which will require a bit more work to get up and running.<br />
We have provided a step-by-step guide in the video instructions below.
</p>
<span class="btn-link"><a href="http://umbraco.org/redir/InstallerNewDatabase">Open video instructions</a></span>
<span class="btn-link"><a href="http://umbraco.org/getting-started">Open video instructions</a></span>
</div>
</div>
</fieldset>
@@ -147,6 +139,7 @@
});
</script>
</asp:PlaceHolder>
<asp:PlaceHolder ID="installing" runat="server" Visible="false">
<!-- installing umbraco -->
<div class="tab install-tab" id="datebase-tab">
@@ -154,13 +147,12 @@
<h1>
Installing Umbraco</h1>
<p>
The Umbraco database tables are being installed. This process will set-up a default
blank Umbraco database into your chosen DB Server.</p>
The Umbraco database is being configured. This process populates your chosen database with a blank Umbraco instance.</p>
<div class="loader">
<div class="hold">
<div class="progress-bar">
</div>
<span class="progress-bar-value">56%</span>
<span class="progress-bar-value">0%</span>
</div>
<strong></strong>
</div>
@@ -169,48 +161,49 @@
<footer class="btn-box" style="display: none;">
<div class="t">&nbsp;</div>
<asp:LinkButton class="btn-step btn btn-continue" runat="server" OnClick="gotoNextStep"><span>Continue</span></asp:LinkButton>
<asp:LinkButton class="btn-step btn btn-accept" style="display: none;" runat="server" OnClick="gotoSettings"><span>Back</span></asp:LinkButton>
<asp:LinkButton class="btn-step btn btn-back" style="display: none;" runat="server" OnClick="gotoSettings"><span>Back</span></asp:LinkButton>
</footer>
</div>
<script type="text/javascript">
var intervalId = 0;
var intervalId = 0;
jQuery(document).ready(function () {
intervalId = setInterval("progressBarCallback()", 1000);
jQuery(".btn-box").hide();
jQuery.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: '{}',
dataType: 'json',
url: 'utills/p.aspx/installOrUpgrade'
});
});
jQuery(document).ready(function () {
intervalId = setInterval("progressBarCallback()", 1000);
jQuery(".btn-box").hide();
jQuery.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: '{}',
dataType: 'json',
url: 'utills/p.aspx/installOrUpgrade'
});
});
function progressBarCallback() {
jQuery.getJSON('utills/p.aspx?feed=progress', function (data) {
function progressBarCallback() {
jQuery.getJSON('utills/p.aspx?feed=progress', function (data) {
updateProgressBar(data.percentage);
updateStatusMessage(data.message)
updateProgressBar(data.percentage);
updateStatusMessage(data.message)
if (data.error != "") {
clearInterval(intervalId);
updateStatusMessage(data.error);
if (data.error != "") {
clearInterval(intervalId);
updateStatusMessage(data.error);
jQuery(".loader .hold").hide();
jQuery(".loader .hold").hide();
jQuery(".btn-continue").hide();
jQuery(".btn-accept").show();
jQuery(".btn-box").show();
}
jQuery(".btn-continue").hide();
jQuery(".btn-back").show();
jQuery(".btn-box").show();
}
if (data.percentage == 100) {
clearInterval(intervalId);
jQuery(".btn-box").show();
}
});
}
if (data.percentage == 100) {
clearInterval(intervalId);
jQuery(".btn-box").show();
jQuery('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
}
});
}
</script>
</asp:PlaceHolder>
@@ -231,7 +224,7 @@
Database upgraded</h1>
<div class="success">
<p>
Your database has been upgraded to the final version
Your database has been upgraded to version:
<%=umbraco.GlobalSettings.CurrentVersion%>.<br />
Press <b>Continue</b> to proceed.
</p>
@@ -61,7 +61,10 @@ namespace umbraco.presentation.install.steps
{
get {
// check if sql ce is present
if (!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "System.Data.SqlServerCe.dll"))))
if (
!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "System.Data.SqlServerCe.dll"))) ||
!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "SQLCE4Umbraco.dll")))
)
return false;
else
return true;
@@ -126,12 +129,11 @@ namespace umbraco.presentation.install.steps
DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "password");
if (string.IsNullOrEmpty(DatabasePassword.Text)) DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "pwd");
toggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase);
toggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase);
toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase);
toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase);
toggleVisible(DatabaseConnectionString, ManualConnectionString);
// Make sure ASP.Net displays the password text
@@ -8,8 +8,9 @@
<h1>Create User</h1>
<div class="create-hold">
<p>You can now setup a new user to log into Umbraco. Please make a note of this password.</p>
<p>You will be able to change this once you have set the system up and logged in to the admin interface.</p>
<p>You can now setup a new admin user to log into Umbraco, we recommend using a stong password for this (a password which is more than 4 characters and contains a mix of letters, numbers and symbols).
Please make a note of the chosen password.</p>
<p>The password can be changed once you have completed the installation and logged into the admin interface.</p>
</div>
</div>
@@ -25,41 +26,39 @@
<div class="instruction-hold">
<div class="row">
<asp:Label AssociatedControlID="tb_name" runat="server">Name:</asp:label>
<asp:label AssociatedControlID="tb_name" runat="server">Name:</asp:label>
<span><asp:TextBox ID="tb_name" CssClass="text" type="text" Text="admin" runat="server" /></span>
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_name" runat="server" ErrorMessage="Name is a mandatory field" />
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_name" runat="server" ErrorMessage="Name is a mandatory field" />
</div>
<div class="row">
<asp:Label AssociatedControlID="tb_email" runat="server">Email:</asp:label>
<asp:label AssociatedControlID="tb_email" runat="server">Email:</asp:label>
<span><asp:TextBox ID="tb_email" CssClass="text" type="text" Text="admin@domain.com" runat="server" /></span>
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_email" runat="server" ErrorMessage="Email is a mandatory field" />
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_email" runat="server" ErrorMessage="Email is a mandatory field" />
</div>
<div class="row">
<asp:Label AssociatedControlID="tb_login" runat="server">Username:</asp:label>
<asp:label AssociatedControlID="tb_login" runat="server">Username:</asp:label>
<span><asp:TextBox ID="tb_login" CssClass="text" type="text" Text="admin" runat="server" /></span>
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_login" runat="server" ErrorMessage="Username is a mandatory field" />
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_login" runat="server" ErrorMessage="Username is a mandatory field" />
</div>
<div class="row" style="height: 35px; overflow: hidden;">
<asp:Label AssociatedControlID="tb_password" runat="server">Password:</asp:label>
<asp:label AssociatedControlID="tb_password" runat="server">Password:</asp:label>
<span><asp:TextBox ID="tb_password" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Username is a mandatory field" />
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Password is a mandatory field" />
</div>
<div class="row">
<asp:Label AssociatedControlID="tb_password_confirm" runat="server">Confirm Password:</asp:label>
<span><asp:TextBox ID="tb_password_confirm" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
<asp:CompareValidator CssClass="invalidaing" ControlToCompare="tb_password" ControlToValidate="tb_password_confirm" ErrorMessage="The passwords must be identical" runat="server" />
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Username is a mandatory field" />
<span><asp:TextBox ID="tb_password_confirm" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password_confirm" runat="server" ErrorMessage="Confirm Password is a mandatory field" />
<asp:CompareValidator Display="Dynamic" CssClass="invalidaing" ControlToCompare="tb_password" ControlToValidate="tb_password_confirm" ErrorMessage="The passwords must be identical" runat="server" />
</div>
<div class="check-hold">
<asp:CheckBox ID="cb_newsletter" runat="server" Checked="true" />
<asp:Label AssociatedControlID="cb_newsletter" runat="server">Sign up for our monthly newsletter</asp:label>
<asp:label AssociatedControlID="cb_newsletter" runat="server">Sign up for our monthly newsletter</asp:label>
</div>
</div>
</div>
@@ -54,8 +54,6 @@ namespace umbraco.presentation.install.steps
MembershipUser user = Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].GetUser(0, true);
user.ChangePassword(u.GetPassword(), tb_password.Text.Trim());
u.LoginName = tb_login.Text;
// Is it using the default membership provider
if (Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is UsersMembershipProvider)
{
@@ -73,6 +71,9 @@ namespace umbraco.presentation.install.steps
if (!(Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is ActiveDirectoryMembershipProvider)) Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].UpdateUser(user);
}
// we need to update the login name here as it's set to the old name when saving the user via the membership provider!
u.LoginName = tb_login.Text;
u.Save();
if (cb_newsletter.Checked)
@@ -5,14 +5,14 @@
<h1>License</h1>
<div class="accept-hold">
<h2>Accept the license for Umbraco CMS</h2>
<p>By clicking the accept button (or modify the Umbraco Configuration Status in web.config), you accept the license for this software as specified in the text below.</p>
<p>By clicking the "accept and continue" button (or by modifying the Umbraco Configuration Status in the web.config), you accept the license for this software as specified in the text below.</p>
</div>
<h3>The License (MIT):</h3>
<div class="box-software">
<p>Copyright (c) 2002 - <%=DateTime.Now.Year %> Umbraco I/S</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
<p>The above copyright and this permisson notice shall be included in all copies or substantial postions of the software.</p>
<p><span>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRENTY OF ANY KIND, EPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USER OR OTHER DEALINGS IN THE SOFTWARE.</span></p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
<p>The above copyright and this permission notice shall be included in all copies or substantial portions of the software.</p>
<p><span>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USER OR OTHER DEALINGS IN THE SOFTWARE.</span></p>
</div>
<p>Thats all. That didnt hurt did it?</p>
</div>
@@ -64,6 +64,7 @@
if (data.percentage == 100) {
clearInterval(intervalId);
jQuery(".btn-box").show();
jQuery('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
}
});
}
@@ -77,8 +78,8 @@
<div class="tab main-tabinfo">
<div class="container">
<h1>Starter kits</h1>
<p>To help you get started we have created some basic starter kits each of which has been tailored to meet different requiremejnts.<br />
Hover of the thumbnail to find out what each kit contains.</p>
<p>To help you get started here are some basic starter kits. They have been tailored to suit common site configurations and install useful functionality such as blogs or image galleries.<br />
Mouse over the icons to learn more about what the starter kits will install.</p>
</div>
<!-- menu -->
<asp:PlaceHolder ID="ph_starterKits" runat="server" />
@@ -92,7 +93,7 @@
<div class="container">
<h1>Install a Skin</h1>
<div class="accept-hold">
<p>You can now choose to skin your starter kit with one of our great designs.</p>
<p>You can now further enhance your site by choosing one of these great skins. This will apply a default look and feel to all the pages in your site, considerably reducing development time.</p>
</div>
</div>
<!-- skins -->
+32 -12
View File
@@ -3,14 +3,14 @@
<script type="text/javascript">
jQuery(document).ready(function () {
$.post("utills/p.aspx?feed=twitter",
$.post("utills/p.aspx?feed=sitebuildervids",
function (data) {
jQuery("#ajax-twitter").html(data);
jQuery("#ajax-sitebuildervids").html(data);
});
$.post("utills/p.aspx?feed=blogs",
$.post("utills/p.aspx?feed=developervids",
function (data) {
jQuery("#ajax-blogs").html(data);
jQuery("#ajax-developervids").html(data);
});
});
@@ -23,12 +23,12 @@ jQuery(document).ready(function () {
<h1>
Youre done...now what?</h1>
<p>
Excellent, you are now ready to start using Umbraco, the worlds most popular open
Excellent, you are now ready to start using Umbraco, one of the worlds most popular open
source .NET CMS.
<br />
Now why not get configuring your new installed skin?</p>
If you installed a starter kit you can start by configuring your new site, just click &quot;Preview your new website&quot; and follow the instructions. Or to start adding content right away click &quot;Set up your new website&quot; </p>
<ul class="btn-web">
<li class="btn-preview-web"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank"><span>Set up your new website</span></a></li>
<li class="btn-preview-web" id="customizeSite" runat="server"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank"><span>Set up your new website</span></a></li>
<li class="btn-set"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/umbraco.aspx"><span>Launch umbraco</span></a></li>
</ul>
</div>
@@ -36,10 +36,30 @@ jQuery(document).ready(function () {
<div class="t">
&nbsp;</div>
<div class="hold">
<aside class="col1">
<h2>Useful links</h2>
<p>Weve put together some useful links to help you get started with Umbraco.</p>
<nav class="links">
<aside class="col1">
<h2>Useful links</h2>
<p>Weve put together some useful links to help you get started with Umbraco.</p>
<nav class="links">
<ul>
<li><a href="http://umbraco.codeplex.com/documentation" target="_blank">Getting Started Guide</a></li>
<li><a href="http://our.umbraco.org?ref=ourFromInstaller">our.umbraco.org</a></li>
</ul>
<ul>
<li><a href="http://our.umbraco.org/wiki?ref=LatestDocsFromInstaller">New documentation</a></li>
<li><a href="http://our.umbraco.org/projects?ref=LatestProjectsFromInstaller">New Projects</a></li>
<li><a href="http://our.umbraco.org/forum?ref=LatesTalkFromInstaller">Forum Talk</a></li>
</ul>
</nav>
</aside>
<aside class="col2">
<h2>Sitebuilder introduction</h2>
<div id="ajax-sitebuildervids"><small>Loading...</small></div>
</aside>
<aside class="col3">
<h2>Developer introduction</h2>
<div id="ajax-developervids"><small>Loading...</small></div>
</aside>
</div>
</div>
</div>
@@ -27,10 +27,8 @@ namespace umbraco.presentation.install.steps
//errorLiteral.Text = ex.ToString();
}
if (cms.businesslogic.skinning.Skinning.IsStarterKitInstalled())
{
///viewSite.Visible = true;
}
if (!cms.businesslogic.skinning.Skinning.IsStarterKitInstalled())
customizeSite.Visible = false;
}
@@ -11,5 +11,14 @@ namespace umbraco.presentation.install.steps {
public partial class theend {
/// <summary>
/// customizeSite control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl customizeSite;
}
}
@@ -1,16 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="upgrade.ascx.cs" Inherits="umbraco.presentation.install.steps.upgrade" %>
<div style="text-align: center; padding: 55px;">
<img src="images/logo.png" align="middle" title="Umbraco logo" alt="Umbraco logo" />
<h1>Upgrading Umbraco</h1>
<p>
Welcome to the umbraco upgrade wizard. This will make sure that you upgrade safely from your old version to <strong>Umbraco version <%=umbraco.GlobalSettings.CurrentVersion %></strong>
</p>
<p>
As this is an upgrade, <strong>the wizard might skip steps</strong> that are only needed for new umbraco installations. It might also ask you questions you've already answered once. But do not worry,
everything is in order. Click <strong>next</strong> below to begin your upgrade.
</p>
</div>
@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace umbraco.presentation.install.steps {
public partial class upgrade : System.Web.UI.UserControl {
protected void Page_Load(object sender, EventArgs e) {
}
}
}
@@ -1,16 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace umbraco.presentation.install.steps {
public partial class upgrade {
}
}
+35 -20
View File
@@ -3,27 +3,42 @@
<!-- welcome box -->
<div class="tab main-tabinfo">
<div class="container">
<h1>
Welcome to the Umbraco installation</h1>
<h2>
Thanks a lot for downloading the Umbraco CMS installer.
</h2>
<p>
You are just a few minutes away from getting up and running. The installer will
take you through the following process:-</p>
<ul class="text-list">
<li><strong>1.</strong><span>Accept the easy to read License</span></li>
<li><strong>2.</strong><span>Set up a database. There are a number of options available
such as MS SQL Server, MS SQL Express Edition and MYSQL or you may wish to use the
Microsoft SQL CE 4 database. You may need to consult your ISP or System Admin.</span></li>
<li><strong>3.</strong><span>Set an Umbraco Admin password</span></li>
<li><strong>4.</strong><span>You can then choose to install one of our great starter
kits and a skin</span></li>
<li><strong>5.</strong><span>But whatever you do don't forget to become part of the
Umbraco community, one of the friendliest developer communites you will find. Its
what makes Umbraco such a great product and great much fun to use.</span></li>
</ul>
<asp:PlaceHolder ID="ph_install" runat="server">
<h1>
Welcome to the Umbraco installation</h1>
<h2>
Thanks for downloading the Umbraco CMS installer.
</h2>
<p>
You are just a few minutes away from getting up and running. The installer will
take you through the following process:-</p>
<ul class="text-list">
<li><strong>1.</strong><span>Accept the easy to read License.</span></li>
<li><strong>2.</strong><span>Set up a database. There are a number of options available
such as MS SQL Server, MS SQL Express Edition and MYSQL or you may wish to use the
Microsoft SQL CE 4 database. You may need to consult your web host or system administrator.</span></li>
<li><strong>3.</strong><span>Set an Umbraco Admin password.</span></li>
<li><strong>4.</strong><span>You can then choose to install one of our great starter
kits and a skin.</span></li>
<li><strong>5.</strong><span>But whatever you do don't forget to become part of the Umbraco community, one of the friendliest developer communities you will find. Its what makes Umbraco such a great product and so much fun to use.</span></li>
</ul>
<span class="enjoy">Enjoy!</span>
</asp:PlaceHolder>
<asp:PlaceHolder ID="ph_upgrade" runat="server" Visible="false">
<h1>Upgrading Umbraco</h1>
<p>
Welcome to the umbraco upgrade wizard. This will make sure that you upgrade safely from your old version to <strong>Umbraco version <%=umbraco.GlobalSettings.CurrentVersion %></strong>
</p>
<p>
As this is an upgrade, <strong>the wizard might skip steps</strong> that are only needed for new umbraco installations. It might also ask you questions you've already answered once. But do not worry,
everything is in order. Click <strong>Lets get started</strong> below to begin your upgrade.
</p>
<span class="enjoy">Enjoy!</span>
</asp:PlaceHolder>
</div>
<!-- btn box -->
<footer class="btn-box">
@@ -18,15 +18,23 @@ namespace umbraco.presentation.install
protected void Page_Load(object sender, System.EventArgs e)
{
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
{
ph_install.Visible = false;
ph_upgrade.Visible = true;
}
// Check for config!
if (GlobalSettings.Configured)
{
Application.Lock();
Application["umbracoNeedConfiguration"] = null;
Application.UnLock();
Response.Redirect(Request.QueryString["url"] ?? "/", true);
}
if (GlobalSettings.Configured)
{
Application.Lock();
Application["umbracoNeedConfiguration"] = null;
Application.UnLock();
Response.Redirect(Request.QueryString["url"] ?? "/", true);
}
}
protected void gotoNextStep(object sender, EventArgs e) {
@@ -12,6 +12,24 @@ namespace umbraco.presentation.install {
public partial class welcome {
/// <summary>
/// ph_install control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder ph_install;
/// <summary>
/// ph_upgrade control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder ph_upgrade;
/// <summary>
/// btnNext control.
/// </summary>
+42 -15
View File
@@ -14,6 +14,12 @@ namespace umbraco.presentation.install.utills
protected void Page_Load(object sender, EventArgs e)
{
// Stop Caching in IE
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
// Stop Caching in Firefox
Response.Cache.SetNoStore();
string feed = Request.QueryString["feed"];
string url = "http://our.umbraco.org/html/twitter";
@@ -27,6 +33,12 @@ namespace umbraco.presentation.install.utills
if (feed == "blogs")
url = "http://our.umbraco.org/html/blogs";
if (feed == "sitebuildervids")
url = "http://umbraco.org/feeds/videos/site-builder-foundation-html";
if (feed == "developervids")
url = "http://umbraco.org/feeds/videos/developer-foundation-html";
Response.Write(library.GetXmlDocumentByUrl(url).Current.OuterXml);
}
}
@@ -67,20 +79,31 @@ namespace umbraco.presentation.install.utills
if (m_Installer.CanConnect)
{
if (m_Installer.IsLatestVersion)
Helper.setProgress( 100, "Database is up-to-date", "");
else
{
if (m_Installer.IsEmpty)
{
Helper.setProgress( 35, "Installing tables...", "");
//do install
m_Installer.Install();
if (m_Installer.IsLatestVersion) {
Helper.setProgress( 100, "Installation completed!", "");
Helper.setProgress(90, "Refreshing content cache", "");
m_Installer = null;
library.RefreshContent();
Helper.setProgress(100, "Database is up-to-date", "");
} else {
if (m_Installer.IsEmpty) {
Helper.setProgress(35, "Installing tables...", "");
//do install
m_Installer.Install();
Helper.setProgress(100, "Installation completed!", "");
m_Installer = null;
library.RefreshContent();
return "installed";
} else if (m_Installer.CurrentVersion == DatabaseVersion.None || m_Installer.CanUpgrade) {
Helper.setProgress(35, "Updating database tables...", "");
m_Installer.Install();
library.RefreshContent();
return "installed";
}
else if (m_Installer.CurrentVersion == DatabaseVersion.None || m_Installer.CanUpgrade)
@@ -88,13 +111,17 @@ namespace umbraco.presentation.install.utills
Helper.setProgress( 35, "Updating database tables...", "");
m_Installer.Install();
Helper.setProgress( 100, "Upgrade completed!", "");
Helper.setProgress(100, "Upgrade completed!", "");
m_Installer = null;
m_Installer = null;
return "upgraded";
}
library.RefreshContent();
return "upgraded";
}
}
}
return "no connection;";

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