Compare commits

...

451 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
hartvig cfa1143eed Bugfixes to tinymce and tagging controls
[TFS Changeset #81903]
2010-12-13 08:10:23 +00:00
PerPloug f65bd2b9e3 Latest installer js tweaks
[TFS Changeset #81760]
2010-12-10 13:12:22 +00:00
PerPloug 8fa3ff08b3 Latest edits to the installer files, minor edits on the database screen, added validation the user screen
[TFS Changeset #81759]
2010-12-10 13:03:19 +00:00
ashallcross a2b6626f29 Updates to imagery, altered background layouts and fixed skin page layout problem
[TFS Changeset #81709]
2010-12-09 17:01:23 +00:00
psterling 5ba0bb281c Updates Dashboard.config with default dashboards
[TFS Changeset #81698]
2010-12-09 14:29:51 +00:00
hartvig 38c5a9dcf6 Inline scripting support in macros
[TFS Changeset #81653]
2010-12-08 15:28:54 +00:00
starfighter83 badf9784c6 adds example to xslt extensions file
[TFS Changeset #81650]
2010-12-08 14:52:26 +00:00
starfighter83 119c1f8eb3 Updates example in restExtensions.config (assembly attribute set to assembly instead of /bin/assembly)
[TFS Changeset #81649]
2010-12-08 14:49:56 +00:00
starfighter83 326abb482e Fixes issue with rss feed xslt template (wasn't updated 100% to new schema)
[TFS Changeset #81648]
2010-12-08 14:48:50 +00:00
PerPloug 23bbc1f785 license.ascx for installer
[TFS Changeset #81647]
2010-12-08 14:23:37 +00:00
starfighter83 f700525220 Fixes issue with properties not being on correct tab when installing package that has doc type
[TFS Changeset #81643]
2010-12-08 12:49:10 +00:00
PerPloug a9f22c92c8 Minor js edits for installer, loads correct kit / skin name on install
[TFS Changeset #81642]
2010-12-08 11:45:05 +00:00
munkimagik 41497919d1 Minor style font size tweak to installer
[TFS Changeset #81641]
2010-12-08 11:27:21 +00:00
starfighter83 eb131c3f3b wip skinning
[TFS Changeset #81639]
2010-12-08 11:09:17 +00:00
starfighter83 c5667818e2 WIP skinning, make it possible to specify a repo guid on enable skins element (so skins for starter kit can come from different repo)
[TFS Changeset #81638]
2010-12-08 11:04:32 +00:00
PerPloug b2902c18e9 New nant file for razor, and macroEngine Dependencies
[TFS Changeset #81637]
2010-12-08 10:37:04 +00:00
starfighter83 91b4e00ddd wip skinning
[TFS Changeset #81636]
2010-12-08 10:16:46 +00:00
hartvig a345d8c2f1 MacroEngines WIP
[TFS Changeset #81635]
2010-12-08 10:03:52 +00:00
hartvig 08a024273b MacroEngines WIP
[TFS Changeset #81634]
2010-12-08 10:03:21 +00:00
hartvig c8b81701b9 WIP
[TFS Changeset #81633]
2010-12-08 10:02:40 +00:00
starfighter83 11c2ff2ec9 WIP skinning, make it possible to install a local skin from the customisation dialog
[TFS Changeset #81632]
2010-12-08 10:02:00 +00:00
starfighter83 0a02e0c90c skinning wip, small updates to stylesheet to avoid noise from skins
[TFS Changeset #81631]
2010-12-08 09:23:58 +00:00
hartvig 9e89e158ae [TFS Changeset #81625] 2010-12-08 07:49:08 +00:00
hartvig dabafcc972 MacroEngine massage
[TFS Changeset #81621]
2010-12-08 07:09:45 +00:00
PerPloug 2a252dafa4 Installer tweaks on css and js for progress bars on the startkit step
[TFS Changeset #81611]
2010-12-07 21:24:53 +00:00
PerPloug a7b0695ced Added progressbars to skins and starterkits, altho that part has problems, as the counter resets when the app-pool resets due to starter-kit dlls
[TFS Changeset #81610]
2010-12-07 21:08:15 +00:00
munkimagik e0c3ed98a5 CSS tweaks to fix scroll bars on large monitors. Also plugged in progress bar and progress messages on database install step in the installer.
[TFS Changeset #81603]
2010-12-07 16:17:20 +00:00
PerPloug d1fd368fdd Small css tweaks to the skin selection
[TFS Changeset #81600]
2010-12-07 15:02:31 +00:00
PerPloug 41c3db56a0 progress feed for database installer
[TFS Changeset #81595]
2010-12-07 13:41:58 +00:00
PerPloug 7e7ca233c0 Tweaks to user-creation and database steps in installer
[TFS Changeset #81593]
2010-12-07 13:26:12 +00:00
starfighter83 dcfa5662e6 WIP skinning, small update to modifytemplate tasktype
[TFS Changeset #81591]
2010-12-07 13:10:15 +00:00
munkimagik 09a371e525 Removed links from steps in installer header
[TFS Changeset #81590]
2010-12-07 13:00:06 +00:00
munkimagik 74b134842c Updated Business graphic to correct spelling, also updated loadStarterKits.ascx HTML to fix chrome bug.
[TFS Changeset #81589]
2010-12-07 12:23:17 +00:00
PerPloug b77f6496b1 New installer files
[TFS Changeset #81558]
2010-12-06 22:21:17 +00:00
starfighter83 94c1cf0681 Implements #27211: Feature Request: Macro parameter sorting
[TFS Changeset #81540]
2010-12-06 14:22:38 +00:00
hartvig 9dfe873de0 WIP IMacroEngine
[TFS Changeset #81536]
2010-12-06 13:49:34 +00:00
hartvig 290e3338f7 WIP macro refactoring
[TFS Changeset #81531]
2010-12-06 11:47:46 +00:00
hartvig 90450428c7 Fixes 28730
[TFS Changeset #81529]
2010-12-06 11:08:40 +00:00
hartvig 934fe90e68 Implements 29628
[TFS Changeset #81525]
2010-12-06 10:07:46 +00:00
hartvig 724dc74e8b Implements 21002
[TFS Changeset #81524]
2010-12-06 09:43:56 +00:00
PerPloug 6b81546606 Missing installer files
[TFS Changeset #81523]
2010-12-06 09:34:35 +00:00
PerPloug a6ed629fe6 removing old installer files
[TFS Changeset #81522]
2010-12-06 09:16:02 +00:00
PerPloug 3253310743 [TFS Changeset #81521] 2010-12-06 09:15:27 +00:00
PerPloug d172ed2761 InstallerStep and InstallerStepCollection changes
[TFS Changeset #81517]
2010-12-06 08:50:22 +00:00
PerPloug 071d10445d New installer css, js and html files
[TFS Changeset #81516]
2010-12-06 08:49:38 +00:00
hartvig cc29cc8067 Fixes 28646
[TFS Changeset #81514]
2010-12-06 08:14:38 +00:00
psterling bbfdfdc372 added Korean (ko-KR) language file for back end
[TFS Changeset #80941]
2010-11-30 18:08:35 +00:00
hartvig bc6cc2ac00 Fixes 29584 and 29585
[TFS Changeset #80854]
2010-11-29 14:34:05 +00:00
starfighter83 190419393e WIP skinning
[TFS Changeset #80844]
2010-11-29 12:55:17 +00:00
starfighter83 c9afa582b8 WIP skinning, bl cleanup
[TFS Changeset #80843]
2010-11-29 12:43:19 +00:00
slace 2a96b993e4 Prelim support for LINQ to Umbraco being able to run a preview NodeDataProvider
[TFS Changeset #80842]
2010-11-29 12:23:55 +00:00
starfighter83 6b7697b259 Trying to fix broken build
[TFS Changeset #80837]
2010-11-29 11:40:13 +00:00
starfighter83 cca1a275f0 WIP skinning, initial version of css vars
[TFS Changeset #80835]
2010-11-29 11:30:04 +00:00
slace aa3f7b0def Adding Level as a property of the Node object
[TFS Changeset #80834]
2010-11-29 11:24:18 +00:00
starfighter83 75e3c9c8b2 WIP skinning, customization preview now supports css vars
[TFS Changeset #80831]
2010-11-29 11:06:04 +00:00
hartvig 7caa7aea88 Fixes 28731 via Patch by jbreuer
[TFS Changeset #80829]
2010-11-29 10:33:58 +00:00
starfighter83 75d62d6eae WIP skinning, update to Dependency bl
[TFS Changeset #80827]
2010-11-29 10:02:11 +00:00
starfighter83 185e5163d4 WIP skinning
[TFS Changeset #80824]
2010-11-29 09:11:52 +00:00
starfighter83 3fc13e3a12 WIP skinning, CssParser.aspx code behind
[TFS Changeset #80823]
2010-11-29 09:10:25 +00:00
starfighter83 ce3851828c WIP skinning, add css parser page to skinning module
[TFS Changeset #80822]
2010-11-29 08:58:35 +00:00
starfighter83 28c9f0c4f6 WIP skinning, update to skinning bl (css vars)
[TFS Changeset #80821]
2010-11-29 08:52:04 +00:00
starfighter83 460e385a07 wip skinning
[TFS Changeset #80671]
2010-11-26 13:59:35 +00:00
starfighter83 1d182bdc41 WIP skinning, adds initial version of SkinManifestParser + some minor updates to skinning bl
[TFS Changeset #80670]
2010-11-26 13:59:08 +00:00
starfighter83 aafbb3bfb0 WIP skinning, adds CssVariable and CssVariableProperty to skinning bl
[TFS Changeset #80669]
2010-11-26 13:46:30 +00:00
starfighter83 63011b2611 WIP Skinning
[TFS Changeset #80664]
2010-11-26 12:28:18 +00:00
starfighter83 b3881002de WIP skinning, adds simple css parser to skinning bl
[TFS Changeset #80663]
2010-11-26 12:19:57 +00:00
PerPloug de0fba669a Tweaked skinning webserviceurls for 3rd party skinning repository webservices
[TFS Changeset #80662]
2010-11-26 11:55:41 +00:00
hartvig 37e2f4bbd8 Implements 28733, 28758 and 28762. Various updated to Document copy methods
[TFS Changeset #80658]
2010-11-26 09:37:20 +00:00
hartvig 68dcf4d521 Fixes 28763 (via patch from jbreuer)
[TFS Changeset #80654]
2010-11-26 07:53:17 +00:00
hartvig df3aef381d Implements 28923
[TFS Changeset #80653]
2010-11-26 07:45:11 +00:00
starfighter83 de049a81bf Fixes #28034: mySql 4.5 media xml for image is not complete
[TFS Changeset #80616]
2010-11-25 10:18:44 +00:00
starfighter83 0cd73c3273 updates color picker datatype so it supports updates to key value prevalue editor
[TFS Changeset #80615]
2010-11-25 09:59:42 +00:00
starfighter83 abb97482fe Fixes #28810: Color Picker broken in 4.5.2 ~in nada.gif path
[TFS Changeset #80614]
2010-11-25 09:49:50 +00:00
starfighter83 864a9ac94a Fixes #28945: Package Installer Bug - Inconsistent Undo Execution
[TFS Changeset #80613]
2010-11-25 09:06:33 +00:00
starfighter83 d726348bef Fixes small bug in macro container prevalue editor
[TFS Changeset #80609]
2010-11-25 08:01:15 +00:00
starfighter83 ad205fc928 Implements #29539: Add image cropper as default datatype
[TFS Changeset #80608]
2010-11-25 07:51:59 +00:00
starfighter83 bed8310f7e Fixes #20562: Please make sure that you do not have 2 templates with the same alias
[TFS Changeset #80539]
2010-11-24 14:34:59 +00:00
starfighter83 172f0a53ce Fixes #24545 : Copying documenttype bug (only copying tabs and props that are on documenttype and not on masters)
[TFS Changeset #80536]
2010-11-24 14:10:33 +00:00
starfighter83 931bc4e9bb Fixes #20572: Can't import package with master document
[TFS Changeset #80535]
2010-11-24 13:52:35 +00:00
starfighter83 b3b80399d0 Implements #29538 : Xslt tree, add delete / refresh on folders
[TFS Changeset #80528]
2010-11-24 12:48:18 +00:00
starfighter83 fbdad77bac Fixes #29401: Bug - packager doesn't handle files that are at the root of the website
[TFS Changeset #80525]
2010-11-24 12:16:08 +00:00
starfighter83 730ded46a6 Fixes #28696: Macro Container bug: Can't handle bool/checkboxes
[TFS Changeset #80524]
2010-11-24 11:54:12 +00:00
starfighter83 8d3d2fff28 removes /umbraco/developer/packages/boost.aspx
[TFS Changeset #80468]
2010-11-23 11:13:28 +00:00
starfighter83 c59c66bc33 WIP skinning updates
[TFS Changeset #80465]
2010-11-23 09:52:13 +00:00
starfighter83 ccd89bef07 WIP skinning, replaces install runway item in packages tree with install starter kit/skin
[TFS Changeset #80464]
2010-11-23 09:34:07 +00:00
starfighter83 9d985b11ba WIP skinning updates
[TFS Changeset #80410]
2010-11-22 13:14:15 +00:00
starfighter83 3f68d19ce0 WIP skinning fixes #29504: Skinning, image dependency type, if uploading png, transparency is lost
[TFS Changeset #80231]
2010-11-19 13:56:39 +00:00
starfighter83 af57cc12e4 WIP skinning, fixes #29503 and #29502
[TFS Changeset #80230]
2010-11-19 13:32:36 +00:00
starfighter83 c4e5bae76e Fixes #28732 Macro container slows down big times when allowed macroes int are getting bigger.
[TFS Changeset #80227]
2010-11-19 11:37:47 +00:00
starfighter83 64b43ce189 Fixes #29497, Add Macro container as a default datatype (so it appears in the datatype tree by default)
[TFS Changeset #80225]
2010-11-19 10:10:59 +00:00
starfighter83 15d0cf2f89 key value prevalue editor polish, feature #29466 complete
[TFS Changeset #80224]
2010-11-19 09:24:28 +00:00
starfighter83 802b33da94 WIP, updates radiobox datatype so it supports updates to key value prevalue editor
[TFS Changeset #80223]
2010-11-19 08:55:26 +00:00
starfighter83 8cdfec1cc0 WIP, updates dropdown list multiple datatype so it supports updates to key value prevalue editor
[TFS Changeset #80222]
2010-11-19 08:48:33 +00:00
starfighter83 97897c3062 WIP, updates dropdown datatype so it supports updates to key value prevalue editor
[TFS Changeset #80221]
2010-11-19 08:42:14 +00:00
starfighter83 b180f1614f WIP, updates checkboxlist datatype so it supports updates to key value prevalue editor
[TFS Changeset #80185]
2010-11-18 15:06:09 +00:00
starfighter83 1fdbfff8fe WIP , update to key value prevalue editor (inline edit and sorting of values)
[TFS Changeset #80184]
2010-11-18 14:56:47 +00:00
starfighter83 a21cbe6512 Data editor settings refactor, pass in the type reference than the string of the type property
[TFS Changeset #80181]
2010-11-18 12:31:30 +00:00
hartvig 97e55544a0 Implements 29441 - support for 3rd party log engines (like log4net)
[TFS Changeset #79998]
2010-11-15 14:12:21 +00:00
psterling ea4038f16a StartupDashboard refactor with "show once" feature and video feeds updated
[TFS Changeset #79736]
2010-11-09 20:57:27 +00:00
hartvig edc7bb000c Minor markup issue in editing doctypes
[TFS Changeset #79719]
2010-11-09 11:02:04 +00:00
hartvig d17393bcd1 Keep alive to be deleted
[TFS Changeset #79716]
2010-11-09 09:48:56 +00:00
hartvig 0f457e9874 [TFS Changeset #79715] 2010-11-09 09:45:25 +00:00
hartvig 1d7d959a80 Updates to NodeFactory (support for fetching nodes via xpath and get children as list)
[TFS Changeset #79713]
2010-11-09 09:29:46 +00:00
hartvig 4c52b7e97b Missing commit to BasePage
[TFS Changeset #79658]
2010-11-08 04:15:51 +00:00
starfighter83 252a6f06f8 WIP installer refactor, minor update to Skin bl
[TFS Changeset #79332]
2010-11-03 11:06:47 +00:00
hartvig 9adff7e4a9 Implements 29339
[TFS Changeset #79321]
2010-11-03 09:33:40 +00:00
hartvig 4d76c17b02 Work on keepalive refactoring
[TFS Changeset #79320]
2010-11-03 08:19:39 +00:00
hartvig 7f565e8df4 Work on speechbubble
[TFS Changeset #79319]
2010-11-03 08:18:53 +00:00
hartvig 79f6f2a2a4 Fixes 29326
[TFS Changeset #79287]
2010-11-02 12:54:38 +00:00
hartvig 7d65e881c2 Fixes 29330. Also upgrades jQuery to 1.4.3
[TFS Changeset #79286]
2010-11-02 12:48:26 +00:00
hartvig 793fff9154 Implements 29306
[TFS Changeset #79278]
2010-11-02 09:40:53 +00:00
Shandem d98a8543b0 fixes: 28655 - ctrl or right click app icons are back.
[TFS Changeset #79248]
2010-11-01 12:02:02 +00:00
Shandem c9527ebf8f upgraded jquery bbq plugin.
Fixes: 28294

[TFS Changeset #79245]
2010-11-01 11:53:10 +00:00
starfighter83 e496f7076d WIP data editor settings
[TFS Changeset #79009]
2010-10-27 14:21:02 +00:00
hartvig d9896f43c6 WIP - doctype inheritence. Might break stuff, then revert to previous change set. Will finalize tonight/tomorrow
[TFS Changeset #78975]
2010-10-26 13:01:45 +00:00
Shandem 5b6e34b4da Fixes: 29114, 28830
[TFS Changeset #78973]
2010-10-26 11:48:05 +00:00
Shandem 948fb920b7 Fixes: 29264, set compilation debug=true to default in Web.STANDARD.config since this is for development.
[TFS Changeset #78972]
2010-10-26 11:40:31 +00:00
hartvig 1bad5aeafe Implements 29219, Fixes 29265
[TFS Changeset #78962]
2010-10-26 09:40:03 +00:00
Shandem 33b7ade10d Fixes: 28681
[TFS Changeset #78958]
2010-10-26 09:13:47 +00:00
hartvig 63dfc251c4 Fixes 24652
[TFS Changeset #78956]
2010-10-26 09:05:23 +00:00
hartvig 6a185bdc85 Fixes 29262
[TFS Changeset #78953]
2010-10-26 08:27:01 +00:00
hartvig 3861ecf41d Fixes 19818 and implements 29257. Issues with NiceUrl and NEW configuration option to add trailing slash to urls
[TFS Changeset #78909]
2010-10-25 12:09:38 +00:00
hartvig 174bc41560 Implements 20757, new default dashboard control to change password added
[TFS Changeset #78902]
2010-10-25 11:27:09 +00:00
hartvig bd045838df Fixes 29223
[TFS Changeset #78899]
2010-10-25 10:49:06 +00:00
starfighter83 469c248db5 WIP installer refactor, adds removemodule options
[TFS Changeset #78779]
2010-10-22 10:49:37 +00:00
starfighter83 34dc9036bd WIP installer refactor, small update to skinning module
[TFS Changeset #78778]
2010-10-22 10:43:19 +00:00
starfighter83 a61c9d2a77 WIP installer refactor, module injections, modules are now sortable and possible to move them between the different containers
[TFS Changeset #78777]
2010-10-22 10:38:05 +00:00
starfighter83 4671e462eb WIP dataeditor settings, adds default value option
[TFS Changeset #78719]
2010-10-21 14:23:57 +00:00
starfighter83 6bfb41999f WIP data editor settings, small refactor
[TFS Changeset #78718]
2010-10-21 14:12:58 +00:00
Shandem 4df3ef191a applied patch: 7132
[TFS Changeset #78666]
2010-10-20 12:25:50 +00:00
Shandem 4dc4698b6c merge issue
[TFS Changeset #78665]
2010-10-20 12:16:08 +00:00
Shandem 82df347d41 Fixes: 25831 - Applied Patch
[TFS Changeset #78661]
2010-10-20 11:45:47 +00:00
Shandem 3e70a975bb Updates MySQL Installer version - Applied Patch
[TFS Changeset #78660]
2010-10-20 11:41:21 +00:00
Shandem f745aedf2a Fixes: 28428 - Applied Patch
[TFS Changeset #78659]
2010-10-20 11:36:31 +00:00
Shandem 0f93826e17 Fixes: 29068, 29068 - Applied Patch
[TFS Changeset #78652]
2010-10-20 10:25:28 +00:00
Shandem 0cb1877924 Fixes: 29069 - Patch applied.
[TFS Changeset #78651]
2010-10-20 09:27:19 +00:00
Shandem 325a9e8e0a Fixes: 28741 - And Applied patch = NICE
[TFS Changeset #78649]
2010-10-20 08:28:36 +00:00
Shandem 384b7e852f Fixes: 29123 - lots of sql calls saved again :)
[TFS Changeset #78648]
2010-10-20 08:10:08 +00:00
starfighter83 1ea5bc5d7c WIP installer refactor, adds new skinning task type, ModifyPageProperty
[TFS Changeset #78647]
2010-10-20 07:26:44 +00:00
starfighter83 df18581cd2 WIP, data editor settings
[TFS Changeset #78604]
2010-10-19 13:42:59 +00:00
starfighter83 0c88c4b776 WIP installer refactor, small css update
[TFS Changeset #78428]
2010-10-14 18:08:29 +00:00
starfighter83 220983171d WIP installer refactor, update to slider dependency type
[TFS Changeset #78426]
2010-10-14 17:55:38 +00:00
Shandem 07d5ce913c Examine v1.0 RTM checked in
[TFS Changeset #78419]
2010-10-14 11:53:53 +00:00
hartvig 072c3a67bf Adds missing update to NodeFactory
[TFS Changeset #78391]
2010-10-13 19:40:17 +00:00
hartvig d17197a2dc Refactor of niceurl (and parts of requesthandler)
[TFS Changeset #78370]
2010-10-13 13:02:02 +00:00
hartvig 132bd824a7 Implements 29157
[TFS Changeset #78367]
2010-10-13 10:45:05 +00:00
hartvig 91c5ae4204 Implements 29156
[TFS Changeset #78363]
2010-10-13 10:20:14 +00:00
starfighter83 deab9251d3 WIP installer refactor, updates to color picker dependency type
[TFS Changeset #78360]
2010-10-13 09:58:23 +00:00
starfighter83 66ddc8c095 WIP installer refactor, updates to colorpicker, makes sure css is loaded
[TFS Changeset #78359]
2010-10-13 09:34:51 +00:00
starfighter83 ef58e75076 WIP installer refactor, update to option skin dependency type
[TFS Changeset #78358]
2010-10-13 09:24:29 +00:00
starfighter83 954f8e82c9 WIP installer refactor, adds new skinning dependency type: option
[TFS Changeset #78356]
2010-10-13 09:09:11 +00:00
starfighter83 de0c85f40c WIP installer refactor, adds new skinning dependency type: slider
[TFS Changeset #78355]
2010-10-13 08:47:45 +00:00
Shandem e94274e9e6 examine update, member/media search fixes.
[TFS Changeset #78323]
2010-10-12 14:13:18 +00:00
starfighter83 36563d7699 WIP installer refactor, show error message if connection to repo fails
[TFS Changeset #78318]
2010-10-12 13:46:16 +00:00
starfighter83 39c6aca833 WIP installer refactor, another small js update
[TFS Changeset #78313]
2010-10-12 13:33:48 +00:00
Shandem 13615ea270 upgraded Examine. Search is looking pretty sweet.
[TFS Changeset #78312]
2010-10-12 13:29:18 +00:00
starfighter83 2e6613cc56 WIP installer refactor, small js update
[TFS Changeset #78311]
2010-10-12 13:29:16 +00:00
starfighter83 0c86e352b7 WIP installer refactor, removes empty js file
[TFS Changeset #78309]
2010-10-12 12:47:20 +00:00
starfighter83 fc2ed864f5 WIP installer refactor
[TFS Changeset #78308]
2010-10-12 12:43:13 +00:00
starfighter83 64cc5eb3e7 WIP installer refactor
[TFS Changeset #78306]
2010-10-12 12:26:53 +00:00
starfighter83 a71d0f58cb WIP installer refactor
[TFS Changeset #78305]
2010-10-12 12:14:11 +00:00
starfighter83 ac44fc9646 WIP installer refactor
[TFS Changeset #78300]
2010-10-12 11:40:06 +00:00
starfighter83 c05750ee63 WIP installer refactor, updates to skinning
[TFS Changeset #78292]
2010-10-12 09:49:48 +00:00
starfighter83 b1b605f3bd WIP installer refactor, updates RepositoryWebservice.cs
[TFS Changeset #78288]
2010-10-12 05:33:46 +00:00
starfighter83 e65448d28e WIP installer refactor, skinning
[TFS Changeset #78287]
2010-10-12 05:16:09 +00:00
starfighter83 8a0a33870b WIP installer refactor, work on skinning engine
[TFS Changeset #78244]
2010-10-11 15:06:16 +00:00
psterling c0942cdf6b WIP Startup Dashboards use umbraco.uicontrols
[TFS Changeset #78129]
2010-10-08 21:18:50 +00:00
Shandem ded62dba58 more examine updates
[TFS Changeset #78008]
2010-10-06 13:32:29 +00:00
Shandem dca59ce159 New Examine version. Fixes internal search and make it better.
[TFS Changeset #77995]
2010-10-06 10:35:17 +00:00
psterling a23a937813 WIP Startup Dashboards 'hide' feature and Runway auto-detect for default (content, media, settings, developer, member)
[TFS Changeset #77946]
2010-10-05 21:13:17 +00:00
Shandem 7161ff4146 Updates ClientDependency framework version.
Fixes loading in custom single tree without full app and other minor tree bugs.


[TFS Changeset #77930]
2010-10-05 12:59:44 +00:00
starfighter83 bab35e30d8 WIP installer refactor
[TFS Changeset #77708]
2010-10-01 12:31:20 +00:00
PerPloug e45583eed2 Missing skin button
[TFS Changeset #77707]
2010-10-01 12:24:11 +00:00
starfighter83 d0ba157501 WIP installer refactor, open skin customizer on startup if umbSkinningConfigurator is set
[TFS Changeset #77706]
2010-10-01 11:55:14 +00:00
starfighter83 f12a545cd1 WIP installer refactor: changes to skinning installer steps + customization is now a manuall action
[TFS Changeset #77705]
2010-10-01 11:48:26 +00:00
PerPloug 06334d1f06 redirect to visual mode from skin installer
[TFS Changeset #77703]
2010-10-01 11:33:10 +00:00
PerPloug fdbfe72fb1 feedback text on skin installer
[TFS Changeset #77701]
2010-10-01 11:07:05 +00:00
hartvig b3ea418c15 Detection support of SQL CE 4
[TFS Changeset #77700]
2010-10-01 10:55:51 +00:00
PerPloug 5b6961a297 missing error message css for installer
[TFS Changeset #77699]
2010-10-01 10:54:22 +00:00
hartvig bc6c01f44c Updating version number
[TFS Changeset #77698]
2010-10-01 10:37:50 +00:00
PerPloug 72fb76e4e0 [TFS Changeset #77696] 2010-10-01 10:27:48 +00:00
starfighter83 6b3ef0e3bf WIP installer refactor, update to skinning step in installer
[TFS Changeset #77693]
2010-10-01 10:13:43 +00:00
starfighter83 e9f7cc59d5 WIP installer refactor, small updates to skin customizer + fixes some issues introduces by polish
[TFS Changeset #77690]
2010-10-01 10:06:00 +00:00
PerPloug d46eec95de [TFS Changeset #77688] 2010-10-01 08:47:26 +00:00
hartvig f2e207d11e Hides overlay when using the skinning modals for better overview
[TFS Changeset #77686]
2010-10-01 08:41:12 +00:00
starfighter83 0b3c137fd8 WIP installer refactor, changes version to 4.6 Alpha
[TFS Changeset #77685]
2010-10-01 08:39:11 +00:00
starfighter83 92643f641e WIP Installer refactor, modify skin button on edit template toolbar now also redirects to skin customizer
[TFS Changeset #77683]
2010-10-01 08:32:24 +00:00
PerPloug 46a2c183b3 Css tweaks on liveedit
[TFS Changeset #77651]
2010-09-30 15:14:08 +00:00
hartvig 0369bb46e6 Adjustments to skinning modals
[TFS Changeset #77648]
2010-09-30 12:50:32 +00:00
starfighter83 111fcc4967 WIP installer refactor, update to color picker, hide right side
[TFS Changeset #77647]
2010-09-30 12:48:20 +00:00
hartvig c609fc69ae Fixes 28989. Skinning module are no longer loaded with Canvas by default. Need to have umbSkinning=true appended to the url (and of course access to the settings section)
[TFS Changeset #77646]
2010-09-30 12:47:02 +00:00
hartvig b8832b3ab3 Fixes 29025
[TFS Changeset #77645]
2010-09-30 12:01:10 +00:00
PerPloug 31115465a0 Fixes broken addDashboardsection package action undo
[TFS Changeset #77634]
2010-09-30 06:55:17 +00:00
hartvig 8ec8147b69 Fixes 29010 and adds WIP disclamer in installer
[TFS Changeset #77561]
2010-09-28 12:17:13 +00:00
starfighter83 ee6f92596d WIP installer refactor, resolve tilde in liveeditingtoolbar switch to backoffice button
[TFS Changeset #77560]
2010-09-28 12:07:44 +00:00
starfighter83 4610fc14ea WIP installer refactor implements: Add a link to the backoffice if the user gets to canvas from the installer
[TFS Changeset #77559]
2010-09-28 10:31:23 +00:00
starfighter83 af640662bb WIP installer refactor, fixes : Handle cases where there is no skin dependencies
[TFS Changeset #77558]
2010-09-28 10:19:50 +00:00
starfighter83 440ad4a1c5 WIP installer refactor, small update to color picker
[TFS Changeset #77557]
2010-09-28 10:06:23 +00:00
starfighter83 d76bdb80a9 WIP installer refactor, moving some js around
[TFS Changeset #77556]
2010-09-28 09:59:27 +00:00
starfighter83 f91530777f WIP installer refactor, fixes issue with customize skin modal not showing in ie
[TFS Changeset #77555]
2010-09-28 08:46:07 +00:00
starfighter83 b458eb5b97 WIP installer refactor, image uploader/cropper slider style
[TFS Changeset #77554]
2010-09-28 08:24:13 +00:00
starfighter83 4fff2f7906 WIP installer refactor, show slider (that scales image) on image uploader/cropper
[TFS Changeset #77553]
2010-09-28 08:09:42 +00:00
hartvig 8ade52ca07 Fixes issue with "No content available for WYSIWYG editing". Kudos to Our Umbraco user @Stephen for helping with a fix
[TFS Changeset #77552]
2010-09-28 07:54:40 +00:00
hartvig 88ef7df6b4 Fixes 28988
[TFS Changeset #77528]
2010-09-27 12:16:59 +00:00
starfighter83 78f96b2556 WIP installer refactor fixes 28978: Color picker, remove need for button
[TFS Changeset #77527]
2010-09-27 12:13:29 +00:00
hartvig fad4da5eb3 Removing some old and unused references
[TFS Changeset #77526]
2010-09-27 11:22:40 +00:00
PerPloug b14e2fdaf7 keep pdb files in zip for nant
[TFS Changeset #77525]
2010-09-27 11:20:38 +00:00
slace bd6232861c fixing a limitation on the NodeDataProvider with regards to missing httpContext
[TFS Changeset #77516]
2010-09-26 22:33:09 +00:00
PerPloug cd51d592e4 Nant build files updated for the 4.6 alpha
[TFS Changeset #77455]
2010-09-24 09:54:12 +00:00
PerPloug 3551c59548 [TFS Changeset #77454] 2010-09-24 09:48:19 +00:00
hartvig 30a3b3f4d8 Fixes 28951
[TFS Changeset #77411]
2010-09-23 09:33:43 +00:00
psterling 42db92ba69 WIP Startup Dashboard prototypes - updated project file (csproj)
[TFS Changeset #77265]
2010-09-17 23:08:55 +00:00
psterling 0f01f8d588 WIP Startup Dashboard prototypes
[TFS Changeset #77264]
2010-09-17 22:54:26 +00:00
psterling eb7ef0f26e WIP Startup Dashboard prototypes and feed proxy for video, project feeds
[TFS Changeset #77262]
2010-09-17 22:12:00 +00:00
PerPloug 56a2b011f6 yet again, missing files in /install
[TFS Changeset #77248]
2010-09-17 11:12:08 +00:00
PerPloug 06e57f5024 Missing files, breaking build server
[TFS Changeset #77247]
2010-09-17 11:06:30 +00:00
hartvig 79278e4199 Update to SQL CE 4 Umbraco project configuration
[TFS Changeset #77246]
2010-09-17 09:23:16 +00:00
hartvig 84a3e8dcc6 Update to sqlce4umbraco project (reference to datalayer)
[TFS Changeset #77245]
2010-09-17 09:13:44 +00:00
hartvig a83ea36dd2 Adding the SQLCE4Umbraco project and SQLCE4 CTP assemblies
[TFS Changeset #77243]
2010-09-17 08:44:25 +00:00
hartvig a53de5a181 Reorganising location of SQL CE 4 data files
[TFS Changeset #77242]
2010-09-17 08:24:29 +00:00
hartvig ed543a6af4 Minor update to SQL CE 4 (removing it from the presentation project)
[TFS Changeset #77240]
2010-09-17 08:21:56 +00:00
hartvig 9c8436d286 Implements 28907. First version of SQL CE 4 support (more installer TLC to come)
[TFS Changeset #77238]
2010-09-17 08:07:02 +00:00
starfighter83 fd5e6afbbf WIP installer refactor
[TFS Changeset #77226]
2010-09-16 13:50:29 +00:00
starfighter83 1ca82c5871 WIP installer refactor, skin update to rollback dependencies method, also clear saved output
[TFS Changeset #77223]
2010-09-16 11:06:15 +00:00
starfighter83 d348265950 WIP installer refactor, update to template skinning dialog
[TFS Changeset #77221]
2010-09-16 09:18:45 +00:00
starfighter83 f42ec68a3a WIP installer refactor
[TFS Changeset #77220]
2010-09-16 08:41:33 +00:00
starfighter83 5cadb1c360 WIP installer refactor, updates skin module adds fallback when no connection to repo
[TFS Changeset #77219]
2010-09-16 08:24:23 +00:00
starfighter83 e7c8be2d51 WIP installer refactor, updates to skin module, adds rollback active skin option
[TFS Changeset #77218]
2010-09-16 08:17:32 +00:00
starfighter83 bb0a4eb023 WIP installer refactor, small update to skin module avoid client side rollback when customization needs to be applied
[TFS Changeset #77217]
2010-09-16 07:35:38 +00:00
starfighter83 358374ebad WIP installer refactor, changes to template skinning dialog and skin module
[TFS Changeset #77208]
2010-09-15 14:18:08 +00:00
starfighter83 6c172e79d0 WIP installer refactor, updates to template skinning dialog
[TFS Changeset #77202]
2010-09-15 13:48:54 +00:00
starfighter83 234840b7c4 WIP installer refactor
[TFS Changeset #77201]
2010-09-15 13:22:07 +00:00
starfighter83 c51936b242 WIP installer refactor, simplifies assembly load in dependency and task
[TFS Changeset #77200]
2010-09-15 11:39:03 +00:00
starfighter83 ed9ac1d002 WIP installer refactor, tweaks to skin module
[TFS Changeset #77199]
2010-09-15 11:30:09 +00:00
starfighter83 3f319b8f11 WIP installer refactor, changes to skin rollback and modifycss tasktype rollback
[TFS Changeset #77197]
2010-09-15 10:53:55 +00:00
starfighter83 b01a35722a WIP installer refactor, adds skin palette to businesslogic
[TFS Changeset #77196]
2010-09-15 10:37:52 +00:00
starfighter83 b5b66b3f4a WIP installer refactor, Modify Css tasktype rollback method
[TFS Changeset #77193]
2010-09-15 09:37:55 +00:00
starfighter83 3e58afbc8b WIP installer refactor, change to image uploader control (size)
[TFS Changeset #77192]
2010-09-15 09:16:30 +00:00
starfighter83 18488563fa WIP installer refactor, image uploader check for valid image
[TFS Changeset #77173]
2010-09-14 11:29:23 +00:00
starfighter83 e5d1d481c1 WIP installer refactor, image uploader adds option to upload other image
[TFS Changeset #77172]
2010-09-14 11:18:07 +00:00
starfighter83 ffa111617f WIP installer refactor, some comments on image uploader
[TFS Changeset #77171]
2010-09-14 11:04:06 +00:00
starfighter83 e7b2d77b98 WIP installer refactor, image uploader / cropper : work in scaled version if format doesn't fit modal
[TFS Changeset #77170]
2010-09-14 11:00:39 +00:00
starfighter83 ad165945e3 WIP installer refactor, use ClientDependency on Image Uploader
[TFS Changeset #77165]
2010-09-14 08:36:00 +00:00
starfighter83 bab260c032 WIP installer refactor, adds reset option to image cropper
[TFS Changeset #77164]
2010-09-14 08:04:59 +00:00
starfighter83 dcd73c5207 WIP installer refactor, update to image uploader, if width and height not supplied, skip crop step
[TFS Changeset #77163]
2010-09-14 07:55:58 +00:00
PerPloug 3319ded749 template dialog for skinning (WIP)
[TFS Changeset #77161]
2010-09-14 07:14:24 +00:00
starfighter83 437538b23f WIP installer refactor, color picker changes
[TFS Changeset #77159]
2010-09-14 07:01:20 +00:00
starfighter83 b2d00d39ac WIP installer refactor, update to Image dependency type
[TFS Changeset #77156]
2010-09-14 06:23:46 +00:00
starfighter83 59a5c6692b WIP installer refactor, first version of image uploader
[TFS Changeset #77133]
2010-09-13 12:46:56 +00:00
starfighter83 e9325ec857 WIP installer refactor, close image uploader function
[TFS Changeset #77128]
2010-09-13 09:59:17 +00:00
starfighter83 c3044f41fc WIP installer refactor, adds ImageUploader page to canvas skin module
[TFS Changeset #77126]
2010-09-13 09:41:10 +00:00
starfighter83 a64dff4f6e WIP installer refactor, adds image uploader control and sets Image dependency type to use that
[TFS Changeset #77124]
2010-09-13 09:27:27 +00:00
starfighter83 56bfaabc7a WIP installer refactor, fixes issue with tasktype client side rollback
[TFS Changeset #77123]
2010-09-13 09:25:38 +00:00
starfighter83 092732d748 WIP installer refactor, fixes small bug in modal.js (modal window count not being updated correctly)
[TFS Changeset #77122]
2010-09-13 08:15:44 +00:00
starfighter83 f498c0635f WIP installer refactor, adds support for client side rollback on different task types
[TFS Changeset #77038]
2010-09-09 11:55:28 +00:00
starfighter83 a2cbadec4e WIP installer refactor, update to canvas skin module
[TFS Changeset #77037]
2010-09-09 11:00:54 +00:00
starfighter83 69e5e5d32f WIP installer refactor, removing some unused files
[TFS Changeset #77035]
2010-09-09 09:42:18 +00:00
starfighter83 a2ab040cef WIP installer refactor
[TFS Changeset #77034]
2010-09-09 09:14:47 +00:00
starfighter83 f8e1994cfe WIP installer refactor, also execute skin install tasks when activating a skin
[TFS Changeset #77029]
2010-09-09 08:39:36 +00:00
starfighter83 da6229be9b WIP installer refactor
[TFS Changeset #77027]
2010-09-09 08:26:11 +00:00
starfighter83 0a2517668a WIP installer refactor, small change to AddStyleSheetToTemplate roll back method
[TFS Changeset #77026]
2010-09-09 08:20:23 +00:00
starfighter83 949257ca00 WIP installer refactor, adds selector support to AddStyleSheetToTemplate tasktype
[TFS Changeset #77025]
2010-09-09 08:13:42 +00:00
starfighter83 9d7065e117 WIP installer refactor, change to AddStyleSheetToTemplate task client script
[TFS Changeset #76993]
2010-09-08 14:07:49 +00:00
starfighter83 7114de6c36 WIP installer refactor, update to AddStyleSheetToTemplate task
[TFS Changeset #76992]
2010-09-08 14:00:47 +00:00
starfighter83 4ac5f26db0 WIP installer refactor, update to ModifyTemplate task
[TFS Changeset #76991]
2010-09-08 13:59:33 +00:00
starfighter83 6a4b9fb906 WIP installer refactor, adds ExecuteInstallTasks method to Skin
[TFS Changeset #76990]
2010-09-08 13:30:06 +00:00
starfighter83 63edf72bc3 WIP installer refactor, AddStyleSheetToTemplate task update
[TFS Changeset #76989]
2010-09-08 13:12:49 +00:00
starfighter83 ab54ccc918 WIP installer refactor, Adds rollback method to AddStyleSheetToTemplate task
[TFS Changeset #76988]
2010-09-08 13:11:47 +00:00
starfighter83 5c7de15653 WIP installer refactor, small update to AddStyleSheetToTemplate task
[TFS Changeset #76987]
2010-09-08 13:07:58 +00:00
starfighter83 6aeffb161d WIP installer refactor, add stylesheet to template task, client script
[TFS Changeset #76986]
2010-09-08 13:05:57 +00:00
starfighter83 14a177b81e WIP installer refactor, fixes bug that skin selection goes to end instead of canvas skin module
[TFS Changeset #76985]
2010-09-08 12:55:42 +00:00
starfighter83 386cd44012 WIP installer refactor, add stylesheet tasktype
[TFS Changeset #76984]
2010-09-08 12:33:30 +00:00
PerPloug 2741d99af9 enableskins data.cs
[TFS Changeset #76980]
2010-09-08 12:11:22 +00:00
starfighter83 46a826902a WIP installer refactor
[TFS Changeset #76979]
2010-09-08 12:08:35 +00:00
starfighter83 771110c09d WIP installer refactor, go to final step if web.config fails to update
[TFS Changeset #76978]
2010-09-08 12:08:06 +00:00
starfighter83 cbde836c59 WIP installer refactor, prevent missing enableSkins node from crashing package installer
[TFS Changeset #76977]
2010-09-08 11:52:53 +00:00
starfighter83 51efc8f934 WIP installer refactor, redirect to canvas after selecting skin
[TFS Changeset #76975]
2010-09-08 11:41:46 +00:00
starfighter83 b7c9c61182 WIP installer refactor, activate skin
[TFS Changeset #76973]
2010-09-08 11:30:29 +00:00
starfighter83 c689870e13 WIP installer refactor, also install files
[TFS Changeset #76970]
2010-09-08 11:24:07 +00:00
starfighter83 1ee12522f4 WIP installer refactor, show skin module when redirected from installer
[TFS Changeset #76965]
2010-09-08 09:08:41 +00:00
starfighter83 ffd6debefb WIP installer refactor, small update to skin module
[TFS Changeset #76964]
2010-09-08 08:19:04 +00:00
starfighter83 6349d400d3 WIP installer refactor, only change config status if status is empty
[TFS Changeset #76963]
2010-09-08 07:54:04 +00:00
starfighter83 7737059326 WIP installer refactor, adds final skin step (customize) to installer
[TFS Changeset #76962]
2010-09-08 07:45:17 +00:00
starfighter83 3eab36a3ab WIP installer refactor
[TFS Changeset #76926]
2010-09-07 15:32:58 +00:00
PerPloug 88d06f54d3 couple of style tweaks for the installer
[TFS Changeset #76919]
2010-09-07 14:15:35 +00:00
PerPloug 541bb38285 Added some style to the installer and some additional step configurations
[TFS Changeset #76910]
2010-09-07 13:09:54 +00:00
PerPloug 54dfd6d44a Merging, installer / skinning branch with 4.1 branch
[TFS Changeset #76863]
2010-09-06 13:48:30 +00:00
707 changed files with 36485 additions and 6497 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
@@ -250,7 +250,7 @@ namespace umbraco.Linq.Core.Node
foreach (var ancestor in elements)
{
var alias = Casing.SafeAliasWithForcingCheck(ancestor.Name.LocalName);
var alias = Casing.SafeAlias(ancestor.Name.LocalName);
var t = KnownTypes[alias];
var instaceOfT = (DocTypeBase)Activator.CreateInstance(t); //create an instance of the type and down-cast so we can use it
this.LoadFromXml(ancestor, instaceOfT);
@@ -276,7 +276,7 @@ namespace umbraco.Linq.Core.Node
});
foreach (var type in types)
this._knownTypes.Add(Casing.SafeAliasWithForcingCheck(type.Key), type.Value);
this._knownTypes.Add(Casing.SafeAlias(type.Key), type.Value);
}
@@ -327,30 +327,67 @@ namespace umbraco.Linq.Core.Node
{
var attr = ReflectionAssistance.GetUmbracoInfoAttribute(p);
XElement propertyXml = xml.Element(Casing.SafeAliasWithForcingCheck(attr.Alias));
XElement propertyXml = xml.Element(Casing.SafeAlias(attr.Alias));
string data = null;
//if the XML doesn't contain the property it means that the node hasn't been re-published with the property
//so then we'll leave the data at null, otherwise let's grab it
if (propertyXml != null)
data = propertyXml.Value;
//Check if the propertyXml and propertyXml.FirstNode aren't null. If they are we don't need to set the value.
if (propertyXml != null && propertyXml.FirstNode != null)
{
//If the FirstNode is an XElement it means the property contains inner xml and we should return it. Otherwise just return the normal value.
if (propertyXml.FirstNode is XElement)
{
var reader = propertyXml.CreateReader();
reader.MoveToContent();
data = reader.ReadInnerXml();
}
else
{
data = propertyXml.Value;
}
}
if (p.PropertyType.IsValueType && p.PropertyType.GetGenericArguments().Length > 0 && typeof(Nullable<>).IsAssignableFrom(p.PropertyType.GetGenericTypeDefinition()))
{
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>
+3 -3
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" ?>
<project name="umbraco" default="test" basedir=".">
<description>Build the umbraco 4.5 Application for asp.net 3.5</description>
<description>Build the umbraco 4.6 alpha 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="web.dir" value="D:\inetpub\wwwroot\v4.umbraco.org" />
<property name="public.dir" value="D:\inetpub\wwwroot\nightlies\umbraco 4.1 for asp.net 3.5" />
<property name="public.dir" value="D:\inetpub\wwwroot\nightlies\umbraco 4.6 for asp.net 3.5" />
<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="build.version" value="4.1"/>
<property name="build.version" value="4.6 Alpha"/>
<property name="docs.dir" value="${root.dir}\docs" />
Binary file not shown.
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SqlCE4Umbraco")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("SqlCE4Umbraco")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("04436b0a-1dc6-4ee1-9d96-4c04f1a9f429")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+985
View File
@@ -0,0 +1,985 @@
/*******************************************************************************************
Umbraco database installation script for SQL Server CE 4
IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
Database version: 4.1.0.0
Please increment this version number if ANY change is made to this script,
so compatibility with scripts for other database systems can be verified easily.
The first 3 digits depict the Umbraco version, the last digit is the database version.
(e.g. version 4.0.0.3 means "Umbraco version 4.0.0, database version 3")
Check-in policy: only commit this script if
* you ran the Umbraco installer completely;
* you ran it on the targetted database system;
* you ran the Runway and Module installations;
* you were able to browse the Boost site;
* you were able to open the Umbraco administration panel;
* you have documented the code change in this script;
* you have incremented the version number in this script.
IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
********************************************************************************************/
CREATE TABLE [umbracoRelation]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[parentId] [int] NOT NULL,
[childId] [int] NOT NULL,
[relType] [int] NOT NULL,
[datetime] [datetime] NOT NULL CONSTRAINT [DF_umbracoRelation_datetime] DEFAULT (getdate()),
[comment] [nvarchar] (1000) NOT NULL
)
;
ALTER TABLE [umbracoRelation] ADD CONSTRAINT [PK_umbracoRelation] PRIMARY KEY ([id])
;
CREATE TABLE [cmsDocument]
(
[nodeId] [int] NOT NULL,
[published] [bit] NOT NULL,
[documentUser] [int] NOT NULL,
[versionId] [uniqueidentifier] NOT NULL,
[text] [nvarchar] (255) NOT NULL,
[releaseDate] [datetime] NULL,
[expireDate] [datetime] NULL,
[updateDate] [datetime] NOT NULL CONSTRAINT [DF_cmsDocument_updateDate] DEFAULT (getdate()),
[templateId] [int] NULL,
[alias] [nvarchar] (255) NULL ,
[newest] [bit] NOT NULL CONSTRAINT [DF_cmsDocument_newest] DEFAULT (0)
)
;
ALTER TABLE [cmsDocument] ADD CONSTRAINT [PK_cmsDocument] PRIMARY KEY ([versionId])
;
CREATE TABLE [umbracoLog]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[userId] [int] NOT NULL,
[NodeId] [int] NOT NULL,
[Datestamp] [datetime] NOT NULL CONSTRAINT [DF_umbracoLog_Datestamp] DEFAULT (getdate()),
[logHeader] [nvarchar] (50) NOT NULL,
[logComment] [nvarchar] (1000) NULL
)
;
ALTER TABLE [umbracoLog] ADD CONSTRAINT [PK_umbracoLog] PRIMARY KEY ([id])
;
/* TABLES ARE NEVER USED, REMOVED FOR 4.1
CREATE TABLE [umbracoUserGroup]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[userGroupName] [nvarchar] (255) NOT NULL
)
;
ALTER TABLE [umbracoUserGroup] ADD CONSTRAINT [PK_userGroup] PRIMARY KEY ([id])
;
CREATE TABLE [umbracoUser2userGroup]
(
[user] [int] NOT NULL,
[userGroup] [int] NOT NULL
)
;
ALTER TABLE [umbracoUser2userGroup] ADD CONSTRAINT [PK_user2userGroup] PRIMARY KEY ([user], [userGroup])
;
*/
CREATE TABLE [umbracoApp]
(
[sortOrder] [tinyint] NOT NULL CONSTRAINT [DF_app_sortOrder] DEFAULT (0),
[appAlias] [nvarchar] (50) NOT NULL,
[appIcon] [nvarchar] (255) NOT NULL,
[appName] [nvarchar] (255) NOT NULL,
[appInitWithTreeAlias] [nvarchar] (255) NULL
)
;
ALTER TABLE [umbracoApp] ADD CONSTRAINT [PK_umbracoApp] PRIMARY KEY ([appAlias])
;
CREATE TABLE [cmsPropertyData]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[contentNodeId] [int] NOT NULL,
[versionId] [uniqueidentifier] NULL,
[propertytypeid] [int] NOT NULL,
[dataInt] [int] NULL,
[dataDate] [datetime] NULL,
[dataNvarchar] [nvarchar] (500) NULL,
[dataNtext] [ntext] NULL
)
;
ALTER TABLE [cmsPropertyData] ADD CONSTRAINT [PK_cmsPropertyData] PRIMARY KEY ([id])
;
CREATE INDEX [IX_cmsPropertyData] ON [cmsPropertyData] ([id])
;
CREATE TABLE [cmsContent]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[nodeId] [int] NOT NULL,
[contentType] [int] NOT NULL
)
;
ALTER TABLE [cmsContent] ADD CONSTRAINT [PK_cmsContent] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsContentType]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[nodeId] [int] NOT NULL,
[alias] [nvarchar] (255) NULL,
[icon] [nvarchar] (255) NULL
)
;
ALTER TABLE [cmsContentType] ADD CONSTRAINT [PK_cmsContentType] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsMacroPropertyType]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[macroPropertyTypeAlias] [nvarchar] (50) NULL,
[macroPropertyTypeRenderAssembly] [nvarchar] (255) NULL,
[macroPropertyTypeRenderType] [nvarchar] (255) NULL,
[macroPropertyTypeBaseType] [nvarchar] (255) NULL
)
;
ALTER TABLE [cmsMacroPropertyType] ADD CONSTRAINT [PK_macroPropertyType] PRIMARY KEY ([id])
;
/* TABLE IS NEVER USED, REMOVED FOR 4.1
CREATE TABLE [umbracoStylesheetProperty]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[stylesheetPropertyEditor] [bit] NOT NULL CONSTRAINT [DF_stylesheetProperty_stylesheetPropertyEditor] DEFAULT (0),
[stylesheet] [int] NOT NULL,
[stylesheetPropertyAlias] [nvarchar] (50) NULL,
[stylesheetPropertyName] [nvarchar] (255) NULL,
[stylesheetPropertyValue] [nvarchar] (400) NULL
)
;
ALTER TABLE [umbracoStylesheetProperty] ADD CONSTRAINT [PK_stylesheetProperty] PRIMARY KEY ([id])
;
*/
CREATE TABLE [cmsTab]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[contenttypeNodeId] [int] NOT NULL,
[text] [nvarchar] (255) NOT NULL,
[sortorder] [int] NOT NULL
)
;
ALTER TABLE [cmsTab] ADD CONSTRAINT [PK_cmsTab] PRIMARY KEY ([id])
;
CREATE TABLE [cmsTemplate]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[nodeId] [int] NOT NULL,
[master] [int] NULL,
[alias] [nvarchar] (100) NULL,
[design] [ntext] NOT NULL
)
;
ALTER TABLE [cmsTemplate] ADD CONSTRAINT [PK_templates] PRIMARY KEY ([pk])
;
CREATE TABLE [umbracoUser2app]
(
[user] [int] NOT NULL,
[app] [nvarchar] (50) NOT NULL
)
;
ALTER TABLE [umbracoUser2app] ADD CONSTRAINT [PK_user2app] PRIMARY KEY ([user], [app])
;
CREATE TABLE [umbracoUserType]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[userTypeAlias] [nvarchar] (50) NULL,
[userTypeName] [nvarchar] (255) NOT NULL,
[userTypeDefaultPermissions] [nvarchar] (50) NULL
)
;
ALTER TABLE [umbracoUserType] ADD CONSTRAINT [PK_userType] PRIMARY KEY ([id])
;
CREATE TABLE [umbracoUser]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[userDisabled] [bit] NOT NULL CONSTRAINT [DF_umbracoUser_userDisabled] DEFAULT (0),
[userNoConsole] [bit] NOT NULL CONSTRAINT [DF_umbracoUser_userNoConsole] DEFAULT (0),
[userType] [int] NOT NULL,
[startStructureID] [int] NOT NULL,
[startMediaID] [int] NULL,
[userName] [nvarchar] (255) NOT NULL,
[userLogin] [nvarchar] (125) NOT NULL,
[userPassword] [nvarchar] (125) NOT NULL,
[userEmail] [nvarchar] (255) NOT NULL,
[userDefaultPermissions] [nvarchar] (50) NULL,
[userLanguage] [nvarchar] (10) NULL
)
;
ALTER TABLE [umbracoUser] ADD CONSTRAINT [PK_user] PRIMARY KEY ([id])
;
CREATE TABLE [cmsDocumentType]
(
[contentTypeNodeId] [int] NOT NULL,
[templateNodeId] [int] NOT NULL,
[IsDefault] [bit] NOT NULL CONSTRAINT [DF_cmsDocumentType_IsDefault] DEFAULT (0)
)
;
ALTER TABLE [cmsDocumentType] ADD CONSTRAINT [PK_cmsDocumentType] PRIMARY KEY ([contentTypeNodeId], [templateNodeId])
;
CREATE TABLE [cmsMemberType]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[NodeId] [int] NOT NULL,
[propertytypeId] [int] NOT NULL,
[memberCanEdit] [bit] NOT NULL CONSTRAINT [DF_cmsMemberType_memberCanEdit] DEFAULT (0),
[viewOnProfile] [bit] NOT NULL CONSTRAINT [DF_cmsMemberType_viewOnProfile] DEFAULT (0)
)
;
ALTER TABLE [cmsMemberType] ADD CONSTRAINT [PK_cmsMemberType] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsMember]
(
[nodeId] [int] NOT NULL,
[Email] [nvarchar] (1000) NOT NULL CONSTRAINT [DF_cmsMember_Email] DEFAULT (''),
[LoginName] [nvarchar] (1000) NOT NULL CONSTRAINT [DF_cmsMember_LoginName] DEFAULT (''),
[Password] [nvarchar] (1000) NOT NULL CONSTRAINT [DF_cmsMember_Password] DEFAULT ('')
)
;
CREATE TABLE [umbracoNode]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[trashed] [bit] NOT NULL CONSTRAINT [DF_umbracoNode_trashed] DEFAULT (0),
[parentID] [int] NOT NULL,
[nodeUser] [int] NULL,
[level] [int] NOT NULL,
[path] [nvarchar] (150) NOT NULL,
[sortOrder] [int] NOT NULL,
[uniqueID] [uniqueidentifier] NULL,
[text] [nvarchar] (255) NULL,
[nodeObjectType] [uniqueidentifier] NULL,
[createDate] [datetime] NOT NULL CONSTRAINT [DF_umbracoNode_createDate] DEFAULT (getdate())
)
;
ALTER TABLE [umbracoNode] ADD CONSTRAINT [PK_structure] PRIMARY KEY ([id])
;
;
CREATE TABLE [cmsPropertyType]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[dataTypeId] [int] NOT NULL,
[contentTypeId] [int] NOT NULL,
[tabId] [int] NULL,
[Alias] [nvarchar] (255) NOT NULL,
[Name] [nvarchar] (255) NULL,
[helpText] [nvarchar] (1000) NULL,
[sortOrder] [int] NOT NULL CONSTRAINT [DF__cmsProper__sortO__1EA48E88] DEFAULT (0),
[mandatory] [bit] NOT NULL CONSTRAINT [DF__cmsProper__manda__2180FB33] DEFAULT (0),
[validationRegExp] [nvarchar] (255) NULL,
[Description] [nvarchar] (2000) NULL
)
;
ALTER TABLE [cmsPropertyType] ADD CONSTRAINT [PK_cmsPropertyType] PRIMARY KEY ([id])
;
CREATE TABLE [cmsMacroProperty]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[macroPropertyHidden] [bit] NOT NULL CONSTRAINT [DF_macroProperty_macroPropertyHidden] DEFAULT (0),
[macroPropertyType] [int] NOT NULL,
[macro] [int] NOT NULL,
[macroPropertySortOrder] [tinyint] NOT NULL CONSTRAINT [DF_macroProperty_macroPropertySortOrder] DEFAULT (0),
[macroPropertyAlias] [nvarchar] (50) NOT NULL,
[macroPropertyName] [nvarchar] (255) NOT NULL
)
;
ALTER TABLE [cmsMacroProperty] ADD CONSTRAINT [PK_macroProperty] PRIMARY KEY ([id])
;
CREATE TABLE [cmsMacro]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[macroUseInEditor] [bit] NOT NULL CONSTRAINT [DF_macro_macroUseInEditor] DEFAULT (0),
[macroRefreshRate] [int] NOT NULL CONSTRAINT [DF_macro_macroRefreshRate] DEFAULT (0),
[macroAlias] [nvarchar] (255) NOT NULL,
[macroName] [nvarchar] (255) NULL,
[macroScriptType] [nvarchar] (255) NULL,
[macroScriptAssembly] [nvarchar] (255) NULL,
[macroXSLT] [nvarchar] (255) NULL,
[macroCacheByPage] [bit] NOT NULL CONSTRAINT [DF_cmsMacro_macroCacheByPage] DEFAULT (1),
[macroCachePersonalized] [bit] NOT NULL CONSTRAINT [DF_cmsMacro_macroCachePersonalized] DEFAULT (0),
[macroDontRender] [bit] NOT NULL CONSTRAINT [DF_cmsMacro_macroDontRender] DEFAULT (0)
)
;
ALTER TABLE [cmsMacro] ADD CONSTRAINT [PK_macro] PRIMARY KEY ([id])
;
CREATE TABLE [cmsContentVersion]
(
[id] [int] NOT NULL IDENTITY(1, 1) PRIMARY KEY,
[ContentId] [int] NOT NULL,
[VersionId] [uniqueidentifier] NOT NULL,
[VersionDate] [datetime] NOT NULL CONSTRAINT [DF_cmsContentVersion_VersionDate] DEFAULT (getdate())
)
;
CREATE TABLE [umbracoAppTree]
(
[treeSilent] [bit] NOT NULL CONSTRAINT [DF_umbracoAppTree_treeSilent] DEFAULT (0),
[treeInitialize] [bit] NOT NULL CONSTRAINT [DF_umbracoAppTree_treeInitialize] DEFAULT (1),
[treeSortOrder] [tinyint] NOT NULL,
[appAlias] [nvarchar] (50) NOT NULL,
[treeAlias] [nvarchar] (150) NOT NULL,
[treeTitle] [nvarchar] (255) NOT NULL,
[treeIconClosed] [nvarchar] (255) NOT NULL,
[treeIconOpen] [nvarchar] (255) NOT NULL,
[treeHandlerAssembly] [nvarchar] (255) NOT NULL,
[treeHandlerType] [nvarchar] (255) NOT NULL,
[action] [nvarchar] (255) NULL
)
;
ALTER TABLE [umbracoAppTree] ADD CONSTRAINT [PK_umbracoAppTree] PRIMARY KEY ([appAlias], [treeAlias])
;
CREATE TABLE [cmsContentTypeAllowedContentType]
(
[Id] [int] NOT NULL,
[AllowedId] [int] NOT NULL
)
;
ALTER TABLE [cmsContentTypeAllowedContentType] ADD CONSTRAINT [PK_cmsContentTypeAllowedContentType] PRIMARY KEY ([Id], [AllowedId])
;
CREATE TABLE [cmsContentXml]
(
[nodeId] [int] NOT NULL,
[xml] [ntext] NOT NULL
)
;
ALTER TABLE [cmsContentXml] ADD CONSTRAINT [PK_cmsContentXml] PRIMARY KEY ([nodeId])
;
CREATE TABLE [cmsDataType]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[nodeId] [int] NOT NULL,
[controlId] [uniqueidentifier] NOT NULL,
[dbType] [nvarchar] (50) NOT NULL
)
;
ALTER TABLE [cmsDataType] ADD CONSTRAINT [PK_cmsDataType] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsDataTypePreValues]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[datatypeNodeId] [int] NOT NULL,
[value] [nvarchar] (255) NULL,
[sortorder] [int] NOT NULL,
[alias] [nvarchar] (50) NULL
)
;
ALTER TABLE [cmsDataTypePreValues] ADD CONSTRAINT [PK_cmsDataTypePreValues] PRIMARY KEY ([id])
;
CREATE TABLE [cmsDictionary]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[id] [uniqueidentifier] NOT NULL,
[parent] [uniqueidentifier] NOT NULL,
[key] [nvarchar] (1000) NOT NULL
)
;
ALTER TABLE [cmsDictionary] ADD CONSTRAINT [PK_cmsDictionary] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsLanguageText]
(
[pk] [int] NOT NULL IDENTITY(1, 1),
[languageId] [int] NOT NULL,
[UniqueId] [uniqueidentifier] NOT NULL,
[value] [nvarchar] (1000) NOT NULL
)
;
ALTER TABLE [cmsLanguageText] ADD CONSTRAINT [PK_cmsLanguageText] PRIMARY KEY ([pk])
;
CREATE TABLE [cmsMember2MemberGroup]
(
[Member] [int] NOT NULL,
[MemberGroup] [int] NOT NULL
)
;
ALTER TABLE [cmsMember2MemberGroup] ADD CONSTRAINT [PK_cmsMember2MemberGroup] PRIMARY KEY ([Member], [MemberGroup])
;
CREATE TABLE [cmsStylesheet]
(
[nodeId] [int] NOT NULL,
[filename] [nvarchar] (100) NOT NULL,
[content] [ntext] NULL
)
;
CREATE TABLE [cmsStylesheetProperty]
(
[nodeId] [int] NOT NULL,
[stylesheetPropertyEditor] [bit] NULL,
[stylesheetPropertyAlias] [nvarchar] (50) NULL,
[stylesheetPropertyValue] [nvarchar] (400) NULL
)
;
CREATE TABLE [umbracoDomains]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[domainDefaultLanguage] [int] NULL,
[domainRootStructureID] [int] NULL,
[domainName] [nvarchar] (255) NOT NULL
)
;
ALTER TABLE [umbracoDomains] ADD CONSTRAINT [PK_domains] PRIMARY KEY ([id])
;
CREATE TABLE [umbracoLanguage]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[languageISOCode] [nvarchar] (10) NULL,
[languageCultureName] [nvarchar] (100) NULL
)
;
ALTER TABLE [umbracoLanguage] ADD CONSTRAINT [PK_language] PRIMARY KEY ([id])
;
CREATE TABLE [umbracoRelationType]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[dual] [bit] NOT NULL,
[parentObjectType] [uniqueidentifier] NOT NULL,
[childObjectType] [uniqueidentifier] NOT NULL,
[name] [nvarchar] (255) NOT NULL,
[alias] [nvarchar] (100) NULL
)
;
ALTER TABLE [umbracoRelationType] ADD CONSTRAINT [PK_umbracoRelationType] PRIMARY KEY ([id])
;
/* TABLE IS NEVER USED, REMOVED FOR 4.1
CREATE TABLE [umbracoStylesheet]
(
[nodeId] [int] NOT NULL,
[filename] [nvarchar] (100) NOT NULL,
[content] [ntext] NULL
)
;
ALTER TABLE [umbracoStylesheet] ADD CONSTRAINT [PK_umbracoStylesheet] PRIMARY KEY ([nodeId])
;
*/
CREATE TABLE [umbracoUser2NodeNotify]
(
[userId] [int] NOT NULL,
[nodeId] [int] NOT NULL,
[action] [nchar] (1) NOT NULL
)
;
ALTER TABLE [umbracoUser2NodeNotify] ADD CONSTRAINT [PK_umbracoUser2NodeNotify] PRIMARY KEY ([userId], [nodeId], [action])
;
CREATE TABLE [umbracoUser2NodePermission]
(
[userId] [int] NOT NULL,
[nodeId] [int] NOT NULL,
[permission] [nchar] (1) NOT NULL
)
;
ALTER TABLE [umbracoUser2NodePermission] ADD CONSTRAINT [PK_umbracoUser2NodePermission] PRIMARY KEY ([userId], [nodeId], [permission])
;
CREATE TABLE [umbracoUserLogins]
(
[contextID] [uniqueidentifier] NOT NULL,
[userID] [int] NOT NULL,
[timeout] [bigint] NOT NULL
)
;
ALTER TABLE [umbracoAppTree] ADD
CONSTRAINT [FK_umbracoAppTree_umbracoApp] FOREIGN KEY ([appAlias]) REFERENCES [umbracoApp] ([appAlias])
;
ALTER TABLE [cmsPropertyData] ADD
CONSTRAINT [FK_cmsPropertyData_umbracoNode] FOREIGN KEY ([contentNodeId]) REFERENCES [umbracoNode] ([id])
;
/* TABLES ARE NEVER USED, REMOVED FOR 4.1
ALTER TABLE [umbracoUser2userGroup] ADD
CONSTRAINT [FK_user2userGroup_user] FOREIGN KEY ([user]) REFERENCES [umbracoUser] ([id]),
CONSTRAINT [FK_user2userGroup_userGroup] FOREIGN KEY ([userGroup]) REFERENCES [umbracoUserGroup] ([id])
;
*/
ALTER TABLE [cmsDocument] ADD
CONSTRAINT [FK_cmsDocument_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsMacroProperty] ADD
CONSTRAINT [FK_umbracoMacroProperty_umbracoMacroPropertyType] FOREIGN KEY ([macroPropertyType]) REFERENCES [cmsMacroPropertyType] ([id])
;
ALTER TABLE [umbracoUser] ADD
CONSTRAINT [FK_user_userType] FOREIGN KEY ([userType]) REFERENCES [umbracoUserType] ([id])
;
ALTER TABLE [umbracoNode] ADD
CONSTRAINT [FK_umbracoNode_umbracoNode] FOREIGN KEY ([parentID]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsTemplate] ADD
CONSTRAINT [FK_cmsTemplate_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsContentType] ADD
CONSTRAINT [FK_cmsContentType_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsPropertyType] ADD
CONSTRAINT [FK_cmsPropertyType_cmsTab] FOREIGN KEY ([tabId]) REFERENCES [cmsTab] ([id])
;
ALTER TABLE [cmsContent] ADD
CONSTRAINT [FK_cmsContent_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [umbracoUser2app] ADD
CONSTRAINT [FK_umbracoUser2app_umbracoApp] FOREIGN KEY ([app]) REFERENCES [umbracoApp] ([appAlias]),
CONSTRAINT [FK_umbracoUser2app_umbracoUser] FOREIGN KEY ([user]) REFERENCES [umbracoUser] ([id])
;
ALTER TABLE [cmsTemplate] DROP CONSTRAINT [FK_cmsTemplate_umbracoNode]
;
ALTER TABLE [cmsPropertyType] DROP CONSTRAINT [FK_cmsPropertyType_cmsTab]
;
ALTER TABLE [cmsContent] DROP CONSTRAINT [FK_cmsContent_umbracoNode]
;
ALTER TABLE [cmsMacroProperty] DROP CONSTRAINT [FK_umbracoMacroProperty_umbracoMacroPropertyType]
;
ALTER TABLE [umbracoAppTree] DROP CONSTRAINT [FK_umbracoAppTree_umbracoApp]
;
ALTER TABLE [umbracoUser2app] DROP CONSTRAINT [FK_umbracoUser2app_umbracoApp]
;
ALTER TABLE [umbracoUser2app] DROP CONSTRAINT [FK_umbracoUser2app_umbracoUser]
;
ALTER TABLE [cmsPropertyData] DROP CONSTRAINT [FK_cmsPropertyData_umbracoNode]
;
/* TABLE IS NEVER USED, REMOVED FOR 4.1
ALTER TABLE [umbracoUser2userGroup] DROP CONSTRAINT [FK_user2userGroup_user]
;
ALTER TABLE [umbracoUser2userGroup] DROP CONSTRAINT [FK_user2userGroup_userGroup]
;
*/
ALTER TABLE [umbracoUser] DROP CONSTRAINT [FK_user_userType]
;
ALTER TABLE [cmsContentType] DROP CONSTRAINT [FK_cmsContentType_umbracoNode]
;
ALTER TABLE [cmsDocument] DROP CONSTRAINT [FK_cmsDocument_umbracoNode]
;
ALTER TABLE [umbracoNode] DROP CONSTRAINT [FK_umbracoNode_umbracoNode]
;
!!!SET IDENTITY_INSERT [umbracoNode] ON
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-92, 0, -1, 0, 11, N'-1,-92', 37, 'f0bc4bfb-b499-40d6-ba86-058885a5178c', N'Label', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-90, 0, -1, 0, 11, N'-1,-90', 35, '84c6b441-31df-4ffe-b67e-67d5bc3ae65a', N'Upload', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-89, 0, -1, 0, 11, N'-1,-89', 34, 'c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3', N'Textbox multiple', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-88, 0, -1, 0, 11, N'-1,-88', 33, '0cc0eba1-9960-42c9-bf9b-60e150b429ae', N'Textstring', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-87, 0, -1, 0, 11, N'-1,-87', 32, 'ca90c950-0aff-4e72-b976-a30b1ac57dad', N'Richtext editor', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
||INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-51, 0, -1, 0, 11, N'-1,-51', 4, '2e6d3631-066e-44b8-aec4-96f09099b2b5', N'Numeric', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
||INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-49, 0, -1, 0, 11, N'-1,-49', 2, '92897bc6-a5f3-4ffe-ae27-f2e7e33dda49', N'True/false', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-43, 0, -1, 0, 1, N'-1,-43', 2, 'fbaf13a8-4036-41f2-93a3-974f678c312a', N'Checkbox list', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:11:04.367')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-42, 0, -1, 0, 1, N'-1,-42', 2, '0b6a45e7-44ba-430d-9da5-4e46060b9e03', N'Dropdown', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:59.000')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-41, 0, -1, 0, 1, N'-1,-41', 2, '5046194e-4237-453c-a547-15db3a07c4e1', N'Date Picker', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:54.303')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-40, 0, -1, 0, 1, N'-1,-40', 2, 'bb5f57c9-ce2b-4bb9-b697-4caca783a805', N'Radiobox', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:49.253')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-39, 0, -1, 0, 1, N'-1,-39', 2, 'f38f0ac7-1d27-439c-9f3f-089cd8825a53', N'Dropdown multiple', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:44.480')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-38, 0, -1, 0, 1, N'-1,-38', 2, 'fd9f1447-6c61-4a7c-9595-5aa39147d318', N'Folder Browser', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:37.020')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-37, 0, -1, 0, 1, N'-1,-37', 2, '0225af17-b302-49cb-9176-b9f35cab9c17', N'Approved Color', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:30.580')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-36, 0, -1, 0, 1, N'-1,-36', 2, 'e4d66c0f-b935-4200-81f0-025f7256b89a', N'Date Picker with time', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20041015 14:10:23.007')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-1, 0, -1, 0, 0, N'-1', 0, '916724a5-173d-4619-b97e-b9de133dd6f5', N'SYSTEM DATA: umbraco master root', 'ea7d8624-4cfe-4578-a871-24aa946bf34d', '20040930 14:01:49.920')
||INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1031, 0, -1, 1, 1, N'-1,1031', 2, 'f38bd2d7-65d0-48e6-95dc-87ce06ec2d3d', N'Folder', '4ea4382b-2f5a-4c2b-9587-ae9b3cf3602e', '20041201 00:13:40.743')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1032, 0, -1, 1, 1, N'-1,1032', 2, 'cc07b313-0843-4aa8-bbda-871c8da728c8', N'Image', '4ea4382b-2f5a-4c2b-9587-ae9b3cf3602e', '20041201 00:13:43.737')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1033, 0, -1, 1, 1, N'-1,1033', 2, '4c52d8ab-54e6-40cd-999c-7a5f24903e4d', N'File', '4ea4382b-2f5a-4c2b-9587-ae9b3cf3602e', '20041201 00:13:46.210')
||INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1034, 0, -1, 0, 1, N'-1,1034', 2, 'a6857c73-d6e9-480c-b6e6-f15f6ad11125', N'Content Picker', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:29.203')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1035, 0, -1, 0, 1, N'-1,1035', 2, '93929b9a-93a2-4e2a-b239-d99334440a59', N'Media Picker', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:36.143')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1036, 0, -1, 0, 1, N'-1,1036', 2, '2b24165f-9782-4aa3-b459-1de4a4d21f60', N'Member Picker', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:40.260')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1038, 0, -1, 0, 1, N'-1,1038', 2, '1251c96c-185c-4e9b-93f4-b48205573cbd', N'Simple Editor', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:55.250')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1039, 0, -1, 0, 1, N'-1,1039', 2, '06f349a9-c949-4b6a-8660-59c10451af42', N'Ultimate Picker', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:55.250')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1040, 0, -1, 0, 1, N'-1,1040', 2, '21e798da-e06e-4eda-a511-ed257f78d4fa', N'Related Links', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:55.250')
|INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (1041, 0, -1, 0, 1, N'-1,1041', 2, 'b6b73142-b9c1-4bf8-a16d-e1c23320b549', N'Tags', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20060103 13:07:55.250')
|SET IDENTITY_INSERT [umbracoNode] OFF
;
!!!SET IDENTITY_INSERT [cmsContentType] ON
|INSERT INTO [cmsContentType] ([pk], [nodeId], [alias], [icon]) VALUES (532, 1031, N'Folder', N'folder.gif')
|INSERT INTO [cmsContentType] ([pk], [nodeId], [alias], [icon]) VALUES (533, 1032, N'Image', N'mediaPhoto.gif')
|INSERT INTO [cmsContentType] ([pk], [nodeId], [alias], [icon]) VALUES (534, 1033, N'File', N'mediaMulti.gif')
|SET IDENTITY_INSERT [cmsContentType] OFF
;
!!!SET IDENTITY_INSERT [umbracoUser] ON
|INSERT INTO [umbracoUser] ([id], [userDisabled], [userNoConsole], [userType], [startStructureID], [startMediaID], [userName], [userLogin], [userPassword], [userEmail], [userDefaultPermissions], [userLanguage]) VALUES (0, 0, 0, 1, -1, -1, N'Administrator', N'admin', N'default', N'', NULL, N'en')
|SET IDENTITY_INSERT [umbracoUser] OFF
;
!!!SET IDENTITY_INSERT [umbracoUserType] ON
|INSERT INTO [umbracoUserType] ([id], [userTypeAlias], [userTypeName], [userTypeDefaultPermissions]) VALUES (1, N'admin', N'Administrators', N'CADMOSKTPIURZ:')
|INSERT INTO [umbracoUserType] ([id], [userTypeAlias], [userTypeName], [userTypeDefaultPermissions]) VALUES (2, N'writer', N'Writer', N'CAH:')
|INSERT INTO [umbracoUserType] ([id], [userTypeAlias], [userTypeName], [userTypeDefaultPermissions]) VALUES (3, N'editor', N'Editors', N'CADMOSKTPUZ:')
|insert into umbracoUserType ([id], [userTypeAlias], [userTypeName], [userTypeDefaultPermissions]) values (4, N'translator', N'Translator', 'A')
|SET IDENTITY_INSERT [umbracoUserType] OFF
;
!!!INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'content')
|INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'developer')
|INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'media')
|INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'member')
|INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'settings')
|INSERT INTO [umbracoUser2app] ([user], [app]) VALUES (0, N'users')
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'content', 0, N'.traycontent', N'Indhold', N'content')
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'developer', 7, N'.traydeveloper', N'Developer', NULL)
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'media', 1, N'.traymedia', N'Mediearkiv', NULL)
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'member', 8, N'.traymember', N'Medlemmer', NULL)
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'settings', 6, N'.traysettings', N'Indstillinger', NULL)
|INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'users', 5, N'.trayusers', N'Brugere', NULL)
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'content', N'content', 1, 1, 0, N'Indhold', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadContent')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'cacheBrowser', 0, 1, 0, N'CacheBrowser', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadCache')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'CacheItem', 0, 0, 0, N'Cachebrowser', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadCacheItem')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'datatype', 0, 1, 1, N'Datatyper', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadDataTypes')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'macros', 0, 1, 2, N'Macros', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMacros')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'xslt', 0, 1, 5, N'XSLT Files', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadXslt')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'media', N'media', 0, 1, 0, N'Medier', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMedia')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'member', N'member', 0, 1, 0, N'Medlemmer', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMembers')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'member', N'memberGroup', 0, 1, 1, N'MemberGroups', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMemberGroups')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'member', N'memberType', 0, 1, 2, N'Medlemstyper', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMemberTypes')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType], [action]) VALUES (N'settings', N'dictionary', 0, 1, 3, N'Dictionary', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadDictionary', N'openDictionary()')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'languages', 0, 1, 4, N'Languages', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadLanguages')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'mediaTypes', 0, 1, 5, N'Medietyper', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadMediaTypes')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'nodeTypes', 0, 1, 6, N'Dokumenttyper', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadNodeTypes')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'stylesheetProperty', 0, 0, 0, N'Stylesheet Property', N'', N'', N'umbraco', N'loadStylesheetProperty')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'stylesheets', 0, 1, 0, N'Stylesheets', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadStylesheets')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'settings', N'templates', 0, 1, 1, N'Templates', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadTemplates')
|INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'users', N'users', 0, 1, 0, N'Brugere', N'.sprTreeFolder', N'.sprTreeFolder_o', N'umbraco', N'loadUsers')
;
!!!SET IDENTITY_INSERT [cmsMacroPropertyType] ON
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (3, N'mediaCurrent', N'umbraco.macroRenderings', N'media', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (4, N'contentSubs', N'umbraco.macroRenderings', N'content', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (5, N'contentRandom', N'umbraco.macroRenderings', N'content', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (6, N'contentPicker', N'umbraco.macroRenderings', N'content', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (13, N'number', N'umbraco.macroRenderings', N'numeric', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (14, N'bool', N'umbraco.macroRenderings', N'yesNo', N'Boolean')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (16, N'text', N'umbraco.macroRenderings', N'text', N'String')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (17, N'contentTree', N'umbraco.macroRenderings', N'content', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (18, N'contentType', N'umbraco.macroRenderings', N'contentTypeSingle', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (19, N'contentTypeMultiple', N'umbraco.macroRenderings', N'contentTypeMultiple', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (20, N'contentAll', N'umbraco.macroRenderings', N'content', N'Int32')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (21, N'tabPicker', N'umbraco.macroRenderings', N'tabPicker', N'String')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (22, N'tabPickerMultiple', N'umbraco.macroRenderings', N'tabPickerMultiple', N'String')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (23, N'propertyTypePicker', N'umbraco.macroRenderings', N'propertyTypePicker', N'String')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (24, N'propertyTypePickerMultiple', N'umbraco.macroRenderings', N'propertyTypePickerMultiple', N'String')
|INSERT INTO [cmsMacroPropertyType] ([id], [macroPropertyTypeAlias], [macroPropertyTypeRenderAssembly], [macroPropertyTypeRenderType], [macroPropertyTypeBaseType]) VALUES (25, N'textMultiLine', N'umbraco.macroRenderings', N'textMultiple', N'String')
|SET IDENTITY_INSERT [cmsMacroPropertyType] OFF
;
!!!SET IDENTITY_INSERT [cmsTab] ON
|INSERT INTO [cmsTab] ([id], [contenttypeNodeId], [text], [sortorder]) VALUES (3, 1032, N'Image', 1)
|INSERT INTO [cmsTab] ([id], [contenttypeNodeId], [text], [sortorder]) VALUES (4, 1033, N'File', 1)
|INSERT INTO [cmsTab] ([id], [contenttypeNodeId], [text], [sortorder]) VALUES (5, 1031, N'Contents', 1)
|SET IDENTITY_INSERT [cmsTab] OFF
;
!!!SET IDENTITY_INSERT [cmsPropertyType] ON
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (6, -90, 1032, 3, N'umbracoFile', N'Upload image', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (7, -92, 1032, 3, N'umbracoWidth', N'Width', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (8, -92, 1032, 3, N'umbracoHeight', N'Height', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (9, -92, 1032, 3, N'umbracoBytes', N'Size', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (10, -92, 1032, 3, N'umbracoExtension', N'Type', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (24, -90, 1033, 4, N'umbracoFile', N'Upload file', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (25, -92, 1033, 4, N'umbracoExtension', N'Type', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (26, -92, 1033, 4, N'umbracoBytes', N'Size', NULL, 0, 0, NULL, NULL)
|INSERT INTO [cmsPropertyType] ([id], [dataTypeId], [contentTypeId], [tabId], [Alias], [Name], [helpText], [sortOrder], [mandatory], [validationRegExp], [Description]) VALUES (27, -38, 1031, 5, N'contents', N'Contents:', NULL, 0, 0, NULL, NULL)
|SET IDENTITY_INSERT [cmsPropertyType] OFF
;
!!!SET IDENTITY_INSERT [umbracoLanguage] ON
|INSERT INTO [umbracoLanguage] ([id], [languageISOCode], [languageCultureName]) VALUES (1, N'en-US', N'en-US')
|SET IDENTITY_INSERT [umbracoLanguage] OFF
;
INSERT INTO [cmsContentTypeAllowedContentType] ([Id], [AllowedId]) VALUES (1031, 1031)
;
INSERT INTO [cmsContentTypeAllowedContentType] ([Id], [AllowedId]) VALUES (1031, 1032)
;
INSERT INTO [cmsContentTypeAllowedContentType] ([Id], [AllowedId]) VALUES (1031, 1033)
;
!!!SET IDENTITY_INSERT [cmsDataType] ON
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (4, -49, '38b352c1-e9f8-4fd8-9324-9a2eab06d97a', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (6, -51, '1413afcb-d19a-4173-8e9a-68288d2a73b8', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (8, -87, '5E9B75AE-FACE-41c8-B47E-5F4B0FD82F83', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (9, -88, 'ec15c1e5-9d90-422a-aa52-4f7622c63bea', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (10, -89, '67db8357-ef57-493e-91ac-936d305e0f2a', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (11, -90, '5032a6e6-69e3-491d-bb28-cd31cd11086c', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (12, -91, 'a74ea9c9-8e18-4d2a-8cf6-73c6206c5da6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (13, -92, '6c738306-4c17-4d88-b9bd-6546f3771597', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (14, -36, 'b6fb1622-afa5-4bbf-a3cc-d9672a442222', 'Date')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (15, -37, 'f8d60f68-ec59-4974-b43b-c46eb5677985', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (16, -38, 'cccd4ae9-f399-4ed2-8038-2e88d19e810c', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (17, -39, '928639ed-9c73-4028-920c-1e55dbb68783', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (18, -40, 'a52c7c1c-c330-476e-8605-d63d3b84b6a6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (19, -41, '23e93522-3200-44e2-9f29-e61a6fcbb79a', 'Date')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (20, -42, 'a74ea9c9-8e18-4d2a-8cf6-73c6206c5da6', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (21, -43, 'b4471851-82b6-4c75-afa4-39fa9c6a75e9', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (22, -44, 'a3776494-0574-4d93-b7de-efdfdec6f2d1', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (23, -128, 'a52c7c1c-c330-476e-8605-d63d3b84b6a6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (24, -129, '928639ed-9c73-4028-920c-1e55dbb68783', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (25, -130, 'a74ea9c9-8e18-4d2a-8cf6-73c6206c5da6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (26, -131, 'a74ea9c9-8e18-4d2a-8cf6-73c6206c5da6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (27, -132, 'a74ea9c9-8e18-4d2a-8cf6-73c6206c5da6', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (28, -133, '6c738306-4c17-4d88-b9bd-6546f3771597', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (29, -134, '928639ed-9c73-4028-920c-1e55dbb68783', 'Nvarchar')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (30, -50, 'aaf99bb2-dbbe-444d-a296-185076bf0484', 'Date')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (31, 1034, '158aa029-24ed-4948-939e-c3da209e5fba', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (32, 1035, 'ead69342-f06d-4253-83ac-28000225583b', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (33, 1036, '39f533e4-0551-4505-a64b-e0425c5ce775', 'Integer')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (35, 1038, '60b7dabf-99cd-41eb-b8e9-4d2e669bbde9', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (36, 1039, 'cdbf0b5d-5cb2-445f-bc12-fcaaec07cf2c', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (37, 1040, '71b8ad1a-8dc2-425c-b6b8-faa158075e63', 'Ntext')
|INSERT INTO [cmsDataType] ([pk], [nodeId], [controlId], [dbType]) VALUES (38, 1041, '4023e540-92f5-11dd-ad8b-0800200c9a66', 'Ntext')
|SET IDENTITY_INSERT [cmsDataType] OFF
;
ALTER TABLE [cmsTemplate] ADD CONSTRAINT [FK_cmsTemplate_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsPropertyType] ADD CONSTRAINT [FK_cmsPropertyType_cmsTab] FOREIGN KEY ([tabId]) REFERENCES [cmsTab] ([id])
;
ALTER TABLE [cmsContent] ADD CONSTRAINT [FK_cmsContent_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsMacroProperty] ADD CONSTRAINT [FK_umbracoMacroProperty_umbracoMacroPropertyType] FOREIGN KEY ([macroPropertyType]) REFERENCES [cmsMacroPropertyType] ([id])
;
ALTER TABLE [umbracoAppTree] ADD CONSTRAINT [FK_umbracoAppTree_umbracoApp] FOREIGN KEY ([appAlias]) REFERENCES [umbracoApp] ([appAlias])
;
ALTER TABLE [umbracoUser2app] ADD CONSTRAINT [FK_umbracoUser2app_umbracoApp] FOREIGN KEY ([app]) REFERENCES [umbracoApp] ([appAlias])
;
ALTER TABLE [umbracoUser2app] ADD CONSTRAINT [FK_umbracoUser2app_umbracoUser] FOREIGN KEY ([user]) REFERENCES [umbracoUser] ([id])
;
ALTER TABLE [cmsPropertyData] ADD CONSTRAINT [FK_cmsPropertyData_umbracoNode] FOREIGN KEY ([contentNodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [umbracoUser] ADD CONSTRAINT [FK_user_userType] FOREIGN KEY ([userType]) REFERENCES [umbracoUserType] ([id])
;
ALTER TABLE [cmsContentType] ADD CONSTRAINT [FK_cmsContentType_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [cmsDocument] ADD CONSTRAINT [FK_cmsDocument_umbracoNode] FOREIGN KEY ([nodeId]) REFERENCES [umbracoNode] ([id])
;
ALTER TABLE [umbracoNode] ADD CONSTRAINT [FK_umbracoNode_umbracoNode] FOREIGN KEY ([parentID]) REFERENCES [umbracoNode] ([id])
;
!!!set identity_insert umbracoNode on
|insert into umbracoNode (id, trashed, parentID, nodeUser, level, path, sortOrder, uniqueID, text, nodeObjectType) values (-20, 0, -1, 0, 0, '-1,-20', 0, '0F582A79-1E41-4CF0-BFA0-76340651891A', 'Recycle Bin', '01BB7FF2-24DC-4C0C-95A2-C24EF72BBAC8')
|set identity_insert umbracoNode off
;
ALTER TABLE cmsDataTypePreValues ALTER COLUMN value NVARCHAR(2500) NULL
;
CREATE TABLE [cmsTask]
(
[closed] [bit] NOT NULL CONSTRAINT [DF__cmsTask__closed__04E4BC85] DEFAULT ((0)),
[id] [int] NOT NULL IDENTITY(1, 1),
[taskTypeId] [int] NOT NULL,
[nodeId] [int] NOT NULL,
[parentUserId] [int] NOT NULL,
[userId] [int] NOT NULL,
[DateTime] [datetime] NOT NULL CONSTRAINT [DF__cmsTask__DateTim__05D8E0BE] DEFAULT (getdate()),
[Comment] [nvarchar] (500) NULL
)
;
ALTER TABLE [cmsTask] ADD CONSTRAINT [PK_cmsTask] PRIMARY KEY ([id])
;
CREATE TABLE [cmsTaskType]
(
[id] [int] NOT NULL IDENTITY(1, 1),
[alias] [nvarchar] (255) NOT NULL
)
;
ALTER TABLE [cmsTaskType] ADD CONSTRAINT [PK_cmsTaskType] PRIMARY KEY ([id])
;
ALTER TABLE [cmsTask] ADD
CONSTRAINT [FK_cmsTask_cmsTaskType] FOREIGN KEY ([taskTypeId]) REFERENCES [cmsTaskType] ([id])
;
insert into cmsTaskType (alias) values ('toTranslate')
;
/* Add send to translate actions to admins and editors */
update umbracoUserType set userTypeDefaultPermissions = userTypeDefaultPermissions + '5' where userTypeAlias in ('editor','admin')
;
/* Add translator usertype */
;
insert into umbracoRelationType (dual, parentObjectType, childObjectType, name, alias) values (1, 'c66ba18e-eaf3-4cff-8a22-41b16d66a972', 'c66ba18e-eaf3-4cff-8a22-41b16d66a972', 'Relate Document On Copy','relateDocumentOnCopy')
;
ALTER TABLE cmsMacro ADD macroPython nvarchar(255)
;
INSERT INTO [umbracoAppTree]([treeSilent], [treeInitialize], [treeSortOrder], [appAlias], [treeAlias], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES(0, 1, 4, 'developer', 'python', 'Python Files', 'folder.gif', 'folder_o.gif', 'umbraco', 'loadPython')
;
INSERT INTO [umbracoAppTree]([treeSilent], [treeInitialize], [treeSortOrder], [appAlias], [treeAlias], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES(0, 1, 2, 'settings', 'scripts', 'Scripts', 'folder.gif', 'folder_o.gif', 'umbraco', 'loadScripts')
;
alter TABLE [cmsContentType]
add [thumbnail] nvarchar(255) NOT NULL CONSTRAINT
[DF_cmsContentType_thumbnail] DEFAULT ('folder.png')
;
alter TABLE [cmsContentType]
add [description] nvarchar(1500) NULL
;
ALTER TABLE umbracoLog ALTER COLUMN logComment NVARCHAR(4000) NULL
;
!!!SET IDENTITY_INSERT [cmsDataTypePreValues] ON
|insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias) values (3,-87,',code,undo,redo,cut,copy,mcepasteword,stylepicker,bold,italic,bullist,numlist,outdent,indent,mcelink,unlink,mceinsertanchor,mceimage,umbracomacro,mceinserttable,mcecharmap,' + nchar(124) + '1' + nchar(124) + '1,2,3,' + nchar(124) + '0' + nchar(124) + '500,400' + nchar(124) + '1049,' + nchar(124) + '', 0, '')
|insert into cmsDataTypePreValues (id, dataTypeNodeId, [value], sortorder, alias) values (4,1041,'default', 0, 'group')
|SET IDENTITY_INSERT [cmsDataTypePreValues] OFF
;
/* 3.1 SQL changes */
INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'packager', 0, 1, 3, N'Packages', N'folder.gif', N'folder_o.gif', N'umbraco', N'loadPackager')
;
INSERT INTO [umbracoAppTree] ([appAlias], [treeAlias], [treeSilent], [treeInitialize], [treeSortOrder], [treeTitle], [treeIconClosed], [treeIconOpen], [treeHandlerAssembly], [treeHandlerType]) VALUES (N'developer', N'packagerPackages', 0, 0, 1, N'Packager Packages', N'folder.gif', N'folder_o.gif', N'umbraco', N'loadPackages');
/* Add ActionBrowse as a default permission to all user types that have ActionUpdate */
UPDATE umbracoUserType SET userTypeDefaultPermissions = userTypeDefaultPermissions + 'F' WHERE CHARINDEX('A',userTypeDefaultPermissions,0) >= 1
AND CHARINDEX('F',userTypeDefaultPermissions,0) < 1
;
/* Add ActionToPublish to all users types that have the alias 'writer' */
UPDATE umbracoUserType SET userTypeDefaultPermissions = userTypeDefaultPermissions + 'H' WHERE userTypeAlias = 'writer'
AND CHARINDEX('F',userTypeDefaultPermissions,0) < 1
;
/* Add ActionBrowse to all user permissions for nodes that have the ActionUpdate permission */
INSERT INTO umbracoUser2NodePermission (userID, nodeId, permission)
SELECT userID, nodeId, 'F' FROM umbracoUser2NodePermission WHERE permission='A'
;
/* Add ActionToPublish permissions to all nodes for users that are of type 'writer' */
INSERT INTO umbracoUser2NodePermission (userID, nodeId, permission)
SELECT DISTINCT userID, nodeId, 'H' FROM umbracoUser2NodePermission WHERE userId IN
(SELECT umbracoUser.id FROM umbracoUserType INNER JOIN umbracoUser ON umbracoUserType.id = umbracoUser.userType WHERE (umbracoUserType.userTypeAlias = 'writer'))
;
/* Add the contentRecycleBin tree type */
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 0, 0, 'content', 'contentRecycleBin', 'RecycleBin', 'folder.gif', 'folder_o.gif', 'umbraco', 'cms.presentation.Trees.ContentRecycleBin')
;
/* Add the UserType tree type */
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 1, 'users', 'userTypes', 'User Types', 'folder.gif', 'folder_o.gif', 'umbraco', 'cms.presentation.Trees.UserTypes')
;
/* Add the User Permission tree type */
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 2, 'users', 'userPermissions', 'User Permissions', 'folder.gif', 'folder_o.gif', 'umbraco', 'cms.presentation.Trees.UserPermissions');
/* TRANSLATION RELATED SQL */
INSERT INTO [umbracoApp] ([appAlias], [sortOrder], [appIcon], [appName], [appInitWithTreeAlias]) VALUES (N'translation', 5, N'.traytranslation', N'Translation', NULL)
;
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 1, 'translation','openTasks', 'Tasks assigned to you', '.sprTreeFolder', '.sprTreeFolder_o', 'umbraco', 'loadOpenTasks');
;
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 1, 2, 'translation','yourTasks', 'Tasks created by you', '.sprTreeFolder', '.sprTreeFolder_o', 'umbraco', 'loadYourTasks');
;
alter TABLE [cmsContentType]
add [masterContentType] int NULL CONSTRAINT
[DF_cmsContentType_masterContentType] DEFAULT (0)
;
CREATE TABLE [cmsTagRelationship](
[nodeId] [int] NOT NULL,
[tagId] [int] NOT NULL)
;
CREATE TABLE [cmsTags](
[id] [int] IDENTITY(1,1) NOT NULL,
[tag] [nvarchar](200) NULL,
[parentId] [int] NULL,
[group] [nvarchar](100) NULL)
;
alter TABLE [umbracoUser]
add [defaultToLiveEditing] bit NOT NULL CONSTRAINT
[DF_umbracoUser_defaultToLiveEditing] DEFAULT (0)
;
/* INSERT NEW MEDIA RECYCLE BIN NODE */
!!!SET IDENTITY_INSERT [umbracoNode] ON
|INSERT INTO umbracoNode (id, trashed, parentID, nodeUser, level, path, sortOrder, uniqueID, text, nodeObjectType) VALUES (-21, 0, -1, 0, 0, '-1,-21', 0, 'BF7C7CBC-952F-4518-97A2-69E9C7B33842', 'Recycle Bin', 'CF3D8E34-1C1C-41e9-AE56-878B57B32113')
|SET IDENTITY_INSERT [umbracoNode] OFF
;
/* Add the mediaRecycleBin tree type */
INSERT INTO umbracoAppTree (treeSilent, treeInitialize, treeSortOrder, appAlias, treeAlias, treeTitle, treeIconClosed, treeIconOpen, treeHandlerAssembly, treeHandlerType)
VALUES (0, 0, 0, 'media', 'mediaRecycleBin', 'RecycleBin', 'folder.gif', 'folder_o.gif', 'umbraco', 'cms.presentation.Trees.MediaRecycleBin')
;
/* PREVIEW */
CREATE TABLE [cmsPreviewXml](
[nodeId] [int] NOT NULL,
[versionId] [uniqueidentifier] NOT NULL,
[timestamp] [datetime] NOT NULL,
[xml] [ntext] NOT NULL)
;
/***********************************************************************************************************************
ADD NEW PRIMARY KEYS, FOREIGN KEYS AND INDEXES FOR VERSION 4.1
IMPORTANT!!!!!
YOU MUST MAKE SURE THAT THE SCRIPT BELOW THIS MATCHES THE KeysIndexesAndConstraints.sql FILE FOR THE MANUAL UPGRADE
*/
/************************** CLEANUP ***********************************************/
/************************** CLEANUP END ********************************************/
/************************** RESEEDING NEEDED FOR SQL CE 4 ************************/
ALTER TABLE [umbracoNode] ALTER COLUMN id IDENTITY(1042,1)
;
ALTER TABLE [cmsContentType] ALTER COLUMN pk IDENTITY(535,1)
;
ALTER TABLE [umbracoUser] ALTER COLUMN id IDENTITY(1,1)
;
ALTER TABLE [umbracoUserType] ALTER COLUMN id IDENTITY(5,1)
;
ALTER TABLE [cmsMacroPropertyType] ALTER COLUMN id IDENTITY(26,1)
;
ALTER TABLE [cmsTab] ALTER COLUMN id IDENTITY(6,1)
;
ALTER TABLE [cmsPropertyType] ALTER COLUMN id IDENTITY(28,1)
;
ALTER TABLE [umbracoLanguage] ALTER COLUMN id IDENTITY(2,1)
;
ALTER TABLE [cmsDataType] ALTER COLUMN pk IDENTITY(39,1)
;
ALTER TABLE [cmsDataTypePreValues] ALTER COLUMN id IDENTITY(5,1)
@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5BA5425F-27A7-4677-865E-82246498AA2E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SQLCE4Umbraco</RootNamespace>
<AssemblyName>SQLCE4Umbraco</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\foreign dlls\SQLCE4\System.Data.SqlServerCe.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>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SqlCeApplicationBlock.cs" />
<Compile Include="SqlCEDataReader.cs" />
<Compile Include="SqlCEHelper.cs" />
<Compile Include="SqlCEInstaller.cs" />
<Compile Include="SqlCEParameter.cs" />
<Compile Include="SqlCeProviderException.cs" />
<Compile Include="SqlCEResources1.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>SqlCEResources.resx</DependentUpon>
</Compile>
<Compile Include="SqlCETableUtility.cs" />
<Compile Include="SqlCEUtility.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Sql\Total.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="SqlCEResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>SqlCEResources1.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\umbraco\datalayer\umbraco.datalayer.csproj">
<Project>{C7CB79F0-1C97-4B33-BFA7-00731B579AE2}</Project>
<Name>umbraco.datalayer</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</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.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1,10 @@
""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
}
@@ -0,0 +1,44 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System.Data.SqlServerCe;
using umbraco.DataLayer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Class that adapts a SqlDataReader.SqlDataReader to a RecordsReaderAdapter.
/// </summary>
public class SqlCeDataReaderHelper : RecordsReaderAdapter<SqlCeDataReader>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlServerDataReader"/> class.
/// </summary>
/// <param name="dataReader">The data reader.</param>
public SqlCeDataReaderHelper(System.Data.SqlServerCe.SqlCeDataReader dataReader) : base(dataReader) { }
#endregion
#region RecordsReaderAdapter Members
/// <summary>
/// Gets a value indicating whether this instance has records.
/// </summary>
/// <value>
/// <c>true</c> if this instance has records; otherwise, <c>false</c>.
/// </value>
public override bool HasRecords
{
get { return DataReader.HasRows; }
}
#endregion
}
}
+99
View File
@@ -0,0 +1,99 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Data;
using System.Data.SqlServerCe;
using System.Xml;
using System.Diagnostics;
using umbraco.DataLayer;
using umbraco.DataLayer.SqlHelpers.SqlServer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Sql Helper for an SQL Server database.
/// </summary>
public class SqlCEHelper : SqlHelper<SqlCeParameter>
{
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEHelper"/> class.
/// </summary>
/// <param name="connectionString">The connection string.</param>
public SqlCEHelper(string connectionString) : base(connectionString)
{
m_Utility = new SqlCEUtility(this);
}
/// <summary>
/// Creates a new parameter for use with this specific implementation of ISqlHelper.
/// </summary>
/// <param name="parameterName">Name of the parameter.</param>
/// <param name="value">Value of the parameter.</param>
/// <returns>A new parameter of the correct type.</returns>
/// <remarks>Abstract factory pattern</remarks>
public override IParameter CreateParameter(string parameterName, object value)
{
return new SqlCEParameter(parameterName, value);
}
/// <summary>
/// Executes a command that returns a single value.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>The return value of the command.</returns>
protected override object ExecuteScalar(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteScalar: " + commandText);
#endif
return SqlCeApplicationBlock.ExecuteScalar(ConnectionString, CommandType.Text, commandText, parameters);
}
/// <summary>
/// Executes a command and returns the number of rows affected.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>
/// The number of rows affected by the command.
/// </returns>
protected override int ExecuteNonQuery(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteNonQuery: " + commandText);
#endif
return SqlCeApplicationBlock.ExecuteNonQuery(ConnectionString, CommandType.Text, commandText, parameters);
}
/// <summary>
/// Executes a command and returns a records reader containing the results.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>
/// A data reader containing the results of the command.
/// </returns>
protected override IRecordsReader ExecuteReader(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteReader: " + commandText);
#endif
return new SqlCeDataReaderHelper(SqlCeApplicationBlock.ExecuteReader(ConnectionString, CommandType.Text,
commandText, parameters));
}
}
}
+128
View File
@@ -0,0 +1,128 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Resources;
using umbraco.DataLayer.Utility.Installer;
using System.Diagnostics;
namespace SqlCE4Umbraco
{
/// <summary>
/// Database installer for an SQL Server data source.
/// </summary>
public class SqlCEInstaller : DefaultInstallerUtility<SqlCEHelper>
{
#region Private Constants
/// <summary>The latest database version this installer supports.</summary>
private const DatabaseVersion LatestVersionSupported = DatabaseVersion.Version4_1;
/// <summary>The specifications to determine the database version.</summary>
private static readonly VersionSpecs[] m_VersionSpecs = new VersionSpecs[] {
new VersionSpecs("id","umbracoNode", "-21", DatabaseVersion.Version4_1),
new VersionSpecs("action","umbracoAppTree",DatabaseVersion.Version4),
new VersionSpecs("description","cmsContentType",DatabaseVersion.Version3),
new VersionSpecs("id","sysobjects",DatabaseVersion.None) };
#endregion
#region Public Properties
/// <summary>
/// Gets a value indicating whether the installer can upgrade the data source.
/// </summary>
/// <value>
/// <c>true</c> if the installer can upgrade the data source; otherwise, <c>false</c>.
/// </value>
/// <remarks>Empty data sources can't be upgraded, just installed.</remarks>
public override bool CanUpgrade
{
get
{
return false;
}
}
#endregion
#region Protected Properties
/// <summary>
/// Gets the version specification for evaluation by DetermineCurrentVersion.
/// Only first matching specification is taken into account.
/// </summary>
/// <value>The version specifications.</value>
protected override VersionSpecs[] VersionSpecs
{
get { return m_VersionSpecs; }
}
#endregion
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEInstaller"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCEInstaller(SqlCEHelper sqlHelper) : base(sqlHelper, LatestVersionSupported)
{ }
#endregion
#region DefaultInstaller Members
/// <summary>
/// Returns the sql to do a full install
/// </summary>
protected override string FullInstallSql
{
get { return SqlCEResources.Total; }
}
/// <summary>
/// Returns the sql to do an upgrade
/// </summary>
protected override string UpgradeSql
{
get
{
string upgradeFile = string.Format("{0}_Upgrade", CurrentVersion.ToString());
return SqlCEResources.ResourceManager.GetString(upgradeFile);
}
}
// We need to override this as the default way of detection a db connection checks for systables that doesn't exist
// in a CE db
protected override DatabaseVersion DetermineCurrentVersion()
{
DatabaseVersion version = base.DetermineCurrentVersion();
if (version != DatabaseVersion.Unavailable)
{
return version;
}
// verify connection
try
{
if (SqlCeApplicationBlock.VerifyConnection(base.SqlHelper.ConnectionString))
return DatabaseVersion.None;
}
catch (Exception e)
{
Trace.WriteLine(e.ToString());
}
return DatabaseVersion.Unavailable;
}
#endregion
}
}
@@ -0,0 +1,34 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Data.SqlServerCe;
using System.Data.SqlTypes;
using umbraco.DataLayer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Parameter class for the SqlCEHelper.
/// </summary>
public class SqlCEParameter : SqlParameterAdapter<SqlCeParameter>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEParameter"/> class.
/// </summary>
/// <param name="parameterName">Name of the parameter.</param>
/// <param name="value">Value of the parameter.</param>
public SqlCEParameter(string parameterName, object value)
: base(new SqlCeParameter(parameterName, value))
{ }
#endregion
}
}
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Total" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>sql\total.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
</root>
+88
View File
@@ -0,0 +1,88 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace SqlCE4Umbraco {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class SqlCEResources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal SqlCEResources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SQLCE4Umbraco.SqlCEResources", typeof(SqlCEResources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to /*******************************************************************************************
///
///
///
///
///
///
///
/// Umbraco database installation script for SQL Server
///
///IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
///
/// Database version: 4.1.0.0
///
/// Please increment this version number if ANY change is made to this script,
/// so compatibility with scripts for other database systems can be verified easily.
/// The first 3 digits depict the Umbraco versi [rest of string was truncated]&quot;;.
/// </summary>
internal static string Total {
get {
return ResourceManager.GetString("Total", resourceCulture);
}
}
}
}
@@ -0,0 +1,243 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using umbraco.DataLayer.Utility.Table;
using umbraco.DataLayer;
using umbraco;
namespace SqlCE4Umbraco
{
/// <summary>
/// SQL Server implementation of <see cref="DefaultTableUtility&lt;S&gt;"/>.
/// </summary>
public class SqlCETableUtility : DefaultTableUtility<SqlCEHelper>
{
/// <summary>
/// Initializes a new instance of the <see cref="SqlCETableUtility"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCETableUtility(SqlCEHelper sqlHelper)
: base(sqlHelper)
{ }
#region DefaultTableUtility<SqlCEHelper> members
/// <summary>
/// Gets the table with the specified name.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>The table, or <c>null</c> if no table with that name exists.</returns>
public override ITable GetTable(string name)
{
if (name == null)
throw new ArgumentNullException("name");
ITable table = null;
// get name in correct casing
name = SqlHelper.ExecuteScalar<string>("SELECT name FROM sys.tables WHERE name=@name",
SqlHelper.CreateParameter("name", name));
if (name != null)
{
table = new DefaultTable(name);
using (IRecordsReader reader = SqlHelper.ExecuteReader(
@"SELECT c.name AS Name, st.name AS DataType, c.max_length, c.is_nullable, c.is_identity
FROM sys.tables AS t
JOIN sys.columns AS c ON t.object_id = c.object_id
JOIN sys.schemas AS s ON s.schema_id = t.schema_id
JOIN sys.types AS ty ON ty.user_type_id = c.user_type_id
JOIN sys.types st ON ty.system_type_id = st.user_type_id
WHERE t.name = @name
ORDER BY c.column_id", SqlHelper.CreateParameter("name", name)))
{
while (reader.Read())
{
table.AddField(table.CreateField(reader.GetString("Name"), GetType(reader)));
}
}
}
return table;
}
/// <summary>
/// Saves or updates the table.
/// </summary>
/// <param name="table">The table to be saved.</param>
public override void SaveTable(ITable table)
{
if (table == null)
throw new ArgumentNullException("table");
ITable oldTable = GetTable(table.Name);
// create the table if it didn't exist, update fields otherwise
if (oldTable == null)
{
CreateTable(table);
}
else
{
foreach (IField field in table)
{
// create the field if it did't exist in the old table
if (oldTable.FindField(field.Name)==null)
{
CreateColumn(table, field);
}
}
}
}
#endregion
#region Protected Helper Methods
/// <summary>
/// Creates the table in the data source.
/// </summary>
/// <param name="table">The table.</param>
protected virtual void CreateTable(ITable table)
{
Debug.Assert(table != null);
// create enumerator and check for first field
IEnumerator<IField> fieldEnumerator = table.GetEnumerator();
bool hasNext = fieldEnumerator.MoveNext();
if(!hasNext)
throw new ArgumentException("The table must contain at least one field.");
// create query
StringBuilder createTableQuery = new StringBuilder();
createTableQuery.AppendFormat("CREATE TABLE [{0}] (", SqlHelper.EscapeString(table.Name));
// add fields
while (hasNext)
{
// add field name and type
IField field = fieldEnumerator.Current;
createTableQuery.Append('[').Append(field.Name).Append(']');
createTableQuery.Append(' ').Append(GetDatabaseType(field));
// append comma if a following field exists
hasNext = fieldEnumerator.MoveNext();
if (hasNext)
{
createTableQuery.Append(',');
}
}
// close CREATE TABLE x (...) bracket
createTableQuery.Append(')');
// execute query
try
{
SqlHelper.ExecuteNonQuery(createTableQuery.ToString());
}
catch (Exception executeException)
{
throw new UmbracoException(String.Format("Could not create table '{0}'.", table), executeException);
}
}
/// <summary>
/// Creates a new column in the table.
/// </summary>
/// <param name="table">The table.</param>
/// <param name="field">The field used to create the column.</param>
protected virtual void CreateColumn(ITable table, IField field)
{
Debug.Assert(table != null && field != null);
StringBuilder addColumnQuery = new StringBuilder();
addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}",
SqlHelper.EscapeString(table.Name),
SqlHelper.EscapeString(field.Name),
SqlHelper.EscapeString(GetDatabaseType(field)));
try
{
SqlHelper.ExecuteNonQuery(addColumnQuery.ToString());
}
catch (Exception executeException)
{
throw new UmbracoException(String.Format("Could not create column '{0}' in table '{1}'.",
field, table.Name), executeException);
}
}
/// <summary>
/// Gets the .Net type corresponding to the specified database data type.
/// </summary>
/// <param name="dataTypeReader">The data type reader.</param>
/// <returns>The .Net type</returns>
protected virtual Type GetType(IRecordsReader dataTypeReader)
{
string typeName = dataTypeReader.GetString("DataType");
switch (typeName)
{
case "bit": return typeof(bool);
case "tinyint": return typeof(byte);
case "datetime": return typeof(DateTime);
// TODO: return different decimal type according to field precision
case "decimal": return typeof(decimal);
case "uniqueidentifier": return typeof(Guid);
case "smallint": return typeof(Int16);
case "int": return typeof(Int32);
case "bigint": return typeof(Int64);
case "nvarchar": return typeof(string);
default:
throw new ArgumentException(String.Format("Cannot convert database type '{0}' to a .Net type.",
typeName));
}
}
/// <summary>
/// Gets the database type corresponding to the field, complete with field properties.
/// </summary>
/// <param name="field">The field.</param>
/// <returns>The database type.</returns>
protected virtual string GetDatabaseType(IField field)
{
StringBuilder fieldBuilder = new StringBuilder();
fieldBuilder.Append(GetDatabaseTypeName(field));
fieldBuilder.Append(field.HasProperty(FieldProperties.Identity) ? " IDENTITY(1,1)" : String.Empty);
fieldBuilder.Append(field.HasProperty(FieldProperties.NotNull) ? " NOT NULL" : " NULL");
return fieldBuilder.ToString();
}
/// <summary>
/// Gets the name of the database type, without field properties.
/// </summary>
/// <param name="field">The field.</param>
/// <returns></returns>
protected virtual string GetDatabaseTypeName(IField field)
{
switch (field.DataType.FullName)
{
case "System.Boolean": return "bit";
case "System.Byte": return "tinyint";
case "System.DateTime": return "datetime";
case "System.Decimal": return "decimal(28)";
case "System.Double": return "decimal(15)";
case "System.Single": return "decimal(7)";
case "System.Guid": return "uniqueidentifier";
case "System.Int16": return "smallint";
case "System.Int32": return "int";
case "System.Int64": return "bigint";;
case "System.String":
string type = "nvarchar";
return field.Size == 0 ? type : String.Format("{0}({1})", type, field.Size);
default:
throw new ArgumentException(String.Format("Cannot convert '{0}' to a database type.", field));
}
}
#endregion
}
}
+53
View File
@@ -0,0 +1,53 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using umbraco.DataLayer.Utility;
using umbraco.DataLayer.Utility.Installer;
using umbraco.DataLayer.Utility.Table;
namespace SqlCE4Umbraco
{
/// <summary>
/// Utility for an SQL Server data source.
/// </summary>
public class SqlCEUtility : DefaultUtility<SqlCEHelper>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlServerUtility"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCEUtility(SqlCEHelper sqlHelper) : base(sqlHelper)
{ }
#endregion
#region DefaultUtility Members
/// <summary>
/// Creates an installer.
/// </summary>
/// <returns>The SQL Server installer.</returns>
public override IInstallerUtility CreateInstaller()
{
return new SqlCEInstaller(SqlHelper);
}
/// <summary>
/// Creates a table utility.
/// </summary>
/// <returns>The table utility</returns>
public override ITableUtility CreateTableUtility()
{
return new SqlCETableUtility(SqlHelper);
}
#endregion
}
}
@@ -0,0 +1,196 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlServerCe;
using System.Data;
using System.Diagnostics;
namespace SqlCE4Umbraco
{
public class SqlCeApplicationBlock
{
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static object ExecuteScalar(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
object retVal;
try
{
using (SqlCeConnection conn = new SqlCeConnection())
{
conn.ConnectionString = connectionString;
conn.Open();
using (SqlCeCommand cmd = new SqlCeCommand(commandText, conn))
{
AttachParameters(cmd, commandParameters);
Debug.WriteLine("---------------------------------SCALAR-------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
retVal = cmd.ExecuteScalar();
}
}
return retVal;
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Scalar: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
public static int ExecuteNonQuery(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
int rowsAffected;
using (SqlCeConnection conn = new SqlCeConnection())
{
// this is for multiple queries in the installer
if (commandText.Trim().StartsWith("!!!"))
{
commandText = commandText.Trim().Trim('!');
string[] commands = commandText.Split('|');
string currentCmd = String.Empty;
conn.ConnectionString = connectionString;
conn.Open();
foreach (string cmd in commands)
{
try
{
currentCmd = cmd;
if (!String.IsNullOrWhiteSpace(cmd))
{
SqlCeCommand c = new SqlCeCommand(cmd, conn);
c.ExecuteNonQuery();
}
}
catch (Exception e)
{
Debug.WriteLine("*******************************************************************");
Debug.WriteLine(currentCmd);
Debug.WriteLine(e);
Debug.WriteLine("*******************************************************************");
}
}
return 1;
}
else
{
Debug.WriteLine("----------------------------------------------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
conn.ConnectionString = connectionString;
conn.Open();
SqlCeCommand cmd = new SqlCeCommand(commandText, conn);
AttachParameters(cmd, commandParameters);
rowsAffected = cmd.ExecuteNonQuery();
}
}
return rowsAffected;
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running NonQuery: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static SqlCeDataReader ExecuteReader(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
Debug.WriteLine("---------------------------------READER-------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
SqlCeDataReader reader;
SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = connectionString;
conn.Open();
try
{
SqlCeCommand cmd = new SqlCeCommand(commandText, conn);
AttachParameters(cmd, commandParameters);
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
conn.Close();
throw;
}
return reader;
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Reader: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
public static bool VerifyConnection(string connectionString)
{
bool isConnected = false;
using (SqlCeConnection conn = new SqlCeConnection())
{
conn.ConnectionString = connectionString;
conn.Open();
isConnected = conn.State == ConnectionState.Open;
}
return isConnected;
}
private static void AttachParameters(SqlCeCommand command, SqlCeParameter[] commandParameters)
{
foreach (SqlCeParameter parameter in commandParameters)
{
if ((parameter.Direction == ParameterDirection.InputOutput) && (parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
command.Parameters.Add(parameter);
}
}
}
}
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SqlCE4Umbraco
{
public class SqlCeProviderException : Exception
{
public SqlCeProviderException() : base()
{
}
public SqlCeProviderException(string message) : base(message)
{
}
}
}
@@ -5,7 +5,12 @@ using System.Web.UI.WebControls;
using umbraco.BusinessLogic;
using umbraco.DataLayer;
using System.Collections.Generic;
using System.Web.UI.HtmlControls;
[assembly: System.Web.UI.WebResource("umbraco.editorControls.KeyValuePrevalueEditor.js", "text/js")]
[assembly: System.Web.UI.WebResource("umbraco.editorControls.KeyValuePrevalueEditor.css", "text/css")]
namespace umbraco.editorControls
{
/// <summary>
@@ -17,6 +22,7 @@ namespace umbraco.editorControls
// UI controls
public System.Web.UI.WebControls.DropDownList _dropdownlist;
public TextBox _textbox;
private TextBox _tbhidden;
public umbraco.uicontrols.PropertyPanel pp1 = new umbraco.uicontrols.PropertyPanel();
public umbraco.uicontrols.PropertyPanel pp2 = new umbraco.uicontrols.PropertyPanel();
@@ -56,10 +62,15 @@ namespace umbraco.editorControls
_textbox = new TextBox();
_textbox.ID = "AddValue";
_tbhidden = new TextBox();
_tbhidden.Attributes.Add("style", "display:none;");
_tbhidden.CssClass = "valuesHiddenInput";
// put the childcontrols in context - ensuring that
// the viewstate is persisted etc.
this.Controls.Add(_dropdownlist);
this.Controls.Add(_textbox);
this.Controls.Add(_tbhidden);
_dropdownlist.Items.Add(DBTypes.Date.ToString());
_dropdownlist.Items.Add(DBTypes.Integer.ToString());
@@ -70,6 +81,22 @@ namespace umbraco.editorControls
protected override void OnInit(EventArgs e) {
base.OnInit(e);
System.Web.UI.Page page = (System.Web.UI.Page)System.Web.HttpContext.Current.Handler;
page.ClientScript.RegisterClientScriptInclude(
"umbraco.editorControls.KeyValuePrevalueEditor.js",
page.ClientScript.GetWebResourceUrl(typeof(KeyValuePrevalueEditor), "umbraco.editorControls.KeyValuePrevalueEditor.js"));
HtmlHead head = (HtmlHead)page.Header;
HtmlLink link = new HtmlLink();
link.Attributes.Add("href", page.ClientScript.GetWebResourceUrl(typeof(KeyValuePrevalueEditor), "umbraco.editorControls.KeyValuePrevalueEditor.css"));
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
head.Controls.Add(link);
}
protected override void OnLoad(EventArgs e)
@@ -96,13 +123,55 @@ namespace umbraco.editorControls
public void Save()
{
_datatype.DBType = (cms.businesslogic.datatype.DBTypes)Enum.Parse(typeof(cms.businesslogic.datatype.DBTypes), _dropdownlist.SelectedValue, true);
// If the add new prevalue textbox is filled out - add the value to the collection.
//changes in name and sortorder
if (!string.IsNullOrEmpty(_tbhidden.Text))
{
int so = 0;
foreach (string row in _tbhidden.Text.Split(';'))
{
if (!string.IsNullOrEmpty(row))
{
int id = 0;
if (row.Split('|').Length == 2 && int.TryParse(row.Split('|')[0], out id) && row.Split('|')[1].Length > 0)
{
IParameter[] SqlParams = new IParameter[] {
SqlHelper.CreateParameter("@value",row.Split('|')[1]),
SqlHelper.CreateParameter("@sortorder",so),
SqlHelper.CreateParameter("@id",id)};
SqlHelper.ExecuteNonQuery("update cmsDataTypePreValues set [value] = @value, sortorder = @sortorder where id = @id", SqlParams);
}
so++;
}
}
_tbhidden.Text = "";
}
// If the add new prevalue textbox is filled out - add the value to the collection.
if (_textbox.Text != "")
{
int so = -1;
try
{
so = SqlHelper.ExecuteScalar<int>("select max(sortorder) from cmsDataTypePreValues where datatypenodeid = @dtdefid",
SqlHelper.CreateParameter("@dtdefid", _datatype.DataTypeDefinitionId));
so++;
}
catch { }
IParameter[] SqlParams = new IParameter[] {
SqlHelper.CreateParameter("@value",_textbox.Text),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams);
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId),
SqlHelper.CreateParameter("@so",so)};
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,@so,'')",SqlParams);
_textbox.Text = "";
ScriptManager.GetCurrent(Page).SetFocus(_textbox);
@@ -115,13 +184,14 @@ namespace umbraco.editorControls
_dropdownlist.RenderControl(writer);
writer.Write("<br style='clear: both'/></div>");
SortedList _prevalues = Prevalues;
List<KeyValuePair<int, String>> _prevalues = PrevaluesAsKeyValuePairList;
if (_prevalues.Count > 0) {
writer.Write("<div class='propertyItem'><table style='width: 100%'>");
writer.Write("<tr><th style='width: 15%'>Text</th><td colspan='2'>Value</td></tr>");
writer.Write("<div class='propertyItem'><table style='width: 100%' id=\"prevalues\">");
writer.Write("<tr class='header'><th style='width: 15%'>Text</th><td colspan='2'>Value</td></tr>");
foreach (object key in _prevalues.Keys) {
writer.Write("<tr><td>" + _prevalues[key].ToString() + "</td><td> " + key + "</td><td><a href='?id=" + _datatype.DataTypeDefinitionId + "&delete=" + key.ToString() + "'>" + ui.Text("delete") + "</a></td></tr>");
foreach (KeyValuePair<int, String> item in _prevalues)
{
writer.Write("<tr class=\"row\"><td class=\"text\">" + item.Value + "</td><td class=\"value\"> " + item.Key.ToString() + "</td><td><a href='?id=" + _datatype.DataTypeDefinitionId + "&delete=" + item.Key.ToString() + "'>" + ui.Text("delete") + "</a> <span class=\"handle\" style=\"cursor:move\">sort<span></td></tr>");
}
writer.Write("</table><br style='clear: both'/></div>");
}
@@ -129,14 +199,16 @@ namespace umbraco.editorControls
writer.Write("<div class='propertyItem'><div class='propertyItemheader'>" + ui.Text("addPrevalue") + "</div>");
_textbox.RenderControl(writer);
writer.Write("<br style='clear: both'/></div>");
_tbhidden.RenderControl(writer);
}
public SortedList Prevalues {
get
{
SortedList retval = new SortedList();
IRecordsReader dr = SqlHelper.ExecuteReader(
"Select id, [value] from cmsDataTypePreValues where DataTypeNodeId = "
@@ -148,5 +220,23 @@ namespace umbraco.editorControls
return retval;
}
}
public List<KeyValuePair<int, String>> PrevaluesAsKeyValuePairList
{
get
{
List<KeyValuePair<int, String>> items = new List<KeyValuePair<int, String>>();
IRecordsReader dr = SqlHelper.ExecuteReader(
"Select id, [value] from cmsDataTypePreValues where DataTypeNodeId = "
+ _datatype.DataTypeDefinitionId + " order by sortorder");
while (dr.Read())
items.Add(new KeyValuePair<int, string>(dr.GetInt("id"), dr.GetString("value")));
dr.Close();
return items;
}
}
}
}
@@ -0,0 +1,7 @@
#prevalues .ui-sortable-helper
{
border: 2px dotted #ccc;
background-color: #EEE;
}
@@ -0,0 +1,117 @@
jQuery(document).ready(function () {
jQuery("#prevalues .text").valuesInlineEdit();
jQuery("#prevalues tbody").sortable({
items: "tr:not(.header)",
handle: '.handle',
update: function () {
ResetValues();
}
});
});
function ResetValues() {
var val = "";
jQuery("#prevalues .row").each(function () {
var text = jQuery(".text", this).html();
var value = jQuery(".value", this).html();
val += value + "|" + text + ";";
});
jQuery(".valuesHiddenInput").val(val);
}
//inline edit
(function ($) {
$.fn.valuesInlineEdit = function (options) {
options = $.extend({
hover: 'hover',
value: '',
save: '',
placeholder: 'Click to edit'
}, options);
return $.each(this, function () {
$.valuesInlineEdit(this, options);
});
}
$.valuesInlineEdit = function (obj, options) {
var self = $(obj),
placeholderHtml = '<span class="inlineEdit-placeholder">' + options.placeholder + '</span>';
self.value = function (newValue) {
if (arguments.length) {
self.data('value', $(newValue).hasClass('inlineEdit-placeholder') ? '' : newValue);
}
return self.data('value');
}
self.value($.trim(self.text()) || options.value);
self.bind('click', function (event) {
var $this = $(event.target);
if ($this.is(self[0].tagName) || $this.hasClass('inlineEdit-placeholder')) {
self
.html('<input type="text" value="' + self.value() + '">')
.find('input')
.bind('blur', function () {
if ($this.children('input').val().length > 0) {
try {
self.value($this.children('input').val());
} catch (err) { }
}
else {
self.value('Click to edit');
}
if (self.timer) {
window.clearTimeout(self.timer);
}
self.timer = window.setTimeout(function () {
self.html(self.value() || placeholderHtml);
self.removeClass(options.hover);
ResetValues();
}, 200);
})
.focus();
}
})
.hover(
function () {
$(this).addClass(options.hover);
},
function () {
$(this).removeClass(options.hover);
}
);
if (!self.value()) {
self.html($(placeholderHtml));
}
}
})(jQuery);
@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class CheckBox: DataEditorSettingType
{
private System.Web.UI.WebControls.CheckBox cb = new System.Web.UI.WebControls.CheckBox();
public override string Value
{
get
{
return cb.Checked.ToString();
}
set
{
if (value == true.ToString())
cb.Checked = true;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
cb.ID = sender.GetName();
return cb;
}
}
}
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class CheckBoxList : DataEditorSettingType
{
private System.Web.UI.WebControls.CheckBoxList cbl = new System.Web.UI.WebControls.CheckBoxList();
private string _val = string.Empty;
public override string Value
{
get
{
string retVal = string.Empty;
foreach (System.Web.UI.WebControls.ListItem item in cbl.Items)
{
if (item.Selected)
retVal += item.Value + ";";
}
return retVal;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
cbl.ID = sender.GetName();
cbl.Items.Clear();
foreach (string s in Prevalues)
{
System.Web.UI.WebControls.ListItem item = new System.Web.UI.WebControls.ListItem(s);
if(_val.Contains(s + ";"))
item.Selected = true;
cbl.Items.Add(item);
}
return cbl;
}
}
}
@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class DropDownList: DataEditorSettingType
{
private System.Web.UI.WebControls.DropDownList ddl = new System.Web.UI.WebControls.DropDownList();
private string _val = string.Empty;
public override string Value
{
get
{
return ddl.SelectedValue;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
ddl.ID = sender.GetName();
ddl.Items.Clear();
foreach (string s in Prevalues)
{
ddl.Items.Add(s);
}
ddl.SelectedValue = _val;
return ddl;
}
}
}
@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class ListBox : DataEditorSettingType
{
private System.Web.UI.WebControls.ListBox lb = new System.Web.UI.WebControls.ListBox();
private string _val = string.Empty;
public override string Value
{
get
{
return lb.SelectedValue;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
lb.ID = sender.GetName();
lb.CssClass = "guiInputStandardSize";
lb.Items.Clear();
foreach (string s in Prevalues)
{
lb.Items.Add(s);
}
lb.SelectedValue = _val;
return lb;
}
}
}
@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class ListBoxMultiple : DataEditorSettingType
{
private System.Web.UI.WebControls.ListBox lb = new System.Web.UI.WebControls.ListBox();
private string _val = string.Empty;
public override string Value
{
get
{
string retVal = string.Empty;
foreach (System.Web.UI.WebControls.ListItem item in lb.Items)
{
if (item.Selected)
retVal += item.Value + ";";
}
return retVal;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
lb.ID = sender.GetName();
lb.SelectionMode = System.Web.UI.WebControls.ListSelectionMode.Multiple;
lb.CssClass = "guiInputStandardSize";
lb.Items.Clear();
foreach (string s in Prevalues)
{
System.Web.UI.WebControls.ListItem item = new System.Web.UI.WebControls.ListItem(s);
if (_val.Contains(s + ";"))
item.Selected = true;
lb.Items.Add(item);
}
return lb;
}
}
}
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class Password : DataEditorSettingType
{
private TextBox tb = new TextBox();
public override string Value
{
get
{
return tb.Text;
}
set
{
tb.Text = value;
tb.Attributes["value"] = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
tb.ID = sender.GetName();
tb.TextMode = TextBoxMode.Password;
tb.CssClass = "guiInputText guiInputStandardSize";
return tb;
}
}
}
@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class BasePicker: DataEditorSettingType
{
public Guid ObjectGuid { get; set; }
private System.Web.UI.WebControls.DropDownList ddl = new System.Web.UI.WebControls.DropDownList();
private string _val = string.Empty;
public override string Value
{
get
{
return ddl.SelectedValue;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
ddl.ID = sender.GetName();
ddl.Items.Clear();
List<KeyValuePair<String, String>> items = new List<KeyValuePair<String, String>>();
if (ObjectGuid != Guid.Empty)
{
Guid[] guids = umbraco.cms.businesslogic.CMSNode.getAllUniquesFromObjectType(ObjectGuid);
foreach (Guid g in guids)
{
umbraco.cms.businesslogic.CMSNode node = new umbraco.cms.businesslogic.CMSNode(g);
items.Add(new KeyValuePair<string, string>(node.Id.ToString(), node.Text));
}
}
items.Sort(delegate(KeyValuePair<String, String> x, KeyValuePair<String, String> y) { return x.Value.CompareTo(y.Value); });
foreach (KeyValuePair<String, String> kv in items)
{
ddl.Items.Add(new System.Web.UI.WebControls.ListItem(kv.Value, kv.Key));
}
System.Web.UI.WebControls.ListItem li = new System.Web.UI.WebControls.ListItem("Choose...", "");
li.Selected = true;
ddl.Items.Insert(0, li);
ddl.SelectedValue = _val;
return ddl;
}
}
}
@@ -0,0 +1,180 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using umbraco.cms.businesslogic.datatype;
using System.Web.UI.WebControls;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class Content : DataEditorSettingType
{
private ContentPickerWithXpathOption cc = new ContentPickerWithXpathOption();
private string _val = string.Empty;
public override string Value
{
get
{
return cc.Value;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
cc.ShowXPath = false;
cc.ID = sender.GetName().Replace(" ", "_");
cc.Value = _val;
return cc;
}
}
public class ContentWithXpath : DataEditorSettingType
{
private ContentPickerWithXpathOption cc = new ContentPickerWithXpathOption();
private string _val = string.Empty;
public override string Value
{
get
{
return cc.Value;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
cc.ShowXPath = true;
cc.ID = sender.GetName().Replace(" ", "_");
cc.Value = _val;
return cc;
}
}
public class ContentPickerWithXpathOption : WebControl
{
private bool _showXPath = true;
public bool ShowXPath
{
get { return _showXPath; }
set { _showXPath = value; }
}
private umbraco.controls.ContentPicker cc;
private TextBox tb;
public ContentPickerWithXpathOption()
{
EnsureChildControls();
}
protected override void OnInit(EventArgs e)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "contentpickerxpath", @"
function showXpathTextbox(control)
{
$('.picker',$('#' + control)).hide();
$('.xpath',$('#' + control)).show();
}
function showContentPicker(control)
{
$('.xpath',$('#' + control)).hide();
$('.xpath input',$('#' + control)).val('');
$('.picker',$('#' + control)).show();
}
", true);
base.OnInit(e);
}
protected override void CreateChildControls()
{
cc = new umbraco.controls.ContentPicker();
this.Controls.Add(cc);
if (_showXPath)
{
tb = new TextBox();
tb.CssClass = "guiInputText guiInputStandardSize";
this.Controls.Add(tb);
}
}
protected override void RenderChildren(System.Web.UI.HtmlTextWriter writer)
{
writer.Write(string.Format("<div class=\"picker\"{0}>", tb.Text != string.Empty ? " style=\"display:none\"" : ""));
cc.RenderControl(writer);
if (_showXPath)
{
writer.Write(string.Format(
"&nbsp<a href=\"javascript:showXpathTextbox('{0}');\">Or enter Xpath</a>",
this.ClientID));
writer.Write("</div>");
writer.Write(string.Format("<div class=\"xpath\"{0}>", !(tb.Text != string.Empty) ? " style=\"display:none\"" : ""));
tb.RenderControl(writer);
writer.Write(string.Format(
"&nbsp;<a href=\"javascript:showContentPicker('{0}');\">Or pick node</a>",
this.ClientID));
}
writer.Write("</div>");
}
private string _val = string.Empty;
public string Value
{
get
{
if (_showXPath && tb.Text != string.Empty)
return tb.Text;
else
return cc.Text;
}
set
{
if (!string.IsNullOrEmpty(value))
{
_val = value;
int nodeId;
if (int.TryParse(_val, out nodeId))
cc.Text = _val;
else if (ShowXPath)
tb.Text = _val;
}
}
}
}
}
@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.uicontrols.DatePicker;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class Date: DataEditorSettingType
{
private DateTimePicker dp = new DateTimePicker();
private string _val = string.Empty;
public override string Value
{
get
{
return dp.DateTime.ToString();
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
dp.ShowTime = false;
dp.ID = sender.GetName().Replace(" ", "_");
if(!string.IsNullOrEmpty(_val))
dp.DateTime = Convert.ToDateTime(_val);
return dp;
}
}
}
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.uicontrols.DatePicker;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class DateWithTime : DataEditorSettingType
{
private DateTimePicker dp = new DateTimePicker();
private string _val = string.Empty;
public override string Value
{
get
{
return dp.DateTime.ToString();
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
dp.ShowTime = true;
dp.ID = sender.GetName().Replace(" ", "_");
if (!string.IsNullOrEmpty(_val))
dp.DateTime = Convert.ToDateTime(_val);
return dp;
}
}
}
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class DocumentType: BasePicker {
public DocumentType() {
ObjectGuid = new Guid("a2cb7800-f571-4787-9638-bc48539a0efb");
}
}
}
@@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.DataLayer;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class Field : DataEditorSettingType
{
private System.Web.UI.WebControls.DropDownList ddl = new System.Web.UI.WebControls.DropDownList();
private string _val = string.Empty;
public override string Value
{
get
{
return ddl.SelectedValue;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
ddl.ID = sender.GetName();
ddl.Items.Clear();
List<KeyValuePair<String, String>> items = new List<KeyValuePair<String, String>>();
string[] preValuesSource = { "@createDate", "@creatorName", "@level", "@nodeType", "@nodeTypeAlias", "@pageID", "@pageName", "@parentID", "@path", "@template", "@updateDate", "@writerID", "@writerName" };
string fieldSql = "select distinct alias from cmsPropertyType order by alias";
IRecordsReader dataTypes = umbraco.BusinessLogic.Application.SqlHelper.ExecuteReader(fieldSql);
ddl.DataTextField = "alias";
ddl.DataValueField = "alias";
ddl.DataSource = dataTypes;
ddl.DataBind();
foreach (string s in preValuesSource)
{
ddl.Items.Add(new System.Web.UI.WebControls.ListItem(s, s.Replace("@", "")));
}
System.Web.UI.WebControls.ListItem li = new System.Web.UI.WebControls.ListItem("Choose...", "");
li.Selected = true;
ddl.Items.Insert(0, li);
ddl.SelectedValue = _val;
return ddl;
}
}
}
@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class Media : DataEditorSettingType
{
private umbraco.controls.ContentPicker mp = new umbraco.controls.ContentPicker();
private string _val = string.Empty;
public override string Value
{
get
{
return mp.Value;
}
set
{
int output;
if (!string.IsNullOrEmpty(value) && int.TryParse(value, out output))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
mp.ID = sender.GetName().Replace(" ", "_");
mp.AppAlias = "media";
mp.TreeAlias = "media";
int output;
if (!string.IsNullOrEmpty(_val) && int.TryParse(_val, out output))
{
mp.Value = _val;
}
return mp;
}
}
}
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class MediaType : BasePicker
{
public MediaType()
{
ObjectGuid = new Guid("4ea4382b-2f5a-4c2b-9587-ae9b3cf3602e");
}
}
}
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class MemberGroup : BasePicker
{
public MemberGroup()
{
ObjectGuid = new Guid("366e63b9-880f-4e13-a61c-98069b029728");
}
}
}
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class MemberType : BasePicker
{
public MemberType()
{
ObjectGuid = new Guid("9b5416fb-e72f-45a9-a07b-5a9a2709ce43");
}
}
}
@@ -0,0 +1,88 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
using System.Web.UI.WebControls;
namespace umbraco.editorControls.SettingControls.Pickers
{
public class Path : DataEditorSettingType
{
private PathPicker pp = new PathPicker();
private string _val = string.Empty;
public override string Value
{
get
{
return pp.Value;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
pp.ID = sender.GetName().Replace(" ", "_");
pp.Value = _val;
return pp;
}
}
public class PathPicker : WebControl
{
private TextBox tb;
public PathPicker()
{
EnsureChildControls();
}
protected override void CreateChildControls()
{
tb = new TextBox();
tb.CssClass = "guiInputText guiInputStandardSize";
tb.ID = this.ID + "input";
this.Controls.Add(tb);
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
tb.RenderControl(writer);
writer.WriteLine(string.Format(" <a onclick=\"{0}\"href=\"javascript:void(0);\">Select</a>",
string.Format("javascript:UmbClientMgr.openModalWindow('developer/packages/directoryBrowser.aspx?target={0}', 'Choose a file or a folder', true, 400, 500, 0, 0); return false;", tb.ClientID)));
}
private string _val = string.Empty;
public string Value
{
get
{
return tb.Text;
}
set
{
if (!string.IsNullOrEmpty(value))
{
_val = value;
tb.Text = _val;
}
}
}
}
}
@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class RadioButtonList: DataEditorSettingType
{
private System.Web.UI.WebControls.RadioButtonList rbl = new System.Web.UI.WebControls.RadioButtonList();
private string _val = string.Empty;
public override string Value
{
get
{
return rbl.SelectedValue;
}
set
{
if (!string.IsNullOrEmpty(value))
_val = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
rbl.ID = sender.GetName();
rbl.Items.Clear();
foreach (string s in Prevalues)
{
rbl.Items.Add(s);
}
rbl.SelectedValue = _val;
return rbl;
}
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using umbraco.cms.businesslogic.datatype;
namespace umbraco.editorControls.SettingControls
{
public class TextArea : DataEditorSettingType
{
private TextBox tb = new TextBox();
public override string Value
{
get
{
return tb.Text;
}
set
{
tb.Text = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
tb.ID = sender.GetName();
tb.TextMode = TextBoxMode.MultiLine;
tb.CssClass = "guiInputText guiInputStandardSize";
tb.Rows = 7;
if (string.IsNullOrEmpty(tb.Text) && this.Prevalues.Count > 0)
tb.Text = this.Prevalues[0];
return tb;
}
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using umbraco.cms.businesslogic.datatype;
using System.Web.UI.WebControls;
namespace umbraco.editorControls.SettingControls
{
public class TextField : DataEditorSettingType
{
private TextBox tb = new TextBox();
public override string Value
{
get
{
return tb.Text;
}
set
{
tb.Text = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
tb.ID = sender.GetName();
tb.TextMode = TextBoxMode.SingleLine;
tb.CssClass = "guiInputText guiInputStandardSize";
if (string.IsNullOrEmpty(tb.Text) && !string.IsNullOrEmpty(DefaultValue))
tb.Text = DefaultValue;
return tb;
}
}
}
@@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using umbraco.cms.businesslogic.datatype;
[assembly: System.Web.UI.WebResource("umbraco.editorControls.SettingControls.js.Values.js", "text/js")]
[assembly: System.Web.UI.WebResource("umbraco.editorControls.SettingControls.css.Values.css", "text/css")]
namespace umbraco.editorControls.SettingControls
{
public class Values : DataEditorSettingType
{
private Panel p = new Panel();
private TextBox tb = new TextBox();
public override string Value
{
get
{
return tb.Text;
}
set
{
tb.Text = value;
}
}
public override System.Web.UI.Control RenderControl(DataEditorSetting sender)
{
tb.ID = sender.GetName();
tb.CssClass = "valuesInput";
tb.Attributes.Add("style", "display:none;");
string html = "<div class='values'>";
html += "</div>";
html += "<input type='text' class='valueInput' />";
html += " <a onclick=\"valuesDataEditorSettingTypeAddValue(this); return false;\" href='#' class='Add'>Add Value</a>";
p.Controls.Add(new System.Web.UI.LiteralControl("<div class='valuesDataEditorSettingType'>"));
p.Controls.Add(new System.Web.UI.LiteralControl(html));
p.Controls.Add(tb);
p.Controls.Add(new System.Web.UI.LiteralControl("</div>"));
System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.Handler;
page.ClientScript.RegisterClientScriptInclude(
"umbraco.editorControls.SettingControls.js.Values.js",
page.ClientScript.GetWebResourceUrl(typeof(Values), "umbraco.editorControls.SettingControls.js.Values.js"));
HtmlHead head = (HtmlHead)page.Header;
HtmlLink link = new HtmlLink();
link.Attributes.Add("href", page.ClientScript.GetWebResourceUrl(typeof(Values), "umbraco.editorControls.SettingControls.css.Values.css"));
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
head.Controls.Add(link);
return p;
}
}
}
@@ -0,0 +1,15 @@
.valuesDataEditorSettingType .value
{
padding-bottom:5px;
}
.valuesDataEditorSettingType .value .del
{
color:Red;
cursor:pointer;
}
.valuesDataEditorSettingType .value .handle
{
cursor:move;
}
@@ -0,0 +1,183 @@
jQuery(document).ready(function () {
jQuery(".valuesDataEditorSettingType").each(function () {
var vals = jQuery(".valuesInput", this).val();
var values = jQuery(".values", this);
var vals_array = vals.split(";");
var part_num = 0;
while (part_num < vals_array.length) {
if (vals_array[part_num] != "") {
var existingValue = "<div class='value'><span>" + vals_array[part_num] + "</span> <a class='del'>Delete</a> <a class='handle'>Drag</a></div>";
values.append(existingValue);
}
part_num++;
}
});
jQuery(".valuesDataEditorSettingType .value .del").click(function () {
jQuery(this).parent().remove();
valuesDataEditorSettingTypeResetValues();
});
jQuery(".valuesDataEditorSettingType .value span").valuesInlineEdit();
jQuery(".valuesDataEditorSettingType .values").sortable({
handle : '.handle',
update : function () {
valuesDataEditorSettingTypeResetValues();
}
});
});
function valuesDataEditorSettingTypeAddValue(sender) {
var valuesDataEditorSettingType = jQuery(sender).parent();
var value = jQuery(".valueInput", valuesDataEditorSettingType).val();
if (value != "") {
var values = jQuery(".values", valuesDataEditorSettingType);
var newValue = "<div class='value'><span>" + value + "</span> <a class='del'>Delete</a> <a class='handle'>Drag</a></div>";
values.append(newValue);
jQuery(".valuesDataEditorSettingType .value span").valuesInlineEdit();
jQuery(".valueInput", valuesDataEditorSettingType).val("");
valuesDataEditorSettingTypeSetValues(values, jQuery(".valuesInput", valuesDataEditorSettingType));
}
jQuery(".valuesDataEditorSettingType .value .del").click(function () {
jQuery(this).parent().remove();
valuesDataEditorSettingTypeResetValues();
});
jQuery(".valuesDataEditorSettingType .values").sortable({
handle : '.handle',
update : function () {
valuesDataEditorSettingTypeResetValues();
}
});
}
function valuesDataEditorSettingTypeSetValues(valuesContainer,valuesInput) {
var vals = "";
jQuery(".value", valuesContainer).each(function () {
vals += jQuery("span",this).html() + ";";
});
valuesInput.val(vals);
}
function valuesDataEditorSettingTypeResetValues() {
jQuery(".valuesDataEditorSettingType").each(function () {
valuesDataEditorSettingTypeSetValues(jQuery(".values", this), jQuery(".valuesInput", this));
});
}
(function ($) {
$.fn.valuesInlineEdit = function (options) {
options = $.extend({
hover: 'hover',
value: '',
save: '',
placeholder: 'Click to edit'
}, options);
return $.each(this, function () {
$.valuesInlineEdit(this, options);
});
}
$.valuesInlineEdit = function (obj, options) {
var self = $(obj),
placeholderHtml = '<span class="inlineEdit-placeholder">' + options.placeholder + '</span>';
self.value = function (newValue) {
if (arguments.length) {
self.data('value', $(newValue).hasClass('inlineEdit-placeholder') ? '' : newValue);
}
return self.data('value');
}
self.value($.trim(self.text()) || options.value);
self.bind('click', function (event) {
var $this = $(event.target);
if ($this.is(self[0].tagName) || $this.hasClass('inlineEdit-placeholder')) {
self
.html('<input type="text" value="' + self.value() + '">')
.find('input')
.bind('blur', function () {
if ($this.children('input').val().length > 0) {
try {
self.value($this.children('input').val());
} catch (err) { }
}
else {
self.value('Click to edit');
}
if (self.timer) {
window.clearTimeout(self.timer);
}
self.timer = window.setTimeout(function () {
self.html(self.value() || placeholderHtml);
self.removeClass(options.hover);
valuesDataEditorSettingTypeResetValues();
}, 200);
})
.focus();
}
})
.hover(
function () {
$(this).addClass(options.hover);
},
function () {
$(this).removeClass(options.hover);
}
);
if (!self.value()) {
self.html($(placeholderHtml));
}
}
})(jQuery);
@@ -13,7 +13,7 @@ namespace umbraco.editorControls.checkboxlist
get
{
if (_Editor == null)
_Editor = new checkboxlistEditor(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new checkboxlistEditor(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
return _Editor;
}
}
@@ -3,6 +3,7 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
namespace umbraco.editorControls.checkboxlist
{
@@ -18,6 +19,13 @@ namespace umbraco.editorControls.checkboxlist
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public checkboxlistEditor(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
public Control Editor { get {return this;}}
public virtual bool TreatAsRichTextEditor
@@ -53,16 +61,32 @@ namespace umbraco.editorControls.checkboxlist
if (_data != null && _data.Value != null && _data.Value.ToString() != "")
_text = _data.Value.ToString();
foreach(object key in _prevalues.Keys)
{
ListItem li = new ListItem(_prevalues[key].ToString(),key.ToString());
if ((","+_text+",").IndexOf(","+li.Value.ToString()+",") > -1)
li.Selected = true;
Items.Add(li);
}
if (_prevalues != null)
{
foreach (object key in _prevalues.Keys)
{
ListItem li = new ListItem(_prevalues[key].ToString(), key.ToString());
if (("," + _text + ",").IndexOf("," + li.Value.ToString() + ",") > -1)
li.Selected = true;
Items.Add(li);
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
ListItem li = new ListItem(item.Value, item.Key.ToString());
if (("," + _text + ",").IndexOf("," + li.Value.ToString() + ",") > -1)
li.Selected = true;
Items.Add(li);
}
}
}
}
}
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.colorpicker
{
if (_Editor == null)
{
_Editor = new colorPicker(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new colorPicker(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -4,6 +4,7 @@ using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using umbraco.IO;
using System.Collections.Generic;
namespace umbraco.editorControls
{
@@ -23,6 +24,14 @@ namespace umbraco.editorControls
_data = Data;
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public colorPicker(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
private ArrayList _colors = new ArrayList();
public Control Editor { get { return this; } }
@@ -56,9 +65,19 @@ namespace umbraco.editorControls
try
{
foreach (string val in _prevalues.Values)
if (_prevalues != null)
{
_colors.Add(new ListItem(val));
foreach (string val in _prevalues.Values)
{
_colors.Add(new ListItem(val));
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
_colors.Add(new ListItem(item.Value));
}
}
}
catch { }
@@ -71,7 +90,7 @@ namespace umbraco.editorControls
_bgColor = "FFF";
base.Render(writer);
writer.WriteLine("<div style=\"clear:both;padding-top:5px\"><span id=\"" + this.ClientID + "holder\" style=\"border: 1px solid black; background-color: #" + _bgColor + "\"><img src=\"" + SystemDirectories.Umbraco + "/images/nada.gif\" width=\"15\" height=\"15\" border=\"0\" /></span>&nbsp; - ");
writer.WriteLine("<div style=\"clear:both;padding-top:5px\"><span id=\"" + this.ClientID + "holder\" style=\"border: 1px solid black; background-color: #" + _bgColor + "\"><img src=\"" + this.ResolveUrl(SystemDirectories.Umbraco) + "/images/nada.gif\" width=\"15\" height=\"15\" border=\"0\" /></span>&nbsp; - ");
foreach (object color in _colors)
{
@@ -79,7 +98,7 @@ namespace umbraco.editorControls
if (colorValue == "")
colorValue = "FFF";
writer.WriteLine("<span style=\"margin: 2px; border: 1px solid black; background-color: #" + color.ToString() + "\"><a href=\"javascript:void(0);\" onClick=\"document.forms[0]['" + this.ClientID + "'].value = '" + color.ToString() + "'; document.getElementById('" + this.ClientID + "holder').style.backgroundColor = '#" + colorValue + "'\"><img src=\"" + SystemDirectories.Umbraco + "/images/nada.gif\" width=\"15\" height=\"15\" border=\"0\" /></a></span>");
writer.WriteLine("<span style=\"margin: 2px; border: 1px solid black; background-color: #" + color.ToString() + "\"><a href=\"javascript:void(0);\" onClick=\"document.forms[0]['" + this.ClientID + "'].value = '" + color.ToString() + "'; document.getElementById('" + this.ClientID + "holder').style.backgroundColor = '#" + colorValue + "'\"><img src=\"" + this.ResolveUrl(SystemDirectories.Umbraco) + "/images/nada.gif\" width=\"15\" height=\"15\" border=\"0\" /></a></span>");
}
writer.WriteLine("</div>");
@@ -13,6 +13,7 @@ namespace umbraco.editorControls
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:dateField runat=server></{0}:dateField>")]
[ValidationProperty("Text")]
public class dateField : DateTimePicker, interfaces.IDataEditor
{
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.dropdownlist
{
if (_Editor == null)
{
_Editor = new dropdown(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new dropdown(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.dropdownlist
{
if (_Editor == null)
{
_Editor = new dropdown(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new dropdown(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -6,6 +6,7 @@ using System.Collections;
using umbraco.cms.businesslogic;
using umbraco.cms.businesslogic.language;
using System.Collections.Generic;
namespace umbraco.editorControls
{
@@ -20,6 +21,15 @@ namespace umbraco.editorControls
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public dropdown(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
public Control Editor {
get {return this;}
}
@@ -44,10 +54,23 @@ namespace umbraco.editorControls
protected override void OnInit(EventArgs e)
{
base.OnInit (e);
foreach (object key in _prevalues.Keys)
if (_prevalues != null)
{
this.Items.Add(new ListItem(dropdown.DictionaryReplace(_prevalues[key].ToString()), key.ToString()));
}
foreach (object key in _prevalues.Keys)
{
this.Items.Add(new ListItem(dropdown.DictionaryReplace(_prevalues[key].ToString()), key.ToString()));
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
this.Items.Add(new ListItem(dropdown.DictionaryReplace(item.Value), item.Key.ToString()));
}
}
base.Items.Insert(0, new ListItem(ui.Text("choose") + "...",""));
if (_data != null && _data.Value != null)
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.listbox
{
if (_Editor == null)
{
_Editor = new dropdownMultiple(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new dropdownMultiple(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.listbox
{
if (_Editor == null)
{
_Editor = new dropdownMultiple(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new dropdownMultiple(Data,((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -3,6 +3,7 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
namespace umbraco.editorControls
{
@@ -21,6 +22,13 @@ namespace umbraco.editorControls
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public dropdownMultiple(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
public Control Editor { get {return this;}}
public virtual bool TreatAsRichTextEditor
@@ -69,15 +77,30 @@ namespace umbraco.editorControls
base.OnInit(e);
foreach (object key in _prevalues.Keys)
{
ListItem li = new ListItem(_prevalues[key].ToString(),key.ToString());
if ((","+_text+",").IndexOf(","+li.Value.ToString()+",") > -1)
li.Selected = true;
Items.Add(li);
}
if (_prevalues != null)
{
foreach (object key in _prevalues.Keys)
{
ListItem li = new ListItem(_prevalues[key].ToString(), key.ToString());
if (("," + _text + ",").IndexOf("," + li.Value.ToString() + ",") > -1)
li.Selected = true;
Items.Add(li);
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
ListItem li = new ListItem(item.Value, item.Key.ToString());
if (("," + _text + ",").IndexOf("," + li.Value.ToString() + ",") > -1)
li.Selected = true;
Items.Add(li);
}
}
}
}
}
+174 -169
View File
@@ -4,7 +4,6 @@ using System.Linq;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
using umbraco.interfaces;
using umbraco.cms.businesslogic.macro;
using umbraco.presentation.webservices;
@@ -19,234 +18,234 @@ 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;
private List<string> _allowedMacros;
private int _maxNumber, _preferedHeight, _preferedWidth;
private IData _data;
private List<string> _allowedMacros;
private int _maxNumber, _preferedHeight, _preferedWidth;
private LinkButton _addMacro;
private Literal _limit;
private LinkButton _addMacro;
private Literal _limit;
public Editor(IData data, List<string> allowedMacros, int maxNumber, int preferedHeight, int preferedWidth)
public Editor(IData data, List<string> allowedMacros, int maxNumber, int preferedHeight, int preferedWidth)
{
_data = data;
_allowedMacros = allowedMacros;
_maxNumber = maxNumber;
_preferedHeight = preferedHeight;
_preferedWidth = preferedWidth;
_data = data;
_allowedMacros = allowedMacros;
_maxNumber = maxNumber;
_preferedHeight = preferedHeight;
_preferedWidth = preferedWidth;
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
//SD: This is useless as it won't work in live editing anyways whilst using MS Ajax/ScriptManager for ajax calls
if (!UmbracoContext.Current.LiveEditingContext.Enabled)
{
presentation.webservices.ajaxHelpers.EnsureLegacyCalls(base.Page);
ScriptManager sm = ScriptManager.GetCurrent(base.Page);
ServiceReference webservicePath = new ServiceReference(umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) + "/webservices/MacroContainerService.asmx");
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (!sm.Services.Contains(webservicePath))
sm.Services.Add(webservicePath);
}
else
{
ClientDependencyLoader.Instance.RegisterDependency("webservices/legacyAjaxCalls.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
ClientDependencyLoader.Instance.RegisterDependency("webservices/MacroContainerService.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
}
//SD: This is useless as it won't work in live editing anyways whilst using MS Ajax/ScriptManager for ajax calls
if (!UmbracoContext.Current.LiveEditingContext.Enabled)
{
presentation.webservices.ajaxHelpers.EnsureLegacyCalls(base.Page);
ScriptManager sm = ScriptManager.GetCurrent(base.Page);
ServiceReference webservicePath = new ServiceReference(umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) + "/webservices/MacroContainerService.asmx");
_addMacro = new LinkButton();
_addMacro.ID = ID + "_btnaddmacro";
if (!sm.Services.Contains(webservicePath))
sm.Services.Add(webservicePath);
}
else
{
ClientDependencyLoader.Instance.RegisterDependency("webservices/legacyAjaxCalls.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
ClientDependencyLoader.Instance.RegisterDependency("webservices/MacroContainerService.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
}
_addMacro = new LinkButton();
_addMacro.ID = ID + "_btnaddmacro";
_addMacro.Click += new EventHandler(_addMacro_Click);
_addMacro.Text = ui.Text("insertMacro");
_addMacro.CssClass = "macroContainerAdd";
_addMacro.Click += new EventHandler(_addMacro_Click);
_addMacro.Text = ui.Text("insertMacro");
_addMacro.CssClass = "macroContainerAdd";
this.ContentTemplateContainer.Controls.Add(_addMacro);
this.ContentTemplateContainer.Controls.Add(_addMacro);
_limit = new Literal();
_limit.Text = string.Format(" Only {0} macros are allowed", _maxNumber);
_limit.ID = ID + "_litlimit";
_limit.Visible = false;
_limit = new Literal();
_limit.Text = string.Format(" Only {0} macros are allowed", _maxNumber);
_limit.ID = ID + "_litlimit";
_limit.Visible = false;
this.ContentTemplateContainer.Controls.Add(_limit);
this.ContentTemplateContainer.Controls.Add(_limit);
string widthHeight = "";
if (_preferedHeight > 0 && _preferedWidth > 0)
{
widthHeight = String.Format(" style=\"min-width: {0}px; min-height: {1}px;\"", _preferedWidth, _preferedHeight);
}
string widthHeight = "";
if (_preferedHeight > 0 && _preferedWidth > 0)
{
widthHeight = String.Format(" style=\"min-width: {0}px; min-height: {1}px;\"", _preferedWidth, _preferedHeight);
}
this.ContentTemplateContainer.Controls.Add(new LiteralControl(String.Format("<div id=\"" + ID + "container\" class=\"macrocontainer\"{0}>", widthHeight)));
this.ContentTemplateContainer.Controls.Add(new LiteralControl(String.Format("<div id=\"" + ID + "container\" class=\"macrocontainer\"{0}>", widthHeight)));
Regex tagregex = new Regex("<[^>]*(>|$)", RegexOptions.Singleline | RegexOptions.ExplicitCapture | RegexOptions.Compiled);
MatchCollection tags = tagregex.Matches(_data.Value.ToString());
Regex tagregex = new Regex("<[^>]*(>|$)", RegexOptions.Singleline | RegexOptions.ExplicitCapture | RegexOptions.Compiled);
MatchCollection tags = tagregex.Matches(_data.Value.ToString());
List<int> editornumbers = new List<int>();
string sortorder = string.Empty;
List<int> editornumbers = new List<int>();
string sortorder = string.Empty;
for (int i = 0; i < _maxNumber; i++)
{
if (!editornumbers.Contains(i))
{
string data = string.Empty;
for (int i = 0; i < _maxNumber; i++)
{
if (!editornumbers.Contains(i))
{
string data = string.Empty;
if (tags.Count > i)
data = tags[i].Value;
if (tags.Count > i)
data = tags[i].Value;
MacroEditor macroEditor = new MacroEditor(data, _allowedMacros);
macroEditor.ID = ID + "macroeditor_" + i;
MacroEditor macroEditor = new MacroEditor(data, _allowedMacros);
macroEditor.ID = ID + "macroeditor_" + i;
this.ContentTemplateContainer.Controls.Add(macroEditor);
}
this.ContentTemplateContainer.Controls.Add(macroEditor);
}
}
}
this.ContentTemplateContainer.Controls.Add(new LiteralControl("</div>"));
this.ContentTemplateContainer.Controls.Add(new LiteralControl("</div>"));
if (tags.Count == _maxNumber)
{
_addMacro.Enabled = false;
_limit.Visible = true;
}
if (tags.Count == _maxNumber)
{
_addMacro.Enabled = false;
_limit.Visible = true;
}
MacroContainerEvent.Execute += new MacroContainerEvent.ExecuteHandler(MacroContainerEvent_Execute);
}
private void CheckLimit()
{
bool allowadd = false;
for (int i = 0; i < _maxNumber; i++)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
MacroContainerEvent.Execute += new MacroContainerEvent.ExecuteHandler(MacroContainerEvent_Execute);
if (!current.Visible)
{
allowadd = true;
break;
};
}
}
private void CheckLimit()
{
bool allowadd = false;
for (int i = 0; i < _maxNumber; i++)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
if (!allowadd)
{
_addMacro.Enabled = false;
_limit.Visible = true;
}
else
{
_addMacro.Enabled = true;
_limit.Visible = false;
}
}
if (!current.Visible)
{
allowadd = true;
break;
};
}
private void MacroContainerEvent_Execute()
{
CheckLimit();
}
if (!allowadd)
{
_addMacro.Enabled = false;
_limit.Visible = true;
}
else
{
_addMacro.Enabled = true;
_limit.Visible = false;
}
}
private void _addMacro_Click(object sender, EventArgs e)
{
private void MacroContainerEvent_Execute()
{
CheckLimit();
for (int i = 0; i < _maxNumber; i++)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
}
if (!current.Visible)
{
current.Visible = true;
MacroContainerEvent.Add();
break;
};
}
}
private void _addMacro_Click(object sender, EventArgs e)
{
for (int i = 0; i < _maxNumber; i++)
{
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
if (!current.Visible)
{
current.Visible = true;
MacroContainerEvent.Add();
break;
};
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// And a reference to the macro container calls
//if (!UmbracoContext.Current.LiveEditingContext.Enabled)
//{
// ScriptManager sm = ScriptManager.GetCurrent(base.Page);
// ServiceReference webservicePath = new ServiceReference(SystemDirectories.Webservices + "/MacroContainerService.asmx");
// And a reference to the macro container calls
//if (!UmbracoContext.Current.LiveEditingContext.Enabled)
//{
// ScriptManager sm = ScriptManager.GetCurrent(base.Page);
// ServiceReference webservicePath = new ServiceReference(SystemDirectories.Webservices + "/MacroContainerService.asmx");
// if (!sm.Services.Contains(webservicePath))
// sm.Services.Add(webservicePath);
//}
//else
//{
// ClientDependencyLoader.Instance.RegisterDependency("webservices/MacroContainerService.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
//}
// if (!sm.Services.Contains(webservicePath))
// sm.Services.Add(webservicePath);
//}
//else
//{
// ClientDependencyLoader.Instance.RegisterDependency("webservices/MacroContainerService.asmx/js", "UmbracoRoot", ClientDependencyType.Javascript);
//}
string script = "function "+ ID +"makesortable(){ ";
script += " jQuery('.macrocontainer').sortable({ update : function () { ";
script += " umbraco.presentation.webservices.MacroContainerService.SetSortOrder('" + ID + "',jQuery('.macrocontainer').sortable('serialize'));";
script +=" }}); ";
script += " ";
script += "}";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), ID + "macrocontainersortable",
script, true);
string script = "function " + ID + "makesortable(){ ";
script += " jQuery('#" + ID + "container').sortable({ update : function () { ";
script += " umbraco.presentation.webservices.MacroContainerService.SetSortOrder('" + ID + "', jQuery('#" + ID + "container').sortable('serialize'));";
script += " }}); ";
script += " ";
script += "}";
if (!Page.IsPostBack)
HttpContext.Current.Session[ID + "sortorder"] = null;
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), ID + "macrocontainersortable",
script, true);
ScriptManager.RegisterStartupScript(this, this.GetType(), ID + "initsort", ID + "makesortable();", true);
if (!Page.IsPostBack)
HttpContext.Current.Session[ID + "sortorder"] = null;
string sortscript = string.Empty;
ScriptManager.RegisterStartupScript(this, this.GetType(), ID + "initsort", ID + "makesortable();", true);
string sortorder = string.Empty;
if (HttpContext.Current.Session[ID + "sortorder"] != null)
{
sortorder = HttpContext.Current.Session[ID + "sortorder"].ToString();
}
if (sortorder != string.Empty)
{
string sortscript = string.Empty;
foreach (string temp in sortorder.Split('&'))
{
string number = temp.Substring(temp.LastIndexOf('=') + 1);
string sortorder = string.Empty;
if (HttpContext.Current.Session[ID + "sortorder"] != null)
{
sortorder = HttpContext.Current.Session[ID + "sortorder"].ToString();
}
if (sortorder != string.Empty)
{
foreach (string temp in sortorder.Split('&'))
{
string number = temp.Substring(temp.LastIndexOf('=') + 1);
sortscript += "jQuery('#container"+ID+"macroeditor_" + number + "').appendTo('#"+ID+"container');";
}
}
if(sortscript != string.Empty)
ScriptManager.RegisterStartupScript(this, this.GetType(), ID + "resort", sortscript, true);
sortscript += "jQuery('#container" + ID + "macroeditor_" + number + "').appendTo('#" + ID + "container');";
}
}
if (sortscript != string.Empty)
ScriptManager.RegisterStartupScript(this, this.GetType(), ID + "resort", sortscript, true);
EnsureChildControls();
EnsureChildControls();
}
}
#region IDataEditor Members
public void Save()
{
string value = string.Empty;
@@ -258,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++)
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;
@@ -37,7 +37,7 @@ namespace umbraco.editorControls.macrocontainer
_macroSelectDropdown.Items.Add(new ListItem(umbraco.ui.Text("choose"), ""));
foreach (string item in _allowedMacros)
{
_macroSelectDropdown.Items.Add(new ListItem(Macro.GetByAlias(item).Name, item));
_macroSelectDropdown.Items.Add(new ListItem(GetMacroNameFromAlias(item), item));
}
_macroSelectDropdown.AutoPostBack = true;
@@ -58,6 +58,20 @@ namespace umbraco.editorControls.macrocontainer
this.Controls.Add(_formTable);
}
//using this to solve to eager loading,
// replaces _macroSelectDropdown.Items.Add(new ListItem(Macro.GetByAlias(item).Name, item));
// with _macroSelectDropdown.Items.Add(new ListItem(GetMacroNameFromAlias(item), item));
private string GetMacroNameFromAlias(string alias)
{
umbraco.DataLayer.IRecordsReader dr = umbraco.BusinessLogic.Application.SqlHelper.ExecuteReader("select macroName from cmsMacro where macroAlias = @alias",
umbraco.BusinessLogic.Application.SqlHelper.CreateParameter("@alias", alias));
if (dr.Read())
return dr.GetString("macroName");
else
return string.Empty;
}
void _delete_Click(object sender, EventArgs e)
{
_macroSelectDropdown.SelectedIndex = 0;
@@ -193,7 +193,7 @@ namespace umbraco.editorControls.macrocontainer
if (_maxNumber == null)
{
int output = 0;
if (Configuration.Split('|').Length > 1)
if (Configuration != null && Configuration.Split('|').Length > 1)
{
int.TryParse(Configuration.Split('|')[1], out output);
return output;
@@ -216,7 +216,7 @@ namespace umbraco.editorControls.macrocontainer
if (_preferedHeight == null)
{
int output = 0;
if (Configuration.Split('|').Length > 2)
if (Configuration != null && Configuration.Split('|').Length > 2)
{
int.TryParse(Configuration.Split('|')[2], out output);
return output;
@@ -238,7 +238,7 @@ namespace umbraco.editorControls.macrocontainer
if (_preferedWidth == null)
{
int output = 0;
if (Configuration.Split('|').Length > 3)
if (Configuration != null && Configuration.Split('|').Length > 3)
{
int.TryParse(Configuration.Split('|')[3], out output);
return output;
@@ -90,6 +90,11 @@ namespace umbraco.editorControls.mediapicker
SqlHelper.CreateParameter("@value",data),
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
// For SQL CE 4 support we need this again!
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);
}
@@ -17,7 +17,7 @@ namespace umbraco.editorControls.radiobuttonlist
{
if (_Editor == null)
{
_Editor = new radiobox(Data,((KeyValuePrevalueEditor)PrevalueEditor).Prevalues);
_Editor = new radiobox(Data, ((KeyValuePrevalueEditor)PrevalueEditor).PrevaluesAsKeyValuePairList);
}
return _Editor;
}
@@ -3,6 +3,7 @@ using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
namespace umbraco.editorControls
{
public class radiobox : System.Web.UI.WebControls.RadioButtonList, interfaces.IDataEditor
@@ -16,6 +17,13 @@ namespace umbraco.editorControls
_prevalues = Prevalues;
}
List<KeyValuePair<int, String>> Prevalues;
public radiobox(interfaces.IData Data, List<KeyValuePair<int, String>> Prevalues)
{
_data = Data;
this.Prevalues = Prevalues;
}
public Control Editor
{
get {return this;}
@@ -40,11 +48,22 @@ namespace umbraco.editorControls
protected override void OnInit(EventArgs e)
{
base.OnInit (e);
foreach (object key in _prevalues.Keys)
{
this.Items.Add(new ListItem(_prevalues[key].ToString(),key.ToString()));
}
if (_prevalues != null)
{
foreach (object key in _prevalues.Keys)
{
this.Items.Add(new ListItem(_prevalues[key].ToString(), key.ToString()));
}
}
else if (Prevalues != null)
{
foreach (KeyValuePair<int, String> item in Prevalues)
{
this.Items.Add(new ListItem(item.Value, item.Key.ToString()));
}
}
try {
if (_data != null && _data.Value != null)
this.SelectedValue = _data.Value.ToString();
+29 -18
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;
@@ -41,8 +40,8 @@ namespace umbraco.editorControls.tags
int.TryParse(_data.NodeId.ToString(), out _nodeID);
string allTags = "";
int tagId = 0;
//first clear out all items associated with this ID...
umbraco.cms.businesslogic.Tags.Tag.RemoveTagsFromNode(_nodeID, _group);
@@ -139,18 +138,27 @@ namespace umbraco.editorControls.tags
ClientDependencyLoader.Instance.RegisterDependency("Application/JQuery/jquery.autocomplete.js", "UmbracoClient", ClientDependencyType.Javascript);
ClientDependencyLoader.Instance.RegisterDependency("css/umbracoGui.css", "UmbracoRoot", ClientDependencyType.Css);
string _alias = ((umbraco.cms.businesslogic.datatype.DefaultData)_data).PropertyId.ToString();
//making sure that we have a ID for context
string pageId = UmbracoContext.Current.Request["id"];
if (string.IsNullOrEmpty(pageId.Trim()))
if (pageId != null) pageId = pageId.Trim();
if (string.IsNullOrEmpty(pageId))
{
Node currentNode = Node.GetCurrent();
if (currentNode != null)
// we need an empty try/catch as Node.GetCurrent() will throw an exception if we're outside of Umbraco Context
try
{
NodeFactory.Node currentNode = NodeFactory.Node.GetCurrent();
if (currentNode != null)
{
pageId = currentNode.Id.ToString();
}
}
catch
{
pageId = currentNode.Id.ToString();
}
}
@@ -168,13 +176,16 @@ namespace umbraco.editorControls.tags
tagCheckList.ID = "tagCheckList_" + _alias;
var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags(int.Parse(pageId), _group);
foreach(var t in tags)
if (!String.IsNullOrEmpty(pageId))
{
ListItem li = new ListItem(t.TagCaption, t.Id.ToString());
li.Selected = true;
tagCheckList.Items.Add(li);
var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags(int.Parse(pageId), _group);
foreach (var t in tags)
{
ListItem li = new ListItem(t.TagCaption, t.Id.ToString());
li.Selected = true;
tagCheckList.Items.Add(li);
}
}
this.ContentTemplateContainer.Controls.Add(tagBox);
@@ -186,12 +197,12 @@ namespace umbraco.editorControls.tags
+ tagBox.ClientID + "\").autocomplete(\""
+ umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco)
+ "/webservices/TagsAutoCompleteHandler.ashx\",{minChars: 2,max: 100, extraParams:{group:\"" + _group + "\",id:\"" + pageId + "\",rnd:\"" + DateTime.Now.Ticks + "\"}}).result(function(e, data){jQuery(\"#" + tagButton.ClientID + "\").trigger('click');});";
string tagsAutoCompleteInitScript =
"jQuery(document).ready(function(){"
+ tagsAutoCompleteScript
+"});";
+ "});";
Page.ClientScript.RegisterStartupScript(GetType(), ClientID + "_tagsinit", tagsAutoCompleteInitScript, true);
@@ -201,7 +212,7 @@ namespace umbraco.editorControls.tags
}
}
#endregion
+138 -133
View File
@@ -6,43 +6,38 @@ using System.Web.UI;
using umbraco.BasePages;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.web;
using umbraco.editorControls.tinymce;
using umbraco.editorControls.tinyMCE3.webcontrol;
using umbraco.editorControls.wysiwyg;
using umbraco.interfaces;
using umbraco.uicontrols;
using umbraco.editorControls.tinymce;
using umbraco.IO;
using umbraco.presentation;
using umbraco.uicontrols;
namespace umbraco.editorControls.tinyMCE3
{
public class TinyMCE : webcontrol.TinyMCEWebControl, IDataEditor, IMenuElement, ILiveEditingDataEditor
public class TinyMCE : TinyMCEWebControl, IDataEditor, IMenuElement, ILiveEditingDataEditor
{
private IData _data;
private bool m_isInLiveEditingMode = false;
private bool _enableContextMenu = false;
private string _editorButtons = "";
private string _advancedUsers = "";
private bool _fullWidth = false;
private int _width = 0;
private int _height = 0;
private bool _showLabel = false;
private readonly string _activateButtons = "";
private readonly string _advancedUsers = "";
private readonly SortedList _buttons = new SortedList();
private readonly IData _data;
private readonly string _disableButtons = "help,visualaid,";
private readonly string _editorButtons = "";
private readonly bool _enableContextMenu;
private readonly bool _fullWidth;
private readonly int _height;
private readonly SortedList _mceButtons = new SortedList();
private readonly ArrayList _menuIcons = new ArrayList();
private readonly bool _showLabel;
private readonly ArrayList _stylesheets = new ArrayList();
private readonly int _width;
private readonly int m_maxImageWidth = 500;
private bool _isInitialized;
private string _plugins = "";
private ArrayList _stylesheets = new ArrayList();
private bool m_isInLiveEditingMode;
private ArrayList _menuIcons = new ArrayList();
private SortedList _buttons = new SortedList();
private SortedList _mceButtons = new SortedList();
private bool _isInitialized = false;
private string _activateButtons = "";
private string _disableButtons = "help,visualaid,";
private int m_maxImageWidth = 500;
public virtual string Plugins
{
get { return _plugins; }
set { _plugins = value; }
}
public TinyMCE(IData Data, string Configuration)
{
@@ -89,7 +84,7 @@ namespace umbraco.editorControls.tinyMCE3
if (configSettings.Length > 6 && configSettings[6] != "")
_showLabel = bool.Parse(configSettings[6]);
if (configSettings.Length > 7 && configSettings[7] != "")
m_maxImageWidth = int.Parse(configSettings[7].ToString());
m_maxImageWidth = int.Parse(configSettings[7]);
// sizing
if (!_fullWidth)
@@ -109,7 +104,8 @@ namespace umbraco.editorControls.tinyMCE3
// If the editor is used in umbraco, use umbraco's own toolbar
bool onFront = false;
if (GlobalSettings.RequestIsInUmbracoApplication(HttpContext.Current) || umbraco.presentation.UmbracoContext.Current.LiveEditingContext.Enabled)
if (GlobalSettings.RequestIsInUmbracoApplication(HttpContext.Current) ||
UmbracoContext.Current.LiveEditingContext.Enabled)
{
config.Add("theme_umbraco_toolbar_location", "external");
config.Add("skin", "umbraco");
@@ -122,10 +118,10 @@ namespace umbraco.editorControls.tinyMCE3
}
// load plugins
IDictionaryEnumerator pluginEnum = umbraco.editorControls.tinymce.tinyMCEConfiguration.Plugins.GetEnumerator();
IDictionaryEnumerator pluginEnum = tinyMCEConfiguration.Plugins.GetEnumerator();
while (pluginEnum.MoveNext())
{
umbraco.editorControls.tinymce.tinyMCEPlugin plugin = (umbraco.editorControls.tinymce.tinyMCEPlugin)pluginEnum.Value;
var plugin = (tinyMCEPlugin) pluginEnum.Value;
if (plugin.UseOnFrontend || (!onFront && !plugin.UseOnFrontend))
_plugins += "," + plugin.Name;
}
@@ -137,7 +133,8 @@ namespace umbraco.editorControls.tinyMCE3
config.Add("plugins", _plugins);
// Check advanced settings
if (("," + _advancedUsers + ",").IndexOf("," + UmbracoEnsuredPage.CurrentUser.UserType.Id + ",") > -1)
if (("," + _advancedUsers + ",").IndexOf("," + UmbracoEnsuredPage.CurrentUser.UserType.Id + ",") >
-1)
config.Add("umbraco_advancedMode", "true");
else
config.Add("umbraco_advancedMode", "false");
@@ -153,7 +150,7 @@ namespace umbraco.editorControls.tinyMCE3
if (styleSheetId.Trim() != "")
try
{
StyleSheet s = new StyleSheet(int.Parse(styleSheetId));
var s = new StyleSheet(int.Parse(styleSheetId));
if (s.nodeObjectType == StyleSheet.ModuleObjectType)
{
cssFiles += IOHelper.ResolveUrl(SystemDirectories.Css + "/" + s.Text + ".css");
@@ -194,10 +191,10 @@ namespace umbraco.editorControls.tinyMCE3
config.Add("theme_umbraco_styles", styles);
// Add buttons
IDictionaryEnumerator ide = umbraco.editorControls.tinymce.tinyMCEConfiguration.Commands.GetEnumerator();
IDictionaryEnumerator ide = tinyMCEConfiguration.Commands.GetEnumerator();
while (ide.MoveNext())
{
umbraco.editorControls.tinymce.tinyMCECommand cmd = (umbraco.editorControls.tinymce.tinyMCECommand)ide.Value;
var cmd = (tinyMCECommand) ide.Value;
if (_editorButtons.IndexOf("," + cmd.Alias + ",") > -1)
_activateButtons += cmd.Alias + ",";
else
@@ -218,12 +215,12 @@ namespace umbraco.editorControls.tinyMCE3
while (ide.MoveNext())
{
string mceCommand = ide.Value.ToString();
int curPriority = (int)ide.Key;
var curPriority = (int) ide.Key;
// Check priority
if (separatorPriority > 0 &&
Math.Floor(decimal.Parse(curPriority.ToString()) / 10) >
Math.Floor(decimal.Parse(separatorPriority.ToString()) / 10))
Math.Floor(decimal.Parse(curPriority.ToString())/10) >
Math.Floor(decimal.Parse(separatorPriority.ToString())/10))
_activateButtons += "separator,";
_activateButtons += mceCommand + ",";
@@ -246,7 +243,10 @@ namespace umbraco.editorControls.tinyMCE3
config.Add("event_elements", "div");
config.Add("paste_auto_cleanup_on_paste", "true");
config.Add("valid_elements", tinyMCEConfiguration.ValidElements.Substring(1, tinyMCEConfiguration.ValidElements.Length - 2));
config.Add("valid_elements",
tinyMCEConfiguration.ValidElements.Substring(1,
tinyMCEConfiguration.ValidElements.Length -
2));
config.Add("invalid_elements", tinyMCEConfiguration.InvalidElements);
// custom commands
@@ -284,8 +284,6 @@ namespace umbraco.editorControls.tinyMCE3
}
}
#region IDataEditor Members
#region TreatAsRichTextEditor
public virtual bool TreatAsRichTextEditor
@@ -357,7 +355,7 @@ namespace umbraco.editorControls.tinyMCE3
parsedString = parsedString.Replace("|||?", "<?").Replace("/|||", "/>").Replace("|*|", "\"");
// fix images
parsedString = umbraco.editorControls.tinymce.tinyMCEImageHelper.cleanImages(parsedString);
parsedString = tinyMCEImageHelper.cleanImages(parsedString);
// parse current domain and instances of slash before anchor (to fix anchor bug)
// NH 31-08-2007
@@ -379,40 +377,108 @@ namespace umbraco.editorControls.tinyMCE3
#endregion
public virtual string Plugins
{
get { return _plugins; }
set { _plugins = value; }
}
public object[] MenuIcons
{
get
{
initButtons();
var tempIcons = new object[_menuIcons.Count];
for (int i = 0; i < _menuIcons.Count; i++)
tempIcons[i] = _menuIcons[i];
return tempIcons;
}
}
#region ILiveEditingDataEditor Members
public Control LiveEditingControl
{
get
{
m_isInLiveEditingMode = true;
base.IsInLiveEditingMode = true;
return this;
}
}
#endregion
#region IMenuElement Members
public string ElementName
{
get { return "div"; }
}
public string ElementIdPreFix
{
get { return "umbTinymceMenu"; }
}
public string ElementClass
{
get { return "tinymceMenuBar"; }
}
public int ExtraMenuWidth
{
get
{
initButtons();
return _buttons.Count*40 + 300;
}
}
#endregion
protected override void OnLoad(EventArgs e)
{
try
{
// add current page info
base.NodeId = ((cms.businesslogic.datatype.DefaultData)_data).NodeId;
base.VersionId = ((cms.businesslogic.datatype.DefaultData)_data).Version;
config.Add("theme_umbraco_pageId", base.NodeId.ToString());
config.Add("theme_umbraco_versionId", base.VersionId.ToString());
// we'll need to make an extra check for the liveediting as that value is set after the constructor have initialized
if (IsInLiveEditingMode)
base.NodeId = ((cms.businesslogic.datatype.DefaultData) _data).NodeId;
if (NodeId != 0)
{
if (config["theme_umbraco_toolbar_location"] == null)
config.Add("theme_umbraco_toolbar_location", "");
config["theme_umbraco_toolbar_location"] = "external";
config.Add("umbraco_toolbar_id",
"LiveEditingClientToolbar");
base.VersionId = ((cms.businesslogic.datatype.DefaultData) _data).Version;
config.Add("theme_umbraco_pageId", base.NodeId.ToString());
config.Add("theme_umbraco_versionId", base.VersionId.ToString());
// we'll need to make an extra check for the liveediting as that value is set after the constructor have initialized
if (IsInLiveEditingMode)
{
if (config["theme_umbraco_toolbar_location"] == null)
config.Add("theme_umbraco_toolbar_location", "");
config["theme_umbraco_toolbar_location"] = "external";
config.Add("umbraco_toolbar_id",
"LiveEditingClientToolbar");
}
else
{
config.Add("umbraco_toolbar_id",
ElementIdPreFix +
((cms.businesslogic.datatype.DefaultData) _data).PropertyId);
}
}
else
{
// this is for use when tinymce is used for non default Umbraco pages
config.Add("umbraco_toolbar_id",
ElementIdPreFix + ((cms.businesslogic.datatype.DefaultData)_data).PropertyId.ToString());
ElementIdPreFix + "_" + this.ClientID);
}
}
catch
{
// Empty catch as this is caused by the document doesn't exists yet,
// like when using this on an autoform
// like when using this on an autoform, partly replaced by the if/else check on nodeId above though
}
base.OnLoad(e);
}
protected override void OnInit(EventArgs e)
@@ -447,8 +513,8 @@ namespace umbraco.editorControls.tinyMCE3
if (orgKey == "umb_macroalias")
orgKey = "umb_macroAlias";
macroTag += orgKey.Substring(4, orgKey.ToString().Length - 4) + "=|*|" +
ide.Value.ToString().Replace("\\r\\n", Environment.NewLine) + "|*| ";
macroTag += orgKey.Substring(4, orgKey.Length - 4) + "=|*|" +
ide.Value.ToString().Replace("\\r\\n", Environment.NewLine) + "|*| ";
}
}
macroTag += "/|||";
@@ -458,13 +524,13 @@ namespace umbraco.editorControls.tinyMCE3
public static Hashtable ReturnAttributes(String tag)
{
Hashtable ht = new Hashtable();
var ht = new Hashtable();
MatchCollection m =
Regex.Matches(tag, "(?<attributeName>\\S*)=\"(?<attributeValue>[^\"]*)\"",
RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
foreach (Match attributeSet in m)
ht.Add(attributeSet.Groups["attributeName"].Value.ToString(),
attributeSet.Groups["attributeValue"].Value.ToString());
ht.Add(attributeSet.Groups["attributeName"].Value,
attributeSet.Groups["attributeValue"].Value);
return ht;
}
@@ -486,7 +552,8 @@ namespace umbraco.editorControls.tinyMCE3
string find = "<!-- endumbmacro -->";
int endMacroIndex = text.ToLower().IndexOf(find);
string tempText = text.ToLower().Substring(endMacroIndex + find.Length, text.Length - endMacroIndex - find.Length);
string tempText = text.ToLower().Substring(endMacroIndex + find.Length,
text.Length - endMacroIndex - find.Length);
int finalEndPos = 0;
while (tempText.Length > 5)
if (tempText.Substring(finalEndPos, 6) == "</div>")
@@ -497,23 +564,6 @@ namespace umbraco.editorControls.tinyMCE3
return endMacroIndex + find.Length + finalEndPos + 6;
}
#endregion
#region IDataFieldWithButtons Members
public object[] MenuIcons
{
get
{
initButtons();
object[] tempIcons = new object[_menuIcons.Count];
for (int i = 0; i < _menuIcons.Count; i++)
tempIcons[i] = _menuIcons[i];
return tempIcons;
}
}
private void initButtons()
{
if (!_isInitialized)
@@ -536,7 +586,7 @@ namespace umbraco.editorControls.tinyMCE3
{
try
{
umbraco.editorControls.tinymce.tinyMCECommand cmd = (umbraco.editorControls.tinymce.tinyMCECommand)umbraco.editorControls.tinymce.tinyMCEConfiguration.Commands[button];
var cmd = (tinyMCECommand) tinyMCEConfiguration.Commands[button];
string appendValue = "";
if (cmd.Value != "")
@@ -550,7 +600,7 @@ namespace umbraco.editorControls.tinyMCE3
catch (Exception ee)
{
Log.Add(LogTypes.Error, User.GetUser(0), -1,
string.Format("TinyMCE: Error initializing button '{0}': {1}", button, ee.ToString()));
string.Format("TinyMCE: Error initializing button '{0}': {1}", button, ee));
}
}
}
@@ -561,17 +611,17 @@ namespace umbraco.editorControls.tinyMCE3
while (ide.MoveNext())
{
object buttonObj = ide.Value;
int curPriority = (int)ide.Key;
var curPriority = (int) ide.Key;
// Check priority
if (separatorPriority > 0 &&
Math.Floor(decimal.Parse(curPriority.ToString()) / 10) >
Math.Floor(decimal.Parse(separatorPriority.ToString()) / 10))
Math.Floor(decimal.Parse(curPriority.ToString())/10) >
Math.Floor(decimal.Parse(separatorPriority.ToString())/10))
_menuIcons.Add("|");
try
{
editorButton e = (editorButton)buttonObj;
var e = (editorButton) buttonObj;
MenuIconI menuItem = new MenuIconClass();
@@ -589,50 +639,5 @@ namespace umbraco.editorControls.tinyMCE3
}
}
}
#endregion
#region IMenuElement Members
public string ElementName
{
get { return "div"; }
}
public string ElementIdPreFix
{
get { return "umbTinymceMenu"; }
}
public string ElementClass
{
get { return "tinymceMenuBar"; }
}
public int ExtraMenuWidth
{
get
{
initButtons();
return _buttons.Count * 40 + 300;
}
}
#endregion
#region ILiveEditingDataEditor Members
public Control LiveEditingControl
{
get
{
m_isInLiveEditingMode = true;
base.IsInLiveEditingMode = true;
return this;
}
}
#endregion
}
}
@@ -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>
@@ -299,6 +303,27 @@
<Compile Include="relatedlinks\RelatedLinksDataEditor.cs" />
<Compile Include="relatedlinks\RelatedLinksDataType.cs" />
<Compile Include="relatedlinks\RelatedLinksPrevalueEditor.cs" />
<Compile Include="SettingControls\CheckBox.cs" />
<Compile Include="SettingControls\CheckBoxList.cs" />
<Compile Include="SettingControls\DropDownList.cs" />
<Compile Include="SettingControls\ListBox.cs" />
<Compile Include="SettingControls\ListBoxMultiple.cs" />
<Compile Include="SettingControls\Password.cs" />
<Compile Include="SettingControls\Pickers\BasePicker.cs" />
<Compile Include="SettingControls\Pickers\Content.cs" />
<Compile Include="SettingControls\Pickers\Date.cs" />
<Compile Include="SettingControls\Pickers\DateWithTime.cs" />
<Compile Include="SettingControls\Pickers\DocumentType.cs" />
<Compile Include="SettingControls\Pickers\Field.cs" />
<Compile Include="SettingControls\Pickers\Media.cs" />
<Compile Include="SettingControls\Pickers\MediaType.cs" />
<Compile Include="SettingControls\Pickers\MemberGroup.cs" />
<Compile Include="SettingControls\Pickers\MemberType.cs" />
<Compile Include="SettingControls\Pickers\Path.cs" />
<Compile Include="SettingControls\RadioButtonList.cs" />
<Compile Include="SettingControls\TextArea.cs" />
<Compile Include="SettingControls\TextField.cs" />
<Compile Include="SettingControls\Values.cs" />
<Compile Include="simpleEditor\simpleEditor.cs">
<SubType>Code</SubType>
</Compile>
@@ -323,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" />
@@ -395,8 +421,12 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="KeyValuePrevalueEditor.js" />
<Content Include="mediapicker\MediaPicker.js" />
<EmbeddedResource Include="SettingControls\css\Values.css" />
<EmbeddedResource Include="SettingControls\js\Values.js" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
@@ -7,6 +7,7 @@ using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using umbraco.IO;
using System.Text.RegularExpressions;
namespace umbraco.editorControls
{
@@ -36,15 +37,24 @@ namespace umbraco.editorControls
get { return true; }
}
public string SafeUrl(string url)
{
if (!String.IsNullOrEmpty(url))
return Regex.Replace(url, @"[^a-zA-Z0-9\-\.\/\:]{1}", "_");
else
return String.Empty;
}
/// <summary>
/// Internal logic for validation controls to detect whether or not it's valid (has to be public though)
/// </summary>
/// <value>Am I valid?</value>
public string IsValid
{
get {
get
{
string tempText = Text;
bool isEmpty = String.IsNullOrEmpty(this.PostedFile.FileName);
bool isEmpty = this.PostedFile == null || String.IsNullOrEmpty(this.PostedFile.FileName);
// checkbox, if it's used the file will be deleted and we should throw a validation error
if (Page.Request[this.ClientID + "clear"] != null && Page.Request[this.ClientID + "clear"].ToString() != "")
return "";
@@ -91,10 +101,11 @@ namespace umbraco.editorControls
//{
// //delete old file
// deleteFile(_text);
//}
// Find 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;
@@ -103,11 +114,12 @@ 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
System.IO.Directory.CreateDirectory( IOHelper.MapPath( SystemDirectories.Media + "/" + _data.PropertyId.ToString() ) );
System.IO.Directory.CreateDirectory(IOHelper.MapPath(SystemDirectories.Media + "/" + _data.PropertyId.ToString()));
_fullFilePath = IOHelper.MapPath(SystemDirectories.Media + "/" + _data.PropertyId.ToString() + "/" + filename);
this.PostedFile.SaveAs(_fullFilePath);
@@ -122,7 +134,7 @@ namespace umbraco.editorControls
else
{
//filename = this.
filename = System.IO.Path.GetFileName(this.PostedFile.FileName);
filename = System.IO.Path.GetFileName(SafeUrl(this.PostedFile.FileName));
filename = _data.PropertyId + "-" + filename;
_fullFilePath = IOHelper.MapPath(SystemDirectories.Media + "/" + filename);
this.PostedFile.SaveAs(_fullFilePath);
@@ -188,7 +200,7 @@ namespace umbraco.editorControls
//cms.businesslogic.Content.GetContentFromVersion(_data.Version).getProperty("umbracoWidth").Value = fileWidth.ToString();
//cms.businesslogic.Content.GetContentFromVersion(_data.Version).getProperty("umbracoHeight").Value = fileHeight.ToString();
content.getProperty("umbracoWidth").Value = fileWidth.ToString();
noEdit widthControl = uploadField.FindControlRecursive<noEdit>(this.Page, "umbracoWidth");
noEdit widthControl = uploadField.FindControlRecursive<noEdit>(this.Page, "umbracoWidth");
if (widthControl != null)
{
widthControl.RefreshLabel(content.getProperty("umbracoWidth").Value.ToString());
@@ -211,7 +223,7 @@ namespace umbraco.editorControls
{
char sep = ';';
if(!_thumbnails.Contains(sep.ToString()) && _thumbnails.Contains(","))
if (!_thumbnails.Contains(sep.ToString()) && _thumbnails.Contains(","))
sep = ',';
string[] thumbnailSizes = _thumbnails.Split(sep);
@@ -387,7 +399,7 @@ namespace umbraco.editorControls
}
else
output.WriteLine("<a href=\"" + IOHelper.FindFile(this.Text) + "\" target=\"_blank\">" + IOHelper.FindFile(this.Text) + "</a><br/>");
output.WriteLine("<input type=\"checkbox\" id=\"" + this.ClientID + "clear\" name=\"" + this.ClientID + "clear\" value=\"1\"/> <label for=\"" + this.ClientID + "clear\">" + ui.Text("uploadClear") + "</label><br/>");
}
base.Render(output);
@@ -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>
+8 -21
View File
@@ -38,30 +38,17 @@ namespace umbraco.macroRenderings
protected override void OnInit(EventArgs e)
{
if (_value != null)
{
if (_value == "1")
this.Checked = true;
else
this.Checked = false;
}
this.Text = "Yes";
base.OnInit (e);
}
/// <summary>
/// Render this control to the output parameter specified.
/// </summary>
/// <param name="output"> The HTML writer to write out to </param>
protected override void Render(HtmlTextWriter output)
{
if (_value != null)
{
if (_value == "1")
{
this.Checked = true;
}
else
{
this.Checked = false;
}
}
base.Render(output);
}
}
}
@@ -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>
+86 -17
View File
@@ -1,21 +1,90 @@
<?xml version="1.0" encoding="utf-8" ?>
<dashBoard>
<!--
<section>
<areas>
<area>default</area>
<area>content</area>
</areas>
<section alias="StartupSettingsDashboardSection">
<areas>
<area>settings</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/settingsdashboardintro.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/settingsdashboardvideos.ascx
</control>
</tab>
</section>
<tab caption="Last Edits">
<control>/usercontrols/dashboard/latestEdits.ascx</control>
</tab>
<tab caption="Latest Items">
<control>/usercontrols/dashboard/newestItems.ascx</control>
</tab>
<tab caption="Create blog post">
<control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
</tab>
</section>
-->
<section alias="StartupDeveloperDashboardSection">
<areas>
<area>developer</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/developerdashboardintro.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/developerdashboardvideos.ascx
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection">
<areas>
<area>media</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/mediadashboardintro.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/zipupload.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/mediadashboardvideos.ascx
</control>
</tab>
</section>
<section alias="StartupDashboardSection">
<access>
<deny>translator</deny>
</access>
<areas>
<area>content</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/startupdashboardintro.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/startupdashboardkits.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/startupdashboardvideos.ascx
</control>
</tab>
<tab caption="Last Edits">
<control>/umbraco/dashboard/latestEdits.ascx</control>
</tab>
<tab caption="Change Password">
<control addPanel="true">/umbraco/dashboard/changepassword.ascx</control>
</tab>
</section>
<section alias="StartupMemberDashboardSection">
<areas>
<area>member</area>
</areas>
<tab caption="Get Started">
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/membersdashboardintro.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/members/membersearch.ascx
</control>
<control showOnce="true" addPanel="true" panelCaption="">
/umbraco/dashboard/membersdashboardvideos.ascx
</control>
</tab>
</section>
</dashBoard>
@@ -9,27 +9,28 @@ More information and documentation can be found on CodePlex: http://umbracoexami
<Examine>
<ExamineIndexProviders>
<providers>
<add name="InternalIndexer" type="UmbracoExamine.LuceneExamineIndexer, UmbracoExamine"
runAsync="true"
<add name="InternalIndexer" type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
supportUnpublished="true"
supportProtected="true"
interval="10"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>
<add name="InternalMemberIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"
runAsync="true"
<add name="InternalMemberIndexer" type="UmbracoExamine.UmbracoMemberIndexer, UmbracoExamine"
supportUnpublished="true"
supportProtected="true"
interval="10"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>
</providers>
</ExamineIndexProviders>
<ExamineSearchProviders defaultProvider="InternalSearcher">
<providers>
<add name="InternalSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"
<add name="InternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>
<add name="InternalMemberSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/>
<add name="InternalMemberSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"
analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/>
</providers>
</ExamineSearchProviders>
</Examine>
+15 -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>
@@ -50,6 +52,13 @@
<delete assembly="umbraco" type="XsltTasks" />
</tasks>
</nodeType>
<nodeType alias="xsltFolder">
<header>Xslt</header>
<usercontrol>/create/xslt.ascx</usercontrol>
<tasks>
<delete assembly="umbraco" type="XsltTasks" />
</tasks>
</nodeType>
<nodeType alias="content">
<header>Page</header>
<usercontrol>/create/content.ascx</usercontrol>
+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
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RestExtensions>
<!--
<ext assembly="/bin/umbraco" type="umbraco.presentation.umbracoBase.library.member" alias="currentMember">
<ext assembly="umbraco" type="umbraco.presentation.umbracoBase.library.member" alias="currentMember">
<permission method="login" allowAll="true" />
<permission method="logout" allowAll="true" />
<permission method="id" allowAll="true" />
@@ -73,6 +73,8 @@
<requestHandler>
<!-- this will ensure that urls are unique when running with multiple root nodes -->
<useDomainPrefixes>false</useDomainPrefixes>
<!-- this will add a trailing slash (/) to urls when in directory url mode -->
<addTrailingSlash>true</addTrailingSlash>
<urlReplacing removeDoubleDashes="true">
<char org=" ">-</char>
<char org="&quot;"></char>
@@ -111,6 +113,9 @@
<disabledLogTypes>
<!-- <logTypeAlias>[alias-of-log-type-in-lowercase]</logTypeAlias> -->
</disabledLogTypes>
<!-- You can add your own logging tool by implementing the umbraco.BusinessLogic.Interfaces.ILog interface and add the reference here -->
<!-- The external logger can also act as the audit trail storage by setting the logAuditTrail attribute to true -->
<!--<externalLogger assembly="~/bin/assemblyFileName.dll" type="fully.qualified.namespace.and.type" logAuditTrail="false" /> -->
</logging>
<scheduledTasks>
@@ -1,3 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<XsltExtensions>
<!--
This file is used to register 3rt party xslt extensions (methods you can execute from xslt, like umbraco.library:NiceUrl)
<ext assembly="assemblyName" type="assemblyName.namespace.type" alias="custom">
-->
</XsltExtensions>
+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>
+22 -7
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<project name="umbraco" default="test" basedir=".">
<description>Build the umbraco 3.1.x Application</description>
<description>Build the umbraco 4.5 Application</description>
<!-- global properties, generally won't change -->
<!--
@@ -12,13 +12,13 @@
<!-- filenames and directories, generally won't change -->
<property name="web.dir" value="D:\inetpub\wwwroot\v4.umbraco.org" />
<property name="public.dir" value="D:\inetpub\wwwroot\nightlies\umbraco 4.1" />
<property name="public.dir" value="D:\inetpub\wwwroot\nightlies\umbraco 4.6" />
<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="build.version" value="4.1"/>
<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>
@@ -117,12 +123,20 @@
<copy file="${root.dir}\config templates\config\umbracosettings.config" tofile="${build.dir}\config\umbracosettings.config" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\config templates\config\urlrewriting.config" tofile="${build.dir}\config\urlrewriting.config" failonerror="false" overwrite="true"/>
<!-- new 4.1 files -->
<!-- new 4.5 files -->
<copy file="${root.dir}\config templates\config\ClientDependency.config" tofile="${build.dir}\config\ClientDependency.config" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\config templates\config\ExamineSettings.config" tofile="${build.dir}\config\ExamineSettings.config" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\config templates\config\ExamineIndex.config" tofile="${build.dir}\config\ExamineIndex.config" failonerror="false" overwrite="true"/>
<copy file="${root.dir}\config templates\config\scripting.config" tofile="${build.dir}\config\scripting.config" failonerror="false" overwrite="true"/>
<!-- 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" />
@@ -170,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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

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