Compare commits

...

2667 Commits

Author SHA1 Message Date
Sebastiaan Janssen 64cd25e18a Update NuSpec to include ClientDependency.Core.Mvc.dll 2013-01-11 11:22:26 -01:00
Sebastiaan Janssen 6ef7d4740b Merge 2013-01-11 11:11:16 -01:00
Sebastiaan Janssen 3d65c6ddab Fix U4-1438 Uploading media via the insert media dialog in RTE doesn't work and U4-1436 When scaling images in RTE, they're not resized 2013-01-11 11:05:02 -01:00
Morten Christensen 6a6a95f7dc Correcting MediaService so it also moves any children to the recycle bin when trashing an item. 2013-01-11 10:38:32 -01:00
Sebastiaan Janssen f42352d255 Make nuget package automation better 2013-01-11 09:26:23 -01:00
Morten Christensen 6772fee406 Merge 2013-01-11 08:53:04 -01:00
Morten Christensen b6141189cf Fixes regression bug after having updated the expression helpers yesterday 2013-01-11 08:52:38 -01:00
Sebastiaan Janssen ba1a2c1520 Add Beta to the version 2013-01-11 08:18:00 -01:00
Sebastiaan Janssen 5e2a86bba7 Fixes U4-1432 4.11.2 - Tinymce strips 'src' attribute from images 2013-01-11 08:09:55 -01:00
Sebastiaan Janssen e306bc15bf Merge 2013-01-10 15:28:42 -01:00
Sebastiaan Janssen 10c60c2cdb Generated query was very very wrong :) 2013-01-10 15:28:17 -01:00
Morten Christensen 8e723b1336 Reordering in Document class 2013-01-10 14:58:35 -01:00
Morten Christensen b562dc787b Merge 2013-01-10 14:07:23 -01:00
Morten Christensen ca2942fdd9 Refactoring ChangePublishedState to use an enum instead of a boolean. 2013-01-10 14:07:07 -01:00
Sebastiaan Janssen 6187af76c0 Revert my c1722c82aa28 changes to published version checking (which were wrong!) 2013-01-10 13:55:42 -01:00
Sebastiaan Janssen ac608f7b3e Keep umbracoDbDSN in the appSettings in the released version to prevent people
from deleting it during merge.. it will delete itself after install anyway
2013-01-10 12:05:03 -01:00
Morten Christensen 9974e9b312 Possible fix for U4-1372 2013-01-10 11:50:47 -01:00
Morten Christensen 8c6292fda4 Merge 2013-01-10 11:47:36 -01:00
Morten Christensen e3a8aa8345 Possible fix for U4-1420 2013-01-10 11:47:04 -01:00
Morten Christensen 24814da78d Possible fix for U4-1420 2013-01-10 11:46:26 -01:00
Sebastiaan Janssen c3132dab4d Merge 2013-01-10 11:29:07 -01:00
Sebastiaan Janssen a1cc58408f Include the new translation files in the project so they get in the build too 2013-01-10 11:22:42 -01:00
Sebastiaan Janssen c4e6da52d3 Merge with default 2013-01-10 11:13:40 -01:00
Sebastiaan Janssen ab6c5ac21a Added tag Release-4.11.2 for changeset 73711b806a40 2013-01-10 11:05:52 -01:00
Sebastiaan Janssen 227a38fb98 Removed tag 4.11.2 2013-01-10 11:05:43 -01:00
Sebastiaan Janssen 06f9dee649 Added tag 4.11.2 for changeset 73711b806a40 2013-01-10 11:05:34 -01:00
Sebastiaan Janssen 75680192bb Merge 4.11.2 into default 2013-01-10 11:05:13 -01:00
Sebastiaan Janssen a53efb394f Closing 4.11.2 branch 2013-01-10 10:54:56 -01:00
Sebastiaan Janssen 98ed32c8cf Include the new translation files in the project so they get in the build too 2013-01-10 09:55:35 -01:00
Morten Christensen 8694253442 Merge 2013-01-10 08:28:46 -01:00
Morten Christensen 6d62bae0fa Fixes U4-1400 so rollback works. 2013-01-10 08:27:57 -01:00
Sebastiaan Janssen df10ebebca Get latest translations in 2013-01-10 08:21:27 -01:00
Sebastiaan Janssen 46b1501ef5 Get latest translations in 2013-01-10 08:20:05 -01:00
Sebastiaan Janssen 04d85573fa Merge with 4.11.2 2013-01-10 07:44:28 -01:00
Sebastiaan Janssen 88dc73cd66 Fix the unpublished/pendinchanges/published display 2013-01-10 07:29:04 -01:00
Shannon Deminick 0c00f1e3b1 Fixes: #U4-1414 - split buttons not working in template editor 2013-01-10 06:18:12 +03:00
Shannon Deminick 8ed1d76bc7 cleans up a bit of code relating to U4-1412 2013-01-10 05:55:55 +03:00
Shannon Deminick 08859c3b32 Fixes: #U4-1412 - inserting macro with zero params causes JS error. 2013-01-10 05:48:03 +03:00
Shannon Deminick 89332bf3f5 updated all editors using the new html 5 doc type to declare the content area below the ASP.Net page declarations
(I didn't even know asp.net allowed having controls listed above)
2013-01-10 05:08:52 +03:00
Shannon Deminick b8f455e50b Removed PluginManagerExtensions for finding IMigrations since we are manually initializing the resolver instead of type finding. Updated
unit tests to use resolvers and are passing.
2013-01-10 04:49:12 +03:00
Shannon Deminick 4532c1b5b9 Updated IMigrations to use the proper plugin format using resolvers, updated unit tests and are passing. 2013-01-10 04:33:30 +03:00
Shannon Deminick c83db77980 Merge 2013-01-10 04:01:44 +03:00
Shannon Deminick 51c1c5c717 added more HttpRequestExtensions, cleaned up some code in legacyAjaxCalls, adds UmbracoRequestId to UmbracoContext
(for future use)
2013-01-10 03:59:11 +03:00
Morten Christensen 9c792a7a5e Fixes U4-1423 so PropertyTypes not in a group are also included in the list of a Content/MediaTypes PropertyTypes. 2013-01-09 18:48:44 -01:00
Sebastiaan Janssen cd0919aeeb Update version to 4.11.2 2013-01-09 16:03:56 -01:00
Morten Christensen dc158fee2e Fixes U4-1393 so Tabs shows as expected on both Content- and MediaTypes.
Corrected malformed query for PropertyGroups.
2013-01-09 14:37:54 -01:00
Sebastiaan Janssen ce6711b587 Duplicate fix (ce2f47c11322) #U4-1366 - conflict with partial view macro engine. 2013-01-09 13:58:55 -01:00
Morten Christensen 03e7a5a80b A bit of tidy up related to the content typoe trees.
The PropertyFactory contained an issue for MediaTypes similar to the one that existed for ContentTypes.
2013-01-09 13:29:32 -01:00
Morten Christensen 0c7473717c Fixes U4-1386 structure problem where the same DocType would show up multiple times.
Re-wired the tree to use the new api as its simply used for loading availab doc types.
2013-01-09 12:32:40 -01:00
Morten Christensen 4f455c5532 Merge 2013-01-09 11:45:31 -01:00
Morten Christensen db971bb0b9 Fixes U4-1418 caused by a size issue in PetaPoco when inserting a string larger then 4000 characters. 2013-01-09 11:44:30 -01:00
Sebastiaan Janssen 8a5e61bb26 Check if the _dataHelperTypeName is null 2013-01-09 10:43:12 -01:00
Morten Christensen 87017d75be Adding sorting to other usages of PetaPoco relators.
Fixing Mapper test after having renamed a few properties yesterday.
2013-01-09 10:11:23 -01:00
Morten Christensen ad2a82cc65 Possible fix for U4-1407 and related to the install problems for uBlogsy.
Ensures that PropertyGroups are sorted so they are properly mapped.
2013-01-09 09:57:01 -01:00
Morten Christensen b7ff6ae375 Merge 2013-01-09 07:31:36 -01:00
Morten Christensen 65dd21fafc Test and possible fix for U4-1392 2013-01-09 07:30:57 -01:00
Sebastiaan Janssen b8d5d67abd Additional fix for U4-1394 - DocumentType "Allowed Templates" will not update 2013-01-09 05:51:01 -01:00
Sebastiaan Janssen 4553fcedeb Remove comments/courier from dev dashboard config 2013-01-09 05:40:52 -01:00
Sebastiaan Janssen e0ba903974 Revert ordering of schema creation it only worked once by fluke and killed sqlce 2013-01-09 05:18:10 -01:00
Sebastiaan Janssen d6121ebab2 Connectionstrings section used to be after mailsettings, makes merges easier
for people who are upgrading
2013-01-09 05:15:28 -01:00
Sebastiaan Janssen 1b5970b446 D'oh! Forgot to seperate out the connectionstring 2013-01-09 05:08:05 -01:00
Sebastiaan Janssen daf5fb5dcf Fixes U4-1415 v6 Installing on MySQL gives error 2013-01-08 17:52:03 -01:00
Sebastiaan Janssen c9ba61e103 Merge 2013-01-08 16:47:30 -01:00
Sebastiaan Janssen a24d202efe Make sure MySql gets loaded with old AND new connectionstring 2013-01-08 16:46:56 -01:00
Stephan 03b1b34be7 U4-1411 - fix post-4.9 regression in NotFoundHandler url 2013-01-08 16:41:31 -01:00
Sebastiaan Janssen becf73bba1 Change word deprecated to obsolete 2013-01-08 13:51:57 -01:00
Sebastiaan Janssen 937fc423ad Change word deprecated to obsolete 2013-01-08 13:27:16 -01:00
Sebastiaan Janssen 7b4ccf73c6 Merge 2013-01-08 11:48:04 -01:00
Sebastiaan Janssen ef67aae9d3 Fresh installs don't have a version number so this step cannot be complete yet 2013-01-08 11:46:59 -01:00
Sebastiaan Janssen 312288d459 Some properties may be corrupt, so ignore those 2013-01-08 11:42:23 -01:00
Sebastiaan Janssen c9697a519e The check for IsDefault can't be performed on contenttypes that do not live in
the contenttype table
2013-01-08 11:41:54 -01:00
Morten Christensen afb251d5b7 Fixes U4-1394 so the DefaultTemplate is not completely removed from the list of allowed templates when changed. 2013-01-08 11:38:35 -01:00
Morten Christensen dd61432d9f More work on U4-1402 in order to clear cache in all the right places. 2013-01-08 10:58:06 -01:00
Sebastiaan Janssen 08c0da0226 MasterContentType column should not be in DTO, it gives errors querying
non-existing column in the database
2013-01-08 10:42:36 -01:00
Sebastiaan Janssen a3be3d0060 Temporary workaround for TypeFinder not finding migrations. Rename FourEight to
FourNine because that's what it should be.
2013-01-08 10:42:02 -01:00
Sebastiaan Janssen 8935f5c678 Check if masterpage file exists before populating it (could've been deleted from disk) 2013-01-08 10:40:38 -01:00
Morten Christensen c6feb2a27a Correcting an issue in the ContentTypeBaseRepository where removing a PropertyType would cause an error if a Property was referencing that PropertyType.
Correcting an issue in the ContentRepository that would occur if a new PropertyType had been added after Content is being used.
Fixes U4-1402
2013-01-08 09:49:13 -01:00
Morten Christensen 7e060d665b Renamed a few properties on the PropertyType object, as the original naming was confusing. 2013-01-08 07:38:54 -01:00
Shannon Deminick 9c5def35ee Merge 2013-01-08 02:00:16 +03:00
Shannon Deminick 3570ba4b95 Un-comments LegacyUploadFieldWorkaround with changes that make use of the MediaFileSystem. 2013-01-08 01:43:01 +03:00
Shannon Deminick e49bb2dd51 Adds a null check to set the label values, if the content item wasn't loaded then no properties were filled and thsu
no need to update the labels. Cleans up a tiny bit more code.
2013-01-08 00:58:22 +03:00
Shannon Deminick 147867a7a8 Fixes the requirement for LegacyUploadFieldWorkaround, cleans up some of the code in ContentControl and various other (legacy) places, improves performance slightly too. 2013-01-07 23:24:29 +03:00
Sebastiaan Janssen 3f5e20ca0e Replaced a little bit too much in the compilation section 2013-01-07 15:19:53 -01:00
Sebastiaan Janssen 7d0fecb078 Update uGoLive to v1.3.0 (has better reporting of which folders have incorrect permissions) 2013-01-07 14:06:07 -01:00
Sebastiaan Janssen a11a1a51c7 Set compilation debug=false explicitly for release version (for uGoLive) 2013-01-07 13:36:43 -01:00
Shannon Deminick ca4c8dcf4f Merge 2013-01-07 16:42:01 +03:00
Shannon Deminick 06db2408ec Fixes: #U4-1048 - custom installer doesn't throw an exception on post back even after package file cleanup. 2013-01-07 16:40:16 +03:00
Sebastiaan Janssen af4fbba8e8 Database upgrade check was backwards &some more failsafes for upgrader/installer 2013-01-07 09:39:39 -01:00
Sebastiaan Janssen 759773deee Correct mistake in config transform 2013-01-07 08:55:43 -01:00
Sebastiaan Janssen e6178efcfb Duplicating fix for U4-483 so that this also fixes U4-1391 in the 4.11.x branch 2013-01-07 08:12:53 -01:00
Sebastiaan Janssen 9822dded09 Merge 2013-01-07 07:47:43 -01:00
Sebastiaan Janssen 7e489af4c5 Fix an error during development where the razor version was ambiguous 2013-01-07 07:46:59 -01:00
leekelleher 162fbcd4a4 Changed the PropertyEditorValueConverterTests to use TestCase attributes instead of an array.
(Finally followed this up since chatting with Shannon)
2013-01-06 22:22:14 +00:00
Sebastiaan Janssen 98b153c808 Merge 2013-01-05 14:55:11 -01:00
Sebastiaan Janssen e3a8a08e2f Add some logging to SQLHelper setup for debugging purposes 2013-01-05 14:54:30 -01:00
Morten Christensen d5554308d3 Adding UrlHelper to UmbracoUserControl 2013-01-04 11:03:54 -01:00
Morten Christensen ad36595b96 Refactoring remaining repositories using the standard sql builder to use stronly typed queries for generating sql.
This completes U4-1224
2013-01-04 11:01:20 -01:00
Morten Christensen f534a671df Refactoring MediaTypeRepository to use strongly typed query for generating sql. 2013-01-04 10:48:49 -01:00
Morten Christensen 46fb8fca81 Refactoring ContentTypeRepository, MediaRepository and DataTypeDefinitionRepository to use strongly typed queries for generating sql.
Adding a few unit tests to ensure the correctness of the generated sql.
2013-01-04 10:42:29 -01:00
Morten Christensen 73530b10ae Refactoring ContentRepository to use strongly typed query for generating sql. 2013-01-04 09:23:20 -01:00
Shannon Deminick b5635d5b25 Finished: #U4-1303 - adds 'create macro' checkbox for the Partial View Macros tree. 2013-01-04 02:57:40 +03:00
Shannon Deminick a9de1f216a Merge 2013-01-04 01:47:28 +03:00
Shannon Deminick a7c089bf01 Fixes: #U4-814 - DynamicNode now has proper instance level caching for returning properties and children. 2013-01-04 01:45:06 +03:00
Sebastiaan Janssen 70ebd7e129 U4-335 Fixed out of memory exception in cropper (checks in CropImage method) 2013-01-03 15:20:13 -01:00
Morten Christensen 3fa684d741 Merge 2013-01-03 15:16:56 -01:00
Morten Christensen 9520f2d570 Fixes how PropertyTypes are removed from a DocumentType or MediaType when using the backoffice. 2013-01-03 15:16:17 -01:00
Sebastiaan Janssen 0353edbfab Merge 2013-01-03 13:58:00 -01:00
Sebastiaan Janssen ef43dec675 Merge 2013-01-03 13:57:48 -01:00
Sebastiaan Janssen a421999ef8 Fix missing connection string during upgrades 2013-01-03 13:56:53 -01:00
Morten Christensen 7bebb78bfc Merge 2013-01-03 13:20:43 -01:00
Morten Christensen 78d6cac14a Cleaning up how MasterContentTypes are used to load inherited propertytypes in the backoffice.
Fixing the loading of tabs on DocumentTypes in backoffice.
Adding check for saving boolean property values in the Integer db column.
2013-01-03 13:19:41 -01:00
Shannon Deminick 22c7f0d6cc Merge 2013-01-03 17:13:08 +03:00
Shannon Deminick a6fa5508a8 Completes: #U4-1303 - UI integration for MVC views, partial views and partial view macros including ability to insert
macros in the view editor.
2013-01-03 17:11:59 +03:00
Sebastiaan Janssen d990b4318f Merge 2013-01-03 11:22:29 -01:00
Sebastiaan Janssen 5994783644 Remove deleted images from the solution as well 2013-01-03 11:21:23 -01:00
Morten Christensen f70f72f3e0 Merge 2013-01-03 10:13:40 -01:00
Morten Christensen ec221d76e7 Document Cache needs to be updated here as the PublishWithResult has been changed to omit the cache refresh. 2013-01-03 10:10:19 -01:00
Morten Christensen 4639be974b Fixes U4-1367 so media recycle bin shows trashed media and is actually able to empty it by permanantly deleting the items. 2013-01-03 09:59:26 -01:00
Sebastiaan Janssen 867f2a6c4a Merge 2013-01-03 09:49:22 -01:00
Sebastiaan Janssen 4166cd9f5d Extra checks for empty strings and non-existing paths, use PhysicalFileSystem 2013-01-03 09:48:29 -01:00
Morten Christensen fe75a09afa Updates Publish to call new SaveAndPublish method as per discussion in U4-1363
Publish will now also save the document before publishing it.
2013-01-03 09:43:47 -01:00
Morten Christensen 85f81537c5 Fixes U4-1371 so that media can be created through the RTE again. 2013-01-03 09:33:25 -01:00
Morten Christensen 0ca91c9229 Removing dependency no MediaFileSytem and UmbracoFile in the UploadField workaround, as it was causing problems when setting an image path thats not within the /media folder. 2013-01-03 08:59:44 -01:00
Morten Christensen 4365b0a208 Merge 2013-01-03 08:37:45 -01:00
Morten Christensen c7e8143128 Adds IUmbracoEntity to the structure of interfaces for ContentBase, ContentTypeBase and DataTypeDefinition. 2013-01-03 08:30:38 -01:00
Sebastiaan Janssen 044776fc5a Check if the propertyNode.FirstChild.Value is in content.Properties before trying to get it 2013-01-03 08:19:04 -01:00
Morten Christensen 96bcc74742 Adding UmbracoUserControl, which exposes the various contexts and the umbraco helper similar to the PluginController. 2013-01-03 08:04:19 -01:00
Sebastiaan Janssen 35c16097af Changed all editor to use the HTML5 doctype to make CodeMirror work better 2013-01-03 07:20:04 -01:00
Shannon Deminick 872c163999 Updated EditMacro.js to support inserting different syntax depending on rendering engine. Just need to get it to insert the params for MVC now.
Added HttpRequestExtenions with a method GetItemAsString which obsoletes/supercedes the old 'umbraco.helper.Request' method.
2013-01-03 06:21:55 +03:00
Shannon Deminick e0550a9a57 Fixes: #U4-1381 - LogHelper is public. Obsoletes 'Custm' log type and ensures that they are written to the log4net log too (though
they will continue to write to the audit trail until it is removed)
2013-01-03 02:08:29 +03:00
Shannon Deminick 184b00b3fa Changed html doc type declaration back to transitional until we can properly test. 2013-01-03 02:01:43 +03:00
Morten Christensen 84c564dbc5 Merge 2013-01-02 14:28:40 -01:00
Morten Christensen 169db0c15f Fixes U4-1368 so the FileHandlerData doesn't handle setting properties for Document and Media.
Properties using the UploadField will have its value as well as related values updated in a BeforeSave event.
2013-01-02 14:28:15 -01:00
Sebastiaan Janssen 55dbce3a93 Okay, really fixed the getdate() problem now. Maybe.. I should.. You know.. build my code first before I test it! D'oh. 2013-01-02 11:49:57 -01:00
Sebastiaan Janssen ecd3f3c54d Merge 2013-01-02 11:34:07 -01:00
Sebastiaan Janssen 01fa4bdc78 Fix badly formated "getdate()" default value (CE didn't like it) 2013-01-02 11:33:56 -01:00
Morten Christensen 0312caa166 Ensuring closed connections in unit tests using either the legacy or PetaPoco datalayer. 2013-01-02 10:44:28 -01:00
Sebastiaan Janssen 56bcb2f804 Remove version number from login / about page images and removed some old images 2013-01-02 09:02:13 -01:00
Sebastiaan Janssen a47f566fb0 Move assemblyversion to UmbracoVersion, where it belongs 2013-01-02 08:57:40 -01:00
Sebastiaan Janssen f391029a2a Fixed U4-1378 "About" dialog is broken 2013-01-02 07:36:33 -01:00
Sebastiaan Janssen 253d6b0387 Merge 2013-01-02 07:21:43 -01:00
Sebastiaan Janssen 2e5ba0b1e4 Set the providername as well when updating the connection string 2013-01-02 07:21:08 -01:00
Sebastiaan Janssen 212fd47237 U4-1376 Better formatting of the CE connectionstring and fixing the installer 2013-01-02 07:08:02 -01:00
Shannon Deminick fdbf254e7a Changed over master pages to use Html5 DocType. Updated EditMacro to use correct JS classes and correct CSS instead of inline. Also updated
it to use knockoutjs for all UI handling and cleaned up a bit of the code (though it could still do with even more overhaul but at least its legible now).
Ensures that knockoutjs is included in all pages and dialog pages.
Now just need to update the EditMacro page to check for MVC vs Webforms to insert the correct macro syntax for MVC.
2013-01-02 07:20:01 +03:00
Shannon Deminick a8f808f488 Converted EditMacro.aspx over to use the correct webforms inheritance. 2013-01-01 03:28:09 +03:00
Shannon Deminick 72898dc154 Updates RenderMacro syntax for inserting a macro in mvc views that have no params 2013-01-01 02:52:25 +03:00
Shannon Deminick e88dce59fe Added create dialog to partial view macros files, now need to update that dialog to support creating
macros at the same time like with xslt, etc... but at least you can create/edit/delete them now.
2013-01-01 01:00:33 +03:00
Shannon Deminick e9f581bb51 Fixes #U4-1366 - conflict with partial view macro engine. 2013-01-01 00:42:20 +03:00
Sebastiaan Janssen 77df8cff07 U4-1376 Remove appSetting conn.string from release web.config 2012-12-31 14:53:13 -01:00
Sebastiaan Janssen 1e961860c3 U4-1376 Use the umbracoDbDsn everywhere 2012-12-31 14:52:49 -01:00
Shannon Deminick 503f62b4d6 Merge 2012-12-31 18:40:29 +03:00
Shannon Deminick b292cb3ab3 Crated InsertMacroSplitButton webforms control instead of the hacky js code used to insert the split button in the template editor.
Have implemented it now in the EditView (will transition over its use in editTemplate soon but is low priority).
Have got the js callbacks working now for inserting a macro for the mvc editor but need to implement the correct syntax. Also need
to migrate and update the editMacro dialog screen to check if we are rendering for MVC or not and if it is MVC then use the correct
syntax.
2012-12-31 18:39:36 +03:00
Sebastiaan Janssen 1d42dc02c4 Fix failing tests due to new ApplicationTrees for Child Action Macros 2012-12-31 14:08:32 -01:00
Sebastiaan Janssen 173d5552c0 U4-1376 Remove internal dependencies on GlobalSettings.DbDsn 2012-12-31 13:57:29 -01:00
Sebastiaan Janssen f251017c5d U4-1376 fix the GlobalSettings.DbDsn setter for backwards compatibility 2012-12-31 12:28:38 -01:00
Sebastiaan Janssen 2b532f72c3 U4-1376 Remove redundant connectionstring 2012-12-31 12:15:46 -01:00
Shannon Deminick eeabee22bd Merge 2012-12-31 02:51:55 +03:00
Shannon Deminick 3ad793c4c5 Got partial view tree and partial view macros tree done. Need to get the custom create dialogs done now. 2012-12-31 02:51:30 +03:00
Morten Christensen f4706fcfb7 Fixes U4-1370 for ContentTypes thats loading using new api meaning that the fix only applies to Content and Media, but currently not Members.
For Members there is still an issue with MasterContentTypes, as the full structure is not loaded. Need to make the sql lookup recursive-
2012-12-30 18:26:08 -01:00
Morten Christensen f794730118 Merge 2012-12-30 07:17:48 -01:00
Morten Christensen b3b23e736b Restructering strategies in folders 2012-12-30 07:17:04 -01:00
Shannon Deminick 746c2b960b Merge 2012-12-30 03:11:42 +03:00
Shannon Deminick a7834b45da Created UmbracoAuthorizeAttribute, UmbracoAuthorizedController for all base MVC controllers that required a back office user to be logged in.
Converted over the SaveTemplate and SavePartialView methods of the codeEditorSave legacy web service to use MVC services and marked them obsolete.
Created a generic route to route all controllers found in the namespace Umbraco.Web.WebServices. Added a 'Url' property on the BasePage webforms class
to expose a UrlHelper for use in views. Created UrlHelper extensions to easily get the base url path of the REST MVC web services.
Converted the EditView page and JavaScript to use the new REST services with jQuery instead of crappy MS ajax.
2012-12-30 03:11:21 +03:00
Shannon Deminick dbe9c6a2a9 Fixes: #U4-1360 - full names of tree types in config.
Updates: #U4-1303 - basic UI support for partial view macros.
2012-12-30 00:59:25 +03:00
Morten Christensen 782c23588c Adding a simplified implementation of PetaPoco's IMapper, which is used to correct an issue with inserting nullable dates in the db. 2012-12-29 18:53:13 -01:00
Morten Christensen 602e9c6d7e Adding trailing slash to failing routing tests.
The issue with these tests might again be because of the UmbracoSettings file, which has the trailing slash setting. But with the settings being reset after teardown the tests were still failing, so made these minor corrections which shoudl correspond to the default setting.
2012-12-29 18:22:51 -01:00
Morten Christensen 655964f11b Fixing up a few path issues after having changed FullpathToRoot in GlobalSettings.
Corrected the path concat of path + web.config file.
2012-12-29 18:18:49 -01:00
Morten Christensen bcccc37f93 Changing t.GetAllProperties back to original t.GetProperties to avoid the use of binding flags, which is no longer necessary after having refactored the querying. 2012-12-29 18:17:16 -01:00
Morten Christensen 8999db6362 Refactoring ExpressionHelpers and querying to seperate the mapping used for our Database DTOs and Public Model.
Adding a MediaTypeMapper similar to the ContentTypeMapper, but type specific.
The PetaPoco IMapper implementation is removed as its no longer needed.
Updating a few unit tests, as the Where clause is now correctly formatted.
Adding unit tests for the new ExpressionHelper and MappingResolver classes.
2012-12-29 17:34:42 -01:00
Morten Christensen 3955f78966 Removing the camel case enforcement on the Alias of ContentTypes and MediaTypes in the new api. 2012-12-29 11:12:29 -01:00
Morten Christensen 56e2a89199 Adding a few new test cases to verify that AllowedChildContentTypes are saved correctly on ContentTypes and MediaTypes. 2012-12-29 11:11:09 -01:00
Morten Christensen 3e47d38a71 Adding missing directory seperator in FullpathToRoot.
Changing Umbraco.Core to use the SqlCe assemblies from the nuget package instead of those in the GAC, as that could cause problems for the build of the Umbraco.Core.dll.
2012-12-28 20:51:08 -01:00
Morten Christensen c98d906f36 Correcting a few formatting issues after importing patch. 2012-12-28 19:08:01 -01:00
Morten Christensen e198f76356 Committing changes from randy.mccluer's pull request 2012-12-28 19:03:15 -01:00
Morten Christensen 34c90e6e72 Removing redundent EventArgs class. 2012-12-28 17:55:00 -01:00
Shannon Deminick 6a84b6dc7a Merge 2012-12-28 19:36:05 +03:00
Shannon Deminick e9af1cb865 Fixes #U4-1048 - package installer cleanup, etc... 2012-12-28 19:34:57 +03:00
Morten Christensen fe595093f0 Merge 2012-12-28 14:48:21 -01:00
Morten Christensen 5dbcfa57a8 Implements the new publish and unpublish events in the PublishingStrategy.
Making the PublishStrategy public, so that its possible to subscribe to the events.
Removing the old PublishingEventArgs, which is no longer used.
Correcting a few comments.
2012-12-28 14:47:09 -01:00
Shannon Deminick 6c325f565d Merge 2012-12-28 18:32:26 +03:00
Shannon Deminick 020fa577f0 Fixes: #U4-1357 - more properties to expose context objects on SurfaceController and RenderMvcController base classes. 2012-12-28 18:31:10 +03:00
Morten Christensen 194d241b02 Adding Publish and UnPublish EventArgs 2012-12-28 14:15:12 -01:00
Morten Christensen 3ae5aa7195 Refactoring nodeSorter to utilize the changes made to the legacy/new api refactor.
Making a few of the public properties on CMSNode virtual, so we can override them in the Document and Media classes, which allow us to use the new api for saving changes to these properties instead of having them saved directly to the database.
2012-12-28 13:40:35 -01:00
Morten Christensen 8338102944 Reverting use of DateTime.UtcNow to DateTime.Now in the new api. 2012-12-28 10:43:34 -01:00
Sebastiaan Janssen 8ef6ca73f6 Merge with 4.11.2 2012-12-28 09:02:45 -01:00
Sebastiaan Janssen 1e4361ed2f Merge with 6.0.0-LegacyApi-Refactor 2012-12-28 08:45:40 -01:00
Morten Christensen e4e5982349 Removing sql server/ce specific brackets from repository queries as it was causing problems with MySql.
Fixes regression bug from removing brackets from PrimaryKey columns. Columns are now passed and syntax specific brackets are added.
Moving the MySql special case for updating User Id from one to zero.
2012-12-27 19:53:01 -01:00
Morten Christensen 0d4de7d585 Merge 2012-12-27 18:52:59 -01:00
Morten Christensen 64af0a610b Refactoring migrations by adding an abstract class to all expressions that allow for processing prior to returning an sql statement.
Refactoring the current sql syntax providers to better work with sql ce, sql server and mysql.
Adding migrations for v4.8 and v6.0.
Adding test cases for upgrading from 4.7 to 6.0 for the 3 database providers - sql ce, sql server and mysql.
Adding product name to the MigrationAttribute, which adds more flexibility to the MigrationRunner.
Fixing schema creation for mysql, which broke during a previous refactor task.
2012-12-27 18:52:47 -01:00
Sebastiaan Janssen bf78334290 Realized I was doing the added Save in the wrong place 2012-12-27 17:53:23 -01:00
Sebastiaan Janssen c97085f9bb Fix errors and wrong display of subnodes under and unpublished node showing as
published. Also fixes error message where it says on the subnode:
This document is published but is not visible because the parent '???' is unpublished
2012-12-27 17:29:54 -01:00
Sebastiaan Janssen e10cb56502 Previous fix didn't work if you don't Save() the document +don't publish copies. 2012-12-27 16:08:24 -01:00
Sebastiaan Janssen 140c1db66a Fixing umbEnsureUniqueName not being ran for a document copy 2012-12-27 15:39:37 -01:00
Sebastiaan Janssen 9b6677c7c7 Clean up this code a little bit 2012-12-27 14:42:49 -01:00
Sebastiaan Janssen 77f279eb53 Make move from recycle bin work again, pretty hacky 2012-12-27 13:42:31 -01:00
Shannon Deminick 116a87f5c5 Updated an error logging call in the Log class. Changed the redirected logging to use the lazy overload in case Info isn't enabled in the config. 2012-12-27 17:22:08 +03:00
Sebastiaan Janssen c508a2e4a8 Clean up this ugly code a little bit 2012-12-27 12:14:08 -01:00
Sebastiaan Janssen 2f8ac81fab Fix a typo 2012-12-27 12:04:00 -01:00
Sebastiaan Janssen ef32ed50c4 Fix sorting 2012-12-27 12:03:51 -01:00
Sebastiaan Janssen 5e4c4ae57c Fixes U4-1347 Can't enter backoffice of V6 with IE9 2012-12-27 11:21:38 -01:00
Sebastiaan Janssen dbb03b79e4 Merge 2012-12-26 15:25:43 -01:00
Sebastiaan Janssen c4103baaf8 Clean up Log class a bit 2012-12-26 15:22:28 -01:00
Sebastiaan Janssen 23c8348ab9 U-7 Only Audit Logs should go to UmbracoLog, the rest goes to LogHelper 2012-12-26 15:17:30 -01:00
Morten Christensen 5b1ce5fe67 Merge 2012-12-26 14:45:10 -01:00
Morten Christensen dbce36b7a5 Adding migrations for v6 upgrades.
Updating and testing migrations.
2012-12-26 14:44:42 -01:00
Sebastiaan Janssen fae949145e Remove more non-audit logtypes for U4-7 2012-12-26 14:39:27 -01:00
Sebastiaan Janssen 16289b8f2d U4-7 - Finish logging refactor 2012-12-26 11:59:51 -01:00
Sebastiaan Janssen 30cf0e2040 Add some logging to PhysicalFileSystem 2012-12-26 06:49:54 -01:00
Sebastiaan Janssen 48d620cdb0 Cleanup RTE ImageHelper a little bit, still bad code but more readable now 2012-12-26 06:27:30 -01:00
Sebastiaan Janssen 3bd487d092 Fixed #U4-1323 Stripping umbraco path out of source is not needed any more 2012-12-26 05:54:34 -01:00
Sebastiaan Janssen 6c8c37256b Cleanup media uploader in RTE a little 2012-12-26 05:50:48 -01:00
Sebastiaan Janssen 37b1fcbaf0 Fix image uploader in RTE, when used in VDir it returns the right path now
no need for relative path hacks
2012-12-26 05:49:03 -01:00
Shannon Deminick e867f89ba2 Fixes PetaPoco to support Medium trust. 2012-12-26 04:16:49 +03:00
Sebastiaan Janssen dc111768e3 Slight MediaFactory refactors, mostly to fix issue U4-1344 where files wouldn't
upload if the "magic" umbraco props don't exist (witdth, height, bytes)
2012-12-23 11:46:04 -01:00
Shannon Deminick 4cdd454461 Merge 2012-12-22 01:43:30 +03:00
Shannon Deminick 3a622e6241 Fixes: #U4-1215, #U4-1287 2012-12-22 01:40:33 +03:00
leekelleher 6589d5d5d3 MNTP: Fixed an long-time CSS bug. Aligned the header with the right-panel. 2012-12-21 15:58:02 +00:00
Morten Christensen 39e2314102 Correcting merge issues.
Fixing reset of published state in ContentRepository.
Correcting Querying tests after spacing has changed a bit.
2012-12-21 09:45:34 -01:00
Morten Christensen d816ac1125 Merge with 6.0.0 2012-12-21 08:38:43 -01:00
Morten Christensen a8bbefc6f1 Merge with 6.0.0-Repository-Resolvers-refactor 2012-12-21 08:26:20 -01:00
Shannon Deminick 446ff0591b Adds Deleting/Deleted events to the EmptyRecycleBin methods of Content/Media services. 2012-12-21 07:42:37 +05:00
Shannon Deminick 2644c069ae Removed collection saving/deleting events from ContentTypeService in place of one standard saving/deleting events
handlers containing args with enumerables (like content and media services)
2012-12-21 07:24:12 +05:00
Shannon Deminick 9f9afe2ee6 Converted over SendToPublishEventArgs to new events. 2012-12-21 07:20:39 +05:00
Shannon Deminick d0769cef0f Removed SavedCollection/SavingCollection events and just changed the SaveEventArgs and DeleteEventArgs to have enumerables.
Changed the base CancellableObjectEventArgs to have a protected property so inheritors can just expose the 'T' object as their own
better name.
2012-12-21 07:17:27 +05:00
Shannon Deminick 9cf86d7677 Manually fixed merge with MediaService. 2012-12-21 06:59:30 +05:00
Shannon Deminick 91a8fd7369 Manually fixed merge with ContentService and new events. 2012-12-21 04:59:51 +05:00
Shannon Deminick 18814d8dc6 Merge with 6.0.0 2012-12-21 04:42:22 +05:00
Sebastiaan Janssen 2d68f3547a Merge 2012-12-20 16:24:10 -01:00
Sebastiaan Janssen 9334f55fa6 When trying to query the umbracoApp table, check if it exists first
In the package installer, after creating a docType, also save it (now required)
In DocumentType, use the whole contentType to new-up a docType and check if the
allowedtemplate isn't null
Properties can have empty strings as values, can't convert those to int/datetime
Seperator character in ExpressionHelper was string.Empty, got malformed queries
2012-12-20 16:20:56 -01:00
Morten Christensen 5fa03b7f52 Adding PersistDeletedItem overload to MediaRepository to ensure that files saved in the Upload control are deleted.
Adding missing Delete statement to MediaTypeRepository.
2012-12-20 14:38:22 -01:00
Morten Christensen 8b5a85d98f Removing comments and old code from DocumentType class. 2012-12-20 14:33:45 -01:00
Morten Christensen 9f2d41286c Fixing MasterContentType for DocumentTypes.
Adding ParentId "listener" to the repositories that uses ParentId, so we can ensure that the path is updated correctly.
Fixing how AllowedTemplates are saved upon creation of a new DocumentType.
Ensuring DocumentType.Save is called when creting a new DocumentType.
Fixing Publish/RePublish of Content with previously published children.
Removing UpdateDocumentCache in the save event of editContent.aspx.cs as its now handled in the new api.
Rewiring template methods on DocumentType class to use the new api.
2012-12-20 14:29:08 -01:00
Sebastiaan Janssen e6975a71d5 Additional fix for U4-1312 Cant publish child node, because parent not published
When you unpublish a node which it's descendants also get unpublished, but as
soon as you publish the parent node again, they don't end up in the XML cache
any more, leading to this error again. Now putting all previously published
documents back into the XML cache when the parent gets published
2012-12-20 14:05:28 -01:00
Sebastiaan Janssen 33b497e5f4 Additional fix for U4-1341 - nodes should appear dimmed when unpublished, but
they appeared as changed (and not dimmed, therefore looked published)
2012-12-20 13:42:30 -01:00
Sebastiaan Janssen 21667cb278 Merge 2012-12-20 11:57:50 -01:00
Morten Christensen 3fd1732cb0 Merge 2012-12-20 11:39:10 -01:00
Morten Christensen c1695c2f7f Updating expressions to output sql for use with the fluent migrations, so it can be used for db upgrades. 2012-12-20 11:36:20 -01:00
Sebastiaan Janssen 6a05c4d968 Merge with 6.0.0 2012-12-20 09:49:39 -01:00
Sebastiaan Janssen ea35ac570e Merge with 4.11.2 2012-12-20 09:43:09 -01:00
Sebastiaan Janssen c5e7c81c19 Notification and tree refresh when unpublishing content 2012-12-20 09:25:50 -01:00
Morten Christensen 9d55fed6e7 Adding method to DataTypeService, which allows the retrievel of PreValues for a specific DataTypeDefinition.
Updaitng ContentExtension to use configured thumbnail sizes for Upload-DataTypes.
2012-12-20 09:06:08 -01:00
Morten Christensen b368debfb4 Adding extension to IContent and IMedia that allows you to set a HttpPostedFile, HttpPostedFileBase or HttpPostedFileWrapper as the value for a property. 2012-12-20 08:53:28 -01:00
Morten Christensen 977326def1 Removing unused/old db model definitions. 2012-12-19 15:29:10 -01:00
Morten Christensen 2ea3fe624f Refactoring SqlSyntaProvider to use the new common definitions. 2012-12-19 15:23:05 -01:00
Morten Christensen 1b465ca709 Merge with 6.0.0 2012-12-19 12:15:34 -01:00
Morten Christensen 9af1f5842c Updating ApplicationTreeRegistrar to check for table before looping through it.
Updating schema creation to not include the umbracoApp and umbracoAppTree tables.
2012-12-19 12:14:49 -01:00
Morten Christensen 271794ca40 Updates the Database step in the installer to not use the legacy sql install utility. 2012-12-19 10:35:01 -01:00
Sebastiaan Janssen 97f759b658 Forgot to add the new image file, oops! 2012-12-19 10:34:06 -01:00
Morten Christensen 2952990ad4 Refactoring the legacy base ContentType class to better allow the usage of both new and old api.
A few of the shared properties are now saved by the new api for DocumentType and MediaType, whereas the MemberType still uses the old style.
2012-12-19 10:13:56 -01:00
Sebastiaan Janssen 47d1fe7082 Fixed U4-703 - Updating or re-installing package causes duplicate trees 2012-12-19 09:05:23 -01:00
Morten Christensen 3742a0b731 Refactoring legacy MediaType class to use new public api.
Adding remove Template method to new ContenType class.
2012-12-19 08:50:35 -01:00
Morten Christensen 2535438978 Starting refactor of DocumentType, MediaType and the base ContentType class. 2012-12-18 14:50:26 -01:00
Morten Christensen d8da990080 Refactoring legacy Media to use new Public API. 2012-12-18 13:55:19 -01:00
Morten Christensen bae4352e77 Refactoring the saving of properties, so that its consistent for Content, Media and Member that all use the ContentControl.
Adding a clear cache call in the MediaType and DocumentType Save method to ensure the correct loading of properties/propertytypes.
Adding IsPublishable method to ContentService, so we have a way to check if a content can be published depending on the state of the ancestors.
2012-12-18 11:46:05 -01:00
Emil Christiansen a87304a55d Fixed so the css paths is relative 2012-12-17 18:11:08 -01:00
Morten Christensen 806c2a7ea4 Refactoring legacy Content, Property and propertytype though still a WIP. 2012-12-17 15:07:08 -01:00
Morten Christensen 9420a858c8 Merge with 6.0.0 2012-12-17 14:03:42 -01:00
Morten Christensen d9881a5530 Adding stubs for membership classes - keeping it internal for now as implementation will come at a later stage. 2012-12-17 14:01:29 -01:00
Morten Christensen 9bf45d6031 Updating MediaRepository to not create versions for Media, and ensuring that properties are properly updated. 2012-12-17 14:00:46 -01:00
Morten Christensen 4d5d556e64 Refactoring ContentRepository and MediaRepository to have a common base for getting and deleting versions.
Adding VersionableRepositoryBase implementation.
2012-12-17 13:37:36 -01:00
Sebastiaan Janssen 735bd574ff Didn't mean to commit test code, sorry! 2012-12-17 12:29:43 -01:00
Morten Christensen 30d7381ee3 Correcting all usages of getProperties to GenericProperties since its marked as Obsolete and shouldn't be used anymore.
Starting refactor of legacy Content class.
Refactoring DefaultData to use new datalayer.
Updating usages of the ServiceContext after as its no longer a singleton.
Correcting a few merge issues.
2012-12-17 11:16:09 -01:00
Emil Christiansen 8c9aa8f3e8 Changed editContent.aspx.cs so the 'access-denied' error messages look more Umbraco'ish
Added access-denied.png picture
Updated Umbraco.Web.UI.csproj so it includes the picture
2012-12-17 10:00:36 -01:00
Morten Christensen 32ea6e0bc0 Correcting wrong placement of uow.commit in SaveAndPublish method. 2012-12-19 07:19:04 -01:00
Sebastiaan Janssen 5c0d9785e0 Don't check log comment length if it is null.. helped with a broken recycle bin
not deleting content because sometimes the title of the content would be null
2012-12-17 09:25:55 -01:00
Morten Christensen 262e3440ce Merge with 6.0.0 2012-12-17 07:21:59 -01:00
Shannon Deminick 9255df99ad Commented out RefreshContentEventArgs as it is not used anywhere. 2012-12-16 07:52:16 +05:00
Shannon Deminick 5749e4cab3 Converted RollbackEventArgs to use new event system. 2012-12-16 07:46:19 +05:00
Shannon Deminick 30f3704a1b Changed over DeletedEventArgs to support new event system and all Services that use it. Created new
DeleteRevisionsEventArgs for when content removes revisions.
2012-12-16 07:43:03 +05:00
Shannon Deminick 89be8c3f41 Changed over CopyEventArgs to support new event structure and all services that use it, also added
another propery to the args 'Copy' so users can have access to the copied and original entity when consuming
the event.
NOTE: Noticed that the MediaService doesn't support copy?
2012-12-16 06:44:46 +05:00
Shannon Deminick af5a01caed Fixes MediaService to have the correct RecycleBin id = -21 (not -20 like Content). Converted
MoveEventArgs and all services that use it to use the new event structure.
2012-12-16 06:37:27 +05:00
Shannon Deminick dad5326281 re-added parameter check to ensure parent id is not 0. If adding hierarichal data, then use the
other overload accepting an entity. Converts over the Created/Creating events to the new structure for
ContentService and MediaService
2012-12-16 06:28:43 +05:00
Shannon Deminick 5e941a1c3a Changed CollectionSaved event naming to be consistent so is renamed SavedCollection (etc).
Now we have no more IEnumerable<Lazy<T>> collections, we can easily strongly type the event args instead of
just IEnumerable, they are now IEnumerable<T>.
2012-12-16 04:10:39 +05:00
Shannon Deminick 0615bf64dc Updated unit test name 2012-12-16 04:03:56 +05:00
Shannon Deminick b765dffea7 Removed the need for the services to have IEnumerable<Lazy<T>> parameters for bulk inserting, instead we enable the ability
to pass in an entity reference as a parent to the object if we want to lazily create heirarchy. This has been changed for the
ContentService and ContentTypeService as well as the entities for Media, Content, ContentType, MediaType and more unit tests written for it.
2012-12-16 04:02:29 +05:00
Shannon Deminick 94f69d5007 Removed ICancellableObjectEventArgs and instead just have a base class without the strongly typed object...
CancellableEventArgs.
2012-12-15 21:41:09 +05:00
Shannon Deminick b144e27d10 Merge 2012-12-15 21:28:05 +05:00
Shannon Deminick 5fadb715c1 Changed all bulk operations to use one transaction unless it is a Lazy collection (this was mostly the case before)
Fixed EventExtensions handling cancellations.
2012-12-15 21:27:15 +05:00
Shannon Deminick a925b092e7 Created new event structure (currently only implemented for Saving/Saved) and new events CollectionSaving, CollectionSaved.
Created new way to raise events and handle their cancellations. Everything is strongly typed so should make
working with events much nicer for end users. Also ensures that the Sender is the object raising the event.
2012-12-15 21:04:17 +05:00
Morten Christensen c20387496b Correcting an issue with the repository cache as it would never be able to retrieve the cached item, because get by and save by Ids were different. 2012-12-15 11:30:48 -01:00
Morten Christensen fabe5f83a7 Rearranging using statements in MediaService to ensure events are fired before after using, and that the AuditTrail writes after the uow has been disposed.
Adding GetById overload in MediaService to allow lookup by UniqueId guid.
2012-12-15 11:17:32 -01:00
Morten Christensen fcda8cc7ca Reordering using statements in ContentService to ensure that Events and Audit Trails exists outside the using. 2012-12-15 11:04:03 -01:00
Morten Christensen 5334ec3ff8 Minor adjustment to the ctor's of DefaultDatabaseFactory and PetaPocoUnitOfWorkProvider that clarifies the use of either ConnectionStringName or a custom ConnectionString+ProviderName. 2012-12-15 10:12:17 -01:00
Shannon Deminick 41e3471f2e Moves event args classes to separate files 2012-12-15 10:44:09 +05:00
Shannon Deminick 2035f2d77f Moved Event Args, etc... for persistence/services to Umbraco.Core.Events namespace 2012-12-15 10:43:03 +05:00
Shannon Deminick 1d259b711c Changed IsAllRepublished on PublishingEventArgs to be readonly (pretty sure it supposed to be like that) 2012-12-15 10:38:57 +05:00
Shannon Deminick b73efd16dc Fixes ServiceContext to ensure the repo's are lazy instantiated because their ctor's rely on the
RepositoryResolver.Current being initialized which normally doesn't occur until after the ServiceContext
is constructed. Adds instance level caching for the GetRecursiveValue method in case this is called more than
one time for a property in one view. Reverts PetaPocoUnitOfWork to allow more than one call to Commit().. this
isn't 'best practices' per se but it is more for performance reasons because otherwise we'd have to create a new
repo object + uow for any bulk saving operations... The end result is the same, bulk operations in the Services
cannot be processed in one transaction. Fixing up the ContentServiceTests by ensuring that the shared and always open sqlce
connection with the legacy SqlCeContextGuardian is closed on TearDown.
2012-12-15 10:33:29 +05:00
Shannon Deminick ad7aa66b0b Changes PetaPocoUnitOfWorkFactory to accept an IDatabaseFactory as ctor. Changes PetaPocoUnitOfWork to not dispose of the Database since
it will be shared with the current thread in order to support nested transactions and changes how the Transaction object is created
and used and then disposed of. Changes PetaPocoUnitOfWorkFactory to ensure that the UOW is
created with the shared Database instance. Fixes a method in UserService to ensure that the UOW is disposed since it wasn't using a repository.
2012-12-15 08:41:46 +05:00
Morten Christensen f5bfb90b64 Manually merging a few changes to the ContentService, ContentFactory, ContentRepository and ContentExtensions to avoid a merge hell when pushing latest to the legacy refactor branch.
Current checkin has a few new failing tests due to recent changes, but a few should be resolved by adding a DataTypesResolver setup in the ContentServiceTests fixture.
2012-12-14 15:19:54 -01:00
Morten Christensen 89399ad4c8 Closing repository refactor branch as its now been merged into the main 6.0.0 branch. 2012-12-14 14:00:57 -01:00
Sebastiaan Janssen db14868324 attributes["macroalias"] would YSOD instead of give back a null 2012-12-14 13:51:01 -01:00
Morten Christensen 6bc5ba2b4c Merge with 6.0.0-Repository-Resolvers-refactor 2012-12-14 13:50:56 -01:00
Morten Christensen 3d68106f47 Correcting a few unit tests that needed to have the ApplicationContext set in the SetUp of the fixture. 2012-12-14 13:49:20 -01:00
Morten Christensen 4c256986da Adding a few constructor options to the services to ease use when newing the services instead of using the ServiceContext. 2012-12-14 13:27:10 -01:00
Morten Christensen 3d2ca1f823 Refactoring MacroService and UserService to use the new and clean uow/repo approach. 2012-12-14 13:15:33 -01:00
Morten Christensen 0bf061751e Refactoring LocalizationService to use the new and clean uow/repo approach. 2012-12-14 13:06:58 -01:00
Morten Christensen 2956bdcc06 Refactoring FileService to use the new and clean uow/repo approach. 2012-12-14 12:59:47 -01:00
Morten Christensen 431e346622 Refactoring DataTypeService to use the new and clean uow/repo approach. 2012-12-14 12:43:05 -01:00
Morten Christensen c711ed8542 Updating ContentTypeService to new uow/repo approach.
Removing ServiceFactory as it won't be used.
Correcting constructors on ContentService for consistency.
2012-12-14 12:33:14 -01:00
Morten Christensen f9cffdd910 Merge with 6.0.0 2012-12-14 11:51:03 -01:00
Morten Christensen 0cce4a1a9e Updating DefaultData and ContentControl to better support saving through the new api.
DataTypes doesn't save directly to the db, but keeps the value in-memory so the save can be handled by the new api.
Correcting the usage of versioning in the ContentRepository.
2012-12-14 11:43:16 -01:00
Morten Christensen 22c15bc0ba Merge with 6.0.0 2012-12-14 07:27:42 -01:00
Shannon Deminick 547dab0761 Fixes: #U4-1274, U4-1304 2012-12-14 10:40:11 +05:00
Shannon Deminick 5fba1a775e Fixes: #U4-1300 2012-12-14 09:22:28 +05:00
Shannon Deminick e34b0cc6fe Fixes: #U4-1272 which now enables the hidden feature of razor macros (this feature also works
in MVC)
2012-12-14 09:11:53 +05:00
Shannon Deminick 81b28bd0ce Changed over remaining services to accept the RepositoryFactory as a ctor argument. 2012-12-14 08:22:42 +05:00
Shannon Deminick 1a5285dfa0 Merge with 6.0.0 2012-12-14 08:07:39 +05:00
Shannon Deminick a37abbe622 Merge 2012-12-14 08:06:45 +05:00
Shannon Deminick a9cb337a96 Changes ApplicationContext to expect arguments of DatabaseContext and ServiceContext for it to be
constructed. Changes DatabaseContext to not be a singleton. Changes ServiceContext not to be a singleton.
Removed ServicesFactory. Updated unit tests to support new changes.
2012-12-14 08:06:32 +05:00
Sebastiaan Janssen a41e0323df Merge 2012-12-13 16:11:56 -01:00
Stephan 06952833ef U4-1212, U4-1312 - fix Document.PathPublished 2012-12-13 15:48:46 -01:00
Stephan 3a93da6256 U4-1212, U4-1312 - fix Document.PathPublished 2012-12-13 15:48:46 -01:00
Sebastiaan Janssen b1091f91dc Fixes U4-1320 - Dictionary delete query isn't paremterized 2012-12-13 15:48:18 -01:00
Morten Christensen 207c651743 Refactoring the Document class for publishing and unpublishing.
Bumped into an issue with nullable datetime and petapoco, which now has a workaround in our IMapper.
Fix a few issues around the Published state on previous versions.
2012-12-13 13:05:23 -01:00
Sebastiaan Janssen a5775e5a27 Also add FixedDisplayModes package as NuGet dependency 2012-12-13 10:44:21 -01:00
Sebastiaan Janssen e2eee711d8 Fixes U4-483 - Replace illegal characters in media with a dash, not underscore
Also removing multiple repeating dashes, leaving only one in place.
2012-12-13 09:26:34 -01:00
Morten Christensen fa80356a49 Implements two subscribers for the PublishingStrategy for updating cache after publish and unpublish.
With this in place it should only be necessary to call Publish in the ContentService, and not worry about refreshing the cache.
2012-12-12 19:47:28 -01:00
Morten Christensen 0cdb7af3eb Adding internal constructor overloads to Document, Content and CMSNode for better setup of legacy objects using new objects. 2012-12-12 18:44:55 -01:00
Morten Christensen 029824c8bc Reverting internal methods to public methods in RepositoryFactory 2012-12-12 17:37:13 -01:00
Morten Christensen 6dd63aa0b3 Adding comment 2012-12-12 15:26:28 -01:00
Morten Christensen c386aa491b Merge with 6.0.0 2012-12-12 15:18:31 -01:00
Morten Christensen 3f35f1df00 Refactoring Document class to use new public api.
Adding Obsolete attributes to methods in Document class that has been updated.
Updating the PublishingStrategy to fire final event after content and xml has been properly updated in the db.
Adding a few new methods to the ContentService.
2012-12-12 15:17:48 -01:00
Shannon Deminick e5ddcc756c Changed boot managers to public 2012-12-12 20:10:50 +05:00
Sebastiaan Janssen 21ead72d48 Add en_us files in VS project file so they'll actually be in the built zip file 2012-12-12 12:40:18 -01:00
Sebastiaan Janssen c3c3c3856f Update unit tests to reflect removal of cachebrowser trees 2012-12-12 12:26:28 -01:00
Morten Christensen 877c38b8bc Moving RepositoryFactory to constructor to avoid hard dependency on the RepositoryResolver in the services. 2012-12-12 10:47:14 -01:00
Sebastiaan Janssen 23fff9be8c Remove the legacy Cache Browser 2012-12-12 10:25:34 -01:00
Morten Christensen 29762e227a Refactoring the usage of Copy in the ContentService, so that it could be implemented in the Document class. 2012-12-12 10:22:58 -01:00
Sebastiaan Janssen 849a9892c5 #U4-1246 Increase the version number in ClientDependency.config after install 2012-12-12 09:07:06 -01:00
Morten Christensen 6c7484a1bf Merge with 6.0.0 2012-12-12 09:01:26 -01:00
Morten Christensen f800744e4f Merge with 6.0.0 2012-12-12 09:00:25 -01:00
Morten Christensen e71a5fd5eb Fixing an issue with the MediaService.
Making the two UOW Providers public, so they can be used for newing up services.
Adding a few constructor options to the PP UOW Provider to avoid config lookup.
2012-12-12 09:00:00 -01:00
Sebastiaan Janssen 5f93e20fab Merge 2012-12-12 07:21:17 -01:00
Sebastiaan Janssen 094fbf2e6b Putting ClienntDependency.Mvc back now that we have assembly redirects 2012-12-12 07:20:58 -01:00
Shannon Deminick 41403c13a9 Fixes a ContentService 'using' of the repo. Updated the MediaService to use the correct logic for UOWs. 2012-12-12 06:40:38 +05:00
Shannon Deminick 1e41db6d69 Removed any manual instantiation of PetaPocoUnitOfWork as this should generally always
be done by the PetaPocoUnitOfWorkProvider to ensure that for a UOW it always uses a new database
instance, not a shared one.
2012-12-12 06:08:03 +05:00
Shannon Deminick a3938edde2 Changed the PetaPocoUnitOfWorkProvider to ensure that a new Database object is used for each new
unit of work (transaction). When the UOW is diposed, the database instance will also be disposed.
2012-12-12 05:57:52 +05:00
Shannon Deminick 1132547c24 Changed required Database references to UmbracoDatabase 2012-12-12 05:48:18 +05:00
Shannon Deminick a0e4492a35 New implementation of IDatabaseFactory, allows setting the DatabaseContext.Current at runtime
with a custom IDatabaseFactory (mostly for testing).
Changes AuditTrail to internal so the public way is just with the 'Audit' class.
Fixed ThreadSafetyServiceTests which was failing with the new AuditTrail stuff because of the
Database instances, this is not solved with the new PerThreadDatabaseFactory for the unit test.
Created new 'UmbracoDatabase' object which inherits from the PetaPoco one so that we can future proof
the implementation as we might want some custom logic on there. Now the IDatabaseFactory returns
an UmbracoDatabase instead of just Database.
2012-12-12 03:47:04 +05:00
Shannon Deminick 6ac2db9497 removed database factory, changed audit trail stuff to internal, not sure it needs to be public. 2012-12-12 00:17:59 +05:00
Shannon Deminick aa574ac32f Merged with 6.0 and fixed a couple merge issues 2012-12-11 23:19:07 +05:00
Shannon Deminick cfa8fc2bba Removed the uow ctor from the SaveEventArgs for testing as the test will still prove that
multi-threading works with the services without proving access to a single uow, the db will error first anyways.
2012-12-11 22:56:34 +05:00
Sebastiaan Janssen 73d541ad80 Preserve existing whitespace in web.config file to make upgrades a LITTLE easier 2012-12-11 16:23:15 -01:00
timothy.beutels@bluecherry.be 7d26ae520e U4-580 Fixes an issue introduced by the bugfix for U4-580 in fdec8c2f6a62
The preview button got pushed out of view when the rte toolbar was loaded.
2012-12-11 15:10:16 -01:00
Morten Christensen 1eaa117883 Adding HasChildren check to ContentService and ContentTypeService.
Correcting an issue with loading of template ids in DocumentType class.
2012-12-11 14:27:18 -01:00
Morten Christensen 64b91ae1e4 Refactoring DocumentType class to use new public api in the following methods:
MakeNew
setupNode
GetByAlias
GetAllAsList
2012-12-11 13:34:00 -01:00
Morten Christensen 170293da41 Adding a few new methods to the ContentService and refactoring a few quirks.
Refactoring following methods in the Document class:
setupNode
MakeNew
GetRootDocuments
GetDocumentsOfDocumentType
GetDocumentsForExpiration
GetDocumentsForRelease
Rollback
GetVersions
GetPublishedVersion
GetDescendants
MoveToTrash
2012-12-11 12:15:37 -01:00
Morten Christensen 6516041617 Merge with 6.0.0 2012-12-11 08:55:45 -01:00
Morten Christensen 3a9e66b442 Merge 2012-12-11 08:44:50 -01:00
Sebastiaan Janssen 155a98a3dc Ammending commit 94f54db3ef7e, VirtualPathUtility didn't work, found that we
have a lovely new Umbraco.Core.IO.IOHelper for the thing we're trying to do here
2012-12-11 08:34:50 -01:00
Morten Christensen 01baef6bc2 Removing unused files 2012-12-11 08:00:23 -01:00
Morten Christensen 614ef15f8a Removing infrastructure setting, as its not needed any more 2012-12-11 08:00:06 -01:00
Shannon Deminick 43e74fa7a4 Merge 2012-12-11 12:06:25 +05:00
Shannon Deminick feff68ada8 Refactor new Services for thread safety, plus unit tests. Not all services are updated to be correct, only the
ContentService, the rest need to be updated as well.
2012-12-11 12:03:36 +05:00
Morten Christensen 15c78b539d Merge 2012-12-10 15:00:54 -01:00
Morten Christensen f114b06531 Adding events to MacroService 2012-12-10 14:59:33 -01:00
Morten Christensen 0613a422fb Adding events and audit trail for LocalizationService 2012-12-10 14:53:36 -01:00
Shannon Deminick aeab577627 Ensures that our view engines inherit from FixedRazorViewEngine as per #U4-1305 2012-12-10 20:48:04 +05:00
Morten Christensen 190cdaacb5 Adding events and audit trail to MediaService 2012-12-10 14:28:46 -01:00
Morten Christensen 3f846e188a Adding events and audit trail to FileService - templates, scripts and stylesheets. 2012-12-10 13:49:20 -01:00
Morten Christensen 7e728af93c Adding events and audit trail to DataTypeService 2012-12-10 13:04:18 -01:00
Morten Christensen fc188b6c8a Adding events and audit trail to ContentTypeService 2012-12-10 12:47:36 -01:00
Sebastiaan Janssen 1674b440ee Make sure to always use only the Web.Template.Config when transforming during build.bat 2012-12-10 12:12:32 -01:00
Sebastiaan Janssen dc72907c33 Correcting indentation of xml file to VS default (tabs) 2012-12-10 11:51:04 -01:00
Sebastiaan Janssen 7e3faf3810 Add FixedDisplayModes package, as per issue #U4-1305 2012-12-10 11:45:36 -01:00
Sebastiaan Janssen 400648d5bc Not sure how the Test.cs reference got back in App_Code 2012-12-10 11:39:31 -01:00
Sebastiaan Janssen fc78a34bd1 Use Excludes instead of deletes for SQL CE dependencies 2012-12-10 11:35:31 -01:00
Morten Christensen 5472e979a0 Adding audit trail to methods in the ContentService 2012-12-10 10:57:51 -01:00
pgregorynz 51b6311c43 Merge 2012-12-10 00:38:15 -10:00
pgregorynz f6b3f02dd2 Fixes U4-580 Send To Publish permission ignored on Content Editor Screen 2012-12-10 00:36:00 -10:00
Morten Christensen 4f5c5cfc7c Making minor correct to ServiceContext as per Shannons recommendation.
Adding resolver reset to publishing test tear down.
2012-12-10 08:44:17 -01:00
Morten Christensen 9165bd5d57 Close branch 2012-12-10 07:54:00 -01:00
Morten Christensen fbe1ec1035 Merge with 6.0.0-Repository-Resolvers-refactor 2012-12-10 07:49:56 -01:00
Shannon Deminick 56b70ad229 Updated a ton of Error logging calls to use the new LogHelper but there are still plenty more to go; #u4-7 2012-12-10 05:03:28 +05:00
Shannon Deminick 1e19c4b65b Converted much of the old logging to use the new logging. All calls for log types: Login, Logout,
LoginFailure, Debug. There's still a bunch to convert though. #U4-7
2012-12-10 04:22:29 +05:00
Shannon Deminick 153cfeefb7 Have obsoleted LogTypes that are not part of the audit trail 2012-12-10 03:49:53 +05:00
Shannon Deminick b1f0e00287 Adds performance benefits for PublishedContentBase 2012-12-10 03:40:50 +05:00
Shannon Deminick e6f50c2fa4 removed comments 2012-12-10 03:15:12 +05:00
Shannon Deminick c9f40a74de Changed all data services to create one repository type in the constructor instead of resolving
them in each method since they are only supposed to be using their single unit of work anyways (resolving
will return the same repository anyways, but in some cases it might have been with a different UOW)
Removed SetUnitOfWork method on IRepository as this is not needed.
Removed the old implementation of RepositoryResolver and replaces it with the RepositoryInstanceResolver (but
maintained the name of RepositoryResolver)
2012-12-10 02:58:23 +05:00
Shannon Deminick f55d639514 Simplifies the ResolveByType so that it only requires the one interface, this is done by adding a new non-generic
IRepository interface.
2012-12-09 09:21:26 +05:00
Shannon Deminick c3c62f916c Added SetRepositoryInstanceFactory method so that in the future devs could set their own RepositoryInstanceFactory on startup. 2012-12-09 09:07:50 +05:00
Shannon Deminick e0a7be7237 Created RepositoryInstanceResolver/Factory to replace the configuration based instantiation of Repo's.
Added unit tests to support resoling each instance, fixed CodeFirstTests to ensure that the base.TearDown() method is
called. Changed the BaseMapper's to internal.
2012-12-09 09:01:00 +05:00
Shannon Deminick 0c29704d09 Fixes TypeFinder to not scan for types when the assembly IsDynamic (created using reflection Emit).
This fixes the RenderRouteHandlerTests which were failing due to a sequence of events when the new PetaPoco classes
were created using Reflection and then the TypeFinder tries to enumerate on them.
2012-12-09 04:13:09 +05:00
Shannon Deminick e251ccf456 Obsoletes the NiceUrl() and NiceUrlWithDomain() methods on IPublishedContent in favor of Url() and UrlWithDomain() 2012-12-09 03:53:16 +05:00
Shannon Deminick 6267e2e340 Adds support for NiceUrl() for media. 2012-12-09 03:51:02 +05:00
Shannon Deminick 43560a04d3 added some comments. 2012-12-09 03:45:55 +05:00
Shannon Deminick 1de43347d5 Added Url support for media when the IPublishedContent item inherits from PublishedContentBase 2012-12-09 03:27:19 +05:00
Shannon Deminick 44ccfc0262 Adds 'Url', 'ItemType' and the Indexed property alias to IPublishedContent.
Changes Properties to ICollection instead of Collection for IPublishedContent.
Creates PublishedContentBase object which handles the Url and Indexed property on IPublishedContent automatically so implementors should use this base
class instead. Moves GetPropertyValue extensions to the Umbraco.Web project instead of the
Umbraco.Core project because this method needs to parse internal links if the value is a string. We require the UmbracoContext
to do this so they must exist in the Web project.
2012-12-09 03:22:11 +05:00
Shannon Deminick 084e2ee37f Updated EditMacro to use CSS instead of hard coded styles throughout. 2012-12-09 01:22:53 +05:00
Shannon Deminick 2e5618b778 Merge 2012-12-09 00:51:09 +05:00
Shannon Deminick 5870452cc9 Updated assembly binding for MVC(4, and really any other MVC version that requires assembly binding if
old libraries are built against old MVC versions).
Fixes a check for the ScriptingFile in for Partial View macros.
2012-12-09 00:50:58 +05:00
Morten Christensen 9111f811be Implementing the new DefinitionFactory, which makes use of the newer database model definitions. This is done to streamline the usage of the database model definitions between db creation and migration. 2012-12-07 14:52:54 -01:00
Shannon Deminick 66fe539d1c Fixes class reference issues 2012-12-07 20:08:06 +05:00
Shannon Deminick 73414f4504 Merge with default 2012-12-07 19:56:40 +05:00
Morten Christensen 736fbc6659 Moving database definition models, so they are shared and can be used in the sql syntax provider. 2012-12-07 13:48:38 -01:00
Morten Christensen f9403f2bc6 Implementing fluent Delete, Rename and Update syntax for migrations. 2012-12-07 13:46:11 -01:00
Morten Christensen 9935abd1a2 Implementing Insert-builder with fluent syntax 2012-12-07 12:23:03 -01:00
Morten Christensen 97509316ba Was missing initial wire up of the Create builder's fluent syntax 2012-12-07 12:02:56 -01:00
Morten Christensen e9d1747504 Adding Fluent Create-builders for Column, Table, Index and ForeignKey. 2012-12-07 11:55:41 -01:00
Morten Christensen 77588252a6 Merge with 6.0.0 2012-12-07 09:30:48 -01:00
Morten Christensen 6a6302335d Setting trust level to full for the time being 2012-12-07 09:28:40 -01:00
Morten Christensen e1896319ec Initial refactoring of the Document class to use the new public api.
And some experiments with medium trust and dynamic method.
2012-12-07 08:48:46 -01:00
Shannon Deminick 2a90e93a6f Updated partial view macro engine to support storing the files in the App_Plugins/[packagename]/Views/MacroPartials
so they can be stored with a package and not pollute the main file system.
2012-12-07 07:04:11 +05:00
Shannon Deminick 0d94ddb96e Got macro parameters working with Partial View Macros, changed PartialViewMacroPage to inherit from
UmbracoViewPage<PartialViewMacroModel> so that UmbracoHelper, etc... are available.
2012-12-07 06:31:53 +05:00
Sebastiaan Janssen db2d73dc88 Alter the web.config template for mvc4 support 2012-12-06 14:27:41 -01:00
Sebastiaan Janssen cd2711957f Additional update for MVC4 support, nuget dependency updated, errors due to
web.config file in Views folder fixed
2012-12-06 11:33:17 -01:00
Sebastiaan Janssen 323af078ca Upgrade to MVC4 2012-12-06 10:31:54 -01:00
Sebastiaan Janssen 9da62aa965 Correct wrongly committed urlrewriting/xsltextensions configs 2012-12-06 10:30:52 -01:00
bpowell@LAWRENCE.network.bitmapped.net d30791b8e0 Adding en_us language option. Modified existing en language name to clarify it is UK. 2012-12-06 01:21:58 +05:00
Sebastiaan Janssen f077646bf0 Ignore built zip files with version number in them as well 2012-12-05 14:45:24 -01:00
Sebastiaan Janssen 66f030a0d6 Batch to generate both the complete build AND the NuGet builds at same time 2012-12-05 14:44:30 -01:00
Sebastiaan Janssen 6a92b400b8 Open connection before checking if table exists 2012-12-05 14:43:37 -01:00
Morten Christensen 8210666d30 Refactoring identity inserts in db creation phase to support mysql 2012-12-05 14:18:08 -01:00
Morten Christensen e31fc6e86a Merge 2012-12-05 12:47:53 -01:00
Morten Christensen 8a9cbd0524 Cleaning out old transaction commit code 2012-12-05 12:47:28 -01:00
Morten Christensen 628800c14a Committing configs with correct spacing 2012-12-05 12:37:21 -01:00
Morten Christensen 89bcbdb0f3 Moving db transaction up one level to improve installation, which failed for sql azure. 2012-12-05 12:37:00 -01:00
Sebastiaan Janssen 5518b901cc Only place to set the nuget version is now in the nuget batch file
Saves editing in 3 places
2012-12-05 11:44:34 -01:00
Morten Christensen 602e3260fa Fixing foreignkey issues 2012-12-05 08:39:31 -01:00
Morten Christensen e73f80d78c Merge 2012-12-05 07:50:38 -01:00
Morten Christensen fc43247a9e Adding clustered index to the UserLoginDto 2012-12-05 07:50:05 -01:00
Shannon Deminick c7645b55ba Partial View Macros now being rendered, now to implement the remaining parts with things like
parameters, etc...
2012-12-04 22:06:55 +05:00
Sebastiaan Janssen 73dc2d7f05 Ignore capitalized versions of content folders as wel as lower-cased ones 2012-12-04 10:37:34 -01:00
Morten Christensen 28d9784c1b Reverting changes to DTOs to re-enable foreign key constraints.
Adding temporary condition to executing database schema creation code to skip foreign key constraints for sql ce.
2012-12-04 08:16:10 -01:00
Morten Christensen 952e4914c5 Merge 2012-12-04 07:37:10 -01:00
Morten Christensen 2c2177fcc7 Creating a new DefinitionFactory for refactoring the database definitions used by the syntax provider. 2012-12-04 07:36:51 -01:00
Shannon Deminick 208806c027 Updated more partial view macro engine and its rendering... nearly there. 2012-12-04 11:31:03 +05:00
Shannon Deminick 8024610364 Fixes up some logging API issues. Fixed up tracing in the macro class. Added support for Partial View macro rendering in the macro class. 2012-12-04 11:08:02 +05:00
Shannon Deminick 8e4644568b Updated loghelper to be able to Warn and also trace Warn with an exception. Updated the macro control to check for the
Partial View Macro, added Partial View macro to the enum.
2012-12-04 05:58:24 +05:00
Shannon Deminick e0a71830fa Updated macro editor to support Partial view macros. Improves the JS in the editor (no more c# based js) which auto clears
other fields and drop downs when other files are selected.
2012-12-04 05:42:15 +05:00
Shannon Deminick 5b0057c258 Added missing files. 2012-12-04 03:29:02 +05:00
Shannon Deminick fb61c55fa7 Started on PartialViewMacros 2012-12-04 03:26:04 +05:00
Sebastiaan Janssen f1f8759bde Change string parsing to VirtualPathUtility.ToAppRelative 2012-12-03 16:53:47 -01:00
Sebastiaan Janssen 71410f0f12 Merge changes from default into 6.0.0 2012-12-03 16:05:32 -01:00
Sebastiaan Janssen 97639040f0 New way of transforming web.config file that should work in both VS2010 and 2012
Moved transform responsibility to Umbraco.Web.UI (mainly because circular
dependency has been solved already a few months ago)
Managed to clean up build.proj significantly in the process
2012-12-03 15:53:06 -01:00
Sebastiaan Janssen b02ad9e698 Remove foreign keys that never used to be in 4.x.
Fix the datacreation of CmsTaskTypeData
2012-12-03 13:22:23 -01:00
Sebastiaan Janssen 4f373541ac Accidentally added TWO RequiredDbSetup properties 2012-12-03 11:57:28 -01:00
Morten Christensen 213451e442 Implementing the MigrationRunner, which will be used for database upgrades.
Refactoring a few bits in the syntax of the migration models.
Adding an extension of the PluginManager to find migrations by Type and Attribute.
2012-11-30 18:48:20 -01:00
Morten Christensen d05a8e0390 Creating DbTypeMap for formatting type in expression 2012-11-30 17:56:02 -01:00
Morten Christensen a7a030bad2 Adding a few known assembly types to the ignore list in the TypeFinder.
Changing Migration test to use the Type and Attribute resolver.
2012-11-30 17:47:48 -01:00
Morten Christensen c4565df255 Adding TearDown to a few tests 2012-11-30 15:06:31 -01:00
Morten Christensen f59f57fd6a Initial work on fluent database migrations 2012-11-30 15:01:52 -01:00
Stephan a70ef52964 fix xpath syntax error with legacy XML schema 2012-11-30 13:33:24 -01:00
Stephan 51204ee401 U4-1212 - bugfix Document.PathPublished 2012-12-11 17:37:33 -01:00
Sebastiaan Janssen 657f165ffb Created branch 4.11.2 2012-12-17 12:22:11 -01:00
Stephan 7aa2064322 fix xpath syntax error with legacy XML schema 2012-11-30 13:33:24 -01:00
Stephan d3f6fe5269 U4-1212 - bugfix Document.PathPublished 2012-12-11 17:37:33 -01:00
Morten Christensen a5344b4087 Ensure UmbracoSettings are reset between tests 2012-11-30 10:06:17 -01:00
Morten Christensen 4a14095a6e Correcting conditions for test 2012-11-30 09:49:05 -01:00
Morten Christensen cc597dca15 Merge 2012-11-30 09:35:40 -01:00
Morten Christensen 152c8e810d Working with unit tests and making a few corrections around ContentTypes. 2012-11-30 09:34:09 -01:00
Sebastiaan Janssen bbd88be00b LookupByAliasTests didn't require a DB after all 2012-11-30 08:00:04 -01:00
Sebastiaan Janssen 40e7b9bc0a Fix the DB creation and population (tested only on SQL CE so far) 2012-12-03 11:49:09 -01:00
Shannon Deminick 41acb091eb Updated the Umbraco_Client folder casing in the UI project. All folders are now properly cased in the UI proj. 2012-12-03 05:58:27 +05:00
Shannon Deminick 24dc6abcc0 Fixed folder casing in the UI project for all folders (except the Umbraco_Client one which will be in the
next commit). Now, VS thinks that all folders in the UI project are properly cased even though on the file system
they are not. This means that any webforms classes that are created in the UI project will automatically have the
correct namespace casing.
2012-12-03 05:43:31 +05:00
Shannon Deminick ca62b3aedb adds umb favicon to installer and back office. This also ensures it doesn't get overridden by package files (some do that). 2012-12-03 03:21:07 +05:00
Sebastiaan Janssen fbd8884944 Fix routing tests, we DO need a database for these 2012-11-29 17:10:41 -01:00
Sebastiaan Janssen 2cc8ac74d6 Fix SQL regressions (I expected them) 2012-11-29 17:07:38 -01:00
Sebastiaan Janssen 14ee934fd5 Ignoring dictionary tests as code comment cleary says they don't work anyway 2012-11-29 15:44:00 -01:00
Casey Neehouse 3bd98d851a Reverting the config files that inadvertently got committed. 2012-11-29 21:42:37 +05:00
Sebastiaan Janssen 20d1498eb9 Merge 2012-11-29 15:40:15 -01:00
Sebastiaan Janssen c3f9a2ae12 Reimplement the changed DB schema and adjust the code to work with it 2012-11-29 15:38:04 -01:00
Casey Neehouse 9eea46b19b Modification of UserControl usage to allow for Virtual Path to be used correctly. 2012-11-29 21:27:42 +05:00
Morten Christensen 2f83e5ba31 Fixing a few broken unit tests 2012-11-29 13:05:51 -01:00
Morten Christensen 357a5d1638 Merge 2012-11-29 12:41:36 -01:00
Morten Christensen acb909c706 Refactoring installer to use the DatabaseContext for installing the umbraco db schema and default data.
Minimizing the use of the json/ajax calls during installation.
2012-11-29 12:40:48 -01:00
Sebastiaan Janssen dac1a8e9dc Checking to see why the test file doesn't get deleted on the build server 2012-11-29 11:56:33 -01:00
Sebastiaan Janssen 4817cf8310 That didn't actually fix the dictionary tests, shame. 2012-11-29 11:19:44 -01:00
Sebastiaan Janssen 2b3e535f83 Make dictionary tests work 2012-11-29 10:31:49 -01:00
Sebastiaan Janssen c6c5839373 Move directory creation to TestHelper and reference from a few places 2012-11-29 09:07:14 -01:00
Sebastiaan Janssen 4d008f1755 No need to delete the directories, just the data in them 2012-11-29 08:27:59 -01:00
Sebastiaan Janssen 079d6e49e9 Creating and deleting required folders automatically for tests 2012-11-29 07:52:12 -01:00
Morten Christensen d8d131be93 Merge 2012-11-29 06:48:55 -01:00
Sebastiaan Janssen c8387d58f5 Fix (expected!) merge problem. 2012-11-28 14:39:11 -01:00
Sebastiaan Janssen f6e8cbf6de Merge with default 2012-11-28 14:34:55 -01:00
Sebastiaan Janssen 76fb5d260f Moved tag Release-4.11.1 to changeset 6eb5f2fb5a88 (from changeset 7f827760cb49) 2012-11-28 13:35:30 -01:00
Sebastiaan Janssen 267cd46ea0 Another additional fix to make the reloading of trees work after package install 2012-11-28 13:34:35 -01:00
Sebastiaan Janssen 96f6a0161f Merge with 4.11.1 2012-11-28 13:08:13 -01:00
Sebastiaan Janssen 7bc53adc67 Closing 4.11.1 branch 2012-11-28 13:06:01 -01:00
Sebastiaan Janssen 8ecff73c18 Added tag Release-4.11.1 for changeset 7f827760cb49 2012-11-28 13:05:21 -01:00
Stephan 35e65ad18c add support for "/foo" hostnames ONLY for backward compat.
fix invalid hostname message
2012-11-28 12:43:19 -01:00
Sebastiaan Janssen 8def8eaa86 Bumping the version to 4.11.1 2012-11-28 09:44:03 -01:00
Sebastiaan Janssen c0774ad9b9 Merge 2012-11-28 09:24:54 -01:00
Sebastiaan Janssen f306cbe457 Move invalidDomain entry to the correct area. 2012-11-28 09:24:40 -01:00
Sebastiaan Janssen 577b989c4c Aha, string needs to start all the way to the left to appear nicely in the editor 2012-11-28 08:41:54 -01:00
Sebastiaan Janssen e6b162f4f6 Add translation for invalid hostname 2012-11-28 08:37:08 -01:00
Stephan b40cc1879f missing entry in language file 2012-11-28 07:36:08 -01:00
Shannon Deminick 8a7c7bf77d Merge 2012-11-27 21:47:20 +05:00
Shannon Deminick 38a1179de5 applied patch from rev 189f37a1dd63 which reverts the last minute changes before 4.11
release, namely changes to the ApplicationTreeRegistrar, TreeDefinitionCollection, theend installer step.
2012-11-27 21:45:57 +05:00
Sebastiaan Janssen f263b4d92b Fixes U4-1162 - In MVC mode, creating a child template doesn't set the layout
correctly (it's missing the .cshtml extension)
2012-11-27 15:36:54 -01:00
Morten Christensen 6edea4a8ee Adding some of the database changes that is part of v6 - just renaming a few columns so far.
Refactoring the installer, which is not working 100% yet.
2012-11-27 15:07:53 -01:00
Sebastiaan Janssen c612727116 Add translations that got lost in merge, fixes U4-1254 2012-11-27 14:07:13 -01:00
Sebastiaan Janssen ab9c9df7d6 Reverting last minute hacks around the pluginmanager and adding Shannon's fixes
from changeset 85f9e5879e60
2012-11-27 13:27:33 -01:00
Stephan c607e50433 U4-1245, U4-1186... fix the mess I created with hostnames 2012-11-27 12:43:57 -01:00
Stephan df5555bdf1 Opened branch 4.11.1 2012-11-27 12:40:42 -01:00
Morten Christensen d98bd97c5f Merge 2012-11-27 11:39:27 -01:00
Morten Christensen 5233dff63f Workaround for database setup in the installer, cause medium trust won't play nice. 2012-11-27 11:38:09 -01:00
Morten Christensen d6c9f1f991 Reverting SolutionInfo.
Updating DatabaseContext for installer although not fully working because of medium trust issue with refreshing connectionstrings.
2012-11-27 10:05:26 -01:00
Shannon Deminick d5e184b133 Adds logging to the package installer for debugging. Updates DisposableTimer to pass delegates for logging for tracing/info.
Fixes PluginManager cache file handling. Ensures cache file is written with the correct TypeResolutionKind. Have added a check to
ensure the file is replaced if a legacy file is found. Added a check to the PluginManager to load from scanning if the cache item is
not found in the file, this fixes all install issues with the type finding in 4.11.
Added new batch file to reset an umbraco install to vanilla (not 100% complete yet)
2012-11-27 10:42:22 +05:00
Shannon Deminick e9c154f0a2 removed other non used legacy test files. 2012-11-27 07:04:18 +05:00
Shannon Deminick 5973c20b24 Removed old test runner configs for the legacy tests project which is not loaded into the sln at the moment.
We will migrate many of these tests over in time.
2012-11-27 07:03:32 +05:00
Shannon Deminick 060ebe2c4f reverts last minute changes in 4.11 to get trees displaying on install so that we can determine the real cause.
Fixes naming conventions on MasterpageHelper.
2012-11-27 06:58:58 +05:00
leekelleher 4796cdd803 MySQL: Corrected a typo in the "DropDow" data-type definition. 2012-11-26 22:04:44 +00:00
Morten Christensen 7641bafd17 Refactoring installer 2012-11-26 17:58:42 -01:00
Morten Christensen e5ec9eb06f Reducing the usage of the DatabaseFactory 2012-11-26 17:20:58 -01:00
Sebastiaan Janssen df8b4351c1 Merge 2012-11-26 17:11:56 -01:00
Sebastiaan Janssen 9d5b1e178a Move all the lib files to NuGet/MyGet and remove legacy folders 2012-11-26 17:11:13 -01:00
Morten Christensen 7140922e7a Refactoring installer to use the new datalayer for installation. 2012-11-26 15:57:03 -01:00
Morten Christensen 92913389b8 Fixing an issue I had introduced in ExpressionHelper 2012-11-26 14:13:50 -01:00
Morten Christensen 00f2458edd Adding a few unit tests to verify the outcome of the generated sql syntax for the Content- and ContentType repositories. 2012-11-26 12:28:59 -01:00
Sebastiaan Janssen a5db5a3e0b Don't generate documentation file in release mode 2012-11-26 12:07:16 -01:00
Morten Christensen ca69ef7810 Merge 2012-11-26 11:29:53 -01:00
Morten Christensen 8ee0fffb84 Content repo sql tests 2012-11-26 11:29:20 -01:00
Sebastiaan Janssen 9f9f754d15 Update log4net references to use the medtrust version 2012-11-26 11:27:56 -01:00
Morten Christensen c98d3a8a1f Merge 2012-11-26 11:18:56 -01:00
Morten Christensen 0ae707fe78 Refactoring the umbraco version from GlobalSettings to be a seperate class that simply wraps the version from the assembly.
Since the version will come from the assembly there is no need to have it as part of the GlobalSetting, which is internal and needs a makeover of its own.
2012-11-26 11:18:06 -01:00
Sebastiaan Janssen f9fadf9d80 Merge 2012-11-26 10:13:29 -01:00
Sebastiaan Janssen 59c452d2ea Updated log4net to get the medium trust supported version from myget 2012-11-26 10:12:50 -01:00
Morten Christensen 34ac97442d Merge 2012-11-26 10:08:49 -01:00
Morten Christensen 4cc20efa08 Refactoring usages of CurrentVersion to use Version in GlobalSettings.
Completes U4-1160
2012-11-26 10:07:08 -01:00
leekelleher 6cbb536dea Set the correct 'Source' path for the TransformXml in 'umbraco.presentation.targets'. 2012-11-26 11:05:17 +00:00
Morten Christensen d522ca9fdd Refactoring usages of VersionMajor, VersionMinor and VersionPatch in umbraco.GlobalSettings.
Its now using Umbraco.Core.Configuration.GlobalSettings.Version instead.
Fixes U4-1160
2012-11-26 10:00:47 -01:00
Morten Christensen 3fe1975514 Refactoring usages of umbraco.GlobalSettings.CurrentVersion to use the new Umbraco.Core.Configuration.GlobalSettings.Version 2012-11-26 09:57:05 -01:00
Morten Christensen e07fc8c2ba Adding language column to cmsContentVersion 2012-11-26 09:02:49 -01:00
Morten Christensen 78b05eb44c Correcting SolutionInfo and AssemblyInfo, so assembly version is correct for all shipped assemblies 2012-11-26 07:46:29 -01:00
Morten Christensen 5d3fdde39d Adding ServiceStack as nuget package dependency instead of shipping the assembly. 2012-11-26 07:19:34 -01:00
Morten Christensen 1dd9b6c4d5 Removing nuget packages from repo as we are using package restore 2012-11-26 07:16:48 -01:00
Morten Christensen 4d351ad8ae Making all Macro related classes internal, as the new macro stuff won't be utilized in 6.0. 2012-11-26 07:06:18 -01:00
Morten Christensen ce12bfa80e Adding numeric attribute for testing.
Adding type test for composition implementation.
2012-11-25 19:19:10 -01:00
Morten Christensen 599fb5a12d Merge 2012-11-25 17:56:52 -01:00
Morten Christensen e16c92a197 Starting with composition via code first test. 2012-11-25 17:56:08 -01:00
Sebastiaan Janssen b9ee9d551e Ammending previous commit - removes files from inclusion in csproj file as well 2012-11-25 08:25:34 -01:00
Sebastiaan Janssen 72eb1a573d Machine specific config files are no longer necessary. Upon first build, you get
a new web.config file thats never commited to the repo, edit this one all you
want. It gets some values overwritten by the web.Template.Debug.config because
they should be used by everybody deving on the core (currently only MedTrust).
2012-11-25 08:22:07 -01:00
Morten Christensen 97ebf8d51b Merge 2012-11-24 19:08:45 -01:00
Morten Christensen ff89383386 Removing usage of IProfile on DataTypeDefinition.
Giving the Code First POC an extra kick in the conventions, so the default PropertyType convention can be overridden.
If a Definition doesn't exist for the selected DataType one will be created - with backing unit test.
2012-11-24 19:07:06 -01:00
Stephan 2512bf3c6b bugfix hgignore 2012-11-24 14:57:49 -01:00
Stephan 0513d6012c merge 2012-11-24 14:56:23 -01:00
Morten Christensen e32880f215 Final Merge with 4.11.0 2012-11-23 19:59:28 -01:00
Morten Christensen 1053492a29 Freedom Friday POC of native code first - limited to test project.
Making a few corrections to the serialization attributes after having tested ContentType Serialization.
Enabling bulk saving of new ContentTypes with Parent/Composition dependencies.
2012-11-23 19:58:19 -01:00
Stephan 9f0ab6c297 U4-1245 - make it possible to create more than 1 wildcard domain 2012-11-23 15:23:39 -01:00
Sebastiaan Janssen 9506339e6f Merge with 4.11.0 2012-11-23 13:37:17 -01:00
Sebastiaan Janssen 68605a7560 Closed branch 4.11.0 2012-11-23 13:36:14 -01:00
Sebastiaan Janssen 839dd7315a Added tag Release-4.11.0 for changeset 20e4dff821d8 2012-11-23 13:33:15 -01:00
Sebastiaan Janssen f1314628d7 One last hack to get the the macroengines to show up after install. 2012-11-23 12:01:43 -01:00
Sebastiaan Janssen e23ed30b0c Took out the temporary tree fixes and put another temp fix in (reverts to the 4.10.x code)
Also removed dependency on ClientDependency.Mvc for now to make upgrades easier (no requirement to do assembly redirects in web.config)
2012-11-23 11:45:51 -01:00
PerPloug 55cb46927e Changes to template and masterpages helper 2012-11-23 09:37:35 -01:00
Morten Christensen c7693386a2 Correcting a few unit tests after conditions have changed. 2012-11-23 08:35:58 -01:00
Sebastiaan Janssen 654c3b7403 Another temporary fix for trees being unavailable after install, the context is null during upgrades in the installer, so would cause a YSOD 2012-11-23 08:02:23 -01:00
Morten Christensen 99820bf5e1 Merge with 4.11.0 2012-11-23 07:53:22 -01:00
Sebastiaan Janssen 4195754b0c Pull in new translations before release 2012-11-23 07:36:58 -01:00
Sebastiaan Janssen 96a6f17bd7 Update for the WebPI build, should now automatically be good
Fixes U4-132
2012-11-22 16:06:06 -01:00
Sebastiaan Janssen 61d99c4061 Of course we also need the assembly redirect for MVC2 -> 3 in the template config to start with (so the build.bat picks it up as well) 2012-11-22 15:45:14 -01:00
Sebastiaan Janssen 0a6e91a2f9 Fixed U4-1235 Changing document type alias YSOD's on SQL CE 2012-11-22 15:04:27 -01:00
jeavonleopold cf9e786e45 U4-1241 Fix - BaseTreePicker GetItemBreadcrumbs causes YSOD for Property Editors that do not store numeric ID's 2012-11-22 15:17:12 +00:00
Sebastiaan Janssen ba1d3fd3e6 Fix Library.Search not giving back an list of DynamicNodes any more, breaking accessibility to custom properties 2012-11-22 13:23:20 -01:00
Sebastiaan Janssen ac01fd48fa Some refactoring of the Umbraco:image implementation after code review 2012-11-22 12:30:58 -01:00
Sebastiaan Janssen f53fb694be Tightened up and renamed the ReadPublished method (relating to pull request for U4-606) 2012-11-22 09:53:11 -01:00
Sebastiaan Janssen 1ecd8fa87d Temporary fix for trees being unavailable after install 2012-11-22 09:34:05 -01:00
Sebastiaan Janssen ce1c9d697b Add assemblyredirect for System.Web.Mvc because ClientDependency.Core.Mvc relies on Mvc v2 while we're using 3. 2012-11-22 09:30:07 -01:00
Sebastiaan Janssen c67a76fb03 json2.js was not included in VS, so not in the build 2012-11-22 08:06:39 -01:00
Shannon Deminick 3d72a4497c Merge 2012-11-22 02:56:53 +05:00
Morten Christensen f11dc7f3cd Correcting a few methods in the DataTypeService.
Adding publish = false in save methods, to ensure that Published isn't set to true.
2012-11-21 17:38:54 -01:00
Sebastiaan Janssen 30cc8e0861 Merge 2012-11-21 11:05:38 -01:00
Sebastiaan Janssen 30ca3f6df9 Bump the version to 4.11.0 2012-11-21 11:05:30 -01:00
Stephan cccfed6efe U4-1222 - improve alternate template consistency 2012-11-21 10:12:04 -01:00
Sebastiaan Janssen 82c148e997 Fixed U4-596 with thanks to firepol! 2012-11-21 09:50:47 -01:00
Sebastiaan Janssen c50a3e7a27 I broke the build, oh noes! Sorry. :-) 2012-11-21 09:46:04 -01:00
callicj@M2UA1450WRW.us.maritz.net 811cbe2339 Added new method to the Document Service named readPublished() which returns the published version of the document.
Added new method to the Document class named GetPublishedVersion() which returns the published version of the document.
2012-11-21 08:03:53 -01:00
ksykora@ksykora-Win7 a8bf881ae1 * Fixed an umbraco bug where the macro editor, if it tried to enumerate over a
property whose value was null, would throw a null reference exception instead
 of just ignoring the property.
2012-11-21 07:53:29 -01:00
ksykora@ksykora-Win7 c446be734c Moved ParseMacros from Init into Load in ItemRenderer to fix an issue where the
NodeId property on the Item control was being set after the ItemRenderer had
already loaded it into memory.
2012-11-21 07:54:17 -01:00
Morten Bock f0f7f6af55 Include some missing files 2012-11-21 07:23:15 -01:00
Shannon Deminick 19bd8ae193 Fixes overloads for TypedMedia, TypedContent, Content, Media calls on UmbracoHelper now that
GetPropertyValue returns 'object'
2012-11-21 09:09:37 +05:00
Shannon Deminick 81d8f74e0d Small update to hashcodecombiner and pluginmanager 2012-11-21 08:39:10 +05:00
Shannon Deminick 0011d568c6 Fixes up HashCodeCombiner with correct long field intead of int with correct initialization.
Adds App_Code and global.asax to be monitored for changes to create the hash code.
2012-11-21 08:28:11 +05:00
Shannon Deminick 159718bf4f Updated sln to use Nuget for ClientDependency references, ensures that all config changes
are backward compatible. Have updated the new ClientDependency.config file with the new
features, though these are not required for existing installs but we should advise to merge
the new changes in.
Added ClientDependency.Core.Mvc to the UI project so that it will now ship with this library.
2012-11-21 08:01:23 +05:00
Shannon Deminick b9ff3ca729 updated proj references, was getting warnings in build that they could not be referenced. Might be a VS 2012 thing. 2012-11-20 07:41:12 +05:00
Shannon Deminick 4f3ac36d7f Merge 2012-11-19 19:57:23 +05:00
Shannon Deminick a9257ad366 Fixes #U4-1213, much better support for ignoring routes in route table. Fixes issue with LogHelper. Adds unit tests
for ignoring routes.
2012-11-19 19:56:52 +05:00
Sebastiaan Janssen 2218459877 Correcting the path for the targets file, should work now even if there are spaces in the path 2012-11-19 08:59:23 -01:00
Sebastiaan Janssen 8f5e2946d6 Merge 2012-11-19 08:10:16 -01:00
Sebastiaan Janssen 19c3b251a0 Include the VS targets file so that the build server can find it as well 2012-11-19 08:09:43 -01:00
Shannon Deminick ce4c855f00 Fixes up the resulting casts when invoking extension methods dynamically in our dynamic objects. 2012-11-19 05:47:34 +05:00
Shannon Deminick 48c45447e4 Fixes: #U4-1207, Enhancements to DynamicXml (legacy and new), now implements proper IEnumerable<T> interfaces.
Added DynamicInstanceHelper for any dynamic object that should find matches on methods, properties and
extension methods. Fixed ExtensionMethodFinder to find the Enumerable extensions (was previously set to IEnumerable which would
find nothing).
2012-11-18 10:28:53 +05:00
Shannon Deminick 4683144987 Changed CacheHelper to be public so it can be exposed publicly by the app context. 2012-11-18 03:34:31 +05:00
Shannon Deminick 238a237cb5 Merge 2012-11-18 03:31:15 +05:00
Shannon Deminick cde1ca9f83 updated some logging on content class. 2012-11-18 03:31:02 +05:00
Shannon Deminick 93e2d8d822 added missing file for tests. 2012-11-18 02:49:55 +05:00
Stephan 8609389bdb U4-1198 - publish dialog does not detect that a parent is not published 2012-11-17 14:55:58 -01:00
Morten Christensen 6ce93ac5c6 Removing proj reference to umbraco.config as its not part of source control. 2012-11-17 14:49:13 -01:00
Morten Christensen f9328af55f Merge with 4.11.0 2012-11-17 14:41:54 -01:00
Stephan 48f985b70a U4-1212 - can publish grand-child of unpublished node
fixed by introducing Document PathPublished property
2012-11-17 14:37:41 -01:00
Stephan b02afb3af8 u4-1186 - Manage hostnames UI bug with validators 2012-11-17 13:45:53 -01:00
Stephan b9d814c3fb (michielvoo pull request) Consitent new lines in templates 2012-11-17 13:28:38 -01:00
Stephan 1b54ce1d48 U4-1210 - ysod on rollback 2012-11-17 12:29:05 -01:00
Stephan e3efc0d19b U4-1194 - Mvc templates do not work when running in a virtual directory 2012-11-16 15:52:14 -01:00
Sebastiaan Janssen 3ba9e09164 Update obsolete messages to point to the correct classes (instead of being misleading) :-) 2012-11-16 14:41:30 -01:00
NielsHartvig@UMBRACORATI.localdomain d148c10c66 Update to sanitizer 2012-11-16 14:24:24 -01:00
NielsHartvig@UMBRACORATI.localdomain 2b573b9070 The BOSS is fixing U4-367 2012-11-16 14:08:28 -01:00
Shannon Deminick 4cb03ab36c Fixes issue with ChildActions when inherting from UmbracoViewPage<T> and using the @Umbraco helper. 2012-11-16 10:08:12 +05:00
Shannon Deminick 3ebbcc77e9 Merge 2012-11-16 00:45:29 +05:00
Shannon Deminick 8be97295dc Added new method to RenderMvcController for easier return of the current template when hijacking routes.
Added better error checking for media handling in MVC.
2012-11-16 00:38:03 +05:00
Shannon Deminick 3dd411f159 Working on #U4-1174, lots of updates/fixes to media in MVC regarding loading data from the examine cache to return media + lots of unit tests. 2012-11-15 21:46:54 +05:00
Shannon Deminick 8b141dc51a Working on #U4-1174, lots of updates/fixes to media in MVC + unit tests. 2012-11-15 20:11:10 +05:00
Stephan 278aa3f820 U4-1203 - UmbracoHelper.RenderMacro displays trace output at the wrong place 2012-11-15 13:41:44 -01:00
Shannon Deminick a7a38478db Working on #U4-1174 - issue with TypedMedia in MVC, fixes a few things and ensures Children() works
as expected, adds unit tests.
2012-11-15 04:18:23 +05:00
Shannon Deminick b2e004b825 renamed namespace in test proj 2012-11-15 02:04:46 +05:00
Shannon Deminick 10df6e878c updated config 2012-11-14 22:05:58 +05:00
Shannon Deminick eac11c1b80 cleaned up some of the install auth attribute 2012-11-14 21:22:30 +05:00
Shannon Deminick 0ad5da67ea Merge with 4.10.1 2012-11-14 21:18:34 +05:00
Shannon Deminick 3fb9ffca5b Update for installer rest service, updates version 2012-11-14 19:50:39 +05:00
Morten Christensen 52d65106f5 Correcting issues after running unit tests 2012-11-14 13:27:34 -01:00
Morten Christensen 9cb12fa3c0 Adding events to the ContentService 2012-11-14 11:20:21 -01:00
Morten Christensen be1e98fda2 Making a few more corrections to allow setting the Key-guid value for ContentType, MediaType and Media. 2012-11-14 07:24:07 -01:00
Stephan 8e7fe5ee55 fix f3a3bdaf6329 2012-11-14 06:40:09 -01:00
Shannon Deminick 9554c6a1c6 Fixes #U4-1174 - allows MVC views to render when using RenderTemplate. Added new UmbracoHelper method RenderTemplate. Cleaned up some code and
ensuring that the string writers are disposed. Moved TemplateRenderer to a better namespace.
2012-11-14 10:47:40 +05:00
Shannon Deminick 8597876c92 Fixed up the library calls to RenderTemplate, no longer a ton of duplicated code and removed
the requirement to build up query strings as this is completley not required since we use 'preserveForm'
in the Server.Execute.
2012-11-14 09:31:20 +05:00
Shannon Deminick 3df7d81bde Fixed up the webforms url gen 2012-11-14 09:19:39 +05:00
Shannon Deminick f82ae4fdda Fixes: #U4-1174, this now works for all webforms related templates, however RenderTemplate will currently not work for
MVC templates... this will come soon. If you try to it will just throw a NotImplementedException.
2012-11-14 09:13:53 +05:00
Shannon Deminick 4a981225b3 Merge 2012-11-14 03:52:34 +05:00
Shannon Deminick 0cd115c268 Fixees: #U4-1166, automatically adds parsable routes in the route table to the reserved paths
so you don't have to explicitly add reserved paths to Umbraco config that you are creating routes for.
2012-11-14 03:32:50 +05:00
Morten Christensen 46ce70f4a7 Minor adding to guid Key unit test. 2012-11-13 19:10:08 -01:00
Morten Christensen 5540959e71 Correcting ability to set guid Key, as it was overwritten when saving.
Adding unit tests to verify get/set Key.
Adding unit tests to verify GetById with guid Key.
Adding overload to GetById with guid Key to supplement the int Id.
2012-11-13 19:07:43 -01:00
Søren Reinke@Windows-7 0ce9878c59 Removed call to obsolete 'speechBubble' 2012-11-13 18:20:14 -01:00
Morten Christensen f7b7b90bed Correcting a new issues after merge 2012-11-13 15:13:06 -01:00
Morten Christensen 59630b99b4 Merge with 4.11.0 2012-11-13 14:33:28 -01:00
Morten Christensen c9c160bc29 Adding unit test for saving bulk content, and adding lazy collection save overload.
Adding AuditTrail class and test case.
2012-11-13 14:30:05 -01:00
Morten Christensen 50dc9f2b7b Resolving UserService usage in ContentService to set Creator/Writer.
Adding audit class for future implementation.
2012-11-12 08:39:29 -01:00
Morten Christensen 00e3f16d30 A few corrections after running the unit tests 2012-11-12 08:00:51 -01:00
Sebastiaan Janssen 291b0582e4 Merge 2012-11-12 07:41:40 -01:00
Sebastiaan Janssen f4e48872a2 Imported pull request by Michiel van Oosterhout (consistent line endings)
Removed some commented out code
Pull: http://umbraco.codeplex.com/SourceControl/network/forks/michielvoo/UmbracoU4451/contribution/3482
2012-11-12 07:40:58 -01:00
Morten Christensen a4d4411cca Moving services from Web proj to Core proj. 2012-11-12 07:40:11 -01:00
Morten Christensen d1db48eb72 Moving PublishingStrategy to Core proj. 2012-11-12 07:33:22 -01:00
Morten Christensen 4dd5c72659 Ensuring that possible notifications and permissions are removed when deleting a template. 2012-11-12 07:22:09 -01:00
Morten Christensen 8fc942d3b0 Adding internal constructor for testing with predefined IFileSystems. 2012-11-12 07:19:10 -01:00
Morten Christensen d0c79052e8 Adding SetDefaultTemplate on ContentType.
Correcting UOW for FileService, which needs two providers - one for files and one for data.
2012-11-12 07:16:54 -01:00
Shannon Deminick 9e320700e2 Fixes: #U4-1178, adds another strongly typed overload to GetPropertyValue<T> and adds more unit tests. 2012-11-12 10:50:23 +05:00
Shannon Deminick 7f0ff70ca9 Fixes: #U4-1132, this is a bit of a hack fix because the Media should include creatorName/id but it doesn't. 2012-11-12 09:20:54 +05:00
Shannon Deminick 65e3b7f951 Merge 2012-11-12 08:24:36 +05:00
Shannon Deminick 156f145c69 Updated the build manager to find instances based on persisted cache of previous lookups but uses BuildManager to do so, after
some benchmark unit tests against loading a type from an assembly this is about 100% faster. Updated the UmbracoModule to write more diagnostics
for benchmark debugging. Have basically reduced the startup time to approx 50% of what it used to be based on the current
benchmarks run. Previously app startup on my machine was about 5 seconds, now after the first startup it is about 2.5 seconds.
2012-11-12 08:10:12 +05:00
Morten Christensen 4be2207f50 Correcting condition for inserting allowed templates. Thank you valuable unit tests. 2012-11-11 19:11:36 -01:00
Morten Christensen 61afe225be Adding Template to ContentType and Content objects and updating repositories accordingly.
Removing templates from the mocks for the time being.
2012-11-11 19:02:45 -01:00
Morten Christensen 13c980c14b Dedicated to Matt <3 2012-11-11 18:07:52 -01:00
Morten Christensen 689c229846 Adding methods to delete specific versions from content by version id or date. 2012-11-11 14:55:48 -01:00
Morten Christensen 564d370392 Extending PetaPoco's sql builder with strong types plus added a few unit tests to verify output. 2012-11-11 13:52:28 -01:00
Morten Christensen eb4fc26e1f Implementing last methods in TemplateRepository plus added a TemplateFactory for mapping dtos-entities.
Removing old FileOnly-repo version of the TemplateRepository.
Refactoring FileService to use new repository.
2012-11-11 12:20:14 -01:00
clausjensen a0c941dac2 Fixes U4-1092 - TinyMce breaks script tags by double wrapping in CDATA on save 2012-11-11 09:50:42 -01:00
Bitmapped 33eb9d40f3 Catches exception thrown by native ActiveDirectoryMembershipProvider when there
is no current user.
Fixes U4-709
2012-11-11 09:40:48 -01:00
Sebastiaan Janssen cf8186653c Merge 2012-11-11 09:19:02 -01:00
Sebastiaan Janssen 75403d3b94 Fix by Tom Witherington - U4-1167 tags not saving or deleting in Tags data type
Also cleaned up the usage of obsolete method calls
2012-11-11 09:17:20 -01:00
Morten Christensen dffc6ca1a0 Refactoring entities with Users to only add Id to minimize the object graph.
Moved getting an IProfile to an extension method, as its not commonly used.
Removing dependencies in ContentService, so the Services and context can be moved to Core proj.
Implementing Template repository to use both filesystem and db.
2012-11-11 06:53:02 -01:00
Shannon Deminick 083bab0528 Added HashCodeCombiner and unit tests to support. Added ability to create a hashed file based on scanned assemblies in the
PluginManager and added a cached plugin xml file to the PluginManager. Now we don't actually scan any assemblies on app startup
during plugin finding if none of the DLLs have changed. Added trace statements to the UmbracoModule for better benchmarking for
how long a full request takes to load from start to finish.
2012-11-11 09:09:06 +05:00
leekelleher ee3e3787a8 PropertyEditorConverters - reusing TryConvertTo<T>, removing duplicate code. 2012-11-10 21:41:40 +00:00
leekelleher a3895ab149 Added unit tests for PropertyEditorValueConverters. 2012-11-10 21:40:37 +00:00
Matt@MBP13-PC c590c6a265 Fixes issue #U4-1169 wherby Umbraco.Field always runs in the context of the current page regardless of whether a custom IPublishedContent is passed in 2012-11-10 16:40:00 +00:00
leekelleher 6c1bf4b85f Added unit test for ObjectExtensions TryConvertTo<DateTime>.
Modified CustomBooleanTypeConverter to accept an empty string as a FALSE.
2012-11-10 14:09:27 +00:00
Morten Christensen e832da5bfc Refactoring a few repositories to use the UserRepository for getting an IProfile for a Creator/Writer 2012-11-09 20:26:47 -01:00
Morten Christensen 270d75ecd1 Implements User- and UserTypeRepository.
Implements User- and UserTypeMapper/Factory.
Update ContentRepository tests to use RepositoryResolver.
2012-11-09 19:54:10 -01:00
Morten Christensen e3d5fa766d Starting implementation of the UserRepository.
Fixing unit tests.
2012-11-09 14:45:28 -01:00
Morten Christensen fadac469e9 Adding unit tests for Script- and StylesheetRepository. 2012-11-09 11:56:59 -01:00
Morten Christensen e93d7d3f5d Creating unit test 2012-11-09 09:57:46 -01:00
Morten Christensen c93fcfd482 Correcting two failing unit tests 2012-11-09 09:51:53 -01:00
Morten Christensen 9049b079c8 Adding unit tests for RelationRepository.
Correcting delete clauses for Content to ensure relations are also deleted.
2012-11-09 09:40:06 -01:00
Morten Christensen 4dfb4df952 Adding unit tests for RelationTypeRepository.
Correcting a few mappers and adding identityseed for RelationType plus adding default data.
2012-11-09 08:49:48 -01:00
Morten Christensen e35f61b10c Adding AspNet Mvc dependency in nuspec. 2012-11-09 07:28:29 -01:00
Morten Christensen 21ca6fbc96 Adding content retrieval performance test 2012-11-08 19:23:25 -01:00
Morten Christensen ac9ab759e9 Adding missing reset of resolver in a two unit tests. 2012-11-08 18:37:40 -01:00
Morten Christensen c5d86e9525 Merge with 4.10.0 2012-11-08 18:29:07 -01:00
Morten Christensen 54df4855bc Fixing issue with deserializing macros and adding some more macro related tests. 2012-11-08 18:27:22 -01:00
Morten Christensen 705fed7a5e Adding unit tests for DictionaryRepository. 2012-11-08 15:55:44 -01:00
Sebastiaan Janssen 3632d6b0c6 Opened branch 4.11.0 2012-11-08 15:31:41 -01:00
Sebastiaan Janssen bf95792524 Merge with 4.10.0 2012-11-08 15:00:52 -01:00
Sebastiaan Janssen 885b421201 Closed branch 4.10.0 2012-11-08 14:48:26 -01:00
Sebastiaan Janssen b11143e2c4 Added tag Release-4.10.0 for changeset f6da531fbb4c 2012-11-08 14:46:56 -01:00
Sebastiaan Janssen 00a625fb7f Recursion was wrong on this one.
Fixed #U4-1147
2012-11-08 12:41:18 -01:00
Morten Christensen 439098e3d7 Adding unit tests for LanguageRepository 2012-11-08 12:21:40 -01:00
Morten Christensen 4afbd1c38e Adding unit tests for DataTypeDefinitionRepository 2012-11-08 11:55:36 -01:00
Morten Christensen ac693134bb Adding unit tests for MediaRepository 2012-11-08 09:43:35 -01:00
jeavonleopold e9ae11ff2b U4-366 - AllowThousands for Integer property editor 2012-11-08 09:28:41 +00:00
Sebastiaan Janssen bd4e6eaa62 Merge 2012-11-08 11:30:10 -01:00
Sebastiaan Janssen b2e4489e66 Umbraco.Web.UI is now the first project in the solution file, so you won't have
to manually do "Set as startup project"
2012-11-08 11:22:28 -01:00
Sebastiaan Janssen d27e32e918 Medium Trust on by default in debug web.configs
Don't overwrite root web.config on each build if already exists
Should make F5-debug a lot easier
2012-11-08 11:17:21 -01:00
pgregorynz 3a6dae9d0d Merge 2012-11-08 01:06:59 -10:00
sitereactor 9f95c48242 Updating swedish language file. 2012-11-08 08:26:24 -01:00
sitereactor d4e6dd9711 Correcting merge error by removing file ref. 2012-11-08 08:04:12 -01:00
sitereactor 5541ba8a30 Merge with 4.10.0 2012-11-08 08:00:20 -01:00
Sebastiaan Janssen e2934bb036 Merge 2012-11-08 07:06:07 -01:00
Sebastiaan Janssen 664a0ff4ec Add MVC3 dlls to bin folder so that hosts don't have to have MVC installed
Fixed #U4-1137
2012-11-08 07:05:29 -01:00
sitereactor 715f0ddac1 Updating Chinese language files from github. 2012-11-08 06:56:55 -01:00
pgregorynz 4d5f142a30 fix for ItemRenderer.cs to work with Partials 2012-11-07 21:19:35 -10:00
Shannon Deminick f4dc045561 Removed MediaFileSystemExtensions and just added the methods to the MediaFileSystem which are more discoverable.
Added Code Annotations to all file system classes pointing to the new #U4-1156 tracking item to publicize.
2012-11-08 08:27:38 +05:00
Shannon Deminick ca55372f89 Merge 2012-11-08 08:12:33 +05:00
Shannon Deminick 29c96c2c64 Converted QuickSearch over to use correct codebehind 2012-11-08 08:12:24 +05:00
pgregorynz 1a969d76e1 Revert change to Umbraco Helper as caused issues with the itemRender not being
able to process fallback or formating options.
2012-11-07 15:20:19 -10:00
sitereactor 8e4b9ed743 Adding test class for MediaRepository pending implementation 2012-11-07 14:51:12 -01:00
sitereactor a130642b02 Correcting .Append to .Where in repositories for base queries.
Adding unit tests for MediaTypeRepository.
2012-11-07 14:41:28 -01:00
sitereactor bfdc204d08 A bit of refactoring and moving the services back and forth 2012-11-07 13:56:52 -01:00
Shannon Deminick fba31a0a6a Added Code annotations for IPublishedContentStore, etc... as experimental features with links to the
tracker.
2012-11-07 10:16:36 +05:00
Shannon Deminick 5132d66924 Created code annotation attributes and descriptions 2012-11-07 09:55:21 +05:00
Shannon Deminick 36f367f9d6 Added a unit test to confirm any ctor of a custom typed file system 2012-11-07 09:40:33 +05:00
Shannon Deminick 67d9e578f5 Fixes: #U4-919, we will just use real classes for extension methods and all custom file systems like the MediaFileSystem must inherit from
FileSystemWrapper
2012-11-07 09:30:40 +05:00
Shannon Deminick 306f0f9679 Merge 2012-11-07 03:50:32 +05:00
Shannon Deminick b9d53ceac8 Fixes more of U4-1140, ensure that only legacy objects are returned from the dynamic stuff in the razor macros. Adds unit test for it. 2012-11-07 03:49:32 +05:00
Søren Reinke@Windows-7 1bceb746fa Switched to non obsolete method call 2012-11-06 20:32:26 -01:00
Søren Reinke@Windows-7 d390a4c0a9 Made speech bubbles for MediaTypes act the same as for DocumentTypes 2012-11-06 20:24:48 -01:00
sitereactor 372f7a7725 Refactoring UpdateContentCache strategy for generating xml cache upon publishing indepedent of the legacy umbraco.content.Instance class. 2012-11-06 20:03:36 -01:00
Søren Reinke@Windows-7 e4f8b5c586 Deleting a Tab now removes it from the list in the browser 2012-11-06 19:21:41 -01:00
Sebastiaan Janssen 869915f991 Updated to the Medium Trust-safe version of SQL CE SP1
(assembly version 4.0.0.0 instead of 4.0.0.1)
2012-11-07 12:12:57 -01:00
Sebastiaan Janssen 0cb4a9ad9c Fixes issue where upload will fail in medium trust due to use of FileInfo
Related to earrlier fixes for U4-919
2012-11-07 09:28:08 -01:00
sitereactor 9b77eefb4c Adding stragies plus tests for publishing and updating the xml cache. 2012-11-06 15:17:58 -01:00
sitereactor 0b29a08d1d Adding proper identity check to File entity. 2012-11-06 13:12:33 -01:00
sitereactor fba2ce8a7a Refactoring the FileRepository to implement IUnitOfWorkRepository, so the files use the same transaction approach as database entities. 2012-11-06 13:07:18 -01:00
sitereactor ff51d81540 Merge with 4.10.0 2012-11-06 12:44:20 -01:00
sitereactor 4234bb1cd9 Moving content xml test to seperate test class for easier teardown of test.
Adding test to account for UserService using httpcontext for looking up current backoffice user.
2012-11-06 12:42:59 -01:00
sitereactor ec9880968f Moving interfaces for services to Umbraco.Core.
Adding xml extensions for Content to generate xml for the xml cache.
Adding test for xml generation.
2012-11-06 10:47:14 -01:00
Sebastiaan Janssen 8c7dbd7207 Merge 2012-11-06 09:50:28 -01:00
Sebastiaan Janssen 0110cf01f2 Removed unused variable that was causing problems, cleaned up the code a tiny bit
Fixed #U4-1119
2012-11-06 09:49:27 -01:00
sitereactor f438ad16e0 Merge with 4.10.0 2012-11-06 07:28:14 -01:00
Stephan fee1a0dd9e fix broken CreateXPathQuery in legacy requestHandler 2012-11-06 07:09:54 -01:00
Shannon Deminick 315e8b27a0 Migrated loadStarterKitDesigns to use the new codebehind structure. 2012-11-06 09:14:39 +06:00
Shannon Deminick fb0c9c3fbb Changed DynamicXml to public (somehow this wasn't checked in before) #U4-U4-1146
Added unit tests for DynamicXml.Find methods which are passing.
2012-11-06 08:32:21 +06:00
sitereactor 60146e31c7 Adding a note on test to add and correcting usage of CreateContent method with explicit use of a user id to avoid userservice/httpcontext. 2012-11-05 14:53:36 -01:00
sitereactor 5f6c4cdf92 Renaming User to Creator on Content - makes more sense. 2012-11-05 14:43:51 -01:00
sitereactor de9c373626 Adding some initial work for Membership related classes and interfaces, but only using IProfile and Profile as the rest are not part of the roadmap.
Adding a UserService, which should be fully implemented in a later release.
Refactoring usage of the ServiceContext, which is now loosely tied to the HttpContext as its used by the UserService.
Refactoring User/Writer on the Content class and interface.
Simplifying events and delegates in the publishing strategy.
2012-11-05 14:42:21 -01:00
sitereactor fe6bbdf005 Refactoring usage of UOW in File-, Localization- and MediaService. 2012-11-05 10:12:17 -01:00
sitereactor 480801e10b Refactoring usage of UOW in the DataTypeService.
Adding an internal extension method to get an IDataType for a PropertyType.
2012-11-05 09:47:07 -01:00
sitereactor b77beb386a Adding unit tests for the two repository-backing cache providers 2012-11-05 09:29:29 -01:00
sitereactor cec2de6a2f Adding unit tests for ContentTypeRepository 2012-11-05 09:21:25 -01:00
sitereactor 1ea65ee27b Dummy files ... really need to change this, so the folders are created in the test setup instead of having these dummy files. 2012-11-05 09:06:59 -01:00
sitereactor 278d3087a4 Removing Service- and DatabaseContexts from UmbracoContext as its not the proper place to have them.
Adding extension method to ApplicationContext to attach the two contexts here instead.
Refactoring BaseWhereClause as there were problems formatting the sql.
Adding unit tests for MacroRepository and ContentRepository.
2012-11-05 09:03:48 -01:00
sitereactor edc80a12ab Adding DbProviderFactories sqlce config setting to web.config template. 2012-11-02 12:32:36 -01:00
sitereactor a897f51511 Merge with 4.10.0 2012-11-02 12:29:17 -01:00
sitereactor 98ef3f96f8 Correcting issue with RepositoryResolver not setting the unit of work when resolving. 2012-11-02 11:54:42 -01:00
sitereactor 2ba506e598 Adding SqlCe to DbProviderFactories config setting to avoid issue with provider not being found.
Correct error in RepositorySettingsTests after having changed config.
2012-11-02 10:18:07 -01:00
Sebastiaan Janssen ed5a0be20e Merge with updated language files 2012-11-02 09:32:54 -01:00
Sebastiaan Janssen 4e82d282bf Cleaned up and updated the web.Template.config before release
Also reformatted in hopes to keep the formatting consistent between releases from now on
2012-11-02 09:32:20 -01:00
sitereactor fe003edd02 Adding language files from github localization repo. 2012-11-02 09:23:59 -01:00
sitereactor ccb1734a04 Removing dependency on DbProviderFactories in DatabaseFactory.
Refactoring mocked content used by ContentTests.
Refactoring dirty-usage.
2012-11-02 09:11:23 -01:00
Sebastiaan Janssen 17f326dc89 Enable relationtypes tree in release version as well 2012-11-02 08:52:12 -01:00
sitereactor 49c2be3c4a Removing DbProviderFactories dependency in DatabaseContext 2012-11-02 07:34:41 -01:00
Stephan 2c38f7ce7f fix BaseRest config management - would throw when missing config files 2012-11-01 16:46:04 -01:00
sitereactor a98fddbd58 Fixing event subscription which caused a series of unit tests to fail 2012-11-01 15:06:35 -01:00
sitereactor 3d7376824d Adding more unit tests to cover different scenarios for publishing logic 2012-11-01 13:48:03 -01:00
Sebastiaan Janssen 3ba31cc82c Fixed breaking change: method signature of Template.MakeNew changes when you add
optional params, breaking uSiteBuilder.
2012-11-01 12:51:46 -01:00
sitereactor b1240abf0b Unit tests covering the ContentService.
Adding new configurations to the release configs.
Refactoring the publishing strategy and a few of the services.
2012-11-01 10:59:32 -01:00
sitereactor 053e26b34c Updating nuspec files for v6-alpha 2012-11-01 07:52:49 -01:00
sitereactor 6e8add79ac Merge 2012-11-01 07:25:40 -01:00
sitereactor 42d233239a Adding dummy files, so unit tests doesn't fail in TC 2012-11-01 07:25:02 -01:00
Sebastiaan Janssen 0df1ebb83e Merge 4.9.1 into default 2012-11-01 07:12:47 -01:00
Sebastiaan Janssen 204d7a79aa Closed branch 4.9.1 2012-11-01 07:10:42 -01:00
Sebastiaan Janssen e68629b8bc Added tag Release-4.9.1 for changeset 8d7d8609e2e4 2012-11-01 07:10:31 -01:00
Matt Watson f80fa2f373 Datatype Tags, multiple render when multiple instance on same doctype
Fixed #U4-915
2012-10-31 21:51:17 +00:00
Sebastiaan Janssen 55ac779bf2 Changed the Chines language files to have a zh prefix in the key instead of en.
Now the chinese translation files actually work.
Fixed #U4-1126
2012-11-05 10:07:51 -01:00
Sebastiaan Janssen f8732cd70b Removed the ExportCode dialog as it's not needed any more now that L2U is gone. 2012-11-05 09:19:20 -01:00
pgregorynz ff5c5c8a03 Relates to bud U4-1142 Umbraco helper in wrong context with used in a Partial.
Fix to context of Umbraco helper when used in partials.
2012-11-04 21:24:04 -10:00
Shannon Deminick 7df9921441 Fixes: #U4-1142, Changed ctor for RenderModel so people can actually create one to pass in to their views if they want.
Changed the way that UmbracoTemplatePage works in that if you pass in an IPublishedContent model instead of a RenderModel,
it will be generated for you without a YSOD. Changed the UmbracoHelper ctor so that it can be passed a custom IPublishedContent model
so that it's context is of that model and not the one routed to. Added Umbraco.Web.Mvc to the imported namespaces for Views.
2012-11-05 11:27:28 +06:00
Shannon Deminick 329431e6df Fixes: #U4-1141 - IPropertyEditorValueConverter is not a plugin type and is searched for on app startup. 2012-11-05 06:14:44 +06:00
Shannon Deminick 292ded852e Changed IPropertyEditorValueConverter to public #U4-1141
Changed the /umbraco folder in the UI project to be properly cased according to VS (this is initial, we need to
do this for everything but need to write a script, see https://groups.google.com/forum/?pli=1#!topic/umbraco-dev/_KDTHpPPFM8 )
2012-11-05 06:04:40 +06:00
Shannon Deminick a4a9b26d93 Committed first tests of strongly typed querying with strongly typed document types using what would be generated code and extension methods. 2012-11-04 09:24:24 +06:00
Shannon Deminick e4d4aa935a fixed attempt to initialize it's False property, changed IPublishedStore back to internal... was my mistake to make this public just yet. 2012-11-04 08:56:50 +06:00
Shannon Deminick b337f4e5e4 Fixes issue with installing starter kits in the back office after upgrading the installer to install
the starter kits properly. Not sure if this was actually working before 4.10 but in any case does work again
now and installs them the correct way whilst waiting for the app pool to restart (we need to put this in place
for the normal packages too!). Upgraded the StarterKits.aspx to have the correct code behind structure. Fixes issue
with missing or invalid referenced images.
2012-11-03 07:18:12 +06:00
Shannon Deminick 6f5689004d Fixes: #U4-1113 2012-11-03 05:48:23 +06:00
Sebastiaan Janssen 9184a12056 Merge 2012-10-31 15:32:35 -01:00
Sebastiaan Janssen d2788f202a NuGet Package restore problem seems related to version of nuget.exe, updated
See: http://nuget.codeplex.com/discussions/398910
2012-10-31 15:31:52 -01:00
sitereactor a4a4ab433d Merge with 4.10.0 2012-10-31 15:17:20 -01:00
sitereactor 8225950cac Merge 2012-10-31 15:15:32 -01:00
sitereactor 4e2bcee35b Adding more tests to cover the ContentService and refactoring. 2012-10-31 15:15:02 -01:00
Sebastiaan Janssen e781bac935 And another update to the nuget path to hopefully get it correct for TeamCity 2012-10-31 14:55:06 -01:00
Sebastiaan Janssen 235527a5a6 SolutionDir path is not correct when there are spaces in it (TeamCity has that) 2012-10-31 14:53:18 -01:00
jeavonleopold e502ce4ff9 U4-1112 - Add Any() property to DynamicXml 2012-10-31 10:47:04 +00:00
Shannon Deminick 8fff66dcb7 Merge 2012-10-31 20:48:50 +06:00
Shannon Deminick bc47e0c4a6 Fixed the get enumerator method in the legacy DynamicXml so that it still returns the legacy class instead of the new one. 2012-10-31 20:42:06 +06:00
Sebastiaan Janssen 4cec26c71b New NuGet targets file, might fix pacakge restore problem in TeamCity 2012-10-31 08:32:56 -01:00
sitereactor b86bfdd87b Refactoring usage of UOW in ContentService 2012-10-31 08:20:45 -01:00
Shannon Deminick 85c110bad5 missing changed file 2012-10-31 11:46:02 +06:00
Shannon Deminick 8866607582 changed milliseconds to seconds 2012-10-31 11:43:14 +06:00
Shannon Deminick 0db6c2cc11 Fixed issue that locally declared SurfaceControllers are routed through 'umbraco' area, this should not have been the case.
Created new CacheHelper which replaces the old Cache class and is accessible via the UmbracoContext.
Added new CachedPartial extension method to be able to cache the output of your partials (also by page and by member)
Added mew CacheHelperApplicationEventListener in order to automatically clear the partials cache when content is published, media or members is saved.
2012-10-31 11:36:22 +06:00
sitereactor e30cf6bc65 Adding unit tests for the ContentRepository and starting refactoring of the UOW usages in the services. 2012-10-30 20:01:09 -01:00
sitereactor d3655fd726 Making BaseDatabaseFactoryTest single threaded.
Refactoring while testing ContentService.
2012-10-30 19:27:47 -01:00
Sebastiaan Janssen 84858bea65 Move the Umbraco.Web.UI project up to the first position in the .sln file so
that when you first clone the project and hit F5 it will actually start the
correct project (and not the class library)
2012-10-30 15:27:59 -01:00
sitereactor 16bb9df623 Refactoring usage of the DatabaseContext 2012-10-30 15:20:54 -01:00
sitereactor 137a54b193 Refactoring DTOs for Identity seed, which is used by Sql Ce.
Updating unit tests and Contexts to include the ServiceContext and DatabaseContext.
2012-10-30 15:03:58 -01:00
sitereactor 347bf3fabf Implements a basic version of the MacroService for U4-940
Adding a static ServiceFactory class for easy access to the various services in a non-singleton way.
Adding a Resolver for MacroPropertyTypes.
Updating the CoreBootManager and PluginManager to include the MacroPropertyTypeResolver.
2012-10-30 09:25:28 -01:00
sitereactor 9306fd0b5c Missing log4net reference 2012-10-30 07:58:29 -01:00
sitereactor 9673f60948 Updating nuspec files for 4.10.0 beta release 2012-10-30 07:40:42 -01:00
Shannon Deminick c3795d7e5a Added some code comments and did a check for redirects (returns null if this is the case) 2012-10-30 06:49:36 +06:00
Shannon Deminick 36eea348ba changes the fix for U4-1097 to use an InvariantEquals instead of a direct equals just in case! 2012-10-30 06:23:29 +06:00
sitereactor 81aedbd9dd Merge with 4.10.0 2012-10-29 14:40:02 -01:00
sitereactor 17a70b4e05 Updating repositories 2012-10-29 14:39:24 -01:00
sitereactor 0c4c429b68 Implements U4-943 to the extent its currently possible.
Refactoring publishing methods in the ContentService.
Adding tests for the QueryBuilder.
2012-10-29 14:28:16 -01:00
Stephan be3f95610b U4-1081 - treat missing template at 404 2012-10-29 12:35:39 -01:00
sitereactor c20072c01d Merge with 4.10.0 2012-10-29 09:55:33 -01:00
sitereactor 960ae22271 Adding convention to column naming for table creation.
Adding DatabaseContext hooked up to UmbracoContext and initialized through the CoreBootManager.
Adding constant for ConnectionString name in GlobalSettings.
2012-10-29 09:49:31 -01:00
Stephan f9aa4b28af U4-889 - cancelling publish via an event caused a JavaScript error 2012-10-29 07:48:45 -01:00
Stephan 232c2292cb U4-1093 - fail to publish a node w/new content type
the way we added the new content type to the schema just could not work
also, stop reloading the whole XML from DB because the schema changes
2012-10-28 19:35:19 -01:00
Stephan 80dca1e3f2 U4-1089 - non-ascii chars in urls cause 404 2012-10-28 11:58:48 -01:00
Stephan 47b6f7f4d5 fix U4-1087 : preview badge does not show 2012-10-28 10:58:56 -01:00
pgregorynz 03af54b1d5 Merge 2012-10-25 14:21:16 -10:00
Casey Neehouse bbd62f20a9 Corrects a couple minor issue with Directory support when mapped to a
Virtual Directory and network shares.
2012-10-26 04:19:14 +04:00
pgregorynz 9738227189 Making the CTOR for UmbracoHelper public so it can be newed up for other uses 2012-10-25 14:18:53 -10:00
Shannon Deminick 6bf3a7a74a Merge 2012-10-26 03:01:21 +05:00
Shannon Deminick 07f8f79620 Fixes: #U4-1077, found an bug with both our code and Microsoft's code in that if you RemapPath with an incorrect URL which contains
2 '?' the internals of ASP.net actually force a secondary internal request which causes BeginRequest to fire but doesn't follow the normal
chain of the module. It was a bug with our code having two query strings, however its pretty strange behavior on their part!
Have removed UmbracoContext.ClientUrl since it is not necessary to have. Have renamed UmbracoContext.UmbracoUrl = CleanedUmbracoUrl and UmbracoContext.RequextUrl = OriginalRequestUrl
Have moved the route processing logic to a static method on PublishedContentRequest which auto assigns the request back to the UmbracoContext, plus this is a cleaner
way to do the processing, including allowing us to unit test this one aspect.
Lastly, we are now rewriting the path back to the original URL in the RenderRouteHandler so that in MVC controllers the HttpContext.Request actually
reflects the URL that the client requested, not the rewritten URL (we do this in webforms too)
2012-10-26 02:55:57 +05:00
sitereactor 3e6c56a394 Merge with 4.10.0 2012-10-25 18:39:33 -02:00
sitereactor 9fd23a4bc3 Merge 2012-10-25 18:39:11 -02:00
sitereactor 07b5f6983f Refactoring the creation of database schema and base/default data creation.
Adding extension method to get all properties for interfaces in PetaPoco used for mapping.
Creating ServiceContext and adding it to the UmbracoContext to provide access to the various services.
Adding UmbracoContext to BaseDatabaseFactory test.
2012-10-25 18:38:23 -02:00
Ismail Mayat f0690ec55f U4-1069 localize file umbraco.web.ui\umbraco 2012-10-25 14:47:00 -01:00
Tom Fulton e4bfccf974 U4-1057: Add localization of 'relate copied items' text 2012-10-25 19:42:16 +04:00
Hendy 51d08a353c U4-1084: media file links now updated after save 2012-10-25 14:33:50 -01:00
Hendy 982825dd56 Merge 2012-10-25 14:01:14 -01:00
NielsHartvig@UMBRACORATI.localdomain c8c4e2437b Implements U4-1022: Request: Disable Canvas mode by default 2012-10-25 13:00:31 -02:00
Hendy 1970b20eb9 Merge 2012-10-25 14:00:10 -01:00
Hendy a5499cff26 U4-1080 - updateDate value for media item pulled from it's xml fragment (as only verison in db for media is the created version) 2012-10-25 13:59:48 -01:00
Ismail Mayat d9c37a03b9 U4-989 Editing Macro Scripts should force any attached macros to refresh their cached code 2012-10-25 13:48:44 -01:00
Tim@MiniNinja e17b93bcfe Fixes issue U4-872 2012-10-25 14:04:32 -01:00
Stephan 6ffc231be0 bugfix UriUtility when running in a virtual directory 2012-10-25 12:28:33 -02:00
Tim@MiniNinja 99d8aca0c5 Fixes U4-864 also fixes similar issues for:
Xslt
Javascript
Stylesheets
Scripting Files
Macros
If file exists, will redirect to existing file instead of cretaing new
2012-10-25 13:24:44 -01:00
Sebastiaan Janssen 3c2ac0e90e Include new files for U4-858 Default icons for Media Types 2012-10-31 12:03:52 -01:00
AnthonyCogworks@Anthony-PC 7af10e3b67 Issue : http://issues.umbraco.org/issue/U4-858
Fixed media thumbnails for SQL CE
2012-10-25 14:00:33 -01:00
Stephan 62a48df421 bugfix NiceUrlProvider when running in a virtual directory 2012-10-25 12:14:21 -02:00
Hendy f146b8f6af Merge 2012-10-25 11:30:56 -01:00
NielsHartvig@UMBRACORATI.localdomain 946f905885 Fixes U4-1079, Installer database step gives no error on failure 2012-10-25 10:30:08 -02:00
Hendy 707eca930f U4-430 - saving a media item now updates the udpated date in the xml 2012-10-25 11:27:12 -01:00
Stephan e4a002c976 properly cleanup views/masterpages when changing the type of a template 2012-10-25 09:34:02 -02:00
AnthonyCogworks@Anthony-PC e731afadc9 Issue : http://issues.umbraco.org/issue/U4-858
Fixed media thumbnails for SQL Server, MySQL, & Azure
2012-10-25 10:23:53 -01:00
Tom Fulton a006a480f7 U4-855: Small update to allow Preview to work when pasting custom source, and fix Insert not highlighting right away if ctrl+v 2012-10-25 18:14:11 +04:00
Tom Fulton 674923468d U4-855 Embed Media - allow inserting custom HTML into Source tab 2012-10-25 17:52:50 +04:00
Sebastiaan Janssen afafcfbb7a Merge 2012-10-31 10:32:58 -01:00
Matt@MBP13-PC c489d910b8 Fixes issue #U4-322 "Custom section name is the name of the previous section" by passing through the app alias to shitApp if no key is found in uiKeys 2012-10-31 11:31:08 +00:00
Sebastiaan Janssen 6e226ef995 Update the tinyMCE release config as well for U4-717 and u4-1006 2012-10-31 10:11:02 -01:00
AnthonyCogworks@Anthony-PC 0b1c479428 Case: http://issues.umbraco.org/issue/U4-715
Removed 2nd call to cleanPropertiesOnDeletion(_contenttypeid); in PropertyType.delete()

Replaced multiple calls to db to get all documentTypes.
2012-10-25 13:35:47 -01:00
AnthonyCogworks@Anthony-PC 3f2ca8a823 Case: http://issues.umbraco.org/issue/U4-648
Fixed issue in CMSNode where Parent was being set twice.
The issue was due to logic in Move(CMSNode newParent).
I renamed the parameter to newParent as it is more clear.
Changed the logic to check againse ParentId, rather than Path, and deleted
the redundant assignment to Parent.
2012-10-25 14:55:46 -01:00
Tom Fulton 78d57e89d5 U4-408: Prevent dragging of toolbar icons by adding onmousedown="return false" 2012-10-25 16:36:21 +04:00
Tom Fulton d9049864f3 U4-395: Fix RTE in Members section (add ValidateRequest = false) 2012-10-25 19:21:46 +04:00
Hendy 21632d2ffc Merge 2012-10-25 10:14:50 -01:00
Hendy da3d20a5bb ImageCropper property alias now set via a drop down of all available aliases, and a safety check on the dataeditor to ensure the selected property was found 2012-10-25 10:14:24 -01:00
Anders Burla Johansen c0f0dcca3a Fixed some attributes in tinyMCEConfig.config U4-717 and U4-1006 2012-10-25 09:02:33 -02:00
Tom Fulton 22f7d8797c U4-377: Fix exception when attempting to access Value externally during a new dictionary item creation 2012-10-25 14:47:29 +04:00
Tom Fulton 25da44825e U4-377: Add code from michielvoo's pull request (trigger the dictionaryitem.saving event from dictionaryitem.setvalue() by calling
its Save() method.)
2012-10-25 14:46:12 +04:00
Sebastiaan@SEBTHINK 55d4a7e367 Merge 2012-10-25 08:53:41 -02:00
NielsHartvig@UMBRACORATI.localdomain 33e73ab965 Fixes U4-802, MacroEngine should sort the built in engine first 2012-10-25 08:37:55 -02:00
niels.kuhnel 40c6b53b9e Merge 2012-10-25 08:23:58 -02:00
niels.kuhnel 632d9f171e Support for running Umbraco from a network drive. 2012-10-25 08:14:10 -02:00
NielsHartvig@UMBRACORATI.localdomain 05db49c66d Merge 2012-10-25 07:56:34 -02:00
NielsHartvig@UMBRACORATI.localdomain 4cf2035039 Fixes U4-862, Hide Preview Button and "Link to Document" on content nodes that are not intended for display (e.g., those that have no templates) 2012-10-25 07:55:34 -02:00
Hendy 27f059bf58 Merge 2012-10-25 08:53:11 -01:00
Hendy aee8730315 Bugs: U4-902 & U4-366
Prevalue field removed from the integer datatype & regex validation now fires
2012-10-25 08:51:38 -01:00
Ismail Mayat b517d59bee U4-998Saving a User Type - speech bubble says "User Saved" 2012-10-25 08:38:25 -01:00
Ismail Mayat e4f3081da2 U4-998 Saving a User Type - speech bubble says "User Saved" 2012-10-25 08:21:47 -01:00
NielsHartvig@UMBRACORATI.localdomain 5cca506d20 The new Template.GetByAlias with optional useCache parameter breaks bw compat as method signature changes. Adding an overload and removing default value on overload 2012-10-25 07:13:34 -02:00
sitereactor 79488a43da Fixing some naming conflicts after merge 2012-10-24 12:41:37 -02:00
sitereactor cf7e63ad04 Merge with 4.10.0 2012-10-24 12:39:56 -02:00
sitereactor c5da0bd017 Fixing a few unit tests 2012-10-24 12:38:13 -02:00
sitereactor a9bc0addfb Implements ILocalizationService for U4-1075
Refactoring DictionaryItem, DictionaryTranslation and Language to use the same interface implementations as the rest of the db driven repos and services.
2012-10-24 12:22:52 -02:00
sitereactor da0ab7b76a Implements IFileService for U4-939
Updates TemplateRepository to treat the passed in string as an alias for a template that could be a master or a view.
2012-10-24 11:29:51 -02:00
sitereactor d82e9848da Implements IDataTypeService for U4-938
Refactoring base ContentType Repository and its implementations to allow for queries against PropertyType - still needs testing though.
Adding mappers for PropertyGroup and PropertyType models, so they are usable for queries.
2012-10-24 10:49:08 -02:00
sitereactor ce6aeb2a21 Implements MediaService for U4-941
Minor update to the ContentType/MediaType repositories to insure that CT references are removed when deleting.
Updates Media- and ContentMappers to map ContentTypeId.
Updates Media to have internal Trash-method.
2012-10-24 08:36:45 -02:00
sitereactor 2185da597f Implements IContentTypeService U4-937
Adding an IService marker interface.
Adding extension methods to UmbracoContext to expose the services.
2012-10-24 07:25:37 -02:00
sitereactor 3ef0e302c3 Implements the Property method on the Stylesheet class, so it can be used from the backoffice.
Completes U4-934
2012-10-24 06:42:04 -02:00
Shannon Deminick e3f9375fd2 changes template creator to use new UmbracoTemplatePage class instead of RenderViewPage 2012-10-24 11:10:27 +05:00
Shannon Deminick cbd8085675 Merge 2012-10-24 11:06:31 +05:00
Shannon Deminick a9d6c7872a Changed the PublishedContentRequestBuild to use the cached template lookup instead of going to the db each time,
added caching to the business logic template class's GetByAlias method. All of this will save db queries for each request meaning even
faster rendering. Fixed GetTemplateAlias extension method to use the correct Template class with caching.
2012-10-24 11:02:36 +05:00
Shannon Deminick d4d4272b1b Moved RenderModel to Models namespace. Created new base UmbracoViewPage to use for umbraco partial views, etc... and renamed
RenderViewPage to UmbracoTemplatePage which now inherits from UmbracoViewPage. Added NiceUrl and NiceUrlWithDomain as extension
methods to IPublishedContent.
2012-10-24 09:59:23 +05:00
Sebastiaan Janssen e9aef79747 Member search didn't work
#U4-643 Fixed
2012-10-23 18:38:27 -02:00
Sebastiaan Janssen 3b5a1ddcdd Fixed the build, forgot to remove file reference from the csproj file 2012-10-23 14:52:58 -02:00
Sebastiaan Janssen 14ad9f571c Upgrade to TinyMCE 3.5.7 2012-10-23 13:32:21 -02:00
sitereactor 013513b439 Creating IContentTypeService interface as the foundation for U4-937 2012-10-23 12:49:48 -02:00
sitereactor 987e0a8efc Unit tests covering Mapper implementations for U4-978 2012-10-23 12:17:23 -02:00
sitereactor a53dde8a20 Adding two missing properties to ContentTypeBase.
Creating mappers for the few types that supports "db queries" through the repository U4-978
2012-10-23 11:29:16 -02:00
Sebastiaan Janssen 243633365e Re-include ItemEditing javascripts 2012-10-23 10:46:26 -02:00
Sebastiaan Janssen 258d19df22 Remove Container DocTypes for now 2012-10-23 10:40:22 -02:00
Stephan 8261fa2aea fix package installer, use encodeURIComponent() vs escape() to support utf8 2012-10-23 09:37:33 -02:00
Stephan c434790b2f do not validate input when live editing to support RTE 2012-10-23 09:05:57 -02:00
Sebastiaan Janssen 4397319ac3 Add z-index too treePickerToolTip to get it on top when media picker preview is on 2012-10-23 08:24:33 -02:00
sitereactor ee96ced595 Adding missing code comments/documentation 2012-10-23 08:09:01 -02:00
sitereactor bfff317a96 Adding class to create base data using the internal DTOs 2012-10-23 07:30:00 -02:00
sitereactor 2545de57e0 Refactoring usage of DatabaseType - more convention based.
Limiting the use of the DatabaseType, so its only used for NText and NChar.
Adding LengthAttribute for fixed sized columns.
2012-10-22 12:52:29 -02:00
Sebastiaan Janssen 7309c7c02f Templates that have a space in the alias will be created without spaces in the
file name, when determining if the template exists, remove spaces from the alias
2012-10-22 10:36:54 -02:00
Sebastiaan Janssen 12e9ab050a Rewrite some more references to the tabId column and cmsTab table 2012-10-22 08:29:18 -02:00
sitereactor d0fd7c1374 Merge 2012-10-22 05:59:20 -02:00
sitereactor f7ccad4269 Updating language files with updates from github 2012-10-22 05:58:42 -02:00
Sebastiaan Janssen 1bf20b9c97 Update the version tests for mysql installer 2012-10-22 05:27:47 -02:00
Sebastiaan Janssen f03d861942 Updated MySql update script for 4.10.0 2012-10-21 11:47:01 -02:00
Sebastiaan Janssen c0eb3e256b MySQL total script updated for 4.10.0 2012-10-21 11:31:32 -02:00
Sebastiaan Janssen 41d7571e29 Merge 2012-10-21 11:08:57 -02:00
Sebastiaan Janssen c2f420be7a Fix issue where installer would not create properties on the media types because
it was trying to put information in the tabId column that's no longer there
2012-10-21 11:07:48 -02:00
sitereactor b3d8b4c53c Refactoring syntax providers for db creation.
Adding tests for sql, sql ce and mysql to ensure the creaion of tables and their dependencies/references.
2012-10-19 19:07:17 -02:00
sitereactor c1909eccf5 Refactoring database creation, adding sql syntax provider to account for differences in syntax between sql, ce and mysql.
Adding MySql unit test.
2012-10-19 13:20:57 -02:00
Stephan b0e083e8fc refactor nice urls in editContent (U4-1017 and other issues) 2012-10-19 08:50:49 -02:00
Morten@Thinkpad-X220 e34298c9f3 Changing the BaseDatabaseTest to be provider agnostic, so we can use it to test against all 3 providers. 2012-10-18 12:08:51 -02:00
Morten@Thinkpad-X220 e745f9ef08 Merge with 6.0.0-PetaPocoExtension 2012-10-18 11:56:03 -02:00
Morten@Thinkpad-X220 1576c7135f Package restore in datalayer project 2012-10-18 11:55:53 -02:00
Morten@Thinkpad-X220 0c34b1a4ef Merge with 4.10.0 2012-10-18 11:54:32 -02:00
Morten@Thinkpad-X220 9918ca9696 Decorating remaining DTOs for db table creation 2012-10-18 11:49:44 -02:00
Sebastiaan Janssen 04197a5900 Updated query to tabId to use propertyTypeGroupId instead, removed unreachable code 2012-10-18 11:39:38 -02:00
Sebastiaan Janssen d2fd02315a Fix skin configurator in Chrome not working after install.
SORRY for the commit to both files, still need to dive into the ASCX seperation
2012-10-18 07:46:46 -02:00
Sebastiaan Janssen f654c67540 Fix skin configurator in Chrome not working after install. 2012-10-18 07:41:24 -02:00
Sebastiaan Janssen 9b28214c3e Merge 2012-10-18 06:44:20 -02:00
Sebastiaan Janssen 6a665efd7e Styles dropdown is not updated when styled text is highlighted in the rich text editor
#U4-659 Fixed
2012-10-18 06:41:16 -02:00
Shannon Deminick 5aee883bd2 Added TypedSearch methods to UmbracoHelper and Search extension methods to the IPublishedContent.
Added GetTemplateAlias() extension method to IPublishedContent and to DynamicPublishedContent.
2012-10-18 08:00:07 +05:00
Shannon Deminick c0f7493e70 Merge 2012-10-18 07:17:20 +05:00
Shannon Deminick 7d8524dd55 Added additional namespace imports for MVC views in the views web.config. 2012-10-18 06:55:41 +05:00
Morten@Thinkpad-X220.ab-nat1.dk 5bd2059cd7 Removing attributes for migrations as a library that does this already exists.
Updating a few DTOs for programmatic creation.
2012-10-17 10:12:30 -02:00
Sebastiaan Janssen 4c667a6a3e Set web.config output to none because it might not exist when running automated
builds like build.bat or teamcity
2012-10-17 06:11:31 -02:00
Shannon Deminick ce06a30e64 added additional timeout to installer to ensure DOM is updated before redirecting. 2012-10-17 09:28:02 +05:00
Shannon Deminick 1be891d05f Added Thread.Sleep hack during package installer to attempt to always fluke out that the app pool will be restarted after redirect.
Currently this has worked in the past but only by fluke, this hack just makes the fluke probably work more often. In the next release we'll
need to refactor the package installers (there are about 7 instances of them in the codebase) to all use the same ajax methodology to ensure
that the app pool is restarted properly (which is now done properly during the install process).
2012-10-17 08:51:58 +05:00
Shannon Deminick e85f594b84 Fixed issue with trees not showing up for some packages, was issue with PluginManager caching between finding global types or finding types with specific attributes.
In this case, we were finding attributed trees only which was cached against the type of ITree, then we were looking for all ITrees but previously we cached finding ITrees
but the cache value was only the attributed ones.
Removed the caching of some plugin finding since they are only found once and there's no reason for the additional mem overhead.
2012-10-17 08:44:32 +05:00
Shannon Deminick a3278be3fe updated .ignore again with casing 2012-10-17 07:31:01 +05:00
Shannon Deminick 90aa8c3b5a reverted web.config back to standard (without user defined values) and added it to .ignore so that
user changes don't keep changing it and 'forgot' it in the source control.
2012-10-17 07:30:08 +05:00
Shannon Deminick ea217edaae Merge 2012-10-17 07:25:15 +05:00
Shannon Deminick 3cf9a45724 Finalized initial refactor of package installation for the installer, ensures the app pool is properly restarted
before installing Business Logic.
2012-10-17 07:08:35 +05:00
funka@WETWIRED 38fc6c980d Resolves redundant BaseTreePicker script initialization (U4-192) 2012-10-17 05:36:22 +07:00
Shannon Deminick cc34208871 More work on installer update for packages, nearly there. 2012-10-16 03:12:16 +05:00
Shannon Deminick 6f778c26d1 Initial commit of refactoring of package installer for the installer process. Converted a few webforms pages/controls to the new format, created
new JS class to manage the installation, created new MVC controller for managing the ajax installation
2012-10-16 01:33:35 +05:00
Sebastiaan Janssen 29b978c1cd Fixes issue where scrubbing the log would fail because of wrong datetime format 2012-10-15 12:11:31 -02:00
Sebastiaan Janssen 346a2d4fc9 Whoops, logging a little bit too much now, should only log errors 2012-10-15 11:38:15 -02:00
Sebastiaan Janssen 02cc7e69ec Merge 2012-10-15 07:03:29 -02:00
Sebastiaan Janssen acb66f45ac Change query to use propertyTypeGroupId instead of tabId (which has been renamed) 2012-10-15 07:03:12 -02:00
Sebastiaan Janssen 487fdea34e Logging for the datalayer now properly uses the LogHelper in Umbraco.Core 2012-10-15 07:02:29 -02:00
Morten@Thinkpad-X220.ab-nat1.dk 2523781fc1 Refactoring PetaPoco extensions for table creation. Adding a few conventions, but still a few on the todo list. 2012-10-14 12:56:02 -02:00
Morten@Thinkpad-X220.ab-nat1.dk 10f87b3c82 Missing a few renamings of cmsTab 2012-10-14 12:03:23 -02:00
Shannon Deminick 0e0c4fcb1f Fixed an issue with unit tests and not resetting settings. 2012-10-14 08:11:49 +05:00
Morten@Thinkpad-X220.ab-nat1.dk 46a54d0bc3 Changing abstract migration classes to be a bit more intuitive and actually use the class instead of the decorations.
Added unit test for sample add and drop column changes.
2012-10-13 09:57:45 -02:00
Shannon Deminick f7868b2cf1 Updated some of the Object resolver code, adds new protected AddTypes method, renamed method on Legacy resolver.
Fixes yet another issue with templates and package installs.
2012-10-13 10:59:21 +05:00
Shannon Deminick 0368f2846e Removed erroneous logging on plugin manager. 2012-10-13 09:26:30 +05:00
Shannon Deminick ee94652a0c Added unhandled exception logging. Added error checking to the DataTypeDefinition class... trying to
pinpoint where/when this bug occurs.
2012-10-13 08:49:44 +05:00
Shannon Deminick a1da12f033 Fixed SQL and CE installer to have the proper version spec queries... only by pure fluke did it ever work for 4.8! Argh!
Modified the CE one so that it is consistent with the Sql one, we should be relying on the same scripts here (or at least the same logic)
the one for CE will not work because even if the db is not installed it would have still returned 0 which would pass and the installer would have
thought it was installed.
2012-10-13 07:05:11 +05:00
Shannon Deminick ea406d2d7c Fixed SqlServer and CE installers to flag their latest available install version as 4.9, looks like MySQL hasn't been done yet
so have left it's installer flagged as 4.8 (just means that the intall will just hang... not sure why we have this flag anyways??
shouldn't we always support the latest version for all dbs??)
2012-10-13 06:43:24 +05:00
Sebastiaan Janssen 093a33e495 Fixed last setup/teardown problem for SQLCE in the unit tests 2012-10-12 15:05:07 -02:00
Sebastiaan Janssen 7a4ccc825d Only reset the DataDirectory path after clearing the database, else it will
never clear as it can't find a database at path null
Updated PublishedContentTests with correct amount of expected results
2012-10-12 14:45:13 -02:00
Sebastiaan Janssen a22efcdb2b Renamed datalayer loghelper to TemporaryLogHelper so it will stand out like a sore thumb 2012-10-12 13:29:27 -02:00
Sebastiaan Janssen 1b71c66256 Corrected some of the counts in PluginManagerTests so we can see why they start
failing when they do start failing again (upon inspecton of the returned
collections the current counts seem to reflect reality)
2012-10-12 12:45:31 -02:00
Morten@Thinkpad-X220 ba45e0d365 Code from freedom friday project extending petapoco with a bunch of annotations used to decorate strongly typed models for table creation 2012-10-12 12:37:55 -02:00
Sebastiaan Janssen dc7e18b97b Re-include splitbutton.js 2012-10-12 11:41:29 -02:00
Sebastiaan Janssen f6c51205fc Re-include splitbutton.js 2012-10-12 11:41:29 -02:00
Sebastiaan Janssen d45b5a3139 Re-include ItemEditing javascripts 2012-10-12 11:09:32 -02:00
Sebastiaan Janssen 15dd774229 The ISNULL function is not supported in SQL CE, changed to COALESCE 2012-10-12 10:15:18 -02:00
Sebastiaan Janssen b248604c0f Added logging to SqlHelper to debug install/upgrade and find obsoleted queries 2012-10-12 10:14:54 -02:00
Sebastiaan Janssen f01a195369 Updated total.sql for SQL CE - Installs with CE from scratch work again
Upgrade detection from 4.9 > 4.10 added
UNTESTED: Upgrades from 4.9 > 4.10 should perform the database upgrade now
2012-10-12 10:13:50 -02:00
Morten@Thinkpad-X220 a9c40a7f72 Merge with 4.10.0 2012-10-12 05:43:10 -02:00
Morten@Thinkpad-X220 089b51cdbc Not sure where these language files came from, but looks like they are needed. 2012-10-12 05:40:39 -02:00
NielsHartvig@UMBRACORATI.localdomain 75af1e9d7c Merge 2012-10-12 05:39:31 -02:00
Shannon Deminick d3c553c945 Fixes issue with wrapping the UmbEditor init in doc ready causing template editing not to work. 2012-10-12 09:15:33 +05:00
Shannon Deminick 689fe2a44f Fixes issue with wrapping the UmbEditor init in doc ready causing template editing not to work. 2012-10-12 09:15:33 +05:00
Morten@Thinkpad-X220 7bc775c9e6 Adds ncrunch files to hgignore 2012-10-11 13:15:28 -02:00
Morten@Thinkpad-X220 361d3e91f6 Merge with 4.10.0 2012-10-11 13:13:38 -02:00
Morten@Thinkpad-X220 3f3362e23d Refactoring around the RepositoryResolver to allow the configuration of repositories and cache providers for each repository.
Added implementation of an infrastructure configuration section.
Added unit tests for the RepositoryResolver to verify that it can resolve all repository types and their configured cache provider.
2012-10-11 13:11:17 -02:00
NielsHartvig@UMBRACORATI.localdomain 06519ab238 Fixes U4-1018. 2012-10-11 11:38:11 -02:00
Sebastiaan Janssen 65d5bc9155 Change from enableMvcSupport to defaultRenderingEngine in the release config too 2012-10-11 08:42:20 -02:00
Casey Neehouse 05fc15d164 Wraps Code Editor initialization in a document ready call to correct an IE7
sizing bug.
2012-10-11 13:02:36 +04:00
Casey Neehouse a3b87a1d8b Wraps Code Editor initialization in a document ready call to correct an IE7
sizing bug.
2012-10-11 13:02:36 +04:00
Shannon Deminick b6f7d99039 Fixed why all the unit tests were failing. Ported over a couple of unit tests from the legacy test project to see how
easy it would be and it looks pretty easy, just need the propery initialization data for the tests. Currently ported over the
Dictionary biz logic tests.... most fail but pretty sure it's due to init data.
2012-10-11 08:32:06 +05:00
Shannon Deminick c1aa60c1ac Merge 2012-10-11 07:55:00 +05:00
Shannon Deminick a2988a30c0 updated ignore. Fixed issue when media is not found and YSOD is displayed. 2012-10-11 07:54:04 +05:00
Casey Neehouse 23f2382947 Merge 2012-10-11 03:03:38 +04:00
Casey Neehouse 4d94909782 Folder Browser Enhancements - IE 7 Thumbnail list CSS corrections,
Added labels to the thumbnail size setter,
Capture/cancel the return key on the filter textbox.
2012-10-11 03:00:28 +04:00
Shannon Deminick 422a2a685c Fixes: U4-1015, U4-1014 2012-10-11 03:42:18 +05:00
Shannon Deminick c4f1235f0b Fixes issues with ApplicationRegistrar and ApplicationTreeRegistrar during install, they now check if the
application is configured, if not then they exit otherwise exceptions will be logged every time the app starts during install.
Added a log on application end with the reason for shutdown and nicer methods to override in global.asax.
2012-10-11 03:02:23 +05:00
Shannon Deminick ce4828d678 Fixes HasContent if there is actually no content (new install).
Fixes issue with TreeDefinitionCollection not initializing when accessing singleton... not sure how i overlooked that before. This fixes
issues with MNTP initialization and probably some other tree stuff.
Removes warning log in umbracomodule for not a document as this just takes up space in the log.
Fixes issue with logger that was logging 'Info' for our internal Debug calls.
2012-10-11 02:30:48 +05:00
Shannon Deminick 8e914e751c Fixes: U4-1013 - editing a View file in template edit ensures no duplicated files. 2012-10-11 00:46:19 +05:00
Shannon Deminick 7fefde4c8a Fixes: U4-1011, YSOD is generated if any created/installed packages files exist but they are empty. 2012-10-10 23:44:42 +05:00
Shannon Deminick 29614d6b03 Fixes: U4-1010, U4-1009 -> issues relating to template business logic changes which checks for default rendering engine (MVC vs WebForms) and fixes package
installation issues associated with them.
2012-10-10 23:31:54 +05:00
Shannon Deminick 16b47539b4 Fixes up an issue relating to U4-1010 but is only the initial fix, now need to look at the changing
the package installation process to ensure the templte files are there before the template db entries.
2012-10-10 22:33:49 +05:00
Shannon Deminick 83c53333c6 Removed GetDictionaryValue from RenderViewPage, this can be accessed through the @Umbraco property. 2012-10-10 20:45:51 +05:00
Shannon Deminick 77db6cad01 Fixes issues with last commmit. Fixes: U4-786 - made some things public 2012-10-10 20:44:29 +05:00
Morten@Thinkpad-X220 f0e8ba063e Merge with 4.10.0 2012-10-10 13:21:00 -02:00
Morten@Thinkpad-X220 a02c3481d9 Removing files before merging 2012-10-10 13:20:37 -02:00
Shannon Deminick a10daaab52 Updated code from code review 2012-10-10 20:20:16 +05:00
Morten@Thinkpad-X220 5161fa98ff Dummy files 2012-10-10 13:18:24 -02:00
Morten@Thinkpad-X220 3047d04f02 Some improvements around validation of content/media properties 2012-10-10 13:18:14 -02:00
Shannon Deminick 3ddb9785c7 added missing codebehinds. updated ignore file. 2012-10-10 20:04:11 +05:00
Morten@Thinkpad-X220 4e19127dcf Adding unit tests for Content along with some test helpers.
Implements ContentService U4-936
2012-10-10 12:13:23 -02:00
Sebastiaan Janssen 585eea1c6b Merge 2012-10-10 11:03:27 -02:00
Sebastiaan Janssen 10095a4ee7 Upgrade to CodeMirror 2.34 2012-10-10 11:02:59 -02:00
Morten@Thinkpad-X220 858e549d4a Renaming a PetaPoco relator for consistency after db schema updates 2012-10-10 08:56:25 -02:00
Morten@Thinkpad-X220 e830660be3 Missing files in solution-workaround. 2012-10-10 08:43:38 -02:00
Morten@Thinkpad-X220 74ecbac7d7 Refactoring Content/Media and ContentTypes/MediaTypes so the two are as close as possible. By doing this Media and Content are practically the same witht the except of a few properties.
This implements U4-10
2012-10-10 08:42:54 -02:00
Morten@Thinkpad-X220 90108e344f Refactoring database changes from 4.10.0.
Implementing the contnet type composition as part of U4-956.
2012-10-10 07:15:51 -02:00
Morten@Thinkpad-X220.ab-nat1.dk 0cceac97fc Merge with 4.10.0 2012-10-09 16:08:13 -02:00
Morten@Thinkpad-X220.ab-nat1.dk f69b3e9b97 Refactoring singleton implementation for DatabaseFactory and Repository Cache Providers as per recommendations from http://csharpindepth.com/articles/general/singleton.aspx
Adding unit test for DatabaseFactory.
2012-10-09 16:07:19 -02:00
Shannon Deminick 8f4ccc53d5 Merge 2012-10-09 20:17:51 +05:00
Shannon Deminick f04db8c52c Converted umbracoPage.master to have the correct codebehind structure. Added base2 as a default lib in umbracoPage.
Converted EditView to use propery JS class so that we can now better support the editor for the new buttons (i.e. insert macro, etc...)
2012-10-09 20:17:27 +05:00
Morten@Thinkpad-X220 26b67afd33 Merge with 4.10.0 2012-10-09 12:29:39 -02:00
Morten@Thinkpad-X220 2dbc40134c Refactoring TemplateRepository and adding providers to the FileSystemPRoviders.config 2012-10-09 12:27:57 -02:00
Sebastiaan Janssen e2283c2310 Made CodeMirror 100% height again 2012-10-09 12:25:36 -02:00
Morten@Thinkpad-X220 a9939ac183 Adds MediaFactory implementation U4-985
Adds MediaRepository implementation U4-957
Refactoring ContentType and MediaType to have parent id as constructor dependency.
Refactoring PropertyFactory to work for both Content and Media.
Adding Version property to Media.
2012-10-09 11:53:22 -02:00
Morten@Thinkpad-X220 0d9bb02a9c Adds MediaTypeRepository implementation U4-958 and improving the code structure in the content type repos a bit. 2012-10-09 10:49:43 -02:00
Morten@Thinkpad-X220 87ff6d03e8 Adds MediaTypeRepository implementation U4-958 2012-10-09 10:26:55 -02:00
Morten@Thinkpad-X220 9ca4fbff9d Adds MediaTypeFactory implementation U4-981 2012-10-09 10:10:18 -02:00
Morten@Thinkpad-X220 62c69edf02 Moving public interfaces for a cleaner structure in the .Core project. 2012-10-09 09:49:55 -02:00
Morten@Thinkpad-X220 b8c0969a85 Merge with 4.10.0 2012-10-09 09:14:16 -02:00
Morten@Thinkpad-X220 c6972cf934 Merge with nuget changes 2012-10-09 09:11:39 -02:00
Morten@Thinkpad-X220 3454f4e8fa Adds Stylesheet repository implementation U4-966 2012-10-09 08:49:17 -02:00
Morten@Thinkpad-X220 4eee5cfd5f Adds template repository and an abstract file repository U4-967 2012-10-09 08:45:15 -02:00
Sebastiaan Janssen 9ef25c25e6 Remove NuGet.exe from build folder and refer to the one already in \src\.nuget
One NuGet.exe to rule them all!
2012-10-09 08:44:38 -02:00
Sebastiaan Janssen 66f25159e0 Tweak targts file to make package restore work in standalone mode (outside of VS) 2012-10-09 08:31:57 -02:00
Morten@Thinkpad-X220 0fbf3b2fdc Adds Script repository and some edits to the Script model U4-965
Refactoring RepositoryResolver to use the base repository instead of the Queryable repo.
2012-10-09 08:12:03 -02:00
Sebastiaan Janssen 487ac78660 Don't ignore NuGet repositories.config, TeamCity needs it to do restore. 2012-10-09 07:50:45 -02:00
Morten@Thinkpad-X220 93694daf28 Renaming the base repository interface 2012-10-09 07:17:57 -02:00
Morten@Thinkpad-X220 4abc8075ab Refactoring repository inheritance 2012-10-09 06:59:18 -02:00
NielsHartvig@UMBRACORATI.localdomain 635f09fb75 Updates new Total.Sql for SQL Server to match the 4.10 db schema.
IMPORTANT: If you upgrade a previous 4.10 dev site, make sure to run the 'src\umbraco.datalayer\SqlHelpers\MySql\Sql\Version4_8_Upgrade.sql' script
IMPORTANT v2: The DB updates haven't been ported to SQL CE and MySQL yet, so they'll currently BREAK!
2012-10-09 06:56:18 -02:00
Morten@Thinkpad-X220 a459cb95c4 Adds Relation and RelationType repositories U4-962 and U4-963 2012-10-09 06:34:12 -02:00
Morten@Thinkpad-X220 14e827d749 Adds Relation and RelationType factories U4-987 and U4-986 2012-10-09 06:01:04 -02:00
Morten@Thinkpad-X220 1b0c543176 Adds NullCache provider implementation U4-969 2012-10-09 05:46:42 -02:00
Morten@Thinkpad-X220 5944098fe3 Updating Script and Template to use DefaultRenderingEngine enum instead of UmbracoSettings.EnableMvcSupport 2012-10-09 05:43:06 -02:00
Morten@Thinkpad-X220 2705053177 Merge with 4.10.0 2012-10-09 05:36:20 -02:00
Casey Neehouse 26aca92337 Updates to the Change password dashboard UI - better language and corrected the
validation. Related to comments in issue U4-914.
2012-10-09 03:33:55 +04:00
Shannon Deminick 9022894d23 Changed EnableMvcSupport config section and classes to be: DefaultRenderingEngine which uses an enum.
Added a real handy Enum<T> class for parsing/traversing enums.
2012-10-09 02:42:09 +05:00
Morten@Thinkpad-X220.ab-nat1.dk 8a81bf935a Merge with 4.10.0 2012-10-08 17:23:11 -02:00
Morten@Thinkpad-X220.ab-nat1.dk 3a88c65db4 Implements DictionaryRepository, DictionaryItemFactory and DictionaryTranslationFactory U4-983 and U4-960 2012-10-08 17:20:43 -02:00
Shannon Deminick 747675816d Changed editMacro over to use the correct codebehind structure. 2012-10-08 23:57:27 +05:00
Shannon Deminick 2833a8c5c7 Changed editTemplate over to use the correct codebehind structure 2012-10-08 23:52:37 +05:00
Shannon Deminick 75a686bc07 Changed umbracoDialog.master to have correct codebehind structure. 2012-10-08 23:46:49 +05:00
Shannon Deminick 76a521dd8b fixes script manager reference 2012-10-08 23:36:25 +05:00
Morten@Thinkpad-X220.ab-nat1.dk 351edf52dc Implements LanguageRepository U4-961 and LanguageFactory U4-984 2012-10-08 16:35:46 -02:00
Shannon Deminick 8fa36f3f22 Converted UmbracoField to use JS class Umbraco.Dialogs.UmbracoField.
Adds base2 lib o the default umbracoDialog.Master.
2012-10-08 23:32:43 +05:00
Shannon Deminick 18aef90017 Merge 2012-10-08 21:55:16 +05:00
Shannon Deminick 82bb410f4f Changed @Model.CurrentContent to @Model.Content, updated some ext methods for IPublishedContent. 2012-10-08 21:55:03 +05:00
pgregorynz caa937a4ef Updates to ViewEditor. Insert Page Field, Insert Dictionary Item,
Master Template Selector
2012-10-08 06:05:07 -10:00
pgregorynz d7103a3b83 Merge 2012-10-08 05:57:57 -10:00
pgregorynz e555520ddf Insert field Views. 2012-10-08 05:40:55 -10:00
Morten Bock a71961c35b Indenting 2012-10-08 13:33:18 -02:00
Morten@Thinkpad-X220 69f53b7dc5 Starting implementation of Dictionary and Language repositories and factories 2012-10-08 13:14:59 -02:00
Morten@Thinkpad-X220 60508a2327 Adds ContentType factory implementations U4-980
Adds ContentType repository implementation U4-956
2012-10-08 12:12:41 -02:00
Niels Hartvig ed3f715988 Container Document Types 2012-10-08 11:53:35 -02:00
Morten@Thinkpad-X220 eb35d712bb Adds DataTypeDefinition repository implementation for U4-959 2012-10-08 11:11:33 -02:00
Morten@Thinkpad-X220 e42865ef9d Adds Unit of Work for working with files U4-975 2012-10-08 10:16:59 -02:00
Morten@Thinkpad-X220 17d71a9011 Adds MacroRepository implementation U4-964 2012-10-08 10:09:28 -02:00
Morten@Thinkpad-X220 78e0098e09 Nuget package folder cleanup 2012-10-08 09:53:22 -02:00
Morten@Thinkpad-X220 c6c96d3a04 Nuget cleanup 2012-10-08 09:51:45 -02:00
Morten@Thinkpad-X220 51165cf614 Enabling nuget package restore and removing referenced nupkg files from repo U4-997
Implement Serialization framework from v5 U4-968
2012-10-08 09:51:13 -02:00
Morten@Thinkpad-X220 d52c0db0ee Merge with 4.10.0 2012-10-08 08:50:01 -02:00
Morten@Thinkpad-X220 1b92639384 Renaming EntityFactory to ContentFactory 2012-10-08 08:45:36 -02:00
tg@umbraco.com 406e3663f6 Merge 2012-10-08 08:43:38 -02:00
Morten@Thinkpad-X220 660ecfa91b Refactoring Unit Of Work, adding TransactionTypes and a new Repository structure.
Adding new Factory structure.
Related to U4-973, U4-955 and U4-979
2012-10-08 08:42:57 -02:00
tg@umbraco.com da8af696c5 Fixes U4-680: insert Macro split buttons not working 2012-10-08 08:42:47 -02:00
Sebastiaan Janssen 12f5df33da Add z-index too treePickerToolTip to get it on top when media picker preview is on 2012-10-23 08:24:33 -02:00
tg@umbraco.com 775b2192ff Fixes U4-680: insert Macro split buttons not working 2012-10-08 08:42:47 -02:00
PerPloug 458de6296e Wraps masterpages selector in try/catch
to avoid exceptions if masterpage is missing for some reason
2012-10-08 07:19:36 -02:00
PerPloug b55ce96d85 Changes to editView, editTemplate and loadTemplates
to fix wrong create dialog, and missing master pre-selection
in master template dropdown
2012-10-08 07:12:02 -02:00
Shannon Deminick 8ae867389d Merge 2012-10-08 00:15:51 +05:00
Shannon Deminick 5fc3d8e248 Fixes threading issue with Dynamicexpression... would have caused some strange behavior in the past!
Fixes: U4-995 - most methods will now work in dynamic expressions
2012-10-08 00:09:44 +05:00
Sebastiaan Janssen 227d910722 Merge 2012-10-07 15:27:47 -02:00
Sebastiaan Janssen f184276ef8 Moved tree picker tooltip style to default.css so it also works in editMacro (and elsewhere) 2012-10-07 11:45:22 -02:00
funka@WETWIRED c72ab927a6 Resolves redundant BaseTreePicker script initialization (U4-192) 2012-10-17 05:36:22 +07:00
Sebastiaan Janssen a356552d2d Moved tree picker tooltip style to default.css so it also works in editMacro (and elsewhere) 2012-10-07 11:45:22 -02:00
Michiel van Oosterhout 5c6a595e48 Changed conditions to put the constant last, so (x == false) instead of (false == x).
Code now conforms to project coding standards.
2012-10-07 08:50:09 -02:00
Michiel van Oosterhout c1cfcaf9ea Deprecated MacroProperty.Public because its value is ignored. Removed the checkbox
for setting MacroProperty.Public from the macro editor.
2012-10-06 20:51:00 -02:00
callicj 40a413cd70 Added releaseDate, expireDate columns to the query defined on m_SQLOptimizedMany so the corresponding fields are populated when this query is used to load the object. 2012-10-07 11:28:43 -02:00
Michiel van Oosterhout c7c10b8ab6 Fixed typo for consistency and incorrect grammar. 2012-10-06 18:46:31 -02:00
Michiel van Oosterhout 2da0728b78 Do not call .Trim() on a string inside .IsNullOrEmpty(), the string may be null.
Instead use .IsNullOrWhiteSpace().

Saving a global setting will insert an appSetting in web.config if it does not
yet exist.
2012-10-06 18:46:12 -02:00
Casey Neehouse a71f3f8412 Updated SQLCE to 4.0.8876.1 (SP1) and closes u4-677 2012-10-07 00:39:04 +04:00
Casey Neehouse b21423efe2 Updates SQLCE to v.4.0.8854.1 to resolve a SQL issues related to Contour. 2012-10-07 00:02:38 +04:00
Shannon Deminick 5895858e6e Merge 2012-10-07 00:08:21 +05:00
Shannon Deminick cd38123fbd Fixes issue with DynamicExpression and parsing to ensure that it is using generic types, not hard coded types.
Ensures unit tests passing for Where, Single, SingleOrDefault with filters with dynamics.
2012-10-07 00:07:51 +05:00
Shannon Deminick 842d7120e6 Obsoletes DynamicQueryable in MacroEngines lib, proxies all calls to new DynamicQueryable in Umbraco.Web.
Adds more support for NodeTypeAlias and DocumentTypeAlias param names for compatibility.
Adds IsDocumentType is-helper method.
Adds unit tests for complex Linq using a Typed IPublishedContent object.
Adds unit tests for complex Linq using dynamics.
Adds support for Single, SingleOrDefault, First, FirstOrDefault, Last, LastOrDefault to dynamics for both DynamicNode and DynamicPublishedContent + unit tests.
Adds support for 'Children' on DynamicNode to keep things consistent, no longer required to have to do 'ChildrenAsList'.
DynamicNode now implements INode... not sure why this wasn't like that before.
2012-10-06 23:41:42 +05:00
Sebastiaan Janssen cae2183ab4 Merge 2012-10-06 11:47:55 -02:00
Sebastiaan Janssen 07e75dab15 BaseRestExtensions.Release.config should not be in the build package, output set to None 2012-10-06 11:47:01 -02:00
Sebastiaan Janssen 7bc2375a77 Adds a nice tooltip when hovering over the content/media picker
#U4-192 Fixed
2012-10-06 11:46:37 -02:00
Sebastiaan Janssen 5cebbd8a91 Adds a nice tooltip when hovering over the content/media picker
#U4-192 Fixed
2012-10-06 11:46:37 -02:00
Stephan db59b08f58 fix config files for BaseRestExtension.config 2012-10-06 07:20:12 -02:00
funka@WETWIRED 392fbb836f Resolves feature request U4-192 Add more meta data to Content and Media pickers 2012-10-06 01:26:56 +07:00
Sebastiaan Janssen 0cb8603c80 Updating version number to 4.9.1 2012-10-23 07:14:48 -02:00
Sebastiaan Janssen 20fc02053a Made CodeMirror 100% height again 2012-10-09 12:25:36 -02:00
Sebastiaan Janssen e389dc39a7 Upgrade to CodeMirror 2.34 2012-10-10 11:02:59 -02:00
Sebastiaan Janssen fbd4669da8 Unpublished icon in tree with published node
#U4-387 Fixed
2012-10-15 07:16:32 -02:00
funka@WETWIRED 2b2c75f5e4 Resolves feature request U4-192 Add more meta data to Content and Media pickers 2012-10-06 01:26:56 +07:00
Casey Neehouse 8c7b06fe2b U4-914 - Added additional security to the change password
dashboard control to require current password.
2012-10-05 21:12:12 +04:00
Sebastiaan Janssen 540db7137a Fixed config transform for BaseRestExtension.config 2012-10-05 13:45:06 -02:00
Morten@Thinkpad-X220 ca6356170c Adds Repository Resolver and backing config section implementation U4-988
Will need a bit of refactoring because of the way UnitOfWork is currently implemented.
2012-10-05 12:59:59 -02:00
Morten@Thinkpad-X220 590bc23ef6 Minor refactorings - Using GlobalSettings for database connectionstring. 2012-10-05 12:36:59 -02:00
Morten@Thinkpad-X220 7d74304c1f Merge with 4.10.0 2012-10-05 11:04:06 -02:00
Morten@Thinkpad-X220 dc1689bdf2 Removing PropertyValues-method from Content and Media and making it an extension method instead.
Adding the PropertyEditor model as internal to slowly adopt it using a slightly different model approach then in v5.
Minor refactoring of IEntity/Entity.
2012-10-05 11:03:08 -02:00
Stephan 079aae7e63 bugfix unit tests polluting each other - static settings issue 2012-10-05 08:23:43 -02:00
Stephan 6183e01642 bugfix xpath in DefaultPublishedContentStore for legacy XML schema 2012-10-05 08:00:06 -02:00
Morten@Thinkpad-X220.ab-nat1.dk fe7d57ce12 Refactoring Unit of Work and its dependency on the datastore.
Removing legacy test project from solution.
2012-10-04 18:19:46 -02:00
Sebastiaan Janssen cf91933791 Add some dummy files to ensure (empty) directories in the test project get created 2012-10-04 15:15:23 -02:00
Sebastiaan Janssen d10c3a960f Merge 2012-10-04 15:04:14 -02:00
Sebastiaan Janssen 4d6d89dbe7 Add Masterpages and Views folder in the unit tests to project so almost 250 more tests will run properly 2012-10-04 15:03:40 -02:00
Morten Bock c138c6643a Ignore casing, and avoid null http contexts 2012-10-04 14:48:14 -02:00
Morten Bock a2b876608f Refactoring to use object resolver, instead of ProviderBase 2012-11-21 07:14:40 -01:00
Shannon Deminick 9e113564fa Merge 2012-10-04 21:39:36 +05:00
Shannon Deminick f8848086fd Adds support for legacy schema to the DefaultPublishedContentStore, adds unit tests to support this. 2012-10-04 21:37:11 +05:00
Shannon Deminick 261a6af60a Fixes issue when xml file is corrupt and no doc type is registered, the mvc controller factory throws an exception. 2012-10-04 21:06:32 +05:00
Sebastiaan Janssen c66d70fbd8 Merge 2012-10-04 13:52:12 -02:00
Sebastiaan Janssen e8c7af8b25 Removed legacytests project for now. 2012-10-04 13:51:51 -02:00
Morten@Thinkpad-X220 145cddbcb6 Adds the foundation for the repository implementation with abstract Repository, Unit Of Work and Cache provider.
Adding the Query object implementation.
Adds the ModelDtoMapper, which is still a WIP.
Adds the initial implementation of the IContentRepository with dependencies.
2012-10-04 13:44:02 -02:00
Morten@Thinkpad-X220 75e11b2ba8 Updating the model where serialization attributes where missing and adding a few comments.
Fixes U4-48
2012-10-04 13:05:31 -02:00
Morten@Thinkpad-X220 9e37e1674d Adds Media implementation U4-931
Adding some notes and small change to IContentBase, PropertyValues and the ability to set property values with an anonymous object is shared for Content and Media.
2012-10-04 12:38:43 -02:00
Morten@Thinkpad-X220 59c5a8920e Adds abstract File, Script, Stylesheet and Template model implementations for U4-933 U4-934 U4-935
Added a CssParser which is used internally by the Stylesheet class, but still needs a bit of work - primarily testing.
Resolves a couple of naming conflicts for Template.
2012-10-04 11:44:31 -02:00
Morten@Thinkpad-X220 083f2a99bc Adds Relation and RelationType U4-932 2012-10-04 08:10:36 -02:00
Morten@Thinkpad-X220 3321cb4eb1 Added code comments and serialization attributes. 2012-10-04 07:20:13 -02:00
Morten@Thinkpad-X220 612d57c00a Adds Dictionary and Language implementations for U4-929 and U4-930 2012-10-04 07:06:01 -02:00
Morten@Thinkpad-X220 e77d5bbbe5 Fixing a reference caused by a naming conflict. 2012-10-04 05:40:03 -02:00
Morten@Thinkpad-X220 cdb8af3812 Merge with 4.10.0 2012-10-04 05:18:12 -02:00
Morten@Thinkpad-X220 726aa962af Adding some notes about how to implement a publishing strategy that doesn't depend on the Document API. 2012-10-04 05:16:34 -02:00
Shannon Deminick 8804d912f2 More unit tests written and passing. 2012-10-04 06:00:47 +05:00
Shannon Deminick 54e5140d6a Added more extension methods to our strongly typed IPublishedContent object and IEnumerable<IPublishedContent> to match all of the available methods
that are on the DynamicPublishedContent object. Added more unit tests for all of these classes.
Moved some of the Dynamic objects into the web project which simplifies things quite a bit as some of these classes require access to the biz logic layer.
Now we have intellisense for all of the nice magical methods that were on DynamicPublishedContent on our strongly typed object!
2012-10-04 03:26:56 +05:00
Shannon Deminick c0102f1c71 Refactored the traversal, ishelper, etc... methods to be extension methods on IPublishedContent so now all of these methods are available on the Typed object not just the dynamic object which makes a whole lot more sense... and you can have intellisense.
Updated DynamicPublishedContent's methods to just proxy calls to the new extension methods so that all of the logic is contained in one place.
Added new GetRootDocuments to the IPublishedContentStore since we need this in order to get the root list of documents for many of these methods.
Fixed an issue with the DynamicNode to IPublishedContent converter.
Fixed many of the failing unit tests.
2012-10-04 01:31:08 +05:00
Morten@Thinkpad-X220 6326772ec5 Included web.config instead of csproj, so updates to csproj was missing. 2012-10-03 12:57:52 -02:00
Morten@Thinkpad-X220 ce1de7d8c8 Adds stubs for ContentService implementation U4-936.
Adds initial implementation of a simple publishing strategy U4-943.
2012-10-03 12:51:32 -02:00
Morten@Thinkpad-X220 42be2492b5 Implements the 16 MacroPropertyTypes from the database U4-946 2012-10-03 12:24:50 -02:00
Morten@Thinkpad-X220 bd180fd6ba Adds IMacro, IMacroProperty and IMacroPropertyType interfaces.
Adds Macro and MacroProperty implementations U4-928.
Adds enums used for MacroTypes and MacroPropertyTypeBaseTypes
2012-10-03 11:59:49 -02:00
Morten@Thinkpad-X220 d6b4307c8d Undoing the private set on Parent Id as it should be possible to change 2012-10-03 10:27:43 -02:00
Morten@Thinkpad-X220 3d99cec04c Adds Content, ContentStatus and ContentType implementations U4-922 and U4-923.
Hiding language property untill its fully implemented.
Making set on Parent Id private.
Resolves a naming conflict in DocumentExtensions and DefaultPublishedMediaStore.
2012-10-03 10:26:50 -02:00
Morten@Thinkpad-X220 2c39e4251f Adds interfaces for IContent, IMedia, IContentBase.
Adds interfaces for IContentTypeBase, IContentTypeComposition, IContentType and IMediaType.
This includes the inheritance structure for Content and Media, as well as ContentType and MediaType which is basically the same except for Templates and Compositions.
2012-10-03 08:24:23 -02:00
Morten@Thinkpad-X220 aa288877be Renaming IDocumentProperty to IPublishedContentProperty 2012-10-03 08:12:04 -02:00
Morten@Thinkpad-X220 58ee5b4d55 Adding Property and PropertyCollection classes U4-924.
Adding PropertyGroup and PropertyGroupCollection classes U4-926.
Adding PropertyType and PropertyTypeCollection classes U4-925.
Adding DataTypeDefinition and DataTypeDatabaseType U4-927.
Had to update the Property ref. on page and DynamicDocumentExtensions because of a conflict with the new Property class.
2012-10-03 08:03:45 -02:00
Morten@Thinkpad-X220 cb87a6db73 Adding DTOs for the 4.9.0 database schema - related to first task under U4-945 2012-10-03 06:57:58 -02:00
Morten@Thinkpad-X220 2d80baca70 Adding PetaPoco v4.0.3 in a slightly modified version, as we need to keep the DTOs internal PetaPoco should be able to reflect these DTOs.
Because of this modification we aren't using the nuget package.
2012-10-03 06:47:07 -02:00
Morten@Thinkpad-X220 676592a0da Updating umbraco version in GlobalSettings to 6.0.0 2012-10-03 06:40:41 -02:00
Morten@Thinkpad-X220 0b9bd3be50 Adding base model U4-921 and creating new branch. 2012-10-03 06:38:31 -02:00
Shannon Deminick 831d1966dc Added IEnumerable extensions to TypedContent, TypedMedia, Content, and Media methods 2012-10-02 22:55:36 +05:00
Shannon Deminick ef5525e67f renamed DynamicDocumentList to DynamicPublishedContentList
simplified some of the DynamicPublishedContent methods to accept Func<IPublishedContent> instead of Func<DynamicPublishedContent>, made the IsHelper method private as this shouldn't be exposed.
renamed other objects starting with DynamicDocument to DynamicPublishedContent
2012-10-02 22:51:53 +05:00
Shannon Deminick f3e04ac871 Changed method name ContentTyped to TypedContent and MediaTyped to TypedMedia. 2012-10-02 22:10:18 +05:00
Shannon Deminick ba98f587b2 Changed query methods on UmbracoHelper to just Content, ContentTyped, Media, MediaTyped 2012-10-02 21:58:07 +05:00
Shannon Deminick 2753dbe5b4 ensures enctype attribute is added in BeginUmbracoForm.
Adds CurrentCulture to RenderModel
2012-10-02 21:19:21 +05:00
Shannon Deminick 56c93891a8 Fixes the ClearDatabase call in SqlCEHelper... pretty flukey that unit tests were even working with this bug for so long.
Fixes the RenderRouteHandlerTests.
2012-10-02 02:33:19 +05:00
Shannon Deminick 6bd005775d After talks with morten and stephane, this renames
DocumentNotFoundHandler  -> PublishedContentNotFoundHandler
2012-10-02 01:43:59 +05:00
Shannon Deminick 73c79e8528 After talks with morten and stephane, this renames
IDocumentLookup -> IPublishedContentLookup
2012-10-02 01:43:05 +05:00
Shannon Deminick 827d4dd6c0 After talks with morten and stephane, this renames
DocumentRequestBuilder -> PublishedContentRequestBuilder
2012-10-02 01:41:54 +05:00
Shannon Deminick ffd14c839b After talks with morten and stephane, this renames
DocumentRequest -> PublishedContentRequest
2012-10-02 01:40:19 +05:00
Shannon Deminick f8d8b767b8 update ignore file 2012-10-02 01:37:02 +05:00
Shannon Deminick 4f011e0390 Some naming tweaks to fix up from previous commit. 2012-10-02 01:36:42 +05:00
Shannon Deminick 053df24640 After talks with morten and stephane, this renames
IDocument -> IPublishedContent
DynamicDocument -> DynamicPublishedContent
2012-10-02 01:35:39 +05:00
Shannon Deminick 45c335702d Updated view engine to look only in App_Plugins/ not App_Plugins/Packages/.
Updated view engine to automatically create the required razor web.config in the packages
Views folder if it is not there already.
2012-10-01 23:43:47 +05:00
Shannon Deminick bc04d4f8da Added PluginViewEngine for App_Plugins 2012-10-01 23:22:23 +05:00
Shannon Deminick be5076783f Adds ~/App_Plugins/Packages folder to be created in build script 2012-10-01 23:10:27 +05:00
Shannon Deminick 5c20f4f6ec Fixes: U4-U4-917
Fixes: U4-821
2012-10-01 23:04:57 +05:00
Shannon Deminick 42da98e020 Moves codebehind for EditView into UI project 2012-10-01 22:09:49 +05:00
Stephan eeb305c740 fix uQuery.GetNodeIdByUrl 2012-10-01 13:08:10 -02:00
Stephan c19541cb11 handle routing cache corruption cases, more unit tests 2012-10-01 12:20:51 -02:00
Stephan dea22f22cb fix UriUtility, fix unit tests 2012-10-01 09:52:32 -02:00
Stephan 656c61d1e2 fix xpath for finding default node because sortOrder may not start at zero 2012-10-01 06:55:44 -02:00
Shannon Deminick bac038b82d Converted treeInit.aspx so that it's codebehind and designer files are in the UI project and only
the old TreeInit class exists in the Umbraco.Web project (not the aspx file). It needs to stay there
to maintain backwards compatibility for anyone that may have inherited from that file.
2012-10-01 03:57:57 +05:00
Shannon Deminick dd6d0e380e Updated the /umbraco/umbraco.aspx page to have all of it's aspx + codebehind + designer files in the UI project and
left the original class in the Umbraco.Web project as to not break backwards compatibility for anyone that may have inherited from that
class.
2012-10-01 03:41:37 +05:00
Morten Bock c95c1a7038 Add support for thumbs and crops from standard datatypes. 2012-09-30 20:37:05 -02:00
Morten Bock 9e1c5e71e4 Adding the umbraco:image control, and the ImageUrl feature with a some generic ProviderFeature classes, to make it easier to implement future provider based features. 2012-11-21 07:13:31 -01:00
Sebastiaan Janssen aba68720bb Localized the create window for new Scrips (js) 2012-11-21 06:54:52 -01:00
Sebastiaan Janssen 1b1722c875 Renamed method to remove characters that are illegal in XML and made the method internal for now 2012-11-21 06:23:31 -01:00
Michiel van Oosterhout 248af2eaa2 Correct code that validates the user name when the session times out by serializing
user name and password.

Adds a minified 4KB JSON library to umbraco.aspx to support older browsers, namely
https://github.com/douglascrockford/JSON-js (public domain)
2012-10-07 20:54:34 -02:00
Casey Neehouse 0709174560 Merge 2012-11-20 21:11:11 +05:00
Casey Neehouse b0c0ed050d Adds SQL to validate that a node is published before loading the xml.
U4-759, u4-590, U4-589
2012-11-20 21:09:19 +05:00
Sebastiaan Janssen e3a085774c Revert 5c828605ef65 / 8b3a266b2d00 because that would have nasty side effects,
see http://issues.umbraco.org/issue/U4-1061
2012-11-20 14:49:30 -01:00
Sebastiaan Janssen 6f0ddc37a0 Include System.Data.SqlServerCe* should do a copy local 2012-11-20 14:13:47 -01:00
Sebastiaan Janssen d3eb5ceabe Merge 2012-11-20 12:55:17 -01:00
Stephan 1bffb7395c U4-1192 - uQuery.GetNodeIdByUrl should not follow redirects etc 2012-11-20 09:12:45 -01:00
Stephan e636a42744 .hgignore ~/scripts and ~/images 2012-11-20 08:52:56 -01:00
Stephan d3927a1265 code annotation attributes TLC 2012-11-20 08:49:06 -01:00
Stephan d6fc106588 fix DisposableTimer so args can be evaluated _after_ completion 2012-11-20 08:34:32 -01:00
Stephan 68fc833280 U4-1186 - bugfix previous commit 2012-11-19 16:09:43 -01:00
David@David-PC 5a8443fe72 committed wrong version 2012-11-18 18:48:56 -01:00
David@David-PC 153fb4a248 Do a recursive unpublish (fixes U4-462, U4-594, U4-1061) 2012-11-17 14:25:04 -01:00
Michael Wulff Nielsen 72ef5b01d2 Fixes bug 383, inserting macro parameters with quotes fails in macrocontainer 2012-11-20 09:29:38 -01:00
NielsHartvig@UMBRACORATI.localdomain 0854fee4ee Update to sanitizer 2012-11-16 14:24:24 -01:00
NielsHartvig@UMBRACORATI.localdomain e122d40fb9 The BOSS is fixing U4-367 2012-11-16 14:08:28 -01:00
Sebastiaan Janssen b696aa4340 ApplicationContext.Current.ApplicationCache wasn't public due to an oversight, it is now. 2012-11-19 15:31:58 -01:00
Sebastiaan Janssen e32dd303e3 Have to revert Microsoft.WebApplication.target file change as we got weird
results (umbraco.presentation folder and a XmlSerializers dll in the root).
Copied the targets file to the appropriate Program Files folder on the build
server. :-(
2012-11-19 15:02:43 -01:00
Stephan 7c524abb84 U4-1186 - support wildcard domains to change the culture 2012-11-19 14:11:34 -01:00
Stephan 993bac8a29 bugfix LogHelper 2012-11-19 14:09:52 -01:00
Shannon Deminick b40dbf73ca Changes case back to the correct EditView 2012-10-01 03:00:05 +05:00
Shannon Deminick 0808665342 Changes editView to editViewTEMP so that we can change it back to the correct case. 2012-10-01 02:55:53 +05:00
Shannon Deminick 7623746f64 changed editViewTEMP to EditView with correct casing. 2012-10-01 02:52:58 +05:00
Shannon Deminick 3152427ff7 Changed name of editView to editViewTEMP in order to change it back to the correct case. 2012-10-01 02:52:28 +05:00
Shannon Deminick 85e88e5640 Merge 2012-10-01 02:48:39 +05:00
Shannon Deminick ea3d2f893f Added AsDynamic extension to IDocument.
Makes DynamicDocument explicitly implement IDocument as well.
Changes all ContentById methods, etc... back to returning just 'dynamic'
Removes valueAlias from the .Field method of UmbracoHelper which didn't actually do anything
removes altValueAlias from the .Field method of the UmbracoHelper which didn't actually do anything.
2012-10-01 02:48:08 +05:00
Stephan 3cddc5e4dc merge 2012-09-30 14:04:38 -02:00
Stephan 8cd49749ec fix routing, more unit tests 2012-09-30 14:02:11 -02:00
Stephan e45bf57632 fix how we resolve "default node", now using sortOrder 2012-09-30 12:25:47 -02:00
Stephan 3e99dd0d55 fix NiceUrl and add more tests 2012-09-30 12:24:23 -02:00
Sebastiaan Janssen be2ed3762b Merge 2012-09-30 06:46:37 -02:00
Sebastiaan Janssen e3abd49276 Fix regression bug 2012-09-30 06:46:08 -02:00
Shannon Deminick d76f6c1cdb {localLink} parsing in MVC is now all working. 2012-09-29 11:35:31 +07:00
Shannon Deminick 840109dc58 updates missing code block 2012-09-29 11:19:19 +07:00
Shannon Deminick 1aebce7ad6 makes SystemDirectories and SystemFiles public.
moves ResolveUrlsFromTextString to TemplateUtilities class and obsoletes other ones.
Fixes an issue if content cache is stored in codegen folder and not in med trust.
Updates the XmlDocument (IDocumentProperty) to always return a value with parsed {localLink} and resolved Urls and cache them so the parsing only happens once.
2012-09-29 11:11:48 +07:00
Shannon Deminick 11fd6553e9 Ensures that localLinks are parsed when rendering fields and macros using UmbracoHelper.
Added additional ControllerExtensions to render views as strings.
2012-09-29 08:49:21 +07:00
Shannon Deminick 690c4a165c Creates TemplateUtilities class for parsing local links and obsoletes the old method. 2012-09-29 08:13:49 +07:00
Shannon Deminick 8fb159ddc2 Changes IThumbnailProvider to exist under Umbraco.Core.Media instead of just Umbraco.Core.
Moves many of the MVC extension methods into the Umbraco.Web.Mvc namespace and tidies up a few other
class's namespaces
2012-09-29 08:07:00 +07:00
Shannon Deminick b3ca264af1 Explicitly loads webforms handler and remaps to it, now we can share this code somehow with the RenderRouteHandler when
we want to support having a no-template render as a 404.
2012-09-29 07:36:19 +07:00
Shannon Deminick 34e71027b3 Changed Is404 on DocumentRequest to internal as only the DocumentRequestBuilder should set this, removed the Is404 being set in the
DefaultLastChanceLookup as lookups shouldn't set the 404.
Cleaned up ObjectExtensions TryConvertValue method.
Ensures that the routes are created before the CoreBootManager complete is called.
2012-09-29 07:20:23 +07:00
Stephan 926427ff68 merge 2012-09-28 11:14:04 -02:00
Stephan abe4944843 routing - handle when umbraco is not ready or has no content 2012-09-28 11:11:47 -02:00
PerPloug 5f12767f48 Flet 2012-09-28 09:27:12 -02:00
PerPloug 04e0b35c7d Method Renaming to follow standards
Marking IOHelper methods as internal
Removing unneeded umbraco setting
Missing icon and missing folder in UI project
2012-09-28 09:19:16 -02:00
Stephan d82cbfccc5 remove a ref to requestHandler, fix DefaultRoutesCache management 2012-09-28 09:04:49 -02:00
Stephan 3ed1b4c77d remove unused setting option 2012-09-28 08:14:01 -02:00
Stephan 6c4869f931 merge 2012-09-28 07:08:37 -02:00
Stephan b0e336e01f routing, fix "no content" splash, fix "no template" handling, fix redirects 2012-09-28 07:04:33 -02:00
Shannon Deminick 05bdd42567 Fixes issue with UmbracoHelper in back office when there is not Document.
Adds another overload to BeginUmbracoForm.
2012-09-28 08:08:36 +07:00
Stephan d8c2a71531 bugfix document.GetPropertyValue and object.TryConvertTo 2012-09-27 15:41:24 -02:00
Stephan a469e3dbe3 fix base/rest service - cleanup + new config file 2012-09-27 15:37:21 -02:00
PerPloug b8b951f094 Missing UmbracoSettings change in umbraco.core
IOHelper in umbraco.core
Both related to mvc views in template tree
2012-09-27 06:30:59 -02:00
PerPloug c409cfa421 Create/Ui.xml file for templates
umbracoSettings.config file
2012-09-27 06:29:41 -02:00
PerPloug 9f7814591e Adds Seperate View Editor for mvc templates
Changes the template tree to look for existing views
to override the .master
2012-09-27 06:24:04 -02:00
PerPloug 2c995f7fa7 Moves masterpage and view creation away from the template
class and into seperate helpers.
2012-09-27 06:23:09 -02:00
PerPloug 7e5db90b3b Adds IO Helper overload for the views and masterpages
Adds UmbracoSettings to toggle mvc templating support
2012-09-27 06:21:59 -02:00
Shannon Deminick f7f83bc057 Changed IPublishedContentStore and IPublishedMediaStore back to internal as we don't need to expose these yet. Instead have added
an UmbracoHelper property to the PluginController class which will expose any methods needed by devs to retreive media or content.
Have updated UmbracoHelper with loads of new helpful methods and moved the Wrap methods to HtmlHelper extensions because this is purely to
do with rendering html (have written unit tests for it too).
Updated some 'library' methods to proxy calls to UmbracoHelper so we only have to maintain one set of code.
Added a convenience property to UmbracoContext to return the current NiceUrlProvider so you don't have to go through the RoutingContext to get it.
2012-09-27 08:30:35 +07:00
Shannon Deminick 530e7ae44e removed ref to missing template file 2012-09-27 07:06:14 +07:00
Stephan 126044cd48 bring back scheduled tasks - #U4-809 2012-09-26 12:51:27 -02:00
Sebastiaan Janssen f76e90990f Include packages.config anyway, just tell it to not output in the build 2012-09-26 11:58:52 -02:00
Sebastiaan Janssen 587542ace7 The build.bat file now won't exit when there's an error so you can inspect it, if there's no errors it will just exit
Excluded missing index.cshtml file from project (was giving build error)
2012-09-26 06:48:11 -02:00
Shannon Deminick d3676b376d Removed test route 2012-09-26 13:59:24 +07:00
Shannon Deminick 53a3ad24e6 comments out test surface controllers for now 2012-09-26 13:44:23 +07:00
Shannon Deminick 05add96294 Ensures web.config includes new namespace reference 2012-09-26 13:43:47 +07:00
Shannon Deminick 9b5fd3d67b Merge 2012-09-26 13:42:44 +07:00
Shannon Deminick 5ece0b5af0 Surface controllers now auto-routing, both locally declared and plugin types (which require a [PluginController] attribute and an Area Name assigned).
BeginUmbracoForm working for both local and plugin SurfaceControllers. SurfaceController class now inherits from PluginController which exposes all things a dev would
need including making IPublishedContentStore and IPublishedMediaStore public which can be accessed simply by properties on the controller.
Updated web.config for views to include Umbraco.Web namespace for all of our helper methods.
BeginUmbracoForm now has many more overrides for which you can specify a type or a generic type (we no longer require GUIDs :)
2012-09-26 13:42:03 +07:00
Shannon Deminick 332b42aa49 Changed how surface controllers are routed: because we don't load plugins in via App_Plugins/[PackageName] like we did in v5 which meant that we can autoroute all plugin controllers with their own areas, in v4 we have to do something different.
Instead (because we still want areas), we have an attribute called PluginControllerAttribute which allows a dev to assign an area name as a string. A package developer should always ensure that all of their plugin controllers are assigned to the same
area. This also lets us get rid of the GUID id part of the plugin (hopefully we can leave it out, just need to run some tests). Since we have areas, package devs can then put their views into
their own folders and not clutter up the local devs ~/Views folder. Perhaps we use App_Plugins/[PackageName] for the views like we did in v5 but need to ask on the mail list. Otherwise it will be the standard MVC:
~/Areas/[AreaName]/Views which will still also clutter up the local devs view folder if they are using Areas.
2012-09-26 11:04:07 +07:00
Sebastiaan Janssen 97472c6ce6 Ignore file excluded the web.config file in the views folder, which is why the build failed, not because it wasn't included 2012-09-25 11:56:33 -02:00
Sebastiaan Janssen 48a3a920d2 Web.config file was not included, making the build fail 2012-09-25 11:53:27 -02:00
Shannon Deminick 7b7e3b82f1 Started adding tests for surface controller routing. They are working but not quite correctly yet. 2012-09-25 13:33:47 +07:00
Shannon Deminick 0b7f04ab37 Added all code to support auto-routing surface controllers and started implementing the code for
BeginUmbracoForm.
2012-09-25 13:09:59 +07:00
Shannon Deminick 083b18139a Adds code to RenderViewEngine to ensure the /Views folder exists and also that the razor web.config file exists there too.
I've also added this web.config file to the sln so it should output in the build by default though it will still be created automatically if
its not there.
2012-09-25 11:20:05 +07:00
Shannon Deminick 1bc3943f33 Fixes: #U4-894 - moves the int Priority out of the IThumbnailProvider class as it is only metadata, moved
this into a new generic WeightedPluginAttribute which can be used for other resolves/objects that require a weight.
2012-09-25 11:06:32 +07:00
Hendy@Blueberry 449613de3e updated check for uQuery.IGetProperty
added XPathCheckBoxList return obj for uQuery .GetProperty<T>("alias")
2012-09-24 20:54:26 -01:00
Stephan 7d8ec2678c initialize Umbraco sooner in the request pipeline 2012-09-24 12:49:36 -02:00
Stephan 12c0ce258b fixing routing + add Lookup tests 2012-09-24 12:10:25 -02:00
Stephan 42317ec207 merge 2012-09-24 11:37:55 -02:00
Stephan 343c14db48 fixing routing, 404, domains + add NiceUrl and UriUtility tests 2012-09-24 11:36:25 -02:00
Hendy@Blueberry 2fcb9d7b30 added uQuery.IGetProperty - allows GetProperty<T> extension methods to pass T hydration to a method in T 2012-09-23 10:34:39 -01:00
Sebastiaan Janssen ccbcb991b1 Text for Alias is changed to Alternative link
#U4-891 Fixed
2012-09-22 12:14:42 -02:00
sebastiaan 33f4da875a Additional fix for #U4-306 - click to the right of the node still collapsed the tree 2012-09-22 10:54:22 -02:00
sebastiaan 0549e39a00 The ClientDependency and ExamineIndexes folder are not needed in /App_Data any more
They are automatically generated in /App_Data/TEMP
2012-09-22 10:34:03 -02:00
Shannon Deminick 6fb0fc643b Merge 2012-09-21 23:54:31 +07:00
Shannon Deminick 8824579dac Made IThumbnailProvider public which fixes 4.10 loading them, plus now people can make their own :)
However, I'd like to move the Priority flag onto an attribute instead of part of the interface because it
is metadata and not functionality of the class itself. Will make a tracking issue for it.
2012-09-21 23:54:14 +07:00
Stephan 94b6a9df8d fix base/rest service - loading assemblies & caching methods 2012-09-21 10:10:03 -02:00
Stephan cb8a8b997f bugfix TypeFinder.GetAllAssemblies duplicate App_Code 2012-09-21 10:01:51 -02:00
Casey Neehouse fe99c22022 Merge 2012-09-21 01:56:19 +04:00
Casey Neehouse 0225047a52 Removes .ChildNode calls for .SelectNodes() with correct element selection. Allows comments in configuration.
Also updates some Macro Properties to work with new schema.
2012-09-21 01:53:43 +04:00
sebastiaan d89a24d96b Tree disappears if you click slightly below the root node
#U4-306 Fixed
2012-09-20 17:02:07 -02:00
sebastiaan c5535ddbc2 Improved SafeFileName method to include all valid characters as listed by RFC 3986 section 2.2 Reserved Characters (January 2005) and character data chars that could be ambiguous
Now characters like Chinese characters are allowed in the filenames, which addresses the issue below
#U4-885 Fixed
2012-09-20 16:46:55 -02:00
Stephan 3a21d48dbc merge 2012-09-20 14:38:08 -02:00
Stephan ea8ff709c2 further refactor base/rest service into Umbraco.Web 2012-09-20 14:37:23 -02:00
sebastiaan eb9937c33a Packages.config should not be included in the project as it shouldn't be in the builds 2012-09-20 10:24:56 -02:00
sebastiaan 777c7dd683 Update to 4.10.0 for the nuspec files as well 2012-09-20 09:16:03 -02:00
sebastiaan 10963fe3c4 Remove .nupkg files 2012-09-20 09:13:11 -02:00
sebastiaan 3e5d684333 Update version number to 4.10.0 2012-09-20 09:10:50 -02:00
greystate 6a9b2b260b Applied pull request: 3402 - typo on starter kit install screen 2012-09-20 09:09:55 -01:00
Morten@Thinkpad-X220 7a38d7f845 Adding TinyMCE language files for plugins and themes. There are still a few missing for the umbraco theme though. 2012-09-20 06:45:23 -02:00
Morten@Thinkpad-X220 745707dc4b Removing TinyMCE3 language files before they can be properly attached 2012-09-20 06:36:34 -02:00
sebastiaan 1f4ceaa75c Included the tinyMCE language files in the project so they'll actually be in the build
#U4-277 Fixed
2012-09-20 06:27:09 -02:00
Shannon Deminick a16f28eb26 Re-implemented GetProperty on IDocument, had removed it because I didn't see a need for it because we already have a Properties collection, however we do require it
for specific implementations where the IDocument needs to search for the specified property based on alias since it might not already know about it. This is true for the
DefaultPublishedMediaStore where a property may not exist in the Examine cache so we need to fallback to the db in that case.
2012-09-20 14:17:40 +07:00
Shannon Deminick fa36ff3662 removed erroneous Wrap methods that were hidden by other overloads based on optional parameters. 2012-09-20 13:32:08 +07:00
Shannon Deminick ae4cb00bbc Got Wrap methods on UmbracoHelper, deprecated old classes in the macroEngines project that Wrap utilizes and proxies
all calles in RazorLibraryCore for Wrap to UmbracoHelper. Fixed up the HtmlTagWrapper classes so they have immutable properties and replaced
public fields with Properties.
2012-09-20 13:16:38 +07:00
Shannon Deminick fd166389c4 Changed the MVC view class to expose the UmbracoHelper as just @Umbraco instead of @UmbracoHelper, this
follows the same naming conventions as MVC with HtmlHelper is exposed just as @Html, plus it is less to type
2012-09-20 12:47:37 +07:00
Shannon Deminick a48b996571 Got ChildrenAsTable working as extensions on DynamicDocument with supporting unit tests.
Have updated the ChildrenAsTable code for Node as well to use the same base code, this should
also fix some issues with generating a datatable correctly when a content type is changed, previously
the cache was not cleared for Alias to name mapping.
2012-09-20 12:42:43 +07:00
Shannon Deminick 6e4929b84d Fixes recent commits and aspx files not being edited in the correct place and split the aspx files + codebehinds properly so there's no confusion over
which one to edit.
2012-09-20 07:31:32 +07:00
Shannon Deminick f912d465c5 Moved BaseRestHandler out of the BaseRest namespace.
Updated PublishedMediaStore and wrote a bunch of unit tests for it which are all now passing.
2012-09-20 07:13:45 +07:00
Shannon Deminick 3e292b77ad Merge 2012-09-20 03:47:34 +07:00
Shannon Deminick dc000ea33c Update to DefaultPublishedMediaStore, changed namespace for some unit tests. 2012-09-20 03:47:24 +07:00
sebastiaan aaa8cafd0b Merge 2012-09-19 12:45:24 -02:00
sebastiaan ce0923cfc6 Uploading media with hyphens get a space added before the hyphen
New media uploader: illegal characters in the filename are not filtered
New media uploader: IE in intranet mode stores the whole path
Fixed U4-882 U4-883 U4-874
2012-09-19 12:45:11 -02:00
Casey Neehouse 7473557580 Removed umbracoApp and umbracoAppTree Foreign Keys from SqlAzure install script. 2012-09-19 15:02:02 +04:00
sebastiaan 982ba0f4b0 Corrected bug where PropertiesPane was only shown on media items 2012-09-19 07:49:51 -02:00
sebastiaan 278c1fefaa Merge 2012-09-19 06:20:09 -02:00
Matt@MBP13-PC 71b2137513 Merge 2012-09-18 13:25:56 -01:00
Matt@MBP13-PC 2952992ffe Fixed "inception" media tree bug due to recycle bin auto initializing when it shouldn't 2012-09-18 13:25:17 -01:00
sebastiaan 0dbd214b00 Merge 2012-09-18 09:16:22 -02:00
sebastiaan 90ca566e53 Little cleanup of some left-behind files 2012-09-18 09:14:38 -02:00
Stephan aa633bbbb2 merge 2012-09-18 08:55:39 -02:00
Stephan 2c204d9d9e refactor base/rest module into a handler so that it works again with the new UmbracoModule 2012-09-18 08:54:54 -02:00
Hendy@Blueberry 8307da1a87 XPath CBL / DDL prevalue descriptions for the XPath fields, and fix for CBL to load defaults 2012-09-17 21:21:33 -01:00
sebastiaan d339f74e95 Thanks to Darren Ferguson - Media items should indicate which Media Type (in Properties tab)
#U4-679 Fixed
Add "url to this file" label to property tab in media
#U4-173 Fixed
2012-09-17 10:53:22 -02:00
sebastiaan 59fe173933 Removed old and completely unused GraphicHeadlineFormat config setting
Some updates to umbracoSettings.config
Thanks to Jan Skovgaard for the help!
2012-09-17 07:47:13 -02:00
dseefeld 51769847ad Error: Delete media item with upload property - empty recycle bin fails
Fixed #U4-771
2012-09-17 04:06:53 -02:00
Sebastiaan Janssen 918e7ad682 Fixed "inception" media tree bug due to recycle bin auto initializing when it shouldn't 2012-10-23 07:06:50 -02:00
dseefeld ca55579982 Error: Delete media item with upload property - empty recycle bin fails
Fixed #U4-771
2012-09-17 04:06:53 -02:00
Darren@Darren-VAIO b5099c37c7 Standard doc type properties no longer prefixed with @ in "Insert Umbraco page field" dialogue
Fixed #U4-859
2012-09-16 10:49:19 -02:00
Macke@MacsonServer 2826fbd807 Fixes #U4-840 Changed the blog url in MetaWeblog API. Url-property of getUsersBlogs, will now contain the full url to the blog, not just the "server_name". 2012-09-16 09:41:53 -02:00
sebastiaan b5d209677e Changed scriptDisableEditor comment to reflect new js lib and it's now also working in IE
Thanks to Jan Skovgaard for noticing it was wrong!
2012-09-16 09:16:26 -02:00
sebastiaan b15d03a54d #U4-784 Fixed
Member.MakeNew duplicate LoginName exception message uses wrong data
2012-09-15 08:43:06 -02:00
sebastiaan 247aa08d57 Fixes U4-778 - Visualize XSLT is not working. 2012-09-15 08:32:25 -02:00
Shannon Deminick 394078d470 Merge 2012-09-15 12:19:53 +07:00
Shannon Deminick 91834e8f53 Migrated logic to create a DataTable from a Node or pretty much any other object in to a central place so we only have to maintain code in one place.
Now need to just test it with Node and create the DynamicNode extension methods for returning as a DataTable.
2012-09-15 12:17:42 +07:00
sebastiaan 201bc2d1ab Merge 2012-09-14 11:23:42 -02:00
sebastiaan 29ed7bf8ae Fixes U4-776 umbraco:item xslt property not rendering in template - Thanks to Michael Wulff Nielsen for the quick spot and contribution! 2012-09-14 11:19:57 -02:00
leekelleher 26f32bab8e Dashboard controls: Tidied up the UI.
Made use of ClientDependency for CSS/JS includes.
CSS tweaks for success/notice/error messages.
Removed from "Umbraco.Web.UI" project, master version now in "Umbraco.Web"; (confirmed with Seb)
(MediaDashboardFolderBrowser.ascx was missing from "Umbraco.Web" - added)
2012-09-14 11:41:30 -01:00
Shannon Deminick 1566b16f0f Migrated most of the functionality from RazorLibraryCore to UmbracoHelper and updated RazorLibraryCore to call
the methods in UmbracoHelper so we only have to maintain one set of code. Didn't port over the Wrap methods because
I need feedback on these as to what they do/are supposed to do.
Added the Media methods to UmbracoHelper using the media store stuff.
2012-09-14 09:09:23 +07:00
Shannon Deminick 0a8b1cc784 Big cleanup of DynamicDocument, removed DynamicBackingItem for this implementation as it is not required.
Removd DynamicBackingItemType since media and content are the same.
2012-09-14 07:28:44 +07:00
Matt@MBP13-PC c441887a96 Updated treePicker dialog to allow the passing in of a NodeKey via querystring 2012-09-13 18:00:25 -01:00
Matt@MBP13-PC 32d76cc143 Fixed issue with AbstractPrevalueEditor throwing WebResource 404s when implemented by a type outside of the umbraco.editorControl namespace 2012-09-13 17:58:18 -01:00
sebastiaan 4340df53fd U4-843 Number of "Last Edits" is now configurable. 2012-09-13 14:42:59 -02:00
sebastiaan f6c6f4f0c0 U4-55 Remove Linq to Umbraco from the core - Removes the menu item as well 2012-09-13 11:23:19 -02:00
Shannon Deminick 18713fe513 Fixes one test with DynamicNode 2012-09-13 13:38:51 +07:00
Shannon Deminick a1edad4e08 Fixed DynamicNodeTests with db support 2012-09-13 13:02:02 +07:00
Shannon Deminick 1c040912f6 Exposes the IDocument property as CurrentDocument on the Model for MVC pages. 2012-09-13 12:28:08 +07:00
Shannon Deminick 458f1d3b8f Fixed setting the Is404 flag 2012-09-13 12:23:58 +07:00
Shannon Deminick 9e5f2f3c9a Fixed template engine selection... oops :) Should all work now!
Fixed DefaultPublishedContentStore to correctly find a secondary root document that doesn't have a domain assigned.
2012-09-13 12:19:56 +07:00
Shannon Deminick f6022c8dda Merge 2012-09-13 11:48:16 +07:00
Shannon Deminick 0ed15db408 Fixed the NiceUrlProvider as it some refactor on a previous commit broke some stuff.
Fixed up some unit tests with NiceUrlProvider to ensure that the second node under the root get's
the correct URL assigned.
Added unit test to ensure that route caches are persisted correctly.
2012-09-13 11:45:06 +07:00
Shannon Deminick c742c6c249 Created new GlobalSettings unit tests to validate reserved paths as well as updated the umbraco module tests with an install path without
the suffixed '/'. Fixed a bug with the reserved paths which was caused by code written in 4.9 to the new code written in 4.10 and the combined
effort was not working. Added more logic to cleanup the URL before comparing too.
Cleaned up GlobalSettings to not have any reliance whatsoever on httpcontext (which of course it shouldn't and not sure why it even did before).
Obsoleted a few methods on the legacy GlobalSettings that aren't used anywhere and should be removed in the future.
Cleaned up a bit of the UmbracoModule with the URLs used.
2012-09-13 09:00:21 +07:00
Shannon Deminick b06a4d2e13 Merge 2012-09-13 06:48:16 +07:00
Shannon Deminick 89cd2772dc add note 2012-09-13 06:48:06 +07:00
Morten@Thinkpad-X220 48c69b9335 Fixes U4-781 Removed duplicate swedish language file. 2012-09-12 05:57:27 -02:00
sebastiaan e8d6f694e7 Added back missing translation trees 2012-09-12 04:22:39 -02:00
sebastiaan 253b58aafb Corrected bad merge (again) 2012-09-11 06:42:00 -02:00
sebastiaan a864fc1fe8 Fix merge problem 2012-09-11 05:29:36 -02:00
sebastiaan 8a5cd21603 Merge with default 2012-09-11 05:02:33 -02:00
Shannon Deminick f2a7b3b255 Updated the published content stores so that content doesn't inherit from media, instead there is a base
interface IPublishedDataStore.
Simplified the interface structure and removed the GetDocumentProperty method as it is not needed and i think existed
before we updated the codebase to not rely on xml.
2012-09-11 05:58:16 +07:00
Shannon Deminick d5ca5e32b4 Fixes the issue with trailing slashes and the comparison in GlobalSettings and updated unit tests
to support the fix.
2012-09-11 05:27:39 +07:00
Shannon Deminick 37969909ca Updated the DynamicDocument and node unit tests to not init a db each time, runs much faster though in the future
we might have to re-enable this in a smart way.
2012-09-11 04:43:30 +07:00
sebastiaan fe92947d72 TeamCity build fails on missing Views\Home.cshtml in Umbraco.Web.UI, removed it. 2012-09-10 12:15:03 -02:00
sebastiaan b9165a8b70 TeamCity build fails on missing App_Code\TestClass.cs in Umbraco.Web.UI, removed it. 2012-09-10 12:10:17 -02:00
Shannon Deminick 27bcea78d2 Started implementing new IPublishedMediaStore which will replace the notion of the legacy ExamineBackedMedia and
moving forward will open up many nice opportunities. This will be used for the media accessor in the new DynamicDocument.
Renamed XmlPublishedContentStore to just DefaultPublishedContentStore.
Made GetProperty an extension method for IDocument and removed from the interface as it is not needed there.
2012-09-08 13:22:45 +07:00
Shannon Deminick ce9be79ec6 Added the Examine Search methods to DynamicDocument as extension methods.
Renamed a few things.
2012-09-08 11:59:01 +07:00
Shannon Deminick d83887e314 Ported updates to DynamicDocument to allow dynamic access to RTE content and still have it
render all embedded macro content without resorting to use some other mechanism.
Fixes the .Field method of the UmbracoHelper.
2012-09-08 11:30:19 +07:00
Shannon Deminick 59fa733156 Created MacroTagParser and updated ItemRenderer to use it. Have DynamicDocument rendering RTE content
with macro content without having to use any special methods, we just use a new custom Property Editor value converter.
Now just need to port this over to DynamicNode too.
Obsoleted a method on the 'helper' class to something much more meaningful... hopefully we can do that with the rest of that class too.
2012-09-08 07:13:03 +07:00
sebastiaan 534c28046a Added tag Release-4.9.0 for changeset 09f5a69cf19e 2012-09-07 07:10:51 -02:00
sebastiaan 4056b47d32 Removed tag Release-4.9.0 2012-09-07 07:10:32 -02:00
sebastiaan 1581944661 Update to CodeMirror for U4-762 2012-09-07 07:10:02 -02:00
Shannon Deminick 5e9d791523 Moved the DocumentNotFoundHandler to diff namespace, created new NoTemplateHandler and updated the engine
to route to it when no template is selected and when there are no hijacked routes.
2012-09-07 08:28:18 +07:00
Shannon Deminick 9127061194 Added support for determining rendering engine based on template chosen. 2012-09-07 07:57:25 +07:00
Shannon Deminick 9563526108 re-reverted the global settings stripping trailing slashes as it is needed for the new
Routing pipeline.
2012-09-07 06:26:34 +07:00
Shannon Deminick 61d7dba2c0 Merge with 4.9.0 2012-09-07 06:24:51 +07:00
sebastiaan e0093d69f1 Merge 4.9.0 back into the default branch 2012-09-06 16:13:57 -02:00
sebastiaan af6693bb5a Close 4.9.0 branch 2012-09-06 16:08:09 -02:00
sebastiaan 0a37b90592 Added tag Release-4.9.0 for changeset de73e687ddf6 2012-09-06 16:07:52 -02:00
Morten Christensen@ThinkPadX220.ab-nat1.dk fa33563a36 Embed classes internal -> public.
Renaming Embed.config to EmbeddedMedia.config
2012-09-06 15:23:42 -02:00
sebastiaan acc985d1d9 Forgot to add the new script to the project, made folder structure consistent 2012-09-06 14:03:41 -02:00
sebastiaan 1b25920507 Forgot to add the new script to the project 2012-09-06 14:01:38 -02:00
sebastiaan 12c92aedcc Adding SQLAzure script needed to update the WebPI feed when there's database changes 2012-09-06 13:57:11 -02:00
sebastiaan 70a814a20c Fixes U4-741 - umbracoReservedPaths was not properly filtering after removing trailing slashes 2012-09-06 12:25:04 -02:00
Morten Christensen@ThinkPadX220 874faf6f83 Removing collation in total db script, as it was a strange mix of danish and latin1 general. 2012-09-06 10:26:25 -02:00
Morten Christensen@ThinkPadX220 040d09ec42 Merge 2012-09-06 08:12:20 -02:00
Morten Christensen@ThinkPadX220 73c5451ff7 Merge 2012-09-06 08:11:18 -02:00
sebastiaan 03865ba978 Re-included ItemEditing*.js for canvas, was removed after a merge with 4.10 2012-09-06 08:10:48 -02:00
Morten Christensen@ThinkPadX220 8692d0777f Changing classes to internal instead of public in Core project. The abstract classes in the Web project can be used to create providers. 2012-09-06 08:00:55 -02:00
sebastiaan 422d9a14b2 Changed the AutoSuggest to be disabled for IE globally instead of just for scripting files so future autosuggest additions won't show up in IE either 2012-09-06 07:49:04 -02:00
sebastiaan 36ad275037 Merge 2012-09-06 07:43:24 -02:00
sebastiaan 2ec35aa0fa Disable Codemirror code completion for IE as it doesn't work properly and mostly just gets in your way 2012-09-06 07:41:45 -02:00
Morten Christensen@ThinkPadX220 fff09caebf Adding a bat file as a shortcut to building nuget packages. Should be part of the build process tho. 2012-09-06 07:40:18 -02:00
Morten Christensen@ThinkPadX220 0e2bc2bc13 Making a few corrections to the embed plugin - primarily changing namespace in Core project. 2012-09-06 07:39:38 -02:00
netaddicts 2a6fc37dce Fixes U4-755 Increase width of Name field to match width of other text fields 2012-09-06 06:00:00 -02:00
sebastiaan 4e9783ed91 Fix iframe uploader (IE6-9) to get the response in the correct format 2012-09-06 04:42:03 -02:00
Shannon Deminick 8081d1d97b Merge with 4.9.0 2012-09-06 12:20:20 +07:00
sebastiaan ae1eac4a7a Added < and > to the urlReplacing as they never actually work and cause errors (404 and 500) 2012-09-05 13:05:23 -02:00
sebastiaan a91d17d8b0 Added \ and | to the urlReplacing as they never actually work and cause errors (404 and 500) 2012-09-05 12:38:12 -02:00
sebastiaan b43a774d7f Found an install where somehow the div around propertyPane had z-index 1000, the same as the uploadpanel, therefore hiding it 2012-09-05 06:59:26 -02:00
sebastiaan 71b9691431 New media uploader now opens the folder in which you were uploading after upload. 2012-09-05 02:03:18 -02:00
Shannon Deminick 36c6dbb6be updated a doc 2012-09-05 09:36:30 +07:00
Shannon Deminick 56b7f8d98b Got .Field method for MVC working and have macro's rendering inside of RTE in MVC.
Added internal setting for global settings to return an MVC area string based on the umbraco path.
Added a ton of extension methods from v5 that are used in much of the MVC engines.
Added UmbracoHelper methods for MVC rendering including Field so that we can render the correct RTE
field markup when the RTE contains a macro, will add extension methods for the @CurrentPage dynamic object to
do the same to make it consistent.
2012-09-05 09:35:24 +07:00
Shannon Deminick bba5e6a59a Fixed issue with new UmbracoModule trying to strip the legacy umbPage query string stuff too early (still need to ask Niels about what this does)
Fixed issue with page update with Document ctor to try catch the Parent property. Removed a bunch of erroneous tracing and replaced with LogHelper.
2012-09-05 08:01:53 +07:00
Shannon Deminick 4dc181b4de Merge with 4.9.0 2012-09-05 07:25:31 +07:00
Shannon Deminick 792860a7bb updated a TODO 2012-09-05 07:22:39 +07:00
sebastiaan 4d101a3a58 Only refresh the tree when all files are done uploading
Remove upload panel when all files are done
2012-09-04 14:37:11 -02:00
sebastiaan 8bab9d7fa5 Added node path to be able to refresh the tree + refreshing the tree after an upload succeeds 2012-09-04 14:27:54 -02:00
sebastiaan 0413b1fbca FileSystemProviders.Release.config shouldn't be content 2012-09-04 13:29:48 -02:00
sebastiaan 2089990769 Changed folderBrowser datatype to use the new MediaDashboardFolderBrowser control 2012-09-04 12:59:05 -02:00
sebastiaan 9843e2e15d Add razor highlighting for codemirror 2012-09-04 12:04:06 -02:00
tg@umbraco.com 25721afcf4 Also makes sure tinyMCE embed plugin is enabled by default on SQLCE 2012-09-04 10:34:35 -02:00
tg@umbraco.com cd75b4b1c9 Merge 2012-09-04 10:32:56 -02:00
tg@umbraco.com 30377f987f Makes sure tinyMCE embed plugin is enabled by default 2012-09-04 10:31:41 -02:00
tg@umbraco.com 644c42556b Updates icon of tinyMCE embed plugin so it's the same for both the toolbar and prevalue editor 2012-09-04 10:27:57 -02:00
Morten Christensen@ThinkPadX220 7eea48a55d Adding nuspec files for nuget packages 2012-09-04 09:19:00 -02:00
sebastiaan 062584de0e Put the ++ back instead of + 1 2012-09-04 08:57:56 -02:00
sebastiaan 57f9bd2846 Changes casing of /Media in FileSystemProvider.config for backwards compatibility (media protect pkg)
Included missing images for the installer
2012-09-04 08:35:15 -02:00
sebastiaan 673e040aa3 Fixed mediadashboard problem, ClientDependency doesn't like newlines in js using \ 2012-09-04 08:10:29 -02:00
sebastiaan f486ff6441 Improving fileUploader.js with jsLint suggestions 2012-09-04 07:44:23 -02:00
sebastiaan 73c6aaa995 Hide throbber when there's no files found
Few updates to make the folderbrowser js safer (as suggested by jslint)
2012-09-04 07:22:15 -02:00
sebastiaan f0dc50d406 Merge 2012-09-04 06:40:37 -02:00
sebastiaan 4e737f7a89 Include mediadashboard in release config, ignore kraftwerk web.config, include upload icon 2012-09-04 06:39:49 -02:00
Morten Christensen@ThinkPadX220 c98f29d462 Updating Danish and English language files with updates from github pull requests 2012-09-04 05:51:24 -02:00
sebastiaan 5beee157a5 Merge 2012-09-04 04:07:02 -02:00
sebastiaan 9171a0d080 Fixes U4-725 Image Cropper - Quality field does not save 2012-09-04 04:06:33 -02:00
leekelleher 6aeaa4ae92 FolderBrowser: Corrected typo on Upload button title attribute.
Small CSS tweak to filter input textbox - side padding.
2012-09-03 19:15:15 -01:00
leekelleher c345b9f47c Applied patch from uComponents for uQuery - GetContentIdByPropertyId 2012-09-03 18:57:54 -01:00
leekelleher 99cf1e9f6d Web.UI project - nested embed.Release.config file 2012-09-03 18:56:59 -01:00
Morten Christensen@ThinkPadX220 7259ad1ff1 Updating Chinese language file with pull request from localization project on github. 2012-09-03 12:39:15 -02:00
Morten Christensen@ThinkPadX220 7dfeae1d0e Minor adjustment to language files according to issue U4-385 2012-09-03 11:32:39 -02:00
Morten Christensen@ThinkPadX220 1121cfe534 Updating Dutch Language file 2012-09-03 10:05:52 -02:00
Morten Christensen@ThinkPadX220 a68c7e8f83 Updating German language file 2012-09-03 10:05:05 -02:00
Morten Christensen@ThinkPadX220 dd89af607f Updating swedish language file 2012-09-03 10:04:26 -02:00
tg@umbraco.com e6c2bf3d01 Adds vir dir support to tinyMCE embed plugin 2012-09-03 05:24:50 -02:00
tg@umbraco.com 917838c0ef Merge 2012-09-03 05:12:44 -02:00
tg@umbraco.com 68e96587f7 Adds vimeo provider to embed.config 2012-09-03 05:11:33 -02:00
Shannon Deminick c3747d70ce Added ObjectExtensionsTests, Added functionality for MVC to render any macro types (i.e. razor and xslt, etc..)
Adds UmbracoHelper as a property to the RenderViewPage for MVC. Tested rendering Xslt and Razor macros with and
without parameters and works well.
Next we need to get the RTE rendering with macros embedded in MVC.
2012-09-03 07:54:09 +07:00
Shannon Deminick 2fc0fe574b Fixed XmlDocument GetProperty to check for user properties 'invariantly'.
Added a method on content to remove the file persistence queue just before it's written based on the module, this should hopefully speed things up and fix some potential issues.
Added an overloaded method on library for UpdateDocumentCache which should save on a few dozen sql calls when publishing a node since we already have
the Document object reference yet we were looking it up again for no reason.
2012-09-02 07:35:57 +07:00
Shannon Deminick a293f53438 Fixes type finder to ensure editorControls are found 2012-09-01 08:52:14 +07:00
Shannon Deminick 85b7574f43 Fixed unit test 2012-09-01 08:30:44 +07:00
Shannon Deminick c961eb368c Fixed up NiceUrl caching inconsistencies 2012-09-01 08:27:16 +07:00
Shannon Deminick 529c52844d Started writing NiceUrlProvider unit tests as there are a bunch of issues with it. Have fixed one of them.
Updated unit test hierarchy of classes so that if one doesn't require a db it can opt out and thus it runs much much faster.
2012-09-01 08:11:40 +07:00
Shannon Deminick 6949178f4b removed formHandlers.config... pretty sure we removed this functionality about a zillion versions ago.
Removed old Nant build folder and files.
removed the umbVersion query string check as this was used for the old preview functionality and isn't used anymore (plus it could never work the way its implemented).
2012-09-01 07:03:56 +07:00
Shannon Deminick 30ec9406de Merge with 4.9.0 2012-09-01 06:20:36 +07:00
tg@umbraco.com 2be79d68cd Updates umbraco embed tinyMCE plugin lang files 2012-08-31 11:42:59 -02:00
tg@umbraco.com 914f639afe Removes GetPreview method from IEmbedProvider 2012-08-31 11:32:38 -02:00
tg@umbraco.com 591a19920f Updates tinyMceConfig.Release.config with embed plugin stuff 2012-08-31 11:30:32 -02:00
tg@umbraco.com 0676d9fa7a Disables Tidy by default 2012-08-31 11:28:16 -02:00
tg@umbraco.com aa8f066f9a Merge 2012-08-31 11:25:14 -02:00
tg@umbraco.com 3e3789d468 Adds embed.Release.config 2012-08-31 11:24:16 -02:00
tg@umbraco.com 85dcf5002f Adds webservice method for embed plugin + embed config file 2012-08-31 11:23:18 -02:00
sebastiaan be0d843c86 Fixes U4-419 Improved editing xslt/razor/ruby/python files in subfolders a little bit (it now actually works)
Still needs more work to make it safer (especially entering backslashes will give YSODs and sometimes when you move to a different folder the old file stays behind)
2012-08-31 11:00:38 -02:00
janusschmidtDK 67c1435fb0 Fix for U4-727 - Small performance issue in backend when loading stylesheet properties. 2012-08-31 10:43:14 -02:00
tg@umbraco.com 85f7ed387f updates tinyMCE config with umbraco embed plugin 2012-08-31 09:43:24 -02:00
tg@umbraco.com f32f559ab7 Adds tinyMCE umbraco embed plugin 2012-08-31 09:37:35 -02:00
tg@umbraco.com b75ea3d589 Adds core components and providers for embed stuff 2012-08-31 09:28:19 -02:00
sebastiaan 06e84f4a98 D'oh! Apologies for bad testing, query had one too many AND's in there =) 2012-08-31 07:07:09 -02:00
sebastiaan 96f582f188 Fix for U4-650 was incorrect, removing ASCII filters out øåæ and probably other letters as well.
It's now very exact, just look if the first letter is not in a list of 26 letters.
2012-08-31 07:01:14 -02:00
Shannon Deminick 04f49d42cf Added unit tests for LookupByPageId ILookup 2012-08-31 07:43:09 +07:00
Shannon Deminick f0148ae833 Added more backwards compatibility to default.aspx 2012-08-31 07:27:17 +07:00
Shannon Deminick 4ced9cf8b2 updated more backwards compatibility with default.aspx 2012-08-31 07:22:41 +07:00
Shannon Deminick d0ab7e505d Updated unit tests for the module to inherit from proper base classes.
Updated default.aspx to support more backwards compatible features that had been removed, there
was a lot of breaking changes there!
2012-08-31 07:19:54 +07:00
Shannon Deminick b511ae3a1a Created new LookupByIdQuery ILookup which is now the first thing that is looked up. Have cleaned up
all of the default.aspx stuff so that no routing logic takes place there, all routing logic now takes
place entirely in the module.
2012-08-30 08:26:01 +07:00
sebastiaan 85d7d5e7cf Fixes U4-708 Sort order for new nodes is set wrong when the max sortorder != number of nodes 2012-08-29 13:48:34 -02:00
Shannon Deminick 05ebc8d2f9 Changed the Template prop of documentrequest to be a new TemplateLookup object since we are going
to need to support MVC and the old Template object is for webforms. I've added a lot of TODO's here
because we'll need to enable the lookups properly in each ILookup and also set the rendering engine (IsMvc)
in the ILookups too. This hasn't been enabled, yet, just a bunch of TODO's written.
2012-08-29 08:54:29 +07:00
Shannon Deminick b86d513aff Updated the new module to handle when no template is found (blank page) instead of the handlers (webforms or mvc) handling this. 2012-08-29 08:17:31 +07:00
Shannon Deminick c251c9f0d3 Changed the Is404 property on the doc request to be set by the last chance lookup, not by the module
because in the future if people override the last chance lookup, they might not want it to be 404, it will
be up to them.
2012-08-29 08:10:10 +07:00
Shannon Deminick 7be4480254 added HasValue unit test, removed the default.aspx file from the Web project, it now only exists in the UI project but
the codebehind still exist in the web for backwards compatibility. Updated the logging so that the LogHelper
can now write to a TraceContext specified if debugging which is handy if we want to write to the normal trace.
2012-08-29 07:47:16 +07:00
Shannon Deminick 3cd1592abc Added better support for Skip for DynamicDocument and DynamicNode and added unit tests. 2012-08-28 09:33:34 +07:00
Shannon Deminick bc3a5122dd Fixes DynamicNode issue not implementing IEnumerable<DynamicNode>
Adds a few unit tests for DynamicDocument/DynamicNode and fixes both to properly support the 'Take' method
as this wasn't really working. Not sure how or why it was working previously. Have also allowed for extension
methods to be executed against either of these objects that accept IQueryable which was not supported before.
2012-08-28 09:20:30 +07:00
Shannon Deminick 4d2b145369 Merge 2012-08-28 06:51:11 +07:00
Shannon Deminick 32350fd35a adds some docs 2012-08-28 06:51:01 +07:00
jholland@HQLT-JHolland.SCRIBEHQ.local a922272c67 Included swfobject.swf
Fixes: U4-624
2012-08-27 19:38:32 +04:00
jholland@HQLT-JHolland.SCRIBEHQ.local 3c7b5d7522 Widened content name field in backoffice
Fixes: U4-369
2012-08-27 23:33:06 +04:00
azzlack 33c07a2390 Updated AbstractDataEditor and AbstractDataEditorControl code comments. 2012-08-27 16:19:13 -02:00
"azzlack" d2210e9985 Updated AbstractDataEditor and AbstractDataEditorControl code comments. 2012-08-27 16:08:17 -02:00
Ove@EyeCatch-MPC 48e8e12877 Reverted some changes to AbstractDataEditorControl in 7260 to retain backwards compatibility. 2012-08-27 14:59:39 -02:00
sebastiaan 2b248e621c Merge in Azzlack/AbstractDataEditorFix 2012-08-27 11:14:06 -02:00
sebastiaan edfe6ed547 Merge uQuery dictionary fix from Azzlack/uQueryDictionaryFix 2012-08-27 10:48:13 -02:00
sebastiaan 6cffa06bd6 Merge 2012-08-27 08:08:26 -02:00
sebastiaan d08946c822 Merge 2012-08-27 08:07:50 -02:00
sebastiaan 6892c1afb8 Merge fixes getnodeidbypathlevel regression
http://ucomponents.codeplex.com/workitem/14727
2012-08-27 08:06:54 -02:00
sebastiaan 7cecb01ffd Merge fixes getnodeidbypathlevel regression
http://ucomponents.codeplex.com/workitem/14727
2012-08-27 08:06:30 -02:00
sebastiaan 66cbfaf8a5 Merge fixes getnodeidbypathlevel regression
Original issue: http://ucomponents.codeplex.com/workitem/14727
2012-08-27 08:05:17 -02:00
Matt@MBP13-PC 38d3d6b575 Updated ImageMediaFactory to support png transparency
Updated UmbracoFile to remove '.' from gif extension check
2012-08-27 08:01:51 -01:00
Shannon Deminick 528b06f692 Got the RenderViewPage rendering with the new DynamicDocument for the @CurrentPage property 2012-08-25 07:14:23 +07:00
Shannon Deminick 92602e3480 Added unit tests for legacy DynamicNode which now just runs tests on the abstract class so we share tests between
DynamicDocument and DynamicNode.
Fixes: #U4-691
Fixes: #U4-690
2012-08-25 07:07:00 +07:00
Casey Neehouse f18e59575f Changed versionDate to be set from application as possibly related to u4-387 2012-08-24 21:58:53 +04:00
Shannon Deminick 64c9d97e53 Got extension methods working on DynamicDocument/DynamicDocumentList and added unit tests
for them.
2012-08-24 23:44:47 +07:00
Shannon Deminick 71fd352ea5 Merge with 4.9.0 2012-08-24 22:41:27 +07:00
Shannon Deminick fbd20fd4b1 Removes 'OLD' root folder 2012-08-24 22:41:00 +07:00
Shannon Deminick b0f77a38f0 Merge with 4.9.0 2012-08-24 22:38:03 +07:00
leekelleher bf5c3bf5ae Fixes U4-688 - 4.8.1 can't upgrade using SQLCE
(Also preparation for resolving U4-677 - SQLCE Medium Trust)
2012-08-24 13:56:39 -01:00
leekelleher e9e598d32c Corrected typo (macro/xsltExtensions) 2012-08-24 13:14:52 -01:00
PerPloug b2eeb6a70d Script rename, fixes a couple of IE bugs, much more stable now, much better in
IE now, so with a bit of more thorough use, it could be included by default for
IE
2012-08-24 07:01:54 -02:00
PerPloug 9e4cf35370 Small script name change to reflect custom codearea script 2012-08-24 07:00:04 -02:00
leekelleher ebd87e0eaa Implemented U4-86 - Move EXSLT references from being predefined in core to xsltExtensions.config 2012-08-23 17:55:45 -01:00
Shannon Deminick d369567f3f Fixes .proj merge issue 2012-08-23 23:13:55 +06:00
Shannon Deminick ba0b0ea52d Merge with 4.9.0 2012-08-23 22:33:52 +06:00
Shannon Deminick f36a88384d Migrated UmbracoSettings, GlobalSettings, XmlHelper, IOHelper and supporting classes to Umbraco.Core.
This fixes the need for Umbraco.Core to reference business logic since business logic needs to reference
Umbraco.Core (Umbraco.Core should never reference any other project except for interfaces, it is the 'Core'
of the new codebase.
2012-08-23 22:28:22 +06:00
Shannon Deminick 7fb89da4db Merge with 4.9.0 2012-08-23 22:05:07 +06:00
leekelleher 19f7ba1ef4 MNTP: Applied CSS fix to the header style. Bug raised on uComponents.
http://ucomponents.codeplex.com/workitem/14746
2012-08-23 14:19:00 -01:00
leekelleher 23532b0ec8 Nested a Web.config transform file 2012-08-23 11:01:31 -01:00
leekelleher 47042ed3d3 Implemented U4-193 - Feature Request: Add meta tag to enable use of Chrome Frame in IE 2012-08-23 10:49:50 -01:00
leekelleher 0c57e0e6eb Updated my web.config transforms for Medium Trust support 2012-08-23 10:49:19 -01:00
Hartvig@UMBRACOTESLA ace18acd7e Missing web.config.templates and a missing stylesheet for the codemirror 2012-08-22 19:01:14 -02:00
Casey Neehouse b91fa1a8f2 Fixes Issue U4-387 - HasPendingChanges method was added and the comparison was
converted from rounded seconds into milliseconds.  So effectively time was set
from 1.5 seconds lapse to .5 seconds lapse. Change to 2 seconds lapse.

May still occur on slow db connections or rather large document types.
//original code commented in the Tree:
Math.Round(new TimeSpan(dd.UpdateDate.Ticks - dd.VersionDate.Ticks).TotalSeconds, 0) > 1
2012-08-22 18:46:55 +04:00
PerPloug 7a84761810 Fixes build errror because method GetPropertyTypes() has been replaced with
GetAll() - this is a breaking change who the F* changed that?
2012-08-22 12:02:28 -02:00
PerPloug 18200aa997 Flet 2012-08-22 12:00:04 -02:00
PerPloug bd0ebeb092 Dublicate files in Umbraco.Web.UI 2012-08-22 11:59:42 -02:00
PerPloug 358610655b Changes to javascript and css editors 2012-08-22 11:58:32 -02:00
PerPloug fa3f79c0e4 Changes to Pythin (cshtml) xslt and template editors 2012-08-22 11:55:57 -02:00
PerPloug d25fae730d Custom umbraco code area wrapper changes around codemirror 2 2012-08-22 11:55:19 -02:00
PerPloug 5b150c74ac Codemirror 2 core files 2012-08-22 11:54:40 -02:00
PerPloug 83fcdcfd86 CodeArea Control to support Codemirror 2 options 2012-08-22 11:53:57 -02:00
hartvig bd058d649a Fixes U4-673 2012-08-22 11:05:25 -02:00
hartvig ec638b9c3e Fixes U4-672 2012-08-22 10:20:59 -02:00
Matt@MBP13-PC 7b4bf6e502 Fixed issue with file uploader not working in IE
Fixed issue with folder browser response getting cached
2012-08-22 07:03:50 -01:00
Shannon Deminick d7f8214d24 Got extension methods working for DynamicDocument. Exposes some new APIs publicly because they need to work with type finding and med trust, plus we need to expose these for MVC 2012-08-22 08:33:19 +06:00
Shannon Deminick 22c0350a4a Have deprecated more of the dynamic class in the macroEngines project to proxy to the
classes in the Umbraco.Core project.
2012-08-22 07:47:21 +06:00
Shannon Deminick 3222d39808 Moved all classes for legacy DynamicNode into seperate files so we can easily identify what is there and
obsolete them properly.
2012-08-22 07:08:05 +06:00
Shannon Deminick 33c339a724 Moved all classes for legacy DynamicNode into seperate files so we can easily identify what is there and
obsolete them properly.
2012-08-22 07:07:52 +06:00
Shannon Deminick e9c793cede Fixed difficult merge 2012-08-22 05:57:34 +06:00
Shannon Deminick 1cbd355a2a Merge with 4.9.0 2012-08-22 05:38:45 +06:00
Shannon Deminick bee73cce12 Changed IApplicationEvents to IApplicationEventHandler.
Removed all reflection calls to BindingFlags.NonPublic which was mostly used by DynamicNode, this will
not work in medium trust.
2012-08-22 05:21:02 +06:00
Matt@MBP13-PC f5d258b42d Added thumbnail size selector to folder browser 2012-08-21 08:59:10 -01:00
Matt@MBP13-PC c1278674c3 Added throbber to library to show progress whilst loading media items 2012-08-21 08:17:07 -01:00
Matt@MBP13-PC 605e66c159 Fixed issue with Media factories saving relative file path rather than URL
Added styling to file uploader to show errored and canceled uploads including tooltip message
2012-08-21 07:53:07 -01:00
Matt@MBP13-PC b86bbb0e82 Tweaked some file uploader styles 2012-08-21 07:06:07 -01:00
Matt@MBP13-PC 930dd74edb Merge 2012-08-21 06:54:52 -01:00
Matt@MBP13-PC d30b5b0b2c Updatedt TinyMCEWebControl.cs to use IFileSystem 2012-08-21 06:42:01 -01:00
leekelleher 8e785cc215 Resolved U4-385 Hard Coded word "Packages".
The tree alias was called "packager" instead of "packages".
(Will update the GitHub Localization project too!)
2012-08-20 21:16:27 -01:00
Matt@MBP13-PC efe0970245 Updated UmbracoMetaWeblogAPI.cs to use IFileSystem 2012-08-20 13:55:51 -01:00
Matt@MBP13-PC 15264d36f0 Removed unused method from TinyMCEWebControl 2012-08-20 12:37:30 -01:00
Matt@MBP13-PC 298e06974e Updated mediaService to use IFileSystem 2012-08-20 12:36:56 -01:00
Matt@MBP13-PC 91acf40b3b Updatedt tinyMCEImageHelper to use IFileSystem when creating scaled images 2012-08-20 11:56:16 -01:00
Matt@MBP13-PC 085f4a4fcf Updated Document code to use IFileSystem when copying
Added some helper extention methods for IFileSystem
2012-08-20 11:42:18 -01:00
Matt@MBP13-PC 3e2510cbda Added code to auto seek stream to begining when saving via IFileSystem just in case 2012-08-20 10:51:14 -01:00
Matt@MBP13-PC 2775d9bedc Removed AbstractFileSystem in favour of extension methods
Updated UmbracoFile to use IFileSystem
Updated UmbracoMediaFactories to use IFileSystem
2012-08-20 10:46:32 -01:00
Matt@MBP13-PC 7afbc8e7bf Merge 2012-08-20 09:43:19 -01:00
Matt@MBP13-PC 3a2ed918de Added dynamic wrapper support to IFileSystem to allow context specific implementations from which to hang extension methods upon (ie IMediaFileSystem) 2012-08-20 09:42:32 -01:00
Matt@MBP13-PC 847b3523a8 Made folder browser filtering client side 2012-08-20 09:41:28 -01:00
Shannon Deminick 72ac3532d2 Updated DynamicDocument to be much more readable and allows for inheriting the structure so we can potentially use it
in DynamicNode (to be inherited from)
2012-08-20 11:22:45 +06:00
Shannon Deminick e24e3af955 Added DynamicDocument tests for getting a converted value for a custom PropertyEditorValueConverter, updated
DynamicDocument with performance enhancements, should perform much quicker for multiple requests for the same property now.
2012-08-20 09:11:14 +06:00
Casey Neehouse 3180b5c5b6 Additional RenderTemplate modification to reset context in error situations. 2012-08-19 11:25:44 +04:00
Casey Neehouse 480f73dba7 Corrections to RenderTemlate(pageId) method to reset context and remove
altTemplate from the rendering page.
2012-08-19 09:26:13 +04:00
Shannon Deminick 56a13c5e0c Created new IPropertyEditorValueConverter for use with DynamicDocument so we don't have to rely on
any more xml configuration sections to created and add value 'mappers' / converters. This saves on tons
of code and makes it really easy for devs to handle their own conversions for use with dynamic node.
2012-08-18 11:39:18 +06:00
Shannon Deminick 7175860ae0 Added tests for dynamic node to select children based on the child doc type names including pluralized names and added
support for checking with case insensitivity. Example. CurrentPage.NewsItems where NewsItem is a child doc type alias.
Found one reason why the old dynamic node has performance issues and have added a note, just need to do more reseearch to
make sure my findings are correct.
Changed over all of the new DynamicNode classes to be DynamicDocument instead.
2012-08-18 11:03:30 +06:00
Shannon Deminick 9177257952 Fixed/Cleaned up new dynamic node, added more support for member properties such as propertyId and added much better
support for camel case vs pascal case names. Also added support for returning the strongly typed value for reflected properties.
Also added support for handling "@" prefixed property names when using GetProperty("@Id") or similar.
Added unit tests for all of the above and other dynamic node methods.
2012-08-17 14:02:29 +06:00
Shannon Deminick 3da387591d Deprecated many of the classes for Dynamics in the macro engines project and proxied these calls
to the superceded classes.
2012-08-17 06:22:51 +06:00
Shannon Deminick 5213d6de5c renamed IContentStore to IPublishedContentStore. Migrating DynamicNode to Umbraco.Core and cleaning up it's supported codebase.
Starting writing a few unit tests for the new DynamicNode codebase. Will of course leave the original DynamicNode stuff in its
current place for backwards compatibility but will deprecate many of the classes which will call the new ones.
2012-08-17 04:27:47 +06:00
Matt@MBP13-PC bd5182792e Added double click to edit support 2012-08-16 10:31:00 -01:00
Matt@MBP13-PC b057b6d68a Implemented media sorting 2012-08-16 10:03:37 -01:00
Matt@MBP13-PC 0bc1234a4e Fixes issue with missing master pages
Re-added missing build script
2012-08-16 07:06:46 -01:00
Casey Neehouse 8b76f2a893 Added hostname to title on login.aspx for support purposes. 2012-08-16 02:27:08 +04:00
Casey Neehouse 943e53f655 Adding config template. 2012-08-16 01:15:54 +04:00
Shannon Deminick 9846d6dc4d Merge with 4.9.0 2012-08-15 23:21:12 +06:00
Shannon Deminick 4e9f9b77f4 Created CultureDictionaryFactoryResolver for use in the new MVC views which returns a ICultureDictionary.
This allows us in the future to use any type of data source for the dictionary. Have obsoleted the old
ICultureDictionary in the macro engines project (where it doesn't belong anyways). The new one doesn't expose
the 'Language' property to the front-end because this is a business logic class which means designers can just delete
a whole language from the db by calling 'Delete' on the object !
2012-08-15 23:20:37 +06:00
Shannon Deminick 91e9392992 Re-removed umbraco version header after bad merge and removed from new routing module.
Started addding new ICultureDictionary since this cannot belong in the macros project.
2012-08-15 21:21:31 +06:00
hartvig 6093e4ff5e Adds CDT property to ContentType class 2012-08-15 09:07:28 -02:00
Shannon Deminick 2f4a18087d Fixes issue with trailing slashes and reserved urls 2012-08-15 01:23:57 +06:00
Shannon Deminick f52ae8c46b Adds unit tests for LookupByNiceUrlAndTemplate and fixes issues for when paths contain .aspx 2012-08-15 01:01:21 +06:00
Shannon Deminick ce53f400a8 Re-instated the build script... this got deleted during a bad merge!
Fixed the UI proj file with the correct attributes for the FileSystemProviders.config
2012-08-15 00:22:42 +06:00
Shannon Deminick b9b24990b6 Merge with 4.9.0 2012-08-15 00:08:38 +06:00
Shannon Deminick b596b3584e Added lookup by id tests. 2012-08-14 23:56:23 +06:00
Shannon Deminick 05f8778e40 Adds another unit test for the RenderRouteHandler 2012-08-14 23:42:44 +06:00
Shannon Deminick ed4de4465f Added RenderRouteHandlerTests 2012-08-14 23:35:34 +06:00
Matt@MBP13-PC 766a834f53 Updated the Image thumbnail provider to use IFileSystem 2012-08-14 12:24:51 -01:00
Matt@MBP13-PC 546b53f9b0 Merge 2012-08-14 09:12:36 -01:00
Matt@MBP13-PC e2274b7892 Hooked up IFileSystem to the file uploader / IFile 2012-08-14 09:11:49 -01:00
hartvig c11bc9559c Implements U4-165 2012-08-14 07:45:47 -02:00
sebastiaan a581dc18c8 Merge with 4.8.1 (2nd) 2012-08-14 07:21:18 -02:00
sebastiaan cff0d9dfbf Closing branch. 2012-08-14 07:15:32 -02:00
sebastiaan b8f7ea50f7 Added tag Release-4.8.1 for changeset 8f8a20385788 2012-08-14 07:06:26 -02:00
pgregorynz 13558b77dc Type in code comment fixed. 2012-08-13 20:39:17 -10:00
pgregorynz d15cc4308a Fix issue with being able to move content outside media root when media root set
for user.
2012-08-13 20:33:34 -10:00
Shannon Deminick d95b688a7f Adds new IUmbracoEvents: #U4-164 2012-08-14 12:03:34 +06:00
leekelleher d329123cda U4-163 Picker Relations - reincluded data-type; previous fixes for U4-162 resolved issues. 2012-08-13 23:02:17 -01:00
leekelleher aceb5b0203 U4-162 Relation Types - Resolves MySQL issues; re-enabled Tree attribute.
Changed umbraco.DataLayer project to use .NET 4.0, (was previously using 3.5), reason being that we could use Guid.Parse.
Also resolves workitem:30434 - Error when copying node and keeping relation between original and copy.
2012-08-13 22:45:01 -01:00
Matt@MBP13-PC 524244d1ec Added FileSystemProviders config section
Added FileSystemProviderManager class for fetching a file system provider by alias (this should probably be moved into the Umbraco context in 4.10)
2012-08-13 13:26:06 -01:00
Matt@MBP13-PC ad291265f3 Added PhysicalFileSystem constructor overload to work out the rootPath / rootUrl from a virtualRoot path (Can only work with a valid HttpContext) 2012-08-13 10:23:45 -01:00
Matt@MBP13-PC d2ac9158c6 Added IFileSystem
Fixed issue with last merge
2012-08-13 10:04:31 -01:00
sebastiaan 26671a405c Refactor cookies SetValue to use just ONE method to set the value and expiration. Prevents us from forgetting to update the duplicate code. 2012-08-13 08:18:52 -02:00
Matt@MBP13-PC f6e59e0264 Merge with 4.8.1 (2nd) 2012-08-13 06:38:43 -01:00
Matt@MBP13-PC 8afa6298e0 Merge with 4.8.1 (2nd) 2012-08-13 06:24:52 -01:00
sebastiaan a79d11aad7 Fix for workitem 30993 - When RTE context menu is disabled, the RTE fails to show 2012-08-11 05:55:26 -02:00
shannon@ShandemVaio f6436d2eee Added unit tests for LookupByAlias which are now all passing. 2012-08-10 23:46:09 +06:00
shannon@ShandemVaio 813fcf5903 Fixed up minor issues with content store changes, web site is now rendering with new IDocument engine. 2012-08-10 13:55:22 +06:00
shannon@ShandemVaio c522ad6e30 Created an ContentStoreResolver so we can specify a custom ContentStore which means we can return a custom
IDocument. This now means we've opened up the possibility of an abstracted routing lookup system to map to a Document
stored anywhere. By default this is obviously Xml but could theoretically be anything, still internal until more review
of the API is done.
2012-08-10 13:38:02 +06:00
shannon@ShandemVaio a858712bcc Change namespace from Umbraco.Web.Model to Umbraco.Web.Models 2012-08-10 13:19:25 +06:00
shannon@ShandemVaio e131011667 Rename namespace from Umbraco.Core.Resolving to Umbraco.Core.ObjectResolution 2012-08-10 13:18:13 +06:00
shannon@ShandemVaio 3415554142 Moves types into matching files. 2012-08-10 13:11:37 +06:00
shannon@ShandemVaio 61c4a9e68d Created IDocument and IDocumentProperty to one day replace INode since it doesn't contain enough information
and is poorly formatted, this now allows us to properly abstract an IDocument using the new IContentStore which now
returns IDocument instead of XmlNode so we now have an abstraction away from Xml for routing.
2012-08-10 13:08:47 +06:00
sebastiaan c4214a7ee9 The version header is no longer needed and a potential attack vector. Has now been removed - Work item: 30989 2012-08-09 14:04:49 -02:00
hartvig 3acfb2a9ea Updates to login cookies 2012-08-09 11:15:55 -02:00
hartvig bb4f4822d4 Fixes issue with images with a filename that has dimensions appended (ie. myimage_300x200.jpg) inserted into tinyMCE.
Work items: 30864
2012-08-09 10:27:34 -02:00
hartvig 9531a3f37a Updates to login cookies 2012-08-09 10:06:10 -02:00
hartvig 28722be34c Fixes issue with automatic image resizing in tinyMCE. Work items: 30963 2012-08-09 07:28:55 -02:00
hartvig 324c5474f2 Merge 2012-08-09 06:48:10 -02:00
hartvig 39d0f95c2e Fixes null exception issue when using 'umbracoFile' as the alias of an upload property. Work items: 30980 2012-08-09 06:41:30 -02:00
shannon@ShandemVaio 7280dbc66e Finished LookupByNiceUrl unit tests, all passing. 2012-08-09 11:22:34 +06:00
shannon@ShandemVaio 67e921f862 Added check to UriUtility to check for default.aspx since this path will show up for pre-IIS7 websites, added
unit tests for UriUtility, updated UmbracoModule to use the UmbracoUrl to pass to the document request.
Added more unit tests for LookupByNiceUrl.
2012-08-09 11:08:24 +06:00
shannon@ShandemVaio e75aebc4fd Fixed up an issue with the ContentStore, added more unit tests to prove the fix is correct, added more unit tests
for the LookupByNiceUrl IDocumentLookup which all pass.
2012-08-09 07:41:13 +06:00
shannon@ShandemVaio 2e5db72a09 Updated DocumentRequest so that it doesn't actually do the searching, it acts more like a model.
The DocumentSearcher now performs the searching and sets the properties on the DocumentRequest, this
simplifies the dependencies between the contexts. Updated the LookupByNiceUrlTests unit test, now all
initialization is working and the test runs which will be the basis for testing all of the IDocumentLookups.
2012-08-09 04:15:35 +06:00
shannon@ShandemVaio 739de3ef78 Started writing tests for all DocumentLookups as these all require many tests including tests for
routes when using IIS 7 and pre-IIS 7 platforms.
2012-08-08 23:55:55 +06:00
shannon@ShandemVaio 626b9ceefa Updated Web.UI project to support MVC and VS MVC dialogs.
Updated RenderViewPage to include UmbracoContext and DocumentRequest.
2012-08-08 23:37:54 +06:00
shannon@ShandemVaio 4111298b00 Got routing working properly with MVC and our HttpModule 2012-08-08 23:10:34 +06:00
sebastiaan a47fd08ae5 Merge 2012-08-08 11:40:31 -02:00
Matt@MBP13-PC cd56882845 Media grid now refreshes after uploads have completed 2012-08-08 12:09:22 -01:00
Matt@MBP13-PC 37ddb9223f Added friendly name support to DMU webservice to allow uploaded files to set the media items friendly name 2012-08-08 11:54:52 -01:00
Matt@MBP13-PC 44a15900c7 Removed upload method from FolderBrowserService as re-using the DMU web service instead 2012-08-08 09:26:25 -01:00
Matt@MBP13-PC ccd56f5594 Hooked up support for overwriting
Made DMU web service check for logged in user if no credentials are passed in
2012-08-08 09:08:09 -01:00
Matt@MBP13-PC a989ea77ff Switched DMU web service to support XML and JSON so can be used by media dashboard aswell
Added dmu.ashx file in old plugin folder to add backwards compatability
2012-08-08 08:37:07 -01:00
pgregorynz 493e5c7734 Resolve issue #30937. Fixes problem with iFileHanderData in intranet environ
in IE.
2012-08-07 18:20:59 -10:00
Casey Neehouse f97c171a97 Changes to the GetDocumentsForExpiration method to only unpublish nodes set to published rather than newest. 2012-08-08 00:07:03 +04:00
Casey Neehouse c104121ff1 Inserting additional tracing to RazorMacroEngine Execute methods. 2012-08-07 22:42:40 +04:00
shannon@ShandemVaio 9e611ba8f4 Updated new GlobalSettings version 2012-08-07 21:42:11 +06:00
shannon@ShandemVaio 6f8b016728 Merge with 4.9.0 2012-08-07 21:41:24 +06:00
shannon@ShandemVaio d92d309c61 Added initial MVC supporting files and updated some unit tests. 2012-08-07 21:40:34 +06:00
Matt@MBP13-PC 872ef1fadc Added Multi-file delete support to media grid
Added file name change support to multi-file uploader
2012-08-07 09:30:11 -01:00
Matt@MBP13-PC 9b8d40ee2d Fixed broken noNodes page 2012-08-07 07:53:19 -01:00
shannon@ShandemVaio d9eb8b426c Added TODO notes for NiceUrlProvider to fix an issue for Stephan. 2012-08-07 04:55:27 +06:00
shannon@ShandemVaio ef0d7821eb Fixes default url cache to use concurrentdictionary instead of custom locks as this was causing errors.
Updated the references between context objects since a DocumentRequest should only be set when rendering
a front-end doc, not in the back office.
Fixes the LookupByNiceUrl to work with non directory paths.
Fixes the UmbracoContext.ClientUrl to work properly.
2012-08-07 03:54:47 +06:00
shannon@ShandemVaio b68bcba85e Updated UmbracoModule to support the TransferRequest just like umbraMVCo does using query strings. Added more
unit tests for UmbracoModule, refactored the Umbraco.Web.Routing.Domains to not have static methods and created an
interface for it so that we can unit test it. Changed DocumentRequest stuff to internal. Finally got unit test working for the module
2012-08-07 02:33:08 +06:00
shannon@ShandemVaio fbf94bbf01 Fixed module with client side perf check, added unit test 2012-08-06 23:04:08 +06:00
shannon@ShandemVaio 19205f1435 Improves perf of UmbracoModule rendering, adds unit test for UmbracoModule, fixes StateHelper with HttpContext.Current,
Fixes Action with empty JsSource, Fixes GlobalSettings to be unit testable, adds medium trust config
section to my own transform.
2012-08-06 22:40:06 +06:00
Matt@MBP13-PC 1e271455e8 Added multi select / drag to re-order support 2012-08-06 10:57:41 -01:00
Matt@MBP13-PC 1ad7abcd69 Incremented global version number 2012-08-06 07:47:53 -01:00
Matt@MBP13-PC 7a93c108fb Merge with 4.8.1 (2nd) 2012-08-06 07:20:46 -01:00
sebastiaan c8ac04228e Workitem: 30933 - Missing language packs breaks TinyMCE (4.8) --> Language packs re-included 2012-08-04 17:32:21 -02:00
shannon@ShandemVaio 11a6b2a31f Changed ThumbnailProviderManager to ThumbnailProvidersResolver and initializes it in WebBootManager 2012-08-04 06:20:06 +06:00
shannon@ShandemVaio 58dec4774d Merge with 4.9.0 2012-08-04 06:12:02 +06:00
shannon@ShandemVaio 7235141f02 missing readme file content 2012-08-04 06:10:12 +06:00
shannon@ShandemVaio 32bef227b7 Added App_Code assembly loading to new type finder, had to recompile log4net to support medium trust.
Updated TypeFinder and assembly info to support medium trust.
2012-08-04 06:07:29 +06:00
Matt@MBP13-PC 29ec45d9e2 Updated version check code to use direct SQL statements for more flexibility. In doing so, also fixed work item 30972. 2012-08-03 08:40:00 -01:00
sebastiaan 082378815f Fixes issue 30965 - Pipe character in URL causes YSOD 2012-08-02 16:39:15 -02:00
sebastiaan f8bdb42a63 Fixes issue 30905 - Checkbox "Include unpublished child pages" for Dutch Language doesn't work 2012-08-02 16:34:05 -02:00
Matt@MBP13-PC c5adb6a2e1 Updated field value check to surround value with quotes 2012-08-02 14:58:39 -01:00
Matt@MBP13-PC 2a55868846 Changed the DB Installer scripts to check a different constraint (the one that causes the main problems) 2012-08-02 14:38:48 -01:00
Matt@MBP13-PC 90fffd3216 Updated version number in global settings 2012-08-02 14:09:41 -01:00
Matt@MBP13-PC f6beeab813 Added fixed SQL CE Upgrade script 2012-08-02 13:55:45 -01:00
Matt@MBP13-PC 3fe9a63957 Added fix to database installers to make sure they run the upgrade scripts. 2012-08-02 09:51:06 -01:00
Matt@MBP13-PC e43d4e4081 Opened up a new 4.8.1 branch as the first one was from the wrong point (I didn't realize a bunch of pull requests had been pulled in) 2012-08-02 13:51:47 -01:00
Matt@MBP13-PC 86be51f7ce Added missing files 2012-08-02 09:31:35 -01:00
Michael Wulff Nielsen 5e720ec965 Fixed GetNodeIdByPathLevel regression from uComponents 2012-08-02 07:27:31 -02:00
Michael Wulff Nielsen 7a274bf429 Fixed GetNodeIdByPathLevel regression from uComponents 2012-08-02 07:26:21 -02:00
Michael Wulff Nielsen 11cf53d3ba Fixed GetNodeIdByPathLevel regression from uComponents 2012-08-02 07:24:18 -02:00
shannon@ShandemVaio a539fd2554 Fixes DataTypesResolver namespace 2012-08-01 23:53:19 +06:00
shannon@ShandemVaio 8a192a0065 Renamed TypeFinder2 to Umbraco.Core.TypeFinder. Obsoleted old TypeFinder and cleaned up non-used methods
in the new TypeFinder. Updated some unit tests and removed benchmark tests since we already have the benchmarks.
2012-08-01 23:50:33 +06:00
shannon@ShandemVaio 923f4f517f Created ActionsResolver for creating IActions and updated Action class to use this now. Still needs
a bit of cleanup, see TODO notes in Action.cs
2012-08-01 23:30:37 +06:00
shannon@ShandemVaio d644b44d80 Created PackageActionsResolver object to deal with IPackageAction plugins. 2012-08-01 23:03:26 +06:00
shannon@ShandemVaio 2115146fdb Removed old MacroControlFactory - marked as internal FTW ! moved it to new MacroFieldEditorsResolver
using the new framework. Also moved PersistableMacroProperty to new assembly (it was also marked as internal).
Updated unit tests to work with Resolution and resetting resolvers.
2012-08-01 22:46:13 +06:00
shannon@ShandemVaio 646e96ab15 Changed PluginResolverType to PluginManager. Reinstated Resolution and ResolverBase<T> since
this gives us more control over all Resolvers and streamlines them. Created IBootManager, CoreBootManager and WebBootManager
to handle the application initialization including the creation of Resolvers. This means that if people are using the dlls outside
of the web app, they can run the boot strappers to initialize everything.
2012-08-01 22:06:15 +06:00
Matt@MBP13-PC 4049a77332 Made ThumbnailProviders internal for the time being. We'll make them public in 4.10 as this has a new / consistant way of loading plugins. 2012-08-01 08:37:18 -01:00
Matt@MBP13-PC cabe37014b Moved IThumbnailProvider interface to root of Umbraco.Core assembly 2012-08-01 08:13:45 -01:00
Matt@MBP13-PC 20fada8fd4 Converted ThumbnailProviderManager to singleton and made internal 2012-08-01 08:11:48 -01:00
shannon@ShandemVaio dff3905e85 Converted over ThumbnailProviderManager to ThumbnailProvidersResolver using the new apis. 2012-08-01 11:24:39 +06:00
shannon@ShandemVaio c2ee1e63bb Added unit tests for ManyObjectResolverBase for the different lifetime scope of instantiated objects. 2012-08-01 10:48:19 +06:00
shannon@ShandemVaio d4806895a9 Had to remove the Resolution freezing idea because we are lazily instantiating the singleton instances, otherwise
we have to instantiate them all on startup which means that all type searching happens on startup and not lazily which
is bad for performance. I don't think its a big deal that we're not freezing these objects, MVC doesn't freeze its singletons
and nobody seems to have a problem with it, people will just know not to modify these items after startup.
2012-08-01 10:15:39 +06:00
shannon@ShandemVaio bee357ffdc Obsoletes umbraco.cms.businesslogic.datatype.controls.Factory with new Umbraco.Core.DataTypesResolver 2012-08-01 10:05:39 +06:00
shannon@ShandemVaio a0a99e8f12 Obsoletes umbraco.presentation.cache with new Umbraco.Core.CacheRefreshersResolver
Have removed ResolverBase as we cannot rely on manually setting the current singleton object since applications outside of the standard umbraco web application
might be using these singletons and would expect they already be setup. Have changed all current resolvers to manage their
own singleton instances and sealed them.
2012-08-01 09:49:10 +06:00
shannon@ShandemVaio 4368c8a015 Merge with 4.8.0 2012-08-01 07:04:30 +06:00
shannon@ShandemVaio ddc2619511 Merge with 4.9.0 2012-08-01 06:31:28 +06:00
Matt@MBP13-PC 69b3645e9c Added Edit / Download context menu support for media library 2012-07-31 13:31:31 -01:00
Matt@MBP13-PC 4e1e7fe657 Added context menu to media grid
Restructured folderBrowser js class to be less clutered
2012-07-31 12:56:51 -01:00
Matt@MBP13-PC 2481a8df98 Updated fileUploader to use face uploader progress bar when uploading using iFrames. 2012-07-31 08:15:42 -01:00
shannon@ShandemVaio 76c99d3f47 Changed TypeFinder2 to be a static object as there's no reason to have it as an instance.
Still need to integrate the app_code stuff into the new one and then merge the old/new
2012-07-31 03:24:33 +06:00
shannon@ShandemVaio 2fd8d17be9 Changed Action over to use PluginTypeResolver to find IActions and added unit test for it. 2012-07-31 03:14:24 +06:00
shannon@ShandemVaio 5b8057f063 Updated cache refresher factory to use PluginTypeResolver and added unit tests to show that it
resolves the objects, fixes up the GetAll() call since I'm not sure if that actually ever worked.
2012-07-31 03:08:46 +06:00
shannon@ShandemVaio c9a4b708aa Fixes TreeDefinitionCollection to lazily load/find the trees 2012-07-31 02:45:18 +06:00
shannon@ShandemVaio 2537925350 Fixed up unit tests, enables logging for unit tests 2012-07-31 02:34:57 +06:00
shannon@ShandemVaio 5a3534bc52 Upgraded macr to use PluginTypeResolver to resolve XsltExtensions and added unit tests
to support finding these types.
2012-07-31 02:16:29 +06:00
shannon@ShandemVaio 5da0445c32 Updated TreeDefinitionCollection to use PluginTypeResolver and fixed its code to be thread safe.
Updated restExtensions to use PluginTypeResolver and added unit test for resolving these types.
Updated TypeFinder2 with a slight perf increase.
2012-07-31 01:56:03 +06:00
shannon@ShandemVaio 352d817fc1 Updates DynamicNode to use PluginTypeResolver, fixees DynamicNode RazorDataTypeModelTypes resolution
to be thread safe. Removes unused classes (we can put them back if we need them later)
2012-07-31 01:06:10 +06:00
shannon@ShandemVaio e55e688dc7 Added unit test for ContentStore, added object extensions and supporting classes from v5,
added RhinoMocks to the test project and httpcontext factory from v5 unit tests to be used
in our v4 ones.
2012-07-31 00:02:27 +06:00
shannon@ShandemVaio ec22d985ef Updated all lookups to use new logging system. Updated lookups resolvers to use ManyObjectResolverBase
and are just adding the known resolvers on app startup and commented out the other resolver stuff for now.
Fixed up xpath statement for resolving the first document, site now renders :)
2012-07-30 22:52:59 +06:00
Matt@MBP13-PC 3b6508e534 Merge 2012-07-30 10:23:01 -01:00
Matt@MBP13-PC 60ec172d37 Tweak to file uploader so that if the upload is complete, it just removes the UI item 2012-07-30 10:22:35 -01:00
shannon@ShandemVaio 95451e99a7 Reinstating persisting of xml cache file in new module. 2012-07-29 00:04:11 +06:00
shannon@ShandemVaio 1aa70c4bb8 Reinstated temporary new settings in the UmbracoModule and have changed UmbracoModule to reference
the new Umbraco.Core.Configuration settings instead of the legacy ones.
2012-07-28 23:53:07 +06:00
shannon@ShandemVaio 750f5b18d3 Changed the UmbracoModule to use new logging system and updated the log4net config (not release config) to
enable Debug calls.
2012-07-28 23:40:48 +06:00
shannon@ShandemVaio b7cea05f18 Added unit test for custom log file appender, integrated a few more classes from v5 for tracing,
added initial trace logging to application startup which works. Changed the application startup handler
to use new logging, now the system won't bork if the sql db isn't initialized.
2012-07-28 23:08:02 +06:00
azzlack b226be4939 Split AbstractDataEditorControl to separate class file.
Cleaned up code in AbstractDataEditor and AbstractDataEditorControl.
Made AbstractDataEditorControl inherit from INamingContainer to help with control id issues.
Made the ID and DataTypeName fields of AbstractDataEditor abstract so they must be implemented.
2012-07-27 21:34:58 -02:00
azzlack 16127a378a Fixed uQuery GetDictionaryItem method so it doesnt throw exception if the requested item does not exist, and returns fallback string instead. 2012-07-27 21:04:23 -02:00
shannon@ShandemVaio b09422ed5e Added Log4Net and supporting classes from v5 in order to start integration of new diagnostic logging system. 2012-07-28 01:28:39 +06:00
shannon@ShandemVaio b186d5f8e4 Migrated UmbracoSettings and GlobalSettings along with other supporting classes to Umbraco.Core.
Everything is still marked as internal until such time we can clean everything up.
2012-07-28 00:13:06 +06:00
sgay c4d578442b merge 2012-07-27 14:08:00 -02:00
sgay 83f76ed4a4 cosmetic & doc 2012-07-27 14:06:41 -02:00
sitereactor 6870ea3ff5 Closed branch 4.8.0 2012-07-27 07:06:28 -02:00
sgay 74dd444506 merge 2012-07-27 04:48:53 -02:00
shannon@ShandemVaio 573c5a3387 Updated MacroControlFactory to use PluginTypeResolver and added unit test to ensure it finds the types. 2012-07-27 12:45:56 +06:00
sgay 872fb9d8f3 fix previous commit 2012-07-27 04:39:43 -02:00
shannon@ShandemVaio da0217d330 Updated PackageAction to use PluginTypeResolver and added unit test to ensure they are found. 2012-07-27 12:29:41 +06:00
shannon@ShandemVaio 507b6ab773 Updated MediaFactory to use PluginTypeResolver and added a unit test to ensure they are being found. 2012-07-27 12:23:22 +06:00
shannon@ShandemVaio 960dd52750 Created MacroEngineFactory tests, updated DataTypeFactory tests. 2012-07-27 12:14:27 +06:00
shannon@ShandemVaio 5576f65ef0 Updated DataType factory to use PluginTypeResolver and made the dictionary thread safe.
Updated MacroEngineFactory to use PluginTypeResolver and made it thread safe. Have also
updated it to only create one instance of each IMacroEngine per application which should
increase performance a teeny bit, plus that's how it should be.
2012-07-27 11:54:29 +06:00
shannon@ShandemVaio 1823cce4f6 Changed over Action to use PluginTypeResolver to find and instantiate IActionHandlers and included a unit test. 2012-07-27 10:53:40 +06:00
shannon@ShandemVaio 09a68f9376 Updated ApplicationTreeRegistrar to use PluginTypeResolver, created unit tests for resolving trees/applications 2012-07-27 10:37:12 +06:00
agrath fffbd960c1 Another NRE that I missed 2012-07-26 16:05:44 -12:00
agrath 1700516148 Another NRE that I missed 2012-07-26 16:05:44 -12:00
agrath 3654070f2e Merge 2012-07-26 15:47:50 -12:00
agrath 5f95575141 Fixed a NRE in FileHandlerData when user has not updated umbracoSettings.config to add the new /settings/content/imaging/autoFillImageProperties node 2012-07-26 15:36:34 -12:00
agrath a3b091758c Fixed a NRE in FileHandlerData when user has not updated umbracoSettings.config to add the new /settings/content/imaging/autoFillImageProperties node 2012-07-26 15:36:34 -12:00
shannon@ShandemVaio 58fbe9f4ab Added new TypeFinder methods for resolving types with attributes. Updated the PluginResolver to resolve IApplication 2012-07-27 06:24:57 +06:00
shannon@ShandemVaio 92f983a569 Removed Freezing event as we won't need it 2012-07-27 06:02:41 +06:00
shannon@ShandemVaio 8082abc27a Added MultipleResolverBase 2012-07-27 05:52:01 +06:00
shannon@ShandemVaio 373fdd324b Fixes up ResolverBase and it's static lock object which isn't actually required because
our singleton is a getter/setter and field access is thread safe. Updated SingleResolverBase
to ensure that TResolved is a class so the null check works properly.
2012-07-27 05:25:26 +06:00
shannon@ShandemVaio dbe43a0918 Updated the PluginTypeResolver to have a generic way of instantiating the plugin types it has
already found. Have added some notes to some classes that need to be fixed up. Removed the PluginTypeResolver
from the ApplicationContext since it is a utility and isn't exposing application objects.
2012-07-27 01:01:34 +06:00
shannon@ShandemVaio a6b9aca45a Changed PluginResolver to PluginTypeResolver, created new base method to do the resolution and caching,
Updated ApplicationStartupHandler to use it and to not register on the static method, the real method is now
used and is called on app startup (much cleaner). Added tests for PluginTypeResolver. Added events to
UmbracoApplication and virtual methods for developers to override.
2012-07-27 00:40:00 +06:00
shannon@ShandemVaio 1731ad45f5 Had to manually merge some stuff and fix up some class names/locations. I think some files
and changes had not been committed properly.
Fixed up some resolver classes to ensure the generic type is a class so == null works properly.
Changed to internal until we decide to expose.
2012-07-26 23:05:51 +06:00
shannon@ShandemVaio 32e8a1a5dc Merge 2012-07-26 22:53:58 +06:00
shannon@ShandemVaio 466d871ede Fixes Umbraco.Web reference in editorControls project 2012-07-26 22:34:56 +06:00
shannon@ShandemVaio 25037ed9c8 Fixes Umbraco.Web reference in editorControls project 2012-07-26 22:31:41 +06:00
sgay 53f6577b32 write xml doc 2012-07-26 14:21:47 -02:00
shannon@ShandemVaio a78b5f50dd Merge with 4.9.0 2012-07-26 22:19:52 +06:00
shannon@ShandemVaio 15c5b5de57 Moved type helper methods from TypeFinder2 to TypeHelper. Created SystemUtilities for detecting
app trust levels. Updated all calls to TypeFinder to TypeFinder2 and updated tests.
2012-07-26 22:19:08 +06:00
shannon@ShandemVaio 62d6db935d Integrating v5 TypeFinder. Imported a few classes from v5 regarding utility classes and partial trust
unit test helper classes. Changed calls from old TypeFinder to new TypeFinder2. Created benchmark unit
tests to test speed differences between them.
Fixes: 30946 - IOHelper with HttpContext issue
Fixes: 30945 - AppCodeFileExtensions issue with UmbracoSettings
2012-07-26 21:12:54 +06:00
sgay fec2e0eb6e rename routing 'resolvers' to 'lookups' 2012-07-26 12:56:41 -02:00
leekelleher 0eefbdc610 uQuery: Random never takes last element (applied from uComponents changeset 018bd63444b6) 2012-07-26 12:12:38 -01:00
Matt@MBP13-PC fe87f6b89f Added js file uploader code
Can now drag and drop files in, and trigger upload sequence.
2012-07-26 12:11:42 -01:00
sgay a08c698c77 merge 2012-07-26 07:54:36 -02:00
sgay 6b4fff176a refactor resolution of components 2012-07-26 07:52:13 -02:00
Sebastiaan Janssen 908e8b40a2 Merge 2012-07-25 12:45:45 -02:00
Sebastiaan Janssen 514326adfe Merge with 4.8.0 2012-07-25 07:35:15 -02:00
Matt@MBP13-PC ef0f8b5282 Created ThumbnailProviders for folder browser to allow custom thumbnail generation based on file ext 2012-07-24 10:06:07 -01:00
Matt@MBP13-PC 135bfc6d94 Move FolderBrowser control to Umbraco.Web project 2012-07-24 06:19:30 -01:00
shannon@ShandemVaio 5fcd8b1d52 Fixed file names of ReadLock and UpradeableReadLock. Fixes up UpgradeableReadLock to ensure
that it it is upgraded it releases its writelock on dispose. Fixes up RouteLookups to have
correct locking. Fixes up library to resolve the NiceUrlResolver using the UmbracoContext.Current
singleton acessor.
2012-07-23 23:03:00 +06:00
Matt@MBP13-PC 82ca2609ec Made a start on the folder browser control
Added base2 js library
2012-07-23 14:29:52 -01:00
Matt@MBP13-PC fdcc81003d Added knockout js library 2012-07-23 10:28:53 -01:00
Matt@MBP13-PC c51267136c Upgraded tags datatype to use jQuery tags input plugin gor a nicer UI (still works the same under the hood) 2012-07-23 10:05:29 -01:00
Matt@MBP13-PC 9f60e49a32 Added missing project reference 2012-07-23 06:59:26 -01:00
slace 74b8b4f147 merging two PRs into the 4.9.0 branch 2012-07-22 13:28:56 -10:00
slace af7faa42d4 Merging changes from PeterD/fix29140 2012-07-22 13:23:41 -10:00
sgay 3546b3e954 refactor routing 2012-07-22 14:01:18 -02:00
slace 705e06af46 Merging changes from TomvE/UmbracoRequestHandlerOptimization 2012-07-20 18:06:37 -10:00
Stephan 533cc91a68 merge 2012-07-20 19:09:30 -02:00
sgay 5fbf4379cc refactor routing 2012-07-20 18:54:59 -02:00
shannon@ShandemVaio d9faea49ec Changed the ILookup resolution, now that DocumentRequest object contains everything to do the lookups
we don't have to create each ILookup per request, these can exist one  per application.
2012-07-21 00:59:27 +06:00
shannon@ShandemVaio 36e3857643 Ensures the legacy UmbracoContext is created. 2012-07-21 00:47:17 +06:00
shannon@ShandemVaio fa469416a2 added note 2012-07-21 00:44:58 +06:00
shannon@ShandemVaio c60abf747c Updated the default.aspx and page classes to match what Stephen had in his fork.
Have updated the web.config to use the new HttpModule but the XPath statement that is generated
for the LookupByPath doesn't seem to be matching my root node. But everything else is actually working!
2012-07-21 00:42:11 +06:00
shannon@ShandemVaio be51bfa67f Changed RoutingEnvironment to RoutingContet. Cleaned up how the context reference each other, now
this starts making a bunch of sense. Have empty ctor's on all ILookups since their methods get passed a
 DocumentRequest object which has access to all of the context's and properties that they will ever need.
2012-07-21 00:20:50 +06:00
shannon@ShandemVaio 8f278bcaa5 Added singleton for managing ILookups collection, allows for adding/removing/inserting at runtime/startup 2012-07-20 23:42:55 +06:00
shannon@ShandemVaio 6c872e8a65 Implements singly registered RoutesCache object and re-interfaces IRoutesCache which can now be
set at runtime. Exposes UmbracoContext via DocumentRequest which simplifies some things. Removes
dependency on UmbracoContext from DefaultRoutesCache, now InPreviewMode is checked before passing
processing to the IRoutesCache provider. Changed NiceUrls to NiceUrlResolver.
2012-07-20 23:10:43 +06:00
shannon@ShandemVaio 1b9e226f61 Moves app initialization into new UmbracoApplication (global.asax) 2012-07-20 22:02:28 +06:00
shannon@ShandemVaio 25b06a88ab Began integration of Stephen's new routing logic. The sln compiles and things have been refactored
from the initial concept. The module is not active as it currently will not work because of
contructor dependencies and classes marked as internal, will liase with Stephen regarding this.
2012-07-20 01:04:35 +06:00
shannon@ShandemVaio f2c084feda Merge with 4.9.0 2012-07-19 22:52:34 +06:00
shannon@ShandemVaio f83ae489db Fixes remaining circular dependencies and updates the build script to not have
to manually build these projects seperately :)
fixes: #U4-77
2012-07-19 22:48:09 +06:00
shannon@ShandemVaio 00c18fe764 Fixes first circular dependency with webservices (#U4-77) 2012-07-19 22:38:33 +06:00
shannon@ShandemVaio ce90e114df Update to use IISExpress #U4-75 with Aarons fixes 2012-07-19 22:15:15 +06:00
shannon@ShandemVaio c205197683 Fixes up build script to build Umbraco.Web.UI project 2012-07-19 22:01:36 +06:00
shannon@ShandemVaio b13c16ddc2 Moved remaining classes/files into "umbraco.presentation" folder 2012-07-19 21:49:42 +06:00
shannon@ShandemVaio 8c9e19c0b7 Ensures language files are included in solution 2012-07-19 21:45:55 +06:00
shannon@ShandemVaio 14dd4fcd68 Moved files in Umbraco.Web to "umbraco.presentation" folder to keep old 'legacy' stuff in one place
so its easier to move forward with the new namespaces/code.
2012-07-19 21:38:56 +06:00
shannon@ShandemVaio d82bb9bff1 Merge with 4.10.0 2012-07-19 21:18:51 +06:00
shannon@ShandemVaio 4b819c081e Merge with 4.9.0 2012-07-19 21:18:05 +06:00
shannon@ShandemVaio c91ef375ba Merge with 4.8.0 2012-07-19 21:17:25 +06:00
sitereactor 26315c1f92 Added tag Release-4.8.0 for changeset 096f20bb0575 2012-07-19 06:11:21 -02:00
shannon@ShandemVaio 82d8e2854a updates ignore file so that it doesn't keep wanting to update the web.config 2012-07-19 02:25:59 +06:00
shannon@ShandemVaio 7e5f4c20bf Updates the circular reference projects post builds to build to Umbraco.Web.UI
(now we can actually look at fixing these references! :)
2012-07-19 02:25:13 +06:00
shannon@ShandemVaio 6e459a3afb Fixes namespace issues when changing default namesapce to Umbraco.Web as the autogen
classes namespaces were changed.
Removed post build and custom targets from Umbraco.Web
2012-07-19 02:19:32 +06:00
shannon@ShandemVaio 2e8ab316fe re-removing the presentation stuff that was merged back in. 2012-07-19 01:32:59 +06:00
shannon@ShandemVaio c4760e0593 manually merged in tinymce language changes. 2012-07-19 01:23:53 +06:00
shannon@ShandemVaio 0f8797096d Merged with 4.9.0 2012-07-19 01:22:22 +06:00
shannon@ShandemVaio 9a1935e6ea Fixes small merge issue 2012-07-19 01:06:39 +06:00
shannon@ShandemVaio 25bd7b8ad7 Merge with 4.8.0 2012-07-19 01:02:16 +06:00
shannon@ShandemVaio 7ca29b87f3 Removed all client side files as they now exist in Umbraco.Web.UI 2012-07-19 00:52:58 +06:00
shannon@ShandemVaio 9679d0f6df Renamed umbraco.presentation to Umbraco.Web and changed the folder it resides in.
Started removal of files/folder from Umbraco.Web that belong in Umbraco.Web.UI.
2012-07-18 23:54:20 +06:00
sitereactor 86a222b528 Adding Chinese translation for backoffice.
Fixes work item 30517.
2012-07-18 12:49:22 -02:00
Hendy@Blueberry 0733e7b020 Merge 2012-07-18 13:04:14 -01:00
Hendy@Blueberry e37b84edf9 quick fix to ensure all descendants matching a supplied docType are returned (rather than just the children) 2012-07-18 13:03:34 -01:00
Matt@MBP13-PC 305b97086b Fixed issue with Thumbnails dropdown not working and also scaled down the thumbnails as they were huge. 2012-07-18 12:54:41 -01:00
Matt@MBP13-PC 95548bce89 Merge 2012-07-18 11:00:24 -01:00
Matt@MBP13-PC babaabbb2f Fixes JS error when editing links in TinyMCE due to missing required html element id. 2012-07-18 11:00:09 -01:00
shannon@ShandemVaio 62f4db0b76 added Umbraco.Web.UI containing only web rendering files 2012-07-18 04:35:30 +06:00
shannon@ShandemVaio 8046a778bd Fixes the UmbracoRequest, UmbracoResponse, UmbracoServerUtility to use the Base classes
not the wrapper classes since this is incorrect, now they are at least abstracted so they
don't rely on the real HttpContext but these should be obsoleted and not used but thats
a different story
2012-07-18 02:59:00 +06:00
TomvE 34b10f7499 Only call System.Web.Security.Membership.GetUser once and keep result locally to improve performance of request handler for protected pages.
Same thing for the currentPage attributes ID and Path.
2012-07-17 14:23:47 -01:00
sitereactor f3f0b151d6 Adding Japanese langauge files to umbraco.presentation project 2012-07-17 12:54:34 -02:00
sitereactor 6aae619a83 Merging with pull request from parnar/hebrewlocalization 2012-07-17 12:44:07 -02:00
sitereactor 3211419899 Merging with pull request from awoninet/japaneselocalization 2012-07-17 12:41:28 -02:00
Matt@MBP13-PC 01717f0818 Fixes work item 30909. Added a few null reference checks as it was causing failures. 2012-07-17 10:19:23 -01:00
Matt@MBP13-PC 1a1493054a Fixes work item 30910. When deleting nodes, parent node is auto refreshed to force triangle to disapear if no more child items exist. 2012-07-17 09:04:18 -01:00
Matt@MBP13-PC 6917d3da35 Merging changes from PeterD/fix25892 2012-07-17 08:37:55 -01:00
Matt@MBP13-PC 2c2b9352f9 Merged in changes from 4.9 branch regarding apps / trees 2012-07-17 08:27:32 -01:00
Matt@MBP13-PC e7d81b6a6e Merged in changes from 4.9 branch regarding apps / trees 2012-07-17 08:26:48 -01:00
leekelleher 1c4edfb84a Upgraded HtmlAgilityPack library to 1.4.5 (latest version released 11th July) 2012-07-16 21:29:00 -01:00
shannon@ShandemVaio 23b2899101 Imports many of the useful extension methods from v5 that are also used in umbraMVCo to begin the
MVC integration.
Imported the unit tests associated with each of these imported classes.
2012-07-17 03:51:34 +06:00
shannon@ShandemVaio 6c8d72576c Creating 4.10.0 branch 2012-07-17 03:29:25 +06:00
shannon@ShandemVaio 10f2d9b3ed Updated assembly info for Umbraco.Web proj 2012-07-17 03:28:15 +06:00
shannon@ShandemVaio dfe512ead8 Got ApplicationTreeTest working in new NUnit test project. 2012-07-17 03:23:06 +06:00
shannon@ShandemVaio ddbde6e15f Got ApplicationTests working with new unit test project.
Had to fix the ApplicationTree and Application classes to lazily call the Cache method
(which is no renamed to EnsureCache) so that we could set the config location in the unit tests.
This should also improve performance a teeny bit and allow for better error handling if required.
2012-07-17 03:14:22 +06:00
shannon@ShandemVaio bd2017c9a1 Fixes assembly info for SqlCE4Umbraco 2012-07-17 01:38:56 +06:00
shannon@ShandemVaio 96cc9a1f35 Missing file updates 2012-07-17 01:33:14 +06:00
shannon@ShandemVaio 21203b8070 Renamed umbraco.Test to Umbraco.LegacyTests
Updated InternalsVisibleTo declarations.
Updated the ApplicationTest test to use a new base class as a test to install a local sqlce database
for testing against.
Added Umbraco.Core project.
Added Umbraco.Web project.
Created new sln folder Legacy
2012-07-17 01:32:46 +06:00
shannon@ShandemVaio 85aafbdb85 Updated sln to reference sqlce by default so its alwasy shipped with it and always works
locally when debugging. Updated build script to not have to manually build the umbracosqlce project
since its now referenced.
Updated ignore file.
Removed Umbraco.sdf as being referenced in the repository.
Fixed SqlCEInstaller to automatically create the sqlce database if it doesn't exist, we now don't ship the empty database
and this is much nicer for working in the core.
2012-07-17 00:52:08 +06:00
shannon@ShandemVaio 46b58c8b53 Added old unit test project back to the solution, ensure it builds. Updated the AuthoringTests.txt file
to detail how to get these unit tests actually running.
In the future, if we need to write unit tests that absolutely require an HttpContext, we can use this
project but it is not recommended. I'll be creating the new Unit Test project shortly which will be
based on NUnit.
I might actually be able to update these tests to run as NUnit too, we'll see.
2012-07-16 22:40:36 +06:00
Peter@KASSA01.lan 63d6b05460 modified 3 dialogs to escape language-items containing single quote when inserted in javascript 2012-07-15 10:53:34 -02:00
Peter@KASSA01.lan 0c9b239bd3 fixing #30477 and #29003 2012-07-14 08:04:58 -02:00
sitereactor ff5c705534 Adding Sql Azure as Database option in installer 2012-07-13 12:38:04 -02:00
hartvig c7c3e3b55e Fixes issues with Safari and TinyMCE. Work items: 30194 2012-07-13 06:06:43 -02:00
PerPloug b974a7e6e5 Flet 2012-07-12 19:17:04 -02:00
PerPloug 989ddda2b4 Adds SearchChildren and SearchDescendants as razor helpers to indicate their
functionality better, search is by default descendants
2012-07-12 19:15:26 -02:00
hartvig f32cc6e4c2 Work items: 30173 2012-07-12 12:15:33 -02:00
hartvig 9e9f3ebab7 Work items: 30898 2012-07-12 11:35:43 -02:00
hartvig 4317c7f2c4 Fixes performance issue with document type icon dropdown (no more limits on number of icons - yuppiieeee). Work items: 30747 2012-07-12 10:27:22 -02:00
PerPloug e0aed34bc9 Added HttppostedFileWrapper support to filehandler and upload datatype 2012-07-12 09:41:55 -02:00
Hendy@Blueberry 577ad79a7f cross browser UI tweaks for the create new Relation Type modal 2012-07-11 16:15:37 -01:00
PerPloug 932f437759 Flet 2012-07-11 10:57:10 -02:00
PerPloug a556d3ef4b Added overloads to the umbracoFile handler to support HttpPostedFile HttpPostedFilebase, stream and byte[] 2012-07-11 10:56:28 -02:00
Hendy@Blueberry f09e2c2467 Merge 2012-07-11 11:49:40 -01:00
Hendy@Blueberry b16b5511da Removed .HasRecords check in Picker Relations datatype as not supported by SQL CE (and not required). (Left Picker Relations exlcuded from the project) 2012-07-11 11:48:25 -01:00
Matt@MBP13-PC bbaf7972af Merge 2012-07-11 07:51:56 -01:00
Matt@MBP-PC.Home 53a45d0f93 Merge 2012-07-11 07:41:14 -01:00
Matt@MBP13-PC cc95048278 Updated config template for new computer 2012-07-11 07:36:21 -01:00
Hendy@Blueberry b5171d545e fix to ensure the correct relation type id is returned when creating a new relation type. 2012-07-11 07:06:38 -01:00
Hendy@Blueberry 7df7541581 Merge 2012-07-10 15:08:06 -01:00
Hendy@Blueberry 6e22b8a981 My SQL and SQL CE fixes for the RelationTypes tree (loadRelationTypes left commented out) 2012-07-10 15:07:39 -01:00
Matt@MBP-PC.Home 67e5f3435c Fixes workitem 30887. Changed default file icon to mediaFile instead of mediaMulti as the music icon could be confusing. (NB I've also created a feature request to support dynamic icons based on file extension http://issues.umbraco.org/issue/U4-107) 2012-07-10 09:29:24 -01:00
Matt@MBP-PC.Home 86d7427cb2 Fixes workitem 30891. User tree now re-syncs on postback. 2012-07-10 09:19:31 -01:00
Matt@MBP-PC.Home 30d51bcbb5 Fixes work item 30881. Updated web.template.config to use .NET 4.0 as per web.config in 4.7.2 release (not sure why, but looks to have been reverted back to use .NET 3.5) 2012-07-10 08:47:47 -01:00
Matt@MBP-PC.Home cd58549356 Updated jQueryUI to latest version (1.8.21) 2012-07-10 07:31:17 -01:00
Matt@MBP-PC.Home 271a17aad6 Removed the tree attribute from the relationType tree to prevent it from being added to the config. 2012-07-09 13:03:08 -01:00
Matt@MBP-PC.Home 1fc74f497a Fixes workitem 30892. Removed commented out code, and added an extra ; between a codeblock that needed it. 2012-07-09 12:40:00 -01:00
Matt@MBP-PC.Home be5d7a3d93 Merge 2012-07-09 11:44:39 -01:00
Matt@MBP-PC.Home b882021069 Fixed workitem 30878. DMU .air file needed it's build action set to Content to ensure it gets copied over during build process. 2012-07-09 11:39:39 -01:00
leekelleher bc9f1dd6de Merge 2012-07-09 11:24:20 -01:00
leekelleher 295a91a762 Temporary fix for workitem: 30883 - 4.8 beta: Not possible to re-enable disabled users
Added "error" class to the 'sectionValidator' control.
2012-07-09 11:22:45 -01:00
Matt@MBP-PC.Home 2a0448cf4c Merge 2012-07-09 11:11:47 -01:00
Matt@MBP-PC.Home 76fbcffea0 Updated build script to include empty folders in zips 2012-07-09 11:10:54 -01:00
Matt@MBP-PC.Home d4def2f276 Removed global.asax file completely 2012-07-09 11:09:05 -01:00
leekelleher a519903516 Restored UI.xml from 4.7.2 (sections/tasks lost through restructuring/merges)
Resolves workitem: 30893 - Error when deleting a Macro
Resolves workitem: 30885 - V4.8 Beta - Can't delete document type
2012-07-09 10:56:05 -01:00
admin 274f2ebe26 Added Japanese localization 2012-07-07 17:17:54 -09:00
Eran Meir 5f08a7256d added missing tinymce translations 2012-07-06 09:58:45 -03:00
Matt@MBP-PC.Home 8d3ebbb967 Added tag 4.8.0-beta for changeset 488779dec0ce 2012-07-06 11:43:29 -01:00
Eran@Eran-PC ec7b48de37 added hebrew localization to umbraco 2012-07-06 08:45:53 -03:00
Matt@MBP-PC.Home 51301d5aa6 Fixed broken build due to missing using statement 2012-07-05 13:10:02 -01:00
Matt@MBP-PC.Home 96603529f1 Added upgrade scripts to resource files 2012-07-05 13:05:53 -01:00
Matt@MBP-PC.Home cc6cb53ebc Updated SQL so as not to add keys on app trees / apps as they are now stored in xml
Removed insert statements for trees / apps as data is now in config files
2012-07-05 12:41:03 -01:00
Matt@MBP-PC.Home 5d49dd2bf4 Excluded global.asax file, as not strictly needed
Added TinyMCE styling rule when in live editing as toolbar was appearing out of place
2012-07-05 11:09:51 -01:00
Matt@MBP-PC.Home 0a79c590e5 Updatedt presentation project references / build script to include WebPages lib dlls 2012-07-05 10:53:57 -01:00
Matt@MBP-PC.Home 9b72fac447 Removed PickerRelations data type for time being as causing errors 2012-07-05 10:18:57 -01:00
Matt@MBP-PC.Home abe341ec62 Removed relationTypes tree for time being as doesn't look like it works on SQL CE 4 2012-07-05 10:13:35 -01:00
Matt@MBP-PC.Home e8f1ec3a59 Added missing uGoLive plugin files to presentation project 2012-07-05 10:08:38 -01:00
Matt@MBP-PC.Home a061fb0683 Removed empty.txt placeholder files and created a startup handler to check for required system folders instead 2012-07-05 09:46:11 -01:00
Matt@MBP-PC.Home ec6f556590 Added missing empty placeholder files to project file 2012-07-05 09:22:05 -01:00
Matt@MBP-PC.Home be03bbf24a Added missing empty placeholder files to project file 2012-07-05 09:21:33 -01:00
leekelleher b24aa27909 Merge 2012-07-05 08:46:10 -01:00
leekelleher d83fb22238 Upgraded HtmlAgilityPack assembly to v1.4.0; updated MacroEngines.csproj to disable SpecificVersion check. 2012-07-05 08:45:35 -01:00
Matt@MBP-PC.Home e7e63f459f Added placehold files to force required folders to exist. Need to come up with a more robust solition, but this will do the job for the time being. 2012-07-05 08:40:36 -01:00
Matt@MBP-PC.Home f0ac377c44 Updated build script to list for build number from build server 2012-07-05 08:15:48 -01:00
Matt@MBP-PC.Home 093933410f Updated build script to list for build number from build server 2012-07-05 08:09:27 -01:00
Matt@MBP-PC.Home 3a5415eaba Merge 2012-07-05 06:44:21 -01:00
Matt@MBP-PC.Home 2c8ca18ced Updated the naming of the build script atrifacts inline with our final naming structure 2012-07-05 06:43:55 -01:00
PerPloug b69227b46e Flet 2012-07-04 11:56:01 -02:00
PerPloug 677a049bd5 Missing wildcards setting in Model.Search() 2012-07-04 11:50:41 -02:00
Matt@MBP-PC.Home 258083c2be Merge 2012-07-04 12:01:40 -01:00
Matt@MBP-PC.Home 7122448c11 Fixed build script issue where web.config was getting transformed after the copy command had already occured meaning a pre-configured web.config was getting copied over. Actions now occur in the correct order. 2012-07-04 12:00:52 -01:00
PerPloug cdc43191e7 Default Examine config file + create/ui.xml release files 2012-07-04 10:56:33 -02:00
PerPloug 72dbc9d114 Adds a .Search(term) method to Model and Library, exposing the
default examine searcher / index
2012-07-04 10:54:49 -02:00
hartvig e481f4e0af Adds the new resize logic to the Richtext Editor (tinymce) as well 2012-07-04 09:15:16 -02:00
Matt@MBP-PC.Home 5568ea8e78 Merge 2012-07-04 09:57:08 -01:00
Matt@MBP-PC.Home 561e85804f Fixed issue with build script overwriting local config files when run locally. Now only works if ProjectDir and WebProjectOutputDir are different. 2012-07-04 09:56:24 -01:00
hartvig ac4855e16f Adds support for auto setting file related properties through configuration (width, height, length and extension) and adds support for transparent thumbnails (at last!). Work items: 29167 2012-07-04 08:56:18 -02:00
sitereactor 5926cba4bf Merge 2012-07-04 07:10:27 -02:00
sitereactor 5e5274632c Removing Deep Linking feature from main branch 2012-07-04 07:08:24 -02:00
Matt@MBP-PC.Home 0b69d2b447 Merge with 4.8-tinymce-wip 2012-07-04 07:04:02 -01:00
Matt@MBP-PC.Home 1cc7016831 Fixed issue with TinyMCE insert link dialog not showing Target / Anchor dropdowns 2012-07-04 06:41:31 -01:00
Matt@MBP-PC.Home 3b34065713 Merge with 4.8.0 2012-07-04 06:11:32 -01:00
Matt@MBP-PC.Home 93d13d7696 Added missing TinyMCE media plugin files 2012-07-04 06:06:37 -01:00
leekelleher 7e24e433bc Merge 2012-07-03 22:36:35 -01:00
leekelleher 0cba90c81d Examine: Updated assemblies to v1.4.2 (fixes an "Inheritance security rules violated" exception within TypeFinder) 2012-07-03 22:31:04 -01:00
hartvig 9a95c08271 Adds better support for simpler file attachment to document/media properties, by just assigning an HttpPostedFile as the value of an upload property (then it'll handle storing the file, generating thumbnails, etc):
myImage.getProperty("mainImage").Value = Request.Files[0];
Adds helper class "UmbracoFile" for easier file upload / file manipulation in general (to be provider based so we can support manipulation via ImageGen or ImageResizing.NET as well as support for abstracting file storage via providers (through an IFile but currently in an implementation that needs refactoring (used in a wrong way atm)). Will fix that part tomorrow!
2012-07-03 20:58:50 -02:00
leekelleher ff079be3ff Merge 2012-07-03 19:14:52 -01:00
Matt@MBP-PC.Home 2078873fbb Undone previous "Show Label" fix and applied at the database layer (Un-tested) 2012-07-03 18:04:56 -01:00
leekelleher 5ce472b681 umbraco.presentation.targets: Fixed path for 'ProjOutputDir'. 2012-07-03 15:46:23 -01:00
leekelleher 6e0c4b7fdb Fixes work item: 30805 - Problems logging out.
#U4-88 - MySQL error when logging out of 4.7.2.
Tested against MySQL 5.1.
2012-07-03 14:56:07 -01:00
Matt@MBP-PC.Home e3e4254de6 Set TinyMCE data type to default to showing the label 2012-07-03 14:05:08 -01:00
sitereactor 787afa3c36 Updating SQL Create and Update scripts to be SqlAzure compatible 2012-07-03 09:08:54 -02:00
Matt@MBP-PC.Home b2e93d2470 Fixed issue with Macro dialog not closed when inserting macro into RTE (http://twitter.com/kolchy/status/220068628140269570) 2012-07-03 07:48:07 -01:00
Matt@MBP-PC.Home 57bf3c0906 Fixed issue with build script copying config files to wrong location 2012-07-03 07:10:50 -01:00
Matt@MBP-PC.Home 11f516baf5 Replaced corupt sdf file 2012-07-03 07:01:35 -01:00
Matt@MBP-PC.Home a3afd818c2 Removed missing files from project 2012-07-03 06:59:18 -01:00
leekelleher 0b0454526e Default SQLCE4 file was corrupted, restored from OLD/assets, works again. 2012-07-02 19:38:41 -01:00
Matt@MBP-PC.Home 8cae30ab17 Upgraded TinyMCE 2012-07-02 12:30:00 -01:00
Matt@MBP-PC.Home 299ffc4973 Upgraded TinyMCE 2012-07-02 12:28:22 -01:00
Matt@MBP-PC.Home 1190570435 Upgraded TinyMCE 2012-07-02 12:27:59 -01:00
Matt@MBP-PC.Home 10fce799d0 Creating TinyMCE Wip branch 2012-07-02 06:38:05 -01:00
Matt@MBP-PC.Home d70bd3311f Fixes broek build 2012-06-29 12:40:10 -01:00
Matt@MBP-PC.Home e9d7ec05b3 Merge 2012-06-29 12:33:41 -01:00
Matt@MBP-PC.Home a993b1e736 Updated build script to include SQL CE by default
Updated build script to also generate a WebPi zip
2012-06-29 12:33:08 -01:00
leekelleher 6611e3494d Merge 2012-06-29 10:39:16 -01:00
Matt@MBP-PC.Home 1a414d1670 Moved WebPi code to src folder 2012-06-29 10:35:35 -01:00
leekelleher ebcb8d3683 Merge 2012-06-29 10:33:06 -01:00
leekelleher eed13fcfda Fixed workitem:29297 - overloaded mssql db reads caused by creating styles on a stylesheet for use in the richtexteditor styles drop down (tinymce).
Patch supplied by @tentonipete (unable to create fork/PR)
2012-06-29 10:32:20 -01:00
Matt@MBP-PC.Home 711e8c820a Merge 2012-06-29 10:12:34 -01:00
Matt@MBP-PC.Home 8fa73e19c2 Removed site.py script as no longer needed 2012-06-29 10:12:01 -01:00
leekelleher f513fb52c0 Merge 2012-06-29 09:32:07 -01:00
leekelleher 81e4840ea3 Corrected the reference to my Web.config transform file - sorry! 2012-06-29 09:31:18 -01:00
Matt@MBP-PC.Home 51bc5649a3 Fixed a couple of issues after last merge 2012-06-29 09:14:12 -01:00
Matt@MBP-PC.Home 3ff846431c Merge 2012-06-29 09:10:38 -01:00
Matt@MBP-PC.Home 0bd5bc580a Fixed broken build script
Updated config templates to be dependant files so appearing underneath the real file. Build script has been updated to use these when preparing for a build. I think this makes it more obvious, as previously templates were heald elswhere and was easy to forget.
Removed config templates for files which are auto generated.
2012-06-29 09:09:32 -01:00
leekelleher 43abe02432 Merge 2012-06-29 08:16:54 -01:00
leekelleher 695832fa61 Fixes workitem:30866 - Add clickable label on publish dialog 2012-06-28 22:10:33 -01:00
leekelleher 8e491c0b1f Relation Types: Relocated the editor pages to the 'developer' section, as to match the other back-office developer trees.
Corrected paths for the relocation.
2012-06-28 21:56:28 -01:00
leekelleher 5473c6fc4f Relation Types: Relocated the tree class to match the other back-office developer tree classes.
Added to trees.config (template and working/dev copy)
2012-06-28 21:36:36 -01:00
leekelleher f69dc80adb Updated my Web.config transform with Medium Trust settings - for testing/assurance. 2012-06-28 20:58:16 -01:00
leekelleher 7c3ba42303 Merging changes from darrenferguson/issueU484 2012-06-28 20:44:03 -01:00
leekelleher 90788a83f0 Added my Web.config transform template file. 2012-06-28 20:37:26 -01:00
Matt@MBP-PC.Home 89418ca95e Merge with 4.8-apptreexml-wip 2012-06-28 13:26:01 -01:00
Matt@MBP-PC.Home cb26821b75 Added missing files and fixed broken build script 2012-06-28 12:59:12 -01:00
leekelleher 5389c14eb2 Added my Web.Template.{MACHINENAME}.config transform files. 2012-06-28 12:50:55 -01:00
Matt@MBP-PC.Home 36a39e64d7 Updated build scripts 2012-06-28 12:47:11 -01:00
Matt@MBP-PC.Home 655a780330 Renamed ApplicationTreeAttribute to just TreeAttribute 2012-06-28 12:41:49 -01:00
Matt@MBP-PC.Home 1bfd8438c7 Created AppStartupHandlers to auto populate App / Tree config with any found DLLs or any DB registered trees.config
Updated the package installer to trigger the App/Tree StartupHandlers to re-trigger any imports.
2012-06-28 12:37:16 -01:00
Matt@MBP-PC.Home 4a4fede251 Updated all AppBase usages to ApplicationStartupHandler 2012-06-28 09:14:50 -01:00
Matt@MBP-PC.Home b122758595 Added Tree / Application attributes for code first registration.
Depricated ApplicationBase and introduced ApplicationStartupHandler in it's place.
2012-06-28 09:08:39 -01:00
Darren@Darren-VAIO 82ee608c92 Fix U4-84 - Error message when publish is cancelled by event:
http://issues.umbraco.org/issue/U4-84
2012-06-28 08:45:46 -01:00
Matt@MBP-PC.Home fa35e61d2b Merge with 4.8.0 2012-06-28 06:22:56 -01:00
shannon@ShandemVaio.home a529c26189 updated release web.config template, removed old files that don't need to be there. 2012-06-27 23:32:29 +04:00
shannon@ShandemVaio.home ee36a10be4 Merge with 4.8-solutioncleanup-wip 2012-06-27 23:12:40 +04:00
shannon@ShandemVaio.home 6126e9526b Updated all config templates to not be marked as content so they are not output in the build.
Updated the build script to ensure that macroEngines, editorControls and webservices are build separately and
then copy their output DLLs to the build folder to be zipped up.
Ensured that the offset time stuff is working in the build script too.
2012-06-27 22:59:33 +04:00
shannon@ShandemVaio.home 789497a717 Added Umbraco.MSBuild.Tasks to separate solution and configured to build to correct /lib path. 2012-06-27 21:26:38 +04:00
Matt@MBP-PC.Home b564bff4b6 Updated all other ApplicationTree methods to use XML config instead of database 2012-06-27 12:28:09 -01:00
Matt@MBP-PC.Home 7c5065f61c Got AppTrees reading from XML file rather than database 2012-06-27 12:11:47 -01:00
Matt@MBP-PC.Home 69b632fc6d Converted all Application actions over to use XML config instead of database 2012-06-27 11:27:10 -01:00
Matt@MBP-PC.Home ff8bd9362b Defined config files
Got applications loading from XML config
Updated User entity to use the Applications cache when retrieving list of Applications (Only the Application class should be in control of instantiating Application entities)
2012-06-27 10:57:09 -01:00
Matt@MBP-PC.Home 852e35d6be Re-added missing masterpages / xslt files 2012-06-27 07:20:56 -01:00
Matt@MBP-PC.Home 46ca473e55 Re-added missing media classes 2012-06-27 07:12:27 -01:00
Matt@MBP-PC.Home 1e12b86141 Added personal web config template 2012-06-27 07:03:05 -01:00
shannon@ShandemVaio.home 5ae9a60954 Fixed DLL references, fixed build location on editorControls. NOTE: need to get the build.bat working with the circular dependency projects to get their DLLs and assets into the output build. 2012-06-27 09:07:24 +04:00
shannon@ShandemVaio.home b058855fe5 Fixes proj files references and building in release 2012-06-27 07:49:46 +04:00
shannon@ShandemVaio.home e90bf626aa fixes post build script 2012-06-23 00:41:23 +04:00
shannon@ShandemVaio.home babd6d6f0a build scripts nearly there. 2012-06-23 00:37:16 +04:00
shannon@ShandemVaio.home fa11706c75 nearly have build script working, the zip isn't targetting correct files but building is working. 2012-06-22 23:29:20 +04:00
shannon@ShandemVaio.home 27b0b1b2ae Fixed project references with TinyMCE there were a lot of missing files and non referenced files! 2012-06-22 23:20:02 +04:00
shannon@ShandemVaio.home b432b92cea Fixed post build event copying to the wrong location. 2012-06-22 23:03:06 +04:00
shannon@ShandemVaio.home 11ca622ab3 removed other old unused files.
starting to add build files.
2012-06-22 22:49:15 +04:00
shannon@ShandemVaio.home e304f509c2 Moved old Nant builds files to the /build/Nant folder. 2012-06-22 22:32:05 +04:00
shannon@ShandemVaio.home ef7b0c8e65 Changes 'dlls' to 'lib' 2012-06-22 22:23:05 +04:00
shannon@ShandemVaio.home 1f79ccf207 Changes all xslt transforms to use VS transforms. #U4-62 2012-06-22 22:01:16 +04:00
shannon@ShandemVaio.home 580cb340ac Cleaning up folder structure (U4-56) 2012-06-22 20:39:48 +04:00
shannon@ShandemVaio.home 32cf81d98e Merge 2012-06-22 13:02:58 -02:00
shannon@ShandemVaio.home b7fee59fd2 updates xslt config 2012-06-22 13:01:31 -02:00
leekelleher 6f52bef513 Upgraded Examine to v1.4.1 (supports Medium Trust). Includes upgrades for Lucene.Net and ICSharpCode.SharpZipLib. 2012-06-21 13:12:01 -01:00
leekelleher acdfe12b98 uQuery: Applied Hendy's fixes from uComponents repo. 2012-06-21 08:45:10 -01:00
leekelleher a0e76bce62 Minor issue with the new Allowed Templates radiobutton-list, it broke saving content. Fixes workitem:30846 2012-06-21 07:33:47 -01:00
slace 5e768eff4d Merging changes from PoorbandTony/FixIssue26577NotificationEmail 2012-06-19 16:34:03 -02:00
Casey Neehouse 5f2e84917a Adds a lock to the MacroEngines to alleviate an error of items being added twice in high load environments. 2012-06-14 15:33:46 +04:00
agrath@gmail.com 53f549826e Add content using this DocumentType dropdown to the toolbar 2012-06-14 08:41:50 -01:00
agrath@gmail.com b82104591f Add jquery.splitbutton support to edittemplate toolbar and javascript for content using dropdown 2012-06-14 08:39:43 -01:00
agrath@gmail.com 650465bff0 Remove scroll/overflow code from editTemplate that was added to jquery.splitbutton 2012-06-14 08:38:24 -01:00
agrath@gmail.com 7162778284 Change contentFrameAndSection handler used for deep linking while logged into the application to go via the historyManager so that the hashtag and history is updated correctly 2012-06-14 08:37:39 -01:00
agrath@gmail.com c01516abf4 Add overflow method from editTemplate into jquery.splitbutton so it can be used on multiple pages 2012-06-14 08:33:48 -01:00
agrath@gmail.com 2e3bd6966f Add limit/top (provider dependant) to the query that returns Content nodes for this template as there may be a large number of them 2012-06-14 08:32:52 -01:00
agrath@gmail.com 86cd901af9 Add method to ContentType to get the Content nodes that are of this type 2012-06-14 08:32:07 -01:00
agrath@gmail.com 4600123f06 Finished content drop down binding and refactored split button overflow panels into a function so it can be used multiple times 2012-06-12 07:21:03 -01:00
agrath@gmail.com c58a1e2d97 Changed the selection criteria for Content Items used by this template to only be published content and added a limit of 100 records returned 2012-06-12 07:20:23 -01:00
agrath@gmail.com 4be1a488b3 Merge 2012-06-12 04:45:07 -01:00
agrath@gmail.com 82cad651fc Roll Umbraco.sdf back to previous version from 4.7.2 2012-06-12 04:44:37 -01:00
agrath@gmail.com 13504963fe Add Umbraco.sdf to the umbraco.presentation project 2012-06-12 04:42:17 -01:00
agrath@gmail.com 1fcaa0ee30 Add content that uses this template dropdown to Template editor in toolbar 2012-06-12 04:41:38 -01:00
agrath@gmail.com 6ba54ddebc Convert businesslogic.Tuple to System.Tuple in ContentType 2012-06-12 04:41:03 -01:00
agrath@gmail.com 468d2b5c12 Add method to Template to get the Content nodes that reference it 2012-06-12 04:40:33 -01:00
agrath@gmail.com 8c1773979a Upgrade the various projects to .net 4 and obsolete the internal Tuple class, replacing it with System.Tuple 2012-06-12 04:39:34 -01:00
leekelleher a2b6a24849 Merge 2012-06-11 21:15:15 -01:00
leekelleher ac78f363f6 Added localized UI text for the DeepLink text. 2012-06-11 21:13:35 -01:00
agrath@gmail.com 2c74eedfb0 Change default template selection to a RadioButton list and add links to Document Type and Template 2012-06-11 20:24:30 -01:00
agrath@gmail.com 4b50348cfb Add links to the document types from the Document Type Structure tab 2012-06-11 18:06:30 -01:00
agrath@gmail.com da8fb4ea52 Update Release Notes 2012-06-11 17:54:53 -01:00
agrath@gmail.com 93482fe528 Add link from Template to DocumentType into toolbar 2012-06-11 17:52:51 -01:00
agrath@gmail.com b890ba8899 Project commit for addition of new graphic 2012-06-11 17:52:21 -01:00
agrath@gmail.com fe39c7d93e Add new method to Template that fetches the DocumentTypes that reference it 2012-06-11 17:52:03 -01:00
agrath@gmail.com 08a7285fda Add a copy of the document type icon for use in the toolbar 2012-06-11 17:51:36 -01:00
agrath@gmail.com 2a0216d47b Handle a null reference in scrollingmenu 2012-06-11 17:51:01 -01:00
agrath@gmail.com de2d8eb538 Fix EditDocumentType default template selection in rewritten codebehind 2012-06-11 17:50:39 -01:00
agrath@gmail.com 7f7d8b8565 Add Link from Document Type's template list to templates 2012-06-11 16:45:02 -01:00
agrath@gmail.com cded3fa060 Change DeepLink class so it can return internal or external links and add GetAnchor method (renaming Get to GetUrl) 2012-06-11 16:44:31 -01:00
agrath@gmail.com b9624fbe7e Add new UmbracoClientManager function to set appSection and right frame url 2012-06-11 16:43:51 -01:00
Shandem afaa8ecfef Merge 2012-06-11 14:32:49 -02:00
Shandem 00938897a8 Fixed MacroEngine reference to Examine, committed new Examine DLLs (for now) 2012-06-11 14:32:27 -02:00
agrath@gmail.com 22b30908aa Merge 2012-06-11 14:48:51 -01:00
agrath@gmail.com 41bdf3d8b7 File for above 2012-06-11 14:47:56 -01:00
agrath@gmail.com ffdcc780a5 Add ReleaseNotes.txt - Please update when making changes in Core; will form public release notes with release 2012-06-11 14:47:38 -01:00
agrath@gmail.com ada7a7ff74 Synctree for Css/Stylesheet deeplink 2012-06-11 11:12:35 -01:00
agrath@gmail.com 35fc307ca6 Synctree for Javascript deeplink 2012-06-11 11:12:10 -01:00
agrath@gmail.com d9eb2e07f1 SyncTree for Template deeplink 2012-06-11 11:11:51 -01:00
agrath@gmail.com a18639301b SyncTree for DocumentType deeplink 2012-06-11 11:11:36 -01:00
agrath@gmail.com d554c098e3 SyncTree for MediaType deeplink 2012-06-11 11:11:20 -01:00
agrath@gmail.com 85860b5a9b SyncTree for XSLT deeplink 2012-06-11 11:11:00 -01:00
agrath@gmail.com 2ceb508322 SyncTree for Razor deeplink 2012-06-11 11:10:42 -01:00
agrath@gmail.com c1ce79ef97 SyncTree for Macro deeplink 2012-06-11 11:10:26 -01:00
agrath@gmail.com eea60fc63c SyncTree for DataType deeplink 2012-06-11 11:10:06 -01:00
agrath@gmail.com 65888b039e Override Path property on DocumentTypes to reflect the TreePath for deep linking 2012-06-11 11:09:13 -01:00
agrath@gmail.com 5f1725e807 Override Path property on Templates to reflect the TreePath for deep linking 2012-06-11 11:08:51 -01:00
agrath@gmail.com fa426643ed Add DeepLink.cs and DeepLinkType.cs to umbraco.cms 2012-06-11 11:08:19 -01:00
agrath@gmail.com 6c0847eb21 Add DeepLink class to Umbraco.Cms.Helpers to generate DeepLink links for the backoffice for the various types of item 2012-06-11 11:07:46 -01:00
agrath@gmail.com 4d1feed86f Add timeout to umbraco.aspx for deep linking when not logged in 2012-06-11 11:06:49 -01:00
agrath@gmail.com a660bbf552 Add timeout to UmbracoClientManager contentFrame for deep linking when not logged in 2012-06-11 11:05:59 -01:00
agrath@gmail.com 851c1c8eac Add enumeration for deep linking types 2012-06-11 11:05:29 -01:00
Hendy a9cd8aec79 uQuery: Standardising method signatures, from List<T> to IEnumerable<T> 2012-06-11 09:57:48 -01:00
leekelleher 9456abe36e commented out obsolete GetDepth method 2012-06-11 09:10:44 -01:00
leekelleher 0404f4939d fix for the RelationTypes tree namespace 2012-06-11 09:06:53 -01:00
leekelleher 8d4f657c58 uQuery: Sync'd latest from uComponents - enhancements to GetProperty<T>() method. 2012-06-10 05:44:44 -01:00
vertino 7d46ae9e3e uQuery: Changed the generic base-type of a few extension methods. 2012-06-05 23:53:28 -01:00
vertino 0e0d5325f5 ClientDependency: Added backwards compatibility so that the CDF files are written to the '/App_Data/TEMP/ClientDependency' folder 2012-06-05 23:43:21 -01:00
leekelleher ac1bcb4bb4 Updated ClientDependency to 1.5.1. 2012-06-05 22:39:37 -01:00
leekelleher b7c294da6a Upgraded jQuery to v1.7.2 (minified).
Upgraded jQuery UI to v1.8.20 (minified).
Renamed jQuery UI's theme CSS file name to remove the specific version number, now uses generic 'jquery-ui.custom.css'.
Updated references to the jQuery UI theme CSS file, (e.g. Canvas' slider control).
2012-06-01 17:22:16 -01:00
leekelleher b4c2faf7f2 Upgraded XML-RPC.NET (CookComputing.XmlRpcV2) to latest version (v2.5.0). 2012-06-01 14:10:06 -01:00
leekelleher 14c06ba6a4 Re-referenced ClientDependency.Core assembly across its projects dependencies. 2012-06-01 13:43:59 -01:00
leekelleher ee857ed054 Updated ClientDependency.Core library from 1.5 (beta) to 1.5 (released). 2012-06-01 11:15:17 -01:00
leekelleher d884716956 Fixed workitem: 30817 - FeedProxy ThreadAbortException Error
Removed the Response.End, as wasn't really needed.
2012-06-01 10:46:59 -01:00
leekelleher e8d649b72a Client Dependency Framework updated to 1.5 (beta).
Shandem fixed backwards compatibility in CDF 1.5.
Sync'd the assembly and config. Updated 'CanvasClientDependencyProvider' class (from CDF 1.4 source).
2012-06-01 09:59:45 -01:00
Hendy@Blueberry 9ae12d501c removed the NVarchar / NText configuration option from XPath CheckBoxList (as this datatype has a new guid, no backwards compatibility required - so now always uses NText) 2012-05-30 22:33:38 -01:00
Hendy@Blueberry 04267d2c6e added Picker Relations datatype - previously uComponents: MultiPicker Relations (renamed as can work with single item pickers as well as multipickers) 2012-05-30 22:13:18 -01:00
agrath@gmail.com 8439bafcf4 Change handling of tags when IUseTags is implemented with regards to property value 2012-05-26 20:55:33 -12:00
Hendy@Blueberry 17dcf47546 migrated in the RelationTypes package - converting it's namespace to umbraco.cms.presentation.Trees.RelationTypes 2012-05-25 19:50:54 -01:00
Hendy@Blueberry 88b5c67416 added local web.config transform 2012-05-25 18:36:00 -01:00
PoorbandTony 924f5d2462 Work item:26577 2012-05-23 14:44:43 -01:00
Floris Robbemont 290f01ea3e Fixed issue #30816 2012-05-17 15:31:36 -02:00
DMITRIY@Dmitriy-PC f0de2d3141 Fix 29-06-2012 - When edit tab name not in English, value saving wrong in the database, because old SQL query didn't use parameters,
so caption in database was ??????????
2012-06-29 07:39:58 -03:00
agrath 3f2db11459 Added a null check in constuctor to MacroModel 2012-05-14 08:47:56 -12:00
sgay f8bef6880d bugfix TinyMCE 3.5 2012-05-09 14:14:42 -02:00
hartvig caf41376dc More updates 2012-04-24 11:50:33 -02:00
hartvig 1b826e1193 Updates to previous push 2012-04-24 11:34:36 -02:00
hartvig f11599f95f Validates user control directory in assembly browser 2012-04-24 11:10:30 -02:00
hartvig ebb3915fc9 Updates 2012-04-24 11:02:23 -02:00
hartvig 4aa110ccfb Work items: 27610, 30786 2012-04-24 10:08:58 -02:00
hartvig 340f5382cc Work items: 30775 2012-04-24 09:59:16 -02:00
hartvig 99aba7b9ae Work items: 30787 2012-04-24 08:11:28 -02:00
hartvig 491ae23058 Work items: 30722 2012-04-24 07:29:44 -02:00
hartvig 6070e1494b Work items: 30782 2012-04-24 06:56:24 -02:00
hartvig dfa7d0e6d9 Work items: 30723 2012-04-20 20:05:38 -02:00
hartvig 1e6f896e83 Work items: 30783 2012-04-20 19:52:02 -02:00
hartvig 4ea2f8b6cc Updating build file 2012-04-16 10:05:03 -02:00
hartvig 9410ab4bc9 4.7.2 2012-04-16 05:16:33 -02:00
hartvig 38f546bb67 Sets url resolving (for vir dirs) to false by default 2012-04-16 04:56:56 -02:00
sgay 60c405e7e0 bump tinyMce version to 3.5 2012-04-13 17:43:07 -02:00
hartvig 8f17a84496 Work items: 30796 2012-05-07 07:00:58 -02:00
hartvig 7c552fe301 Work items: 30724 2012-05-07 06:36:24 -02:00
agrath@gmail.com d874c57182 Add support for Guid and Nullable<T> for macro properties in <umbraco:Macro 2012-05-05 15:46:21 -12:00
agrath@gmail.com 63c19ebf03 Fixed BrowseProperties for UserControl Macros, fixes #30807 2012-05-05 15:21:33 -12:00
leekelleher e26f0f96c2 uComponents: Tidying up old comments, paths and references. 2012-04-29 22:41:43 -01:00
leekelleher e8303b255e uComponents: Slider - We'd recently included extra JS library on UC for restricting the input to numeric values, including that library (jquery.alphanumeric) in '/umbraco_client/ui' 2012-04-29 20:18:55 -01:00
leekelleher 08d78e9c1e uComponents: MultipleTextstring - Added CSS/JS as embedded resources. 2012-04-29 20:17:30 -01:00
leekelleher 44b45d797d uComponents: MNTP - Resolved various ClientDependency concerns.
Removed the Extension class, as wasn't needed.
Included MNTP's CSS/JS as embedded resources.
Added icons (for delete & info) to '/umbraco/images' and 'jquery.tooltip' script to 'umbraco_client/ui'
2012-04-29 20:16:31 -01:00
leekelleher f20712209d Relocated the uComponents data-type base classes to from 'cms' to 'editorControls' - better to keep them self-contained, (at this time). 2012-04-29 19:05:59 -01:00
leekelleher c2c4bb7413 uComponents: Added MNTP to the core! 2012-04-28 13:57:04 -01:00
leekelleher a0d9e668bd uComponents: Added MultipleTextstring to the core 2012-04-28 13:54:51 -01:00
leekelleher c2d45adcb9 uComponents: Added Slider to the core 2012-04-28 13:54:03 -01:00
leekelleher 0db8dc8da5 uComponents: Class to define the data-type GUIDs (for 3rd party reference) 2012-04-28 13:53:36 -01:00
leekelleher 16cd283462 uComponents: Added XPathDropDownList to the core 2012-04-28 13:52:25 -01:00
leekelleher bb8d17b741 uComponents: Added XPathCheckBoxList to the core 2012-04-28 13:51:43 -01:00
leekelleher e66c7188e2 Added uQuery XML helper methods to the xmlHelper class, as it was required by the cms assembly. 2012-04-28 13:48:22 -01:00
leekelleher 113ecfd3cf uComponents: Added base classes for PrevalueEditors and Data. 2012-04-28 13:35:16 -01:00
leekelleher 551f1988ce Added uQuery to the core 2012-04-28 13:31:19 -01:00
leekelleher d6d31b44fe Bumped the version number for 4.8.0 2012-04-28 11:07:23 -01:00
leekelleher c6aac5039e Branched off for 4.8 ... so it beings 2012-04-26 13:45:25 -01:00
hartvig 5b5e7f6a46 Added tag 4.7.2 for changeset 1809f7b25932 2012-04-10 08:47:57 -02:00
hartvig f1bdde9067 Changes version number to 4.7.2 2012-04-10 08:42:59 -02:00
hartvig 163be2aad2 Updates feedproxy logic: Corrects minor error in xpath query and adds logging when unallowed requests happens 2012-04-10 08:42:10 -02:00
leekelleher c6891dd971 FeedProxy: Introduced a config file to define the allowed hostnames. Also added a package action to allow hostnames. 2012-04-06 11:06:05 -01:00
leekelleher 82a8383df3 Revised fix for FeedProxy.aspx, opens the URL restriction for use, still requiring the user to be logged into back-office. 2012-04-05 14:26:23 -01:00
tg@umbraco.com dbaa4912b7 Merge 2012-04-05 11:09:06 -02:00
tg@umbraco.com a016a661d7 Fixes open proxy issue with the /umbraco/dashboard/FeedProxy.aspx page 2012-04-05 11:06:54 -02:00
agrath 562f533172 Merge 2012-02-28 10:42:40 -13:00
agrath 57985cd0b2 Publish notification/workflow fails when using Distributed Calls, performedUser is null - check for null and replace with admin user 2012-02-28 10:39:02 -13:00
Casey Neehouse 2eebc84f2f WI# 30472 Placed check on hashtable add to check item has not already been added. 2012-02-21 16:03:46 -01:00
Casey Neehouse 2b9e798c35 WI#30727 addendum - Missed adding a lock to the ClearProcessedRequests method 2012-02-11 02:34:59 +05:00
Casey Neehouse 3e38b57496 WI#30727 Added lock to requestHandler _processedRequests Hashtable to block
duplicate entries
2012-02-11 02:28:09 +05:00
Casey Neehouse 7ddecca574 WI#30726 - Add check for UseAspNetMasterPages thus skipping the checkForMaster
that is not necessary
2012-02-11 01:13:41 +05:00
hartvig 90338093ba Change exception type for Work items: 30702 2012-02-03 05:24:32 -01:00
hartvig fc887b95f1 Work items: 30702 2012-02-03 05:08:04 -01:00
hartvig 01d8198579 Work items: 30690 2012-01-27 09:13:48 -01:00
agrath 7b6c711239 Allow CData tags to be embedded in a RichTextEditor controls contents 2012-01-17 14:32:08 -13:00
agrath 980c2d4a7f Fix DynamicXml eating - inside CData sections 2012-01-17 14:27:22 -13:00
agrath 686e0116d8 Allow CData tags to be embedded in a textboxmultiple controls contents 2012-01-17 14:26:48 -13:00
agrath b96a5a3bd9 Merge 2012-01-17 11:44:16 -13:00
agrath 6a3e1819aa Added guid for enhanced content picker for integer upcast 2012-01-17 11:43:16 -13:00
hartvig 72da68c08c Fixes error in cache patch 2012-01-11 11:17:56 -01:00
hartvig 2e916e252c Fixes a cache null ref issue in ClearCacheItem (patch by Sir Stéphane Gay) 2012-01-10 10:59:03 -01:00
agrath 6f5f7a7be5 Add another to IntegerDataTypeModel identified from the Cultiv Razor Examples project 2012-01-09 21:08:41 -13:00
agrath e09c531404 Add two more guids to IntegerDataTypeModel identified from the Cultiv Razor Examples project 2012-01-09 20:56:38 -13:00
agrath 7b157c5083 Added IntegerDataTypeModel and HtmlStringDataTypeModel to the core and removed the internal integer upcasting code. Model will automatically apply for 'Numeric' data type. use umbraco.MacroEngines.RazorDataTypeModels.IntegerDataTypeModel to apply a staticMapping in umbracoSettings for a given datatype or alias as per previous commit 2012-01-09 12:58:15 -13:00
agrath e6f0c2a17c added umbracoSettings.scripting.razor.dataTypeModelStaticMappings to allow RazorDataTypeModels to be specified in the umbracoSettings.config file. These static mappings override the dynamic mappings provided by the RazorDataTypeModel attribute, including priority (from previous commit). You can use this feature to force a particular data type [optionally on a specific document type and/or property] to use a specific model, or exclude the data type guid and just use the aliases. This feature is inteded to be used when you want to force a particular type to return as Integer. See next commit for detail about the Type Names to use. 2012-01-09 12:38:22 -13:00
agrath 6eae64eaf3 Merge 2012-01-09 08:27:22 -13:00
agrath 9f15137832 Made RazorDataTypeModel attribute multiple instance (meaning you can apply the same model to multiple data types without seperate copies of the model). Added a priority with a default of 100 to the model binder attribute. 2012-01-09 08:26:39 -13:00
hartvig 7e714b1a40 Work items: 30423 2012-01-09 11:56:04 -01:00
hartvig 140cf8ec2f Work items: 30659 2012-01-06 08:50:55 -01:00
hartvig ad4e5e841d Work items: 30657 2012-01-06 08:39:26 -01:00
hartvig 39f3c377be Work items: 30660 2012-01-06 08:32:50 -01:00
hartvig c9160dfdda Work items: 30630 2012-01-06 08:06:57 -01:00
vnbaaij@hotmail.com b3aaef7d0e Fixes issue #30422 The textbox was filled with the physical path (i.e /parent/file) to the file. It only needs the loggical path (i.e. parent/file) 2011-12-29 11:49:16 -01:00
hartvig eb19283673 Updating version number to 4.7.1.1 2011-12-22 10:23:57 -01:00
hartvig ea0ffc8ea5 Work items: 30273 2011-12-22 10:20:17 -01:00
hartvig b0f0777952 Merge pull request 2011-12-22 10:00:57 -01:00
hartvig 6ecedd51bb Minor updates to macro rendering and re-adding unused methods but this time marked obsolete for b/w compat. 2011-12-22 09:35:06 -01:00
vertino deb8e46df8 Removed the reference to 'umbracoGui.css'. 2011-12-21 18:03:40 +00:00
agrath fde12a532c Merge 2011-12-20 08:08:35 -13:00
agrath d6fd2304f1 Added support for Decimal on UserControl macros and fixed an issue reported by attack_monkey where usercontrol macro properties that were not set caused FormatException rather than default values 2011-12-20 07:44:43 -13:00
sgay 5aa76b1859 bugfix macro.cs issue with cache key 2011-12-20 13:41:51 -01:00
agrath e731fb5b03 Fixed an issue with && in DynamicNodeList.Where causing False&&False to be true 2011-12-19 13:51:11 -13:00
TomF@TOMF11.cp.local f740cf50c2 Fix for 26965 - Cannot delete member when login consist of digits 2011-12-15 20:38:35 +05:00
sebastiaan 9736e627c5 Fixes U4-650 Member section, the "Other" node does not work on SQL CE 2012-08-30 10:44:48 -02:00
sebastiaan a4bc45528a Fixes U4-514 - MediaType.GetByAlias throws if alias isn't found 2012-08-30 08:38:49 -02:00
agrath b34b395d9f Merge 2011-12-04 15:10:59 -13:00
agrath 3b0f2804fd Fixed IsHelpers on IGrouping (DynamicNode.GroupBy) 2011-12-04 15:07:58 -13:00
hartvig aec48c7df9 Major refactor of macro.cs, fixing huge memory leak in caching of xsltExtensions. Work items: 30616, 30522 2011-11-25 14:03:09 -01:00
starfighter83 d6341e73b6 Fixes: TinyMCE Embed Media - Insert youtube video not working
Work items: 30378
2011-11-16 10:21:52 -01:00
starfighter83 82d1a980f7 updates to tinyMCE media plugin, working again except the preview in the dialog 2011-11-15 15:06:35 -01:00
starfighter83 6fafe1ede1 Merge 2011-11-15 07:36:47 -01:00
starfighter83 46e44fd5d1 Fixes issue with default 404 handler and culture based error pages when a dummy domain is used to attach the language 2011-11-15 07:34:19 -01:00
hartvig d0e1a23274 WIP updates to macro engine (better error handling). Be aware that it breaks current build! 2011-11-10 08:07:16 -01:00
mattbrailsford de378a7bcb Updatedt uGoLive to latest dll 2011-11-09 07:57:25 +00:00
mattbrailsford 2ee63d5790 Merge 2011-11-08 21:44:45 +00:00
mattbrailsford a2b3f62aba Updated uGoLive to v1.1 2011-11-08 21:43:23 +00:00
hartvig 0af3ae40db Found an error in the loading of cached controls (MacroEngine and .NET controls) that could result in empty macro cache under heavy load 2011-11-07 10:07:22 -01:00
mattbrailsford 5ee80bc9cc Updated uGoLive js script to latest 2011-11-01 19:28:12 +00:00
mattbrailsford 1452b869a8 Updated uGoLive js script to latest 2011-11-01 19:06:33 +00:00
mattbrailsford 19eebba8cc Added uGoLive dashboard 2011-11-01 16:55:06 +00:00
agrath 95e985b96d Fixed umbraco.cms.businesslogic.Tags.Tag.AddTagsToNode so it works on SqlCE. Added umbraco.cms.businesslogic.Tags.MergeTagsToNode 2011-10-31 10:16:44 -13:00
DougM 9a19106b22 Fix for workitem #30553 'Umbraco unique naming issue' 2011-10-26 19:56:21 -01:00
hartvig 62cf50ba8d Work items: 30041 2011-10-24 10:41:41 -02:00
hartvig 9da185f330 Adds single quote to the default list of characters to exclude from niceurls 2011-10-24 06:57:14 -02:00
agrath ad0c67365f Missed one of the if statements 2011-10-16 09:25:20 -13:00
agrath 79f4925faf Fixed a null in @Library.Wrap check that wasn't short circuiting as intended 2011-10-16 09:24:14 -13:00
sgay a0a2037813 fix #30534 - extra <br/> tags in RTE 2011-10-11 10:02:32 -02:00
agrath 3baaa9173e Changed the behaviour of Library.NodeById and Library.MediaById with invalid ids to return DynamicNull and checked for this in DynamicNode's obsolete methods to maintain backwards compatibility 2011-10-09 07:06:52 -13:00
agrath 49877c4874 Made @Library.NodeById and @Library.MediaById return DynamicNull when the node was not found, rather than an empty DynamicNode instance with Id == 0 (Which is what NodeFactory returns). To support backwards compatibility, DynamicNull supports .Id == 0 and .Name == " 2011-10-09 06:43:37 -13:00
agrath c7e1350abd Added .Name [string.Empty] and .Id [0] to DynamicNull and added implicit casts to int and string - backwards compat support for next commit 2011-10-09 06:36:56 -13:00
agrath 0851c04646 Made the new @Library.StripHtml (HtmlAgilityPack based) handle strings which don't contain HTML 2011-10-09 06:24:06 -13:00
agrath 407f78c84b Made OrderBy(Name) and OrderBy(name) work the same as OrderBy(nodeName) 2011-10-09 06:16:24 -13:00
agrath 293007b8f0 Merge 2011-10-04 08:36:55 -13:00
agrath 5d0a9e63e2 Rewrote @Library.StripHtml to use HtmlAgilityPack rather than a forward only string walker 2011-10-04 08:34:34 -13:00
hartvig 07a384d4f8 Work items: 30431, 30513 2011-09-29 09:45:50 -02:00
hartvig 7b1bb810d3 Work items: 29973 2011-09-27 07:23:16 -02:00
hartvig 300a31d6b0 Adds further validation to the Umbraco Member APIs to not allow a loginname as an empty string 2011-09-27 07:18:36 -02:00
hartvig ac8e9828e9 Updates to member username validation (throw nicer exceptions) 2011-09-27 07:01:22 -02:00
hartvig 12c6124714 Work items: 30028 2011-09-27 06:23:22 -02:00
hartvig b18612390a Fix by dimitri_kourk for 4.7.1 issue with Preview. Work items: 30502 2011-09-26 08:50:56 -02:00
agrath b7caa18309 Added a fake getter method to .Items on DynamicNodeList that was tripping up the latest uBlogsy beta. Could be a backwards compatibility issue 2011-09-22 13:10:01 -12:00
agrath 10529d9a9a Fixed another issue where CSV strings were swallowed by DynamicNode trying to interpret them as integers. This upcast will now only happen if you are using the datatype Integer/Number 2011-09-22 11:56:07 -12:00
agrath 84628a991e Fixed an issue where custom properties (e.g. not the defaults that are in examine) on media items would come back as XML representations when they were empty strings.
For example, a property, caption would come back as <caption></caption> if empty.
The processing code assumed that because the .Value was empty, the property contained XML but didn't check to see if it had children or attributes before returning the XML representation.
2011-09-22 11:20:09 -12:00
agrath a7d8d3c6c2 Fixed a StackOverflow when using .Descendants on Media 2011-09-21 22:31:18 -12:00
agrath 4221d8a53f Added missing constructor overloads back onto DynamicMedia 2011-09-21 21:29:52 -12:00
agrath 0eba71171b Merge 2011-09-21 21:22:57 -12:00
agrath 0c9edb5fbc Fixed an issue with HasValue recursive overloads not passing the recursive flag down to GetProperty 2011-09-21 21:20:08 -12:00
hartvig 5aa8868248 Work items: 30500 2011-09-22 06:42:18 -02:00
hartvig feeba931bc Default config setting was wrong 2011-09-21 08:05:44 -02:00
hartvig 82c0ac805c Merge 2011-09-21 05:11:14 -02:00
hartvig 1ffbbb257d Setting version number to 4.7.1 2011-09-21 05:09:53 -02:00
Shandem d1d96c6d58 Fixed model: 30493, 30471 2011-09-20 20:39:03 -10:00
indra_k af992cccfe work item 30487
will cause exception when Masterpages folder contain a directory without skin.xml
possibly caused by unclean skin uninstall
src/Umbraco.Web/umbraco.presentation/umbracoLiveEditing\Modules\SkinModule\SkinCustomizer.ascx.cs
2011-09-20 07:13:14 -07:00
sebastiaan 65af083996 U4-708 New document sort order only needs to be set in 1 place, no seperate update needed for documents in root
Changed the name of the method to GetNewDocumentSortOrder to be more accurate
2012-08-30 03:39:17 -02:00
neehouse bf59d1fca8 Clear response before redirect on ensured pages and end response on transfer. 2011-09-19 21:00:48 +04:00
hartvig 2d10702238 Work items: 30480 2011-09-16 09:32:04 -02:00
Darren@Darren-Laptop 132f6405ed Fix Codeplex #30479 - Dynamic assemblies in Umbraco cause XSLTs to break - TypeFinder.cs. Just return if the assembly is dynamic. 2011-09-16 10:21:57 -01:00
hartvig 2f784920a9 Fixes in regards to trust initialization and TypeResolver 2011-09-15 09:38:28 -02:00
hartvig 017075d4f6 Setting 4.7.1.Beta version number 2011-09-15 08:37:38 -02:00
hartvig 8dcc8251f5 Work items: 23386 2011-09-14 19:13:24 -02:00
hartvig 62249b989b Final speed optimizations for SQL CE 4... 2011-09-14 19:07:09 -02:00
hartvig 238885746c Work items: 30201 2011-09-14 18:37:49 -02:00
hartvig 40495005ac Adios dreaded lock screen. You'll only be missed by bankers. But they'll have the option to enable it... Work items: 30310 2011-09-14 18:05:51 -02:00
hartvig 1eb0d3581b Work items: 30473, 30193 2011-09-14 17:44:34 -02:00
hartvig 8a43220657 Work items: 30204 2011-09-14 17:25:30 -02:00
hartvig eb3cb32965 Error in previous commit 2011-09-14 16:20:39 -02:00
hartvig 910af5ea99 Work items: 30363 2011-09-14 16:18:05 -02:00
hartvig 3522d68755 Work items: 29795 2011-09-14 16:02:32 -02:00
hartvig c32e813210 Updates to internal permission handling in Umbraco 4.7.1 2011-09-14 13:52:33 -02:00
scarta 6e77a09008 Issue 30472 - Fixed exception where 'Item has already been added...' is thrown during umbraco.controls.ContentControl.CreateChildControls.
ContentTypes are cached, but contain a lazily-loaded list which could potentially be populated twice by two separate requests.
2011-09-14 12:47:08 -01:00
Dallas taylor f9a33b5471 Removed logging of the publish event from the presentation. The event is also logged in the publishWithResult() method, and was causing the Publish event to appear twice in the Audit Trail. 2012-08-03 06:10:16 +04:00
tom.fulton@Tom-PC.imulus.local 09184041b7 Fix U4-722 - Feature: Add TinyMCE email address detection (mailto) 2012-08-31 02:48:55 +06:00
sebastiaan 1118e1e3fd Have to duplicate previous fix in the Umbraco.Web project as Umbraco.Web.UI gets overwritten with it 2012-09-02 16:17:12 -02:00
abutland 6f64e480df U4-53: auto selections of allowed/default templates
- set default on selection of allow template if not already set
 - de-select default template if template set as not allowed
 - select allowed template if default template selected
2012-08-19 18:28:13 -02:00
hartvig cffed78df3 Work items: 30151 2011-09-12 14:14:11 -02:00
hartvig 6da379d36d Work items: 30368 2011-09-12 12:47:35 -02:00
hartvig f15903a846 Work items: 30363 2011-09-12 12:31:27 -02:00
hartvig c315cfbbcd Work items: 29670 2011-09-12 11:41:21 -02:00
hartvig ee63128ac2 Work items: 28737 2011-09-12 11:26:27 -02:00
hartvig e4cf319f46 Error with previous push 2011-09-12 11:22:09 -02:00
hartvig 4c2ffb00f9 Work items: 30148 2011-09-12 11:19:37 -02:00
hartvig c1fa3bfb23 Work items: 30075 2011-09-09 10:21:21 -02:00
hartvig b083cb8837 Fixes bugs in 4.7 preview engine. Work items: 30208, 30288 2011-09-09 09:46:04 -02:00
agrath 6bd344834c Merge 2011-09-06 10:30:35 -12:00
agrath 9760ad29c8 Added a cached fallback for custom properties for media when that media item was loaded from examine as the examine fields collection doesn't contain them 2011-09-06 10:28:43 -12:00
agrath b5dddc5e7c Bypassed a dictionary lookup if the datatype is Guid.Empty 2011-09-06 10:27:20 -12:00
hartvig 7cdb0b48de Merge 2011-09-06 07:44:51 -02:00
hartvig caad0e25d1 Work items: 30313, 29864 2011-09-06 07:43:36 -02:00
PerPloug e87205c1fa Merge 2011-09-06 07:35:34 -02:00
PerPloug 95d53d66f3 default.build update to 4.7.1 paths 2011-09-06 07:32:48 -02:00
PerPloug ac7f7d97c4 Updated nant file 2011-09-06 07:28:24 -02:00
hartvig 88316b05c4 Work items: 29835 2011-09-06 07:26:17 -02:00
hartvig 8b87f0fd46 Refactoring of Umbraco Members auth. Work items: 30237, 30334, 30350, 30342 2011-09-06 07:08:15 -02:00
hartvig 39706538f9 Work items: 30448 2011-09-05 06:44:19 -02:00
hartvig cd3c44ae7c Work items: 30446 2011-09-05 06:39:17 -02:00
agrath 3cc136a15c Merge 2011-09-01 08:48:43 -12:00
agrath e2a60d55ff Changed the return type of Pluck when the list was empty from DynamicNull to List<Object>[0] 2011-09-01 08:46:18 -12:00
agrath c097b0f250 Prevented OrderBy from throwing an error when presented with an empty list 2011-09-01 08:45:43 -12:00
hartvig 1c8579123d Work items: 30359 2011-08-31 07:12:30 -02:00
starfighter83 9ad129baad Partially applied pull request 1339, related to GlobalSettings.UseSSL 2011-08-30 07:01:32 -02:00
starfighter83 cc73179b2b Merge 2011-08-30 06:24:35 -02:00
starfighter83 4ad18c1d7b Fixes: RTE Style Selector wraps elements in spans and doesn't allow removal
Applies pull request 1459
Work Items: 30440
2011-08-30 06:23:30 -02:00
agrath 51c76dfcd4 Merge 2011-08-29 11:22:08 -12:00
agrath 265fc0b3ca Improved the handling of DynamicNull when using OrderBy 2011-08-29 11:19:34 -12:00
starfighter83 2e4117d691 Fixes small issues with tinymce config
Work Items: 29945 29829
2011-08-29 09:03:45 -02:00
starfighter83 124da8781b Applies pull request 1121
Work Items: 27050
2011-08-29 05:40:16 -02:00
starfighter83 7edac5756d Fixes: Incorrect url used in GzipModule Disables Rich text editor in Port Forward environment
Work Items: 29936
2011-08-26 06:42:56 -02:00
starfighter83 b73a579a94 Fixes: Data types cannot be renamed
Work Items: 29281
2011-08-25 10:40:59 -02:00
starfighter83 fdbe788d9b Fixes: Security bug with Dashboard (updated dashboard.config to add access node and deny editor and writer on kits control)
Work Items: 30331
2011-08-25 09:26:27 -02:00
starfighter83 9a7d75e1f3 Fixes: Razor example template not correct
Work Items: 30329
2011-08-25 07:38:57 -02:00
starfighter83 c095148dbe Fixes: IE Display Issue with the Move Content dialog
Work Items: 30199
2011-08-25 07:17:20 -02:00
starfighter83 5f8da87c23 Fixes: umbraco.library.GetItem no longer retrieves elements of the node
Work Items: 29078
2011-08-25 06:20:40 -02:00
starfighter83 2db1dfe7fb Fixes Deleting/Changing the default language en-US not possible
Work Items: 28788
2011-08-25 06:02:34 -02:00
starfighter83 97180ded7d Merge 2011-08-25 05:46:03 -02:00
starfighter83 f2243c9d22 Updates jquery,jquery UI and some related scripts/stylesheets, fixes issue with IE9
Work Items: 30137
2011-08-25 05:45:04 -02:00
Shandem e7271ad79b updated config 2011-08-24 16:57:59 -10:00
starfighter83 273ebf49df Merge 2011-08-24 07:24:46 -02:00
starfighter83 656095caee Fixes: Not able to use textMultiLine as macro parameter in wizard
Work Items: 29883
2011-08-24 07:24:13 -02:00
agrath 9925c95d2c merge 2011-08-18 15:00:35 -12:00
agrath 4d3c145be9 Added support to DynamicQueryable to support property accesses via reflection on DynamicNode properties, e.g. list.GroupBy(uBlogsyPostDate.Date) 2011-08-18 14:30:42 -12:00
hartvig 2ba2c0fd61 Work items: 30410 2011-08-18 13:24:55 -02:00
hartvig 96cbe17ea9 Work items: 30418 2011-08-18 13:17:59 -02:00
hartvig 0efabf6fe4 Merge 2011-08-18 07:39:57 -02:00
hartvig 0ff6775e55 Fixes "CSS path does not change when umbracoCssDirectory is added in web.config" Work items: 30417 2011-08-18 07:38:58 -02:00
agrath c657236f7c Fixed DynamicBackingItem autodetection of Media used in NodeById, now you can use NodeById to get Media or Content nodes 2011-08-17 21:27:09 -12:00
agrath b023455068 Added an overload to NodesById and DynamicBackingItem/DynamicNode to signify you want a List<int> to be treated as media, not content 2011-08-15 10:18:15 -12:00
agrath f361e20482 Traced exception message out on DynamicNode 2011-08-11 15:36:54 -12:00
agrath fc770dd50f Merge 2011-08-11 13:05:03 -12:00
agrath b6629c9f65 Merge 2011-08-11 13:03:40 -12:00
agrath 918d5bc720 Fixed a VirtualUrl issue with images in TinyMCE editors not having the ~/ replaced when SystemDirectories.Media contained a ~ and the image was larger than the TinyMCE size 2011-08-11 13:03:27 -12:00
agrath 46253212da Added a ContainsKey check to a dictionary and expanded shorthand ifs to longhand for readability 2011-08-11 13:02:47 -12:00
psterling 5fb5019529 Added Polish language file - credit to the folks from Microsoft Poland for the translation work 2011-08-09 23:07:27 +07:00
psterling 647882af15 Added Portuguese Brazil language file - credit to Carlos Casalicchio for the translation work 2011-08-09 23:04:19 +07:00
starfighter83 96a8b190a4 Fixes: Create Media Button Permissions BUG
Work Items: 30396
2011-08-08 06:36:31 -02:00
agrath 860a33d9b3 Changed return type of Library.StripHtml to be HtmlString to facilitate partial strips feature still returning HTML and not wanting to encode the result 2011-08-07 14:07:09 -12:00
starfighter83 3cfe526d9d Fixes: Changing icon on membertype does not do anything
Work Items: 29853
2011-08-04 08:17:35 -02:00
starfighter83 0d65c29ffd Fixes: Empty string for LoginName can be saved in Members interface and breaks Member creation
Work Items: 30367
2011-08-03 10:22:36 -02:00
starfighter83 47e4239bbc Fixes: Renaming XSLT deletes the file
Work Items: 29287
2011-08-03 08:27:17 -02:00
starfighter83 ba96212505 Fixes issue with Base and dictionary items
Work Items: 30382
2011-08-03 08:07:25 -02:00
starfighter83 5363a328a0 Merge 2011-08-03 07:50:30 -02:00
starfighter83 5843b5deaf Adds confirmation before deleting prevalue
Work Items: 30384
2011-08-03 07:49:08 -02:00
agrath e2e0186174 Added TryGetIndex to DynamicNodeList to allow [] indexing 2011-08-01 11:11:00 -12:00
agrath 7d3cfa4151 Added .Except, .Intersect, .Union and .Distinct to DynamicNodeList 2011-07-31 17:05:44 -12:00
agrath adc3a36ac2 Changed the decimal parsing in ConvertPropertyValueByDataType so it only tries to do this if the string contains the current decimal seperator character to prevent CSV strings from converting to decimals in cultures where , is used as the decimal seperator 2011-07-31 16:34:58 -12:00
agrath 9d996aaf43 More @Library.Truncate parser fixes 2011-07-31 16:27:43 -12:00
agrath 13e5e5a8df Fixed a bug in @Library.Truncate regarding attempting to close tags which were not open when the truncation occurred before any tags had been opened. 2011-07-31 11:16:45 -12:00
agrath 2ea3c4b624 Got rid of InternalHtmlString as it wasn't being used and was throwing off some of the RazorLibraryCore overloads 2011-07-31 10:10:01 -12:00
agrath d022b4a52a Added the datatype GUID to the DateTime parsing code for the Date picker without time 2011-07-28 11:51:04 -12:00
agrath 3a7609cba0 Another fix for Catch FileNotFound exceptions in ExamineBackedMedia which are thrown by Examine currently (bug?) on a LoadBalanced file store after a publish occurs. When caught, ExamineBackedMedia will fall back to GetMedia as if the media item wasn't in the examine index 2011-07-28 09:44:23 -12:00
agrath 4cbd06dad9 Added missing .css to csscolors on the EditorType.HTML as it was throwing 404s, probably meant that embedded style in a template wasn't highlighted properly? 2011-07-28 09:18:02 -12:00
agrath e72bd130e3 Further changes to fix bug with 'incorrect number of lambda paramters' issue with .Where when using && and || 2011-07-26 14:02:25 -12:00
agrath c354acb388 Added umbraco.library:NiceUrlWithDomain for returning the node URL including the domain & root irrespective of site settings. Caches seperately to the standard NiceUrl method so that you can use both without cache collisions 2011-07-26 14:01:37 -12:00
agrath d0fc01751c Added some more entries to .hgignore for when you're testing with a starterkit installed 2011-07-26 13:59:36 -12:00
agrath 30cc6148e7 Added web.config transform file for ssaodsk01 2011-07-26 13:58:55 -12:00
starfighter83 082d680a36 Adds validation to data editor settings (IsRequired and RegexValidationStatement) 2011-07-26 11:18:22 -02:00
starfighter83 23ab698665 Adds default value support to Field data editor setting type 2011-07-26 08:31:07 -02:00
starfighter83 f9f67d4e2e Adds default value support to DocumentType, MediaType, MemberGroup, MemberType data editor setting types 2011-07-26 08:28:12 -02:00
starfighter83 98a1189353 Adds default value support to Path data editor setting type 2011-07-26 08:25:39 -02:00
starfighter83 d8eb584d7a Adds default value support to Checkbox data editor setting type 2011-07-26 08:21:46 -02:00
starfighter83 738380e32a Adds default value support to CheckBoxList data editor setting type 2011-07-26 08:18:27 -02:00
starfighter83 57edbcae25 Adds default value support to DropDownList data editor setting type 2011-07-26 08:17:35 -02:00
starfighter83 0f84165b2b Adds default value support to ListBox and ListBoxMultiple data editor setting types 2011-07-26 08:15:28 -02:00
starfighter83 ff02f5a336 Adds default value support to Password data editor setting type 2011-07-26 08:09:59 -02:00
starfighter83 b7446be08a Adds default value support to RadioButtonList data editor setting type 2011-07-26 08:08:40 -02:00
starfighter83 5c57c192c9 Adds default value support to TextArea data editor setting type 2011-07-26 08:04:52 -02:00
starfighter83 a03b9932ff Fixes: scheduled tasks stops
Work Items: 30376
2011-07-26 06:44:03 -02:00
agrath ae3357de0d Fixed a bug with .Where && and || throwing invalid number of parameters for lambda when both left & right were not lambdas, e.g. Visible && NodeTypeAlias != umbNewsArticleItem 2011-07-24 13:55:36 -12:00
agrath 821188a254 Added work desktop web.config xslt transform 2011-07-24 13:54:30 -12:00
agrath@gmail.com 31169380f8 Changed the return type of RTE to a different HtmlString (internal) so that it can be implicitly convertible for string for If comparisons. Added an extension method for string.HasValue so that .Where can invoke it to improve readibility when comparing RTE to empty string based on feedback from @cultiv. Cleaned up an empty if in DynamicQuerable 2011-07-21 20:19:54 -12:00
agrath@gmail.com 3737a8cf28 Catch FileNotFound exceptions in ExamineBackedMedia which are thrown by Examine currently (bug?) on a LoadBalanced file store after a publish occurs. When caught, ExamineBackedMedia will fall back to GetMedia as if the media item wasn't in the examine index 2011-07-21 13:15:20 -12:00
agrath@gmail.com ba965a95e9 Made ConvertPropertyValueByDataType return DynamicNull instead of empty string when the datatype is a Date/Time and the TryParse fails. Only applied DateTime parsing to datatype Date/Time rather than always trying it 2011-07-21 12:18:58 -12:00
agrath@gmail.com 80e6187436 Made DynamicNull implictly convertable to DateTime (.MinValue) to support next change 2011-07-21 12:17:55 -12:00
agrath@gmail.com 6dcf1fcd8e Slight optimisation in ExtensionMethodFinder. Previous commits fixed #30346 2011-07-21 11:42:34 -12:00
agrath@gmail.com 1a0c9c3e9f merge 2011-07-21 11:35:58 -12:00
agrath@gmail.com f6ab67ea78 Added support to ExtensionMethodFinder to do overload type resolution to locate the correct extension method based on types when there are multiple overloads available 2011-07-21 11:27:34 -12:00
agrath@gmail.com e8a941fc1f Added support for invoking extension methods on native properties on DynamicNode where the native property type is string (e.g. NodeTypeAlias, Name). Half fixes ContainsAny support 2011-07-21 11:25:15 -12:00
sgay c1ff80c52d Fix member cookie value encoding [#30350] 2011-07-21 14:48:39 -02:00
sgay f6eb9c77a9 Add RenderEvent to Macro control [#30362] 2011-07-14 06:54:14 -02:00
sgay f20931cfa4 Refactored Razor DynamicNode.XPath() to returns an empty list when no nodes are found, instead of throwing [#30361] 2011-07-14 06:47:40 -02:00
agrath@gmail.com ff5bf40905 Merge 2011-07-11 12:23:14 -12:00
agrath@gmail.com a66847587c Added pluck aggregates Sum/Average/Min/Max to DynamicNodeList 2011-07-11 12:20:02 -12:00
agrath@gmail.com d9dc90090b Changed @Library.MediaById(.) to return a DynamicMedia again so that specific media functionality can be added. DynamicMedia is just an empty subclass of DynamicNode currently 2011-07-11 11:27:31 -12:00
agrath@gmail.com 892a382eca Added HasValue overloads that function like If/Where shorthands for writing out a value if a property has a value, e.g. Class Name 2011-07-11 11:24:00 -12:00
agrath@gmail.com 17f6ee1c91 Made PropertyResult IHtmlString so if you @Model.GetProperty(propName) then you get the value but it's still a PropertyResult/IProperty 2011-07-11 11:20:31 -12:00
agrath@gmail.com 48c11f6b45 Added TryInvoke and TryGetIndex methods to DynamicNull to prevent crashes on missing properties 2011-07-11 11:13:31 -12:00
agrath@gmail.com da3364c065 Added umbraco\presentation\umbraco\plugins\* to ignore 2011-07-11 11:12:47 -12:00
hartvig e196b4ec13 Fixes issues related to UrlResolving. Work items: 30353, 30324 and 30352 2011-07-07 14:21:04 -02:00
hartvig 0dff9c5dfa Fixes Ensure valid template aliases, work item: 30347 2011-07-06 09:45:02 -02:00
hartvig 93be92442c Fixes "Edit language broken", work item: 30332 2011-07-06 09:36:20 -02:00
hartvig e57c49a3f1 Solves "pressing enter in Locked screen triggers cancel instead of renew", work item: 30345 2011-07-06 06:23:36 -02:00
hartvig 89b89655e4 Fixes work items: 30337 2011-07-06 05:49:58 -02:00
hartvig 1c26ddd87f Adds CTRL+S support in all edit pages + loads of warning clean up 2011-07-05 11:30:06 -02:00
agrath@gmail.com 304e7976bc Detects a null reference exception which occurs when a document type is not transferred properly and cmsPropertyData is missing records and rethrow it with detail about the problem 2011-07-04 15:17:44 -12:00
agrath@gmail.com d5e3ceecec Made IsHelper methods on DynamicNode and DynamicXml return HtmlString instead of string 2011-07-03 22:41:33 -12:00
agrath@gmail.com d81aed3dc5 Fixed ExamineBackedMedia.NodeTypeAlias - was using the wrong Values key 2011-07-03 21:02:35 -12:00
agrath@gmail.com cfcae904ba Added implicit conversion between DynamicNull and bool (false) which allows you to go @if(@Model.dynamicNullProperty) 2011-07-03 19:25:16 -12:00
agrath@gmail.com 8ab1c11bd1 Made @Library.NodeById and @Library.MediaById DynamicNull safe, will return DynamicNull instead of 'Cannot instantiate a DynamicNode without an id' 2011-07-03 18:31:47 -12:00
agrath@gmail.com 41d3c9f3d9 Formatting in Linq Foreach of IRazorDataTypeModel cache build code 2011-07-03 10:14:04 -12:00
agrath@gmail.com 1164ea3ab1 Fixed a bug where if the ContentType (DocumentType) tree was a different tree to the Content or Media (Node) tree then the datatype lookup could fail when retrieving a property recursively.
If GetProperty recursively walked up the content tree to the first node that defined the property and eventutally found it, and the NodeType[Alias] of the node it was found on was not a parent of the original content's node type, then the lookup would fail.
Changed DynamicBackingItem.GetProperty (and PropertyResult class) to return the Node/Context where the property is being returned from and used this context's NodeTypeAlias as the in the data type lookup.
2011-07-03 09:32:29 -12:00
agrath@gmail.com 75d15cdc31 Made GetProperty break earlier if context/parent is null (prevents NRE) and slightly changed behaviour so that empty strings will go recursively to the parent. Added prefix to property access (_) which will cause the property to be looked up recursively. This syntax is used when you want to get the value recursively, but you want to still apply the IRazorDataTypeModel (as @Model.GetPropertyValue won't do that). Syntax is: @Model._propertyName - had to be a _ as that is legal c# 2011-07-02 17:29:47 -12:00
agrath@gmail.com 49a0c8a11a Changed return type of @Library.If to IHtmlString so that you can return HTML with it 2011-07-02 17:27:27 -12:00
agrath@gmail.com 8435067e98 Added overload to @Library.If for trueValue only 2011-06-30 11:56:16 -12:00
agrath@gmail.com eff692249d Made the int.TryParse and decimal.TryParse in DynamicNode culture aware so that , and . as numeric/decimal seperators are handled properly 2011-06-30 11:00:15 -12:00
agrath@gmail.com 0589d34abd Changed the implementation of IRazorDataTypeModel to allow for immutable types to be returned such as string, int. Thanks @zpqrtbnk 2011-06-30 10:32:50 -12:00
agrath@gmail.com 9b4a08950c Added support for attribute first child fallback in DynamicXml 2011-06-30 10:16:30 -12:00
agrath@gmail.com c7c496cadf Removed a razor namespace added in an early 4.7.1 build that shouldn't have been there anymore. Wasn't used when debugging but when doing a nant build it got included 2011-06-29 17:47:28 -12:00
agrath@gmail.com 5988ff5da8 Added a try/catch to GetPropertyInternal to catch a potential MissingMethodException when trying to locate a property that didn't exist 2011-06-29 17:45:08 -12:00
agrath@gmail.com cce3cdc18b fixed some potential crashes in datatype lookups and a keyalreadyexists exception in datatype lookup 2011-06-29 17:36:37 -12:00
agrath@gmail.com 0475b48a8c Fixed an issue with new DynamicNode() and DynamicNode.XPath using the wrong overload, thanks @cultiv 2011-06-29 17:18:10 -12:00
agrath@gmail.com 56e9cdb045 Added overloads to @Library.Truncate and @Library.StripHtml for DynamicNull to prevent errors when properties may not exist 2011-06-27 16:52:04 -12:00
agrath@gmail.com ba8d8f8787 Changed @Library methods which return Dynamic* types to return type dynamic as methods on DynamicNodeList etc wouldn't work due to the type not being dynamic. Because @Model.NodeById got moved to @Library.NodeById and @Model is dynamic, this problem didn't exist before 2011-06-27 12:45:17 -12:00
agrath@gmail.com a747e4dddc Merge 2011-06-26 11:27:52 -12:00
agrath@gmail.com 0b47da8d41 Added @Library.Truncate to simulate string.left but not error when string is < length and be html tag aware. Optionally adds elipsis to end of strings 2011-06-26 11:26:02 -12:00
agrath@gmail.com dc32f500ae Added @Library.StripHtml to remove HTML tags from a string 2011-06-26 09:51:46 -12:00
hartvig f1ee827ece SQL CE 4 double open connection in VerifyConnection method. Thanks Jesper Hauge/Erik Ejskov Jensen for catching that one! 2011-06-23 07:44:13 -02:00
agrath@gmail.com b59b5052ba Bug fix: slightly changed behaviour of ordering code when dealing with dynamic properties (e.g. user properties not fields on DynamicNode) and missing data, thanks @Cultiv for the report 2011-06-22 01:08:15 -08:00
agrath@gmail.com c63b58612d Renamed a variable on one of the overloads of @Library.Wrap and changed the behaviour of Visible so that it applies at render time, not tag creation time instead of returning null, this will enable chaining for invisible tags as well as being able to change your mind about whether the tag should render or not 2011-06-20 11:11:18 -02:00
agrath@gmail.com 7209d68028 Realised that IHtmlString is an interface and may have a method I can implement to avoid .Write() or .ToHtml() on HtmlTagWrapper. Implemented and tested this. Victory. 2011-06-20 07:47:29 -02:00
agrath@gmail.com d0d48f18ff Removed upcasting for uComponents multitreenode picker in DynamicNode ConvertPropertyValueByDataType in favour of the new plugin interface [I]RazorDataTypeModel 2011-06-19 14:40:10 -02:00
agrath@gmail.com c5906c0c79 merge 2011-06-19 08:35:49 -02:00
agrath@gmail.com 754210456c Renamed ssaolap01 dev database 2011-06-19 08:19:45 -02:00
agrath@gmail.com 00141ba801 Added a new feature for plugin developers to create a model class that DynamicNode will return for their data type instead of the underlying type 2011-06-19 08:19:11 -02:00
agrath@gmail.com 315003c16f Changed settings to developer in the erorr message 2011-06-19 07:34:40 -02:00
agrath@gmail.com 28652815ae Improved the error message for a KeyNotFound exception in datatype factory 2011-06-19 07:27:47 -02:00
agrath@gmail.com 3480a5d957 Made DynamicNodeList.XPath only work for content as it is the only one with an XML Backing document 2011-06-18 15:46:34 -02:00
hartvig 82547abe40 Adds missing SqlCeContextGuardian file 2011-06-17 09:20:59 -02:00
hartvig 6a1aa9a8e6 Massive performance increase on SQL CE4 thanks to Jesper Hauge and Erik Ejlskov Jensen (SQL CE MVP) from Twins #h5yr Work items: 28347 2011-06-17 07:03:45 -02:00
agrath@gmail.com cdc4c86325 Added ContainsKey check to Language Dictionary to fix a KeyAlreadyExists exception on app startup. Fixes work item 30195 2011-06-16 11:45:01 -02:00
agrath@gmail.com 940239f1f2 Added HtmlTagWrapper.AddChildren and HtmlTagWrapper.AddChildrenAt methods 2011-06-16 11:02:23 -02:00
agrath@gmail.com d4ed1efcf5 Fixed bug with HtmlTagWrapper.Write not writing if no children or attributes but class names were set 2011-06-16 10:59:36 -02:00
agrath@gmail.com 27aebac7e0 Aliased HtmlTagWrapper.Write as HtmlTagWrapper.ToHtml to match DynamicXml.ToHtml 2011-06-16 10:58:13 -02:00
agrath@gmail.com 86c9e8bde0 Added IsNotEqual IfHelper to DynamicNode and DynamicXml 2011-06-16 10:55:41 -02:00
agrath@gmail.com 9a1cfafb74 Made DynamicXml implicitly search child[0] if no match for dot notation chained child, fixes a regression/backwards compat change break due to the way elements are now consistently returned as sets 2011-06-16 09:54:53 -02:00
agrath@gmail.com 97a9d11cba Added ToHtml method to DynamicXml which allows you to get an IHtmlString back if you didn't want DynamicXml for XML syntactically correct data 2011-06-16 09:29:38 -02:00
agrath@gmail.com ee57f4c449 Adds pageName attribute to DynamicNode
Rename NodeById to NodesById when dealing with multiple parameters
Fixes work item 30290 : Strip - in element and attribute names for DynamicXml
2011-06-13 15:21:16 -02:00
agrath@gmail.com 2c22bea92f Renamed inconsistently named multiple NodeById methods 2011-06-13 12:59:36 -02:00
agrath@gmail.com 8112f240be Fixed an issue with GetProperty not finding properties according to the same case rules as DynamicNode and not falling back to local properties when the property wasn't on the Document Type 2011-06-13 12:28:35 -02:00
agrath@gmail.com 0a04252780 BugFix: Reworked GetProperty to support camel case conversion and reflective property access for non DocumentType properties 2011-06-13 10:15:29 -02:00
agrath@gmail.com 74617e4368 merge 2011-06-13 09:36:44 -02:00
agrath@gmail.com 4eca6e7fbf updated ignore file and adding web.config transform 2011-06-13 09:35:34 -02:00
agrath@gmail.com 288bbe7b91 Added OrderBy to Grouping so the nested lists can be ordered by (supports single property only but does handle desc)
You can control the Group order by manipulating the source list order. Groups will be enumerated in the order they occur.
2011-06-13 09:12:11 -02:00
agrath@gmail.com d2ddd9a284 Implemented DynamicNodeList.InGroupsOf, DynamicNodeList.GroupedInto and DynamicNodeList.GroupBy 2011-06-13 08:53:06 -02:00
agrath@gmail.com fbe150c1ce Fixed a stack overflow in Wrap 2011-06-13 08:39:32 -02:00
agrath@gmail.com 918cdcdffb Added XPath filter & search to DynamicXml class
Added empty method stubs to DynamicNodeList for grouping functionality
2011-06-13 07:13:00 -02:00
agrath@gmail.com b79586b4d7 Added new methods to HtmlTagWrapper: AddChild(TagWrapperBase [text or node]), AddChild(string), AddChildAt, RemoveChildAt, ClearChildren
Added new overloads to Library.Wrap - Adding children in one call and applying predicate check (bool - use @Model.Where() to return a bool)
Added new DynamicNode.Where overload that doesn't ternary text and just returns true/false (same as Element.Match in prototypejs)
2011-06-13 07:01:04 -02:00
hartvig 8279e4d471 Fixes issue with compatibility between .NET Membership and Umbraco Members on logout. Work items: 30171 2011-06-13 06:44:50 -02:00
agrath@gmail.com 60892f9909 fixed .Attr with HtmlTagWrapper 2011-06-12 20:33:48 -02:00
agrath@gmail.com 0cc7799797 HtmlTagWrapper don't write if empty, class methods, attribute methods 2011-06-12 20:12:52 -02:00
agrath@gmail.com 019141c042 Added Anonymous property collections to HtmlTagWrapper 2011-06-12 19:06:09 -02:00
agrath@gmail.com 942a3c3d72 HtmlTagWrapper, a new class to emit content wrapped in HTML tags. Similar to a cross between HtmlGenericControl and Webforms control and Razor HTML helpers.
First commit - internal attributes, classes, children and single tag wrapping.
Todo: don't write if empty, class methods, attribute methods, anonymous attribute parsing
2011-06-12 15:03:38 -02:00
hartvig f3bedcd707 Updates to template editor to insert macro/item elements as self closing tag 2011-06-12 14:32:38 -02:00
agrath@gmail.com 11b64ccd0d Fixed an issue with parent recursion and an ArgumentException being thrown when I really want null if no parent
Added DynamicNode.Where to enable string predicate parsing IIF
Added overloads to DynamicXml which take an xml string and a XPathNodeIterator
Added If method to @Library to make ternaries easier to read in a Razor template (no need for extra brackets)
Added ToDynamicXml overload methods for XPathNodeIterator and XElement to @Library
2011-06-12 13:34:15 -02:00
hartvig 1a6db0ad8e Issue with Media cache when moving, work items: 30326 2011-06-12 13:25:48 -02:00
hartvig 90e1d97ad7 Performance issue in ResolveUrls, work items 30324 2011-06-12 12:59:12 -02:00
agrath@gmail.com 1f6cc18ba4 Clarified exceptions when using NodeById and MediaById and passing empty strings, e.g. if your source came from @Parameter 2011-06-12 12:17:00 -02:00
agrath@gmail.com 23145b9981 Added @Library.Concatenate and @Library.Join 2011-06-12 12:09:59 -02:00
agrath@gmail.com ce4763a956 Added @Library.Coalesce 2011-06-12 12:00:05 -02:00
agrath@gmail.com e2bbccdf6f Added fallback overloads to GetPropertyValue - GetPropertyValue(string alias, bool recursive, string fallback), GetPropertyValue(string alias, string fallback) 2011-06-12 11:55:38 -02:00
agrath@gmail.com 0ea4e2f891 Added IsHelpers to DynamicXml
Added As<T>() [ return (item as T); ] to @Library
Added ToDynamicXml(string) to @Library
2011-06-12 11:50:35 -02:00
agrath@gmail.com b367f63c1d Fixed null reference problems with new dynamicbackingitem
Fixed recursive property null reference problems
Fixed issue with node having no children and property check crashing
Made DynamicXml behave more consistently based on user feedback
Added IsNull and HasValue to PropertyResult (comes back from GetProperty but you may need to cast it)
Added new Model.IsNull(string alias, bool recursive) and Model.HasValue(string alias, bool recursive) and Model.IsNull(string alias) and Model.HasValue(string alias)
2011-06-12 11:21:44 -02:00
agrath@gmail.com c6dd41c36a Deleted some unused class files 2011-06-12 08:23:28 -02:00
agrath@gmail.com f2d8363556 Added IsHelper methods back into DynamicNode after I accidentally removed them while refactoring
Added new IsHelper methods for IsModZero, IsNotModZero, IsPosition, IsNotPosition, IsNotFirst, IsNotLast
Added .Count to DynamicXML
Fixed Media .Url and .NiceUrl to bring back umbracoFile
Moved MediaById and NodeById implementations to RazorLibraryCore and deprecated original methods with redirection
Fixed parsing issue with ExamineBackedMedia XPathNodeIterator cast method
2011-06-12 08:23:10 -02:00
agrath@gmail.com 9c2a9f81f4 Finished ExamineBackedMedia implementation and fixed bug with GetMedia fallback in example code (didn't add current node attributes so was inconsistent compared to examine) 2011-06-12 06:40:18 -02:00
agrath@gmail.com d63ae05693 Got rid of DynamicMedia and DynamicMediaList implementations (still there but subclasses of DynamicNode & DynamicNodeList now) to enable navigation on Media
Started implementing ExamineBackedMedia instead of using new Media()
2011-06-11 22:15:01 -02:00
matt d727d67ad5 Fixed issue with registering adobe air mimetype when it is already declared at the server level (http://our.umbraco.org/projects/website-utilities/desktop-media-uploader/bugs,-feedback-and-suggestions/17101-Won't-Install) 2011-05-26 07:40:31 -01:00
agrath@gmail.com 40099d9d22 Made DynamicNode and DynamicMedia share an intermediary base class (that inherits from DynamicObject) rather than both inheriting from DynamicObject directly
Want to share some functionality between them
2011-05-21 14:55:10 -12:00
agrath@gmail.com cd13f8de55 Can't change the web.config for a 4.7.x release, redid implementation to not require web.config change 2011-05-21 14:47:57 -12:00
agrath@gmail.com 6a0dfc2c11 Razor @Library empty implementation 2011-05-21 14:34:46 -12:00
hartvig e99669d3ae SSL TLC and a little Macro RTE love. Fixes work items: 30285, 27438, 30295, 30286, 30261, 30192 2011-05-09 09:58:12 -02:00
starfighter83 ad3d064acb Merge 2011-05-09 05:05:37 -02:00
starfighter83 bef5f59c26 Fixes issue with installer hanging at 35% when doing upgrade 2011-05-09 05:04:20 -02:00
hartvig b6c6022272 Work items 30244 2011-05-04 09:40:54 -02:00
hartvig 157e96c935 Work items: 30272, 30280 2011-05-02 09:42:34 -02:00
starfighter83 0661842dea Fixes: Modal Dialogs closes when overlay is clicked
Work Items: 30264
2011-04-28 07:40:32 -02:00
starfighter83 96715d8ef3 Minor change to cms.businesslogic.template.Template.cs 2011-04-28 07:24:19 -02:00
starfighter83 2fa56aaca9 Fixed: Latest Edit dashboard is broken (4.7)
Work Items: 30262
2011-04-27 12:28:28 -02:00
starfighter83 013367c8b7 Fixed: Update Password Module breaks all other dashboard controls
Work Items: 30044
2011-04-27 12:20:05 -02:00
starfighter83 46683c78a9 Fixes: User Permission: Not able to edit page permission when long page names are there in the content tree
Work Items: 30265
2011-04-27 12:04:26 -02:00
starfighter83 7540e696cb Fixes: Rolling back the version of a Document with no Template specified causes a YSOD
Work Items: 30252
2011-04-27 10:56:01 -02:00
starfighter83 6c5941196f Forcing .NET 2.0 security rules, to make it possible to run in medium trust 2011-04-27 07:03:55 -02:00
starfighter83 badad9a1c3 small update to previous commit (move or copy dialog) 2011-04-26 13:01:39 -02:00
starfighter83 8f8b00fee9 Fixes issue with permissions on child nodes not being checked when doing a move or copy
Work Items: 30128, 30129
2011-04-26 12:24:18 -02:00
starfighter83 f1196aa088 Uses jeditable for key value prevalue editor inline edit, should support all chars now 2011-04-26 10:00:41 -02:00
starfighter83 7b66d80f5c Merge 2011-04-21 10:19:19 -02:00
starfighter83 8348d551f7 Small update when editing media, other props like width, height will also be refreshed in ui when uploading/deleting image 2011-04-21 10:18:41 -02:00
hartvig ff56d5ed22 Updates to code editor saving routines 2011-04-21 07:37:57 -02:00
starfighter83 8d0a227629 Fixes: Admin user is unable to remove the start node filed values
Work Items: 30255
2011-04-20 07:11:14 -02:00
starfighter83 f8c6e59121 Merge 2011-04-20 06:53:35 -02:00
starfighter83 84c6913162 Fixes: Media, Selecting remove checkbox removes the image but does not remove its specifications
Work Items: 30254
2011-04-20 06:52:28 -02:00
hartvig 35099746be Adds missing Exception file 2011-04-20 05:23:47 -02:00
hartvig 6c83107f24 Merge 2011-04-18 17:44:42 -02:00
hartvig ae18fcda1a Work items 30127 2011-04-18 17:43:23 -02:00
starfighter83 47bd9180dc Fixes: Constrain proportion checkbox should be removed
Work Items: 23421
2011-04-18 11:16:23 -02:00
starfighter83 1d86530879 Fixes Insert / edit embedded media problem in Umbraco 4.7.0
Work Items: 30205
2011-04-18 10:30:24 -02:00
starfighter83 c2eea73b98 Fixes Wrong TinyMCE stylesheet order
Work Items: 30184, 30183
2011-04-18 10:10:13 -02:00
starfighter83 734f029679 Adds mask to datepicker input field
Work Items: 30186
2011-04-18 08:37:25 -02:00
hartvig 2fad45f972 Fixes issue with internal app/section based user validation 2011-04-16 04:54:08 +07:00
agrath@gmail.com 5c6e8526da Changed IsLast implementation to behave properly when the DynamicNodeList is not a parent item children list
Changed IsHelper default valueIfFalse to be string.Empty on IsHelper(Func<DynamicNode,bool> func, string valueIfTrue) implementation
2011-04-05 23:15:23 -12:00
agrath@gmail.com 3c52ac851f Slight change to handling of True/False when value isn't defined on a node but property is in DynamicNode 2011-04-05 23:06:30 -12:00
agrath@gmail.com 5bcf591a72 Fixed OrderBy for multiple properties when one or more of those properties is a real property on DynamicNode [CreateDate etc]
Fixed OrderBy so it doesn't crash when ordering by a property which doesn't exist on one of the DynamicNodes in the set
2011-03-25 10:48:03 -13:00
agrath@gmail.com 10672f02a1 Fixed .OrderBy with single properties which are implemented as actual properties (e.g. Level, CreateDate, UpdateDate) - dynamic properties should have ordered correctly 2011-03-25 09:47:00 -13:00
agrath@gmail.com ddf97c30d1 Added ul, span to the list of excluded elements for DynamicXml 2011-03-25 09:34:55 -13:00
agrath@gmail.com 9a56886f1d Made !, != true more robust when property may not exist on a node
Fixed some cases of && breaking where the wrong number of parameters was passed to the LambdaExpression
2011-03-25 09:34:39 -13:00
agrath@gmail.com b198edeeaa Made DynamicNodeList.Where, DynamicNodeList.OrderBy public again 2011-03-25 09:33:39 -13:00
agrath@gmail.com 76f83ddda0 Fixed RTE types in DynamicNode from still getting converted to DynamicXml due to missing return statement 2011-03-25 09:33:00 -13:00
agrath@gmail.com 23aa9e60fe Added GetProperty(string alias, bool recursive) overload to DynamicNode
Added GetPropertyValue(string alias) and GetPropertyValue(string alias, bool recursive) to DynamicNode
2011-03-22 19:01:17 -13:00
agrath@gmail.com 3d396d2b63 Added Index/Position method to DynamicNode for when it's contained within a DynamicNodeList and you're iterating
Added bool IsHelper(Func<DynamicNode,bool>), string IsHelper(Func<DynamicNode,bool>, string valueIfTrue), string IsHelper(Func<DynamicNode,bool>, string valueIfTrue, string valueIfFlase)
Added IsFirst/IsLast/IsOdd/IsEven helpers for checking position in current context/list
Added IsEqual for checking if the current node matches another by Id
Added IsDescendant/IsDescendantOrSelf/IsAncestor/IsAncestorOrSelf for checking relationships between two nodes
2011-03-22 18:48:57 -13:00
agrath@gmail.com 93d65ced40 Add IsNull and HasValue methods to Dynamic* classes
**Breaking Change: DynamicNull.HasValue and DynamicNull.IsNull have been changed from properties to methods
Rename umbraco.MacroEngines.ExtensionMethods as umbraco.MacroEngines.PrivateExtensionMethods
Implement extension method invokes for DynamicNode
2011-03-22 18:02:32 -13:00
boxbinary a079136665 Fix for umbracoContentXMLUseLocalTemp trying to make a directory with the name "umbraco.config" rather than the container "UmbracoData"
Work Items: 30167
2011-03-15 09:30:56 +00:00
hartvig 77e8c6dfe2 Adds IE9 pinning support by Matt Brailsford 2011-03-14 19:05:35 -01:00
hartvig d2b266824b Adds Related links razor template 2011-03-14 18:38:39 -01:00
hartvig 5a6313182e Added documentation to all Razor templates 2011-03-14 18:14:37 -01:00
starfighter83 252a3061eb update to uc wrapper serialization helper 2011-03-14 12:48:47 -01:00
starfighter83 24cabcdad3 update to SerializationHelper 2011-03-14 12:34:16 -01:00
starfighter83 0ba61139f2 Merge 2011-03-14 12:32:49 -01:00
starfighter83 e3d1e3b48c Adds SerializationHelper to userControlWrapper (makes it super easy to do xml properties with uc wrapper) 2011-03-14 12:32:00 -01:00
hartvig 8833034a35 Updates to Razor snippets (WIP) 2011-03-14 11:42:41 -01:00
starfighter83 58294a6be9 Merge 2011-03-14 09:46:38 -01:00
starfighter83 fc2eaecb33 adding files related to tinymce upgrade 2011-03-14 09:46:21 -01:00
starfighter83 cd38cb1412 Updates tinymce to 3.4 2011-03-14 09:44:03 -01:00
agrath@gmail.com 1b060dfdbf Implemented Pluck/Select to extract a given property from a DynamicNodeList and return it as a List<T>
Example:
var colours = @Model.Children.Select("colour");
//Red, Green, Blue ...
Uses the parser from .Where internally
Aliased as .Pluck
2011-03-12 16:29:02 -13:00
agrath@gmail.com 1a2bba4b2b Added data type detection for MNTP/CSV to return List<int> and fix for NodeById/MediaById to handle List<int> correctly 2011-03-12 15:19:54 -13:00
agrath@gmail.com 44bfcaf373 Changed the decimal.TryParse code slightly to replace , with . before parse attempt
This is because strings like this: "2442,5453,5366" were incorrectly parsing to be "244254535366"
2011-03-12 15:07:17 -13:00
agrath@gmail.com 073053aa33 Work Item: 30160 (DataType lookups not working correctly) 2011-03-12 13:21:34 -13:00
agrath@gmail.com b624d7479a Fixes work item: 30156, using prop.Contains(string) || !prop.Contains(string)
Added ContainsInsensitive extension method for use inside .Where (fixed method finder too)
2011-03-12 12:33:09 -13:00
matt 5b353d7b4c Work Item: 30153 2011-03-10 15:14:25 +00:00
hartvig 3f3c4a78d7 4.7 it is... 2011-03-10 13:25:44 -01:00
hartvig a5e2d1e107 Work items: 30152 2011-03-10 13:17:40 -01:00
agrath@gmail.com b189b70214 Merge 2011-03-09 07:55:54 -13:00
agrath@gmail.com 1716b94449 Added some extra properties/functions to DynamicNull to provide a way to check to see if a child doc type actually exists.
.HasProperty will check for a property existence but because the child types are returned as DynamicNull, you couldn't check for null equality.
Use DynamicNull's .IsNull (true) or .HasValue (false) or .Count() (0) or a typeof check
2011-03-09 07:52:05 -13:00
agrath@gmail.com f5a7001859 Fixed handling of get properties on DynamicNode when used in a BinaryExpression and neither side is a LambdaExpression 2011-03-09 07:42:43 -13:00
starfighter83 111dee7187 Merge 2011-03-09 16:28:42 -01:00
starfighter83 df04d6ce22 Fixes issue with breadcrumb razor cshtml template 2011-03-09 16:28:25 -01:00
hartvig 5fdfc0d1f8 Work items: 30072 2011-03-09 09:23:08 -01:00
agrath@gmail.com ddcf34b80c Added .Sibling to DynamicNodeWalker which is a shorthand for checking both .Next() and .Previous()
overloads are .Sibling(int) [which you can pass negative to and is equivilent to .Previous(+int) ] or .Sibling(string) which checks nodeTypeAlias
.Sibling(string) will start walking forward at the current node and then wrap back to 0 until it reaches the starting point again
2011-03-08 19:54:55 -13:00
agrath@gmail.com a02aca0f62 Added support to DynamicNodeWalker for finding nodes that are Up/Down/Previous/Next by NodeTypeAlias
Up and down are similar to Ancestors(string nodeTypeAlias)/Descendants(string nodeTypeAlias) but return the first match
2011-03-08 19:42:59 -13:00
agrath@gmail.com d7e83cb1ee Added support to DynamicNodeWalker so that .Next() and .Previous() can be called on nodes which did not come from a DynamicNodeList (e.g. a node you have from @Model) - assuming it has a parent 2011-03-08 19:22:41 -13:00
agrath@gmail.com fa5b85557f Added support to DynamicNodeList for .Add and .Remove methods to support this use case:
http://our.umbraco.org/forum/developers/razor/17934-Creating-a-DynamicNodeList-with-a-'for'-loop
2011-03-08 19:06:55 -13:00
agrath@gmail.com 042e373b6a Added support for iterating over DynamicXml
e.g. @foreach(var level in @Model.someXmlProperty.Book)
2011-03-08 19:00:44 -13:00
agrath@gmail.com 150d4648c1 Added support for chaining properties if a previous property access returns DynamicNull 2011-03-08 19:00:04 -13:00
agrath@gmail.com 017ed3635a Fixed .Ancestors(int) to return ancestors where the level <= int rather than level = int to match .Descendants(int) >= behaviour 2011-03-08 18:43:59 -13:00
agrath@gmail.com 9949420c6d Change HasAccess and IsProtected to be getters so they can be used in .Where
http://umbraco.codeplex.com/workitem/30096

Add support to DynamicQueryable for accessing properties that are not dynamic and are actually defined on DynamicNode
2011-03-08 18:38:06 -13:00
agrath@gmail.com 9b74eee10c Ensure that getdatatype doesn't throw an exception
http://our.umbraco.org/forum/developers/razor/18085-Access-custom-node-properties-with-Razor
2011-03-08 18:22:31 -13:00
agrath@gmail.com bc8f21f92d Added implementation for .Visible which wraps umbracoNaviHide != 1 2011-03-08 18:09:06 -13:00
hartvig 1bf6604da9 Work items: 30124 2011-03-08 11:19:06 -01:00
hartvig 5c8eec28c2 Work items: 30088 2011-03-08 11:17:44 -01:00
hartvig c7e1c439ff Work items: 30125 2011-03-08 11:12:49 -01:00
hartvig 8d19cf6925 Work items: 30143 2011-03-08 11:00:16 -01:00
hartvig b52e347396 Work items: 30142 2011-03-08 10:30:58 -01:00
PerPloug c12e2e8e77 symbol files 2011-03-04 13:05:23 -01:00
PerPloug 18ec3850da Merge 2011-03-04 12:15:37 -01:00
PerPloug 5ca7822262 Build file symbols 2011-03-04 12:14:13 -01:00
hartvig 634aaf757f Add support for finding app_code extensions in subfolders for xslt/rest extension discovery 2011-03-03 09:16:03 -01:00
hartvig 1e8bf4ff83 Work items: 30110 2011-03-03 08:41:05 -01:00
starfighter83 dec48c7442 Merge 2011-03-02 13:57:44 -01:00
starfighter83 b566324e7a Merge 2011-03-02 13:57:15 -01:00
starfighter83 bd09b21bb8 Fixes: Splitbuttons in edit template should only be activated on click
Work Items: 30097
2011-03-02 13:56:37 -01:00
hartvig 45ee50ed0f Adding HasCookieValue back to StateHelper and marking it obsolete 2011-03-02 13:50:29 -01:00
hartvig ea30785baf Work items: 30101 2011-03-02 13:17:30 -01:00
Elijah 7edd9e92e5 DLR Editor Now Saves Files In Sub Dirs 2011-03-02 01:48:58 -11:00
PerPloug cd170a18ab Removes python folder and empties macroScripts folder 2011-03-01 12:19:19 -01:00
starfighter83 90539868f3 style updates to splitbutton 2011-03-01 09:18:18 -01:00
starfighter83 1121c7ca79 changes width of splitbutton menu 2011-03-01 09:08:28 -01:00
starfighter83 3d8144c617 changes position of razor splitbutton in template editor menu 2011-03-01 08:58:44 -01:00
starfighter83 914ccf873a splitbutton finetuning 2011-03-01 08:35:34 -01:00
starfighter83 8666742004 Merge 2011-03-01 07:24:32 -01:00
starfighter83 f91013618f changes to splitbutton js 2011-03-01 07:24:07 -01:00
hartvig 3239ae8adb Missing updates to legacy and dlr projects 2011-02-28 19:41:06 -01:00
starfighter83 e8093526d0 Merge 2011-02-28 14:37:53 -01:00
starfighter83 905a55a5ee Adds some js so that the macro dropdown in template editor doesn't go outside the screen 2011-02-28 14:37:15 -01:00
hartvig 931aef0265 Merge 2011-02-28 13:03:58 -01:00
hartvig 23605b5a4b Changing /python to /macroScripts 2011-02-28 13:03:09 -01:00
starfighter83 7422b2a712 Merge 2011-02-28 12:03:58 -01:00
starfighter83 9ac64f2668 Style update to split button 2011-02-28 12:03:09 -01:00
hartvig 5a5aafd610 Merge 2011-02-28 11:49:29 -01:00
hartvig c4272eecf3 Casing error in webpages:Enabled appSetting (all credit to @elijahGlover for spotting!) 2011-02-28 11:48:13 -01:00
starfighter83 e86d5f79c1 style update to split button, down arrow always visible 2011-02-28 11:36:12 -01:00
starfighter83 3904f7799e fixed ie issue with macro split button 2011-02-28 11:32:10 -01:00
starfighter83 fcf92188e9 Merge 2011-02-28 11:19:17 -01:00
starfighter83 25dfb4a2da Merge 2011-02-28 11:18:39 -01:00
PerPloug 31eb415b72 Merge 2011-02-28 11:18:19 -01:00
PerPloug bf3edcf36a version number change to 4.7 2011-02-28 11:16:56 -01:00
starfighter83 ff802ebef4 Merge 2011-02-28 11:16:55 -01:00
hartvig ff678dd856 Marking the changeset as 4.7 RC! 2011-02-28 11:16:21 -01:00
starfighter83 8271892411 Updated to macro button on edit template page (split button, possible to choose macro from dropdown menu) 2011-02-28 11:16:20 -01:00
hartvig d6befbd83c Issue with Membership and homepage + updates to razor templates. Work items: 30072 2011-02-28 11:14:28 -01:00
PerPloug 4b70a5f56e Merge 2011-02-28 11:10:32 -01:00
PerPloug df9a18fb45 missing symbol files 2011-02-28 11:10:02 -01:00
agrath@gmail.com 4f496ef5da Updated web.config.ssaolap01.xslt 2011-02-27 22:56:12 -13:00
agrath@gmail.com aaa90bea14 More graceful handling of missing properties in .Where - TryGetMember now returns DynamicNull
Only return DynamicNull if property truely doesn't exist - if it does exist and has no value, still return null
2011-02-27 22:55:50 -13:00
PerPloug 41d344d481 Merge 2011-02-28 10:47:27 -01:00
PerPloug 6be3b5d93b build version id 2011-02-28 10:46:48 -01:00
hartvig bcb399f768 Merge 2011-02-28 10:03:19 -01:00
hartvig 59e41e3912 Work items: 30086, 30087 2011-02-28 10:01:53 -01:00
PerPloug 468f688f20 Merge 2011-02-28 09:55:40 -01:00
PerPloug 3f74ee4ab5 adding system.webpages to build dir 2011-02-28 09:55:02 -01:00
agrath@gmail.com 60c18bdff9 More graceful handling of missing properties in .Where - TryGetMember now returns DynamicNull (IEnumerable with fake .Where and .OrderBy) when the property/child type doesn't exist.
Expression Tree in DynamicQueryable explictly checks for this type and forces that portion of the predicate/expression tree to return true, bypassing the missing property
Handy when you are checking e.g. a boolean property in a .Where and that boolean doesn't exist on all nodes.
2011-02-27 21:53:45 -13:00
PerPloug 300da7f04a One more change to build file 2011-02-28 09:46:21 -01:00
PerPloug d324ee90a7 Change build order 2011-02-28 09:36:57 -01:00
PerPloug 5fd694cca9 nant build 2011-02-28 09:29:34 -01:00
PerPloug 5491569b8c Merge 2011-02-28 09:23:43 -01:00
PerPloug f1b904ecc4 web.config 2011-02-28 09:23:21 -01:00
PerPloug 50f9170935 sdasda 2011-02-28 09:22:32 -01:00
PerPloug dbc8a07628 sdsad 2011-02-28 09:21:22 -01:00
PerPloug 6519055d21 New nant file 2011-02-28 09:16:35 -01:00
starfighter83 38bbe32f16 Fixes styling issue with split button and chrome 2011-02-28 09:02:42 -01:00
starfighter83 4edc96af7d Merge 2011-02-28 08:35:26 -01:00
starfighter83 e3f42ef388 Update to template split button, new location of razor templates 2011-02-28 08:34:29 -01:00
agrath@gmail.com bba0fcfd5f Merge 2011-02-27 09:00:00 -13:00
agrath@gmail.com 7ca429cb61 Added overloads to AncestorsOrSelf, Ancestors, Descendants, DecendentsOrSelf to filter by Level or NodeTypeAlias
Rewrote implementations internally so a Func<DynamicNode,bool> [or Func<INode,bool>] is used so that there's only one implementation of each
2011-02-27 08:55:15 -13:00
hartvig 9707a61303 Work items: 30078 2011-02-27 18:00:30 -01:00
hartvig 6b2858d552 Updating namespaces in umbraco.MacroEngines.Iron project 2011-02-27 14:49:00 -01:00
hartvig c03ee2cecd Missing assemblyinfo.cs 2011-02-27 14:43:20 -01:00
hartvig 38c60c69bf Adding umbraco.MacroEngines.Iron 2011-02-27 14:37:09 -01:00
hartvig 6bc277b4f2 Work items: 30052 2011-02-27 13:23:01 -01:00
hartvig 1dae998eaf Work items: 30073
Encoding issues in temporary razor files and general developer scripting editor
2011-02-27 12:46:22 -01:00
hartvig 78a3d02b89 Clean up of xslt and dashboard config files 2011-02-27 12:17:04 -01:00
hartvig 9729ad4d31 Work items: 30082
Properties from Richtext editor isn't encoded by razor anymore as DynamicNode will return an IHtmlString for RTE properties
Changed the lookups of Yes/no and tinmce datatypes ids to consts as these won't change anyway
2011-02-27 12:13:04 -01:00
hartvig 11da35ae5f Exclude IronPython and IronRuby from default distribution (will be separate download). Work items: 30081 2011-02-27 11:57:33 -01:00
agrath@gmail.com cbe94ae6aa Refactored ExtensionMethod search code from DynamicNodeList (searches for extension methods e.g. .Random()) to tidy it up
Moved Extension Method searching code to seperate static class
Moved all the defined extension methods for DynamicNode into the same ExtensionMethods.cs file
Changed the way that .ContainsAny within a where is evaluated to use the ExtensionMethodFinder class - should allow extra search methods to be defined
2011-02-26 16:15:45 -13:00
Elijah f58c453334 Fixed Unary StartsWith("~") Razor 2011-02-26 16:26:06 -11:00
Elijah 0202526acc Updated Legacy Macro Engines to work with new changed IMacroEngine 2011-02-26 16:10:16 -11:00
Elijah cfb21237c0 Added FileLocation To <umbraco:macro /> template control 2011-02-26 16:05:30 -11:00
agrath@gmail.com 1f05d43047 Added new overloads to MediaById and NodeById which take List<object> or params object[] and return DynamicNodeList or DynamicMediaList [new - doesn't support OrderBy,Where etc]
Added to allow retreiving multiple items by id when you know the Ids, e.g.: using MNTP to select nodes and then needing to get them in Razor
2011-02-26 11:43:23 -13:00
agrath@gmail.com 6bc71000af Commit of updated umbraco.MacroEngines.csproj 2011-02-26 11:12:26 -13:00
agrath@gmail.com a32e8894cd Added support for calling non standard extension method style helpers within a .Where
Intended as a future extensibility point, provides a way for the parser to redirect into a static method library of helpers
Currently, only one method is available - ContainsAny
Functions like string.Contains but uses needles from a List<string>

var values = new Dictionary<string,object>();
var keywords = new List<string>();
keywords.Add("Five");
keywords.Add("Four");
values.Add("keywords",keywords);
var items = @Model.Children.Where("Name.ContainsAny(keywords)", values);
2011-02-26 11:12:06 -13:00
agrath@gmail.com 6d615e6762 Work on DynamicQueryable to support .Where("bodyText.Contains(\"string\")")
Chaining works too: .Where("Name.SubString(1,3).Contains(\"v\")");
2011-02-25 16:58:17 -13:00
agrath@gmail.com b1ff0db8fe Work on DynamicQueryable to support .Where("shouldBeVisible && Level < 4") rather than .Where("shouldBeVisible == true && Level < 4")
Confirmed other test cases of .Where still work
2011-02-25 12:16:03 -13:00
agrath@gmail.com 3961787463 Added DynamicNode.HasProperty(string) method to check to see if a particular DynamicNode has a property 2011-02-25 00:51:41 -13:00
agrath@gmail.com 9b45a81f22 Rewrote implementation of HandleDynamicNodeLambdas in DynamicQueryable.cs to be easier to read and handle unboxing and type conversion when the output type of the lambda is convertable between the left and right side.
Allows this syntax to work now:
@Model.Children.Where("updateDate < DateTime.Now.AddDays(-2)")
This didn't work previously in 4.7beta because updateDate was still boxed as an object and object < DateTime can't be implicitly converted

@Model.Children.Where("bodyText.Contains('ipsum')") still doesn't work because the parser doesn't know how to invoke .Contains on a LambdaExpression (yet)
2011-02-25 00:39:53 -13:00
starfighter83 0e9fc4a84b Merge 2011-02-25 09:23:17 -01:00
starfighter83 78aaa85765 Fine tuning to edit template split button 2011-02-25 09:20:54 -01:00
agrath@gmail.com 71c5e35443 Added DynamicNodeWalker and implementation on DynamicNode and DynamicNodeList
DynamicNodeWalker is our secret weapon in the fight against the Rebel XSLT Alliance
Navigate nodes by calling Up(), Down(), Next() and Previous() on them
Next(1) will jump two items along within the current list, whereas Next() will walk by one within the list
Previous(1) will move two items backwards within the current list
Up() is a special wrapper around .Parent which has an overload .Up(int) to replace @Model.Parent.Parent.Parent... [.Up(2)]
Down() will take you to the first Child item and is equivilent to .Children.First(), use .Down(1) to replace .Children.First().Children
If one of the NodeWalker functions fails to find a node at the requested position, it will return null
2011-02-24 17:19:50 -13:00
agrath@gmail.com 603a12c5a0 Split umbraco.MacroEngines.Juno into two subfolders (namespaces remain the same)
RazorCore contains all the core razor engine implementation
RazorDynamicNode contains all the DynamicNode functionality and associated support files
2011-02-24 16:05:54 -13:00
agrath@gmail.com 78ae4132eb Added IEnumerable Map method used in Descendants feature
Fixed DynamicNodeList.OrderBy where there was only one column and the ordering was descending
Added DateTime.TryParse support to DynamicNode property retrieval to allow OrderBy and Where to have date support
Added IsProtected & HasAccess to DynamicNode
Added .AncestorsOrSelf to DynamicNode
Added .Descendants to DynamicNode [Deep Children]
Added .DescendantsAndSelf [Deep Children]
Fixed .nodeTypeAlias children collection crashing when the node didn't contain any children of that type
Added cshtml templates first versions for DynamicNode, these are samples I demo'ed at the Auckland umbraco meetup the night of 4.7beta release
2011-02-24 15:56:52 -13:00
psterling 9a4f44e73d Merge 2011-02-25 03:53:50 +08:00
psterling 11d09a6796 Added explanatory text to connection error messages in installer 2011-02-25 03:51:37 +08:00
starfighter83 8d064c89f7 Merge 2011-02-24 14:58:57 -01:00
starfighter83 6936a1db5a Update to edit template toolbar, WIP 2011-02-24 14:57:33 -01:00
matt 007bab36cc Rolled back changes to web.config 2011-02-24 14:58:20 +00:00
matt ccf832fec5 Removed rouge zipupload files, and fixed missing DMU dashboard (didn't realize the config file was in multiple places) 2011-02-24 14:43:53 +00:00
slace 4fcc62f04a merge 2011-02-23 01:17:53 -11:00
starfighter83 c09b5102af Fixes: TinyMCE no longer defaults <P> tags around text
Work Items: 29964
2011-02-23 09:26:40 -01:00
starfighter83 49c4ce45cb Merge 2011-02-23 07:54:52 -01:00
starfighter83 126c62dee5 Merge 2011-02-23 07:50:07 -01:00
starfighter83 20bff9acd4 Fixes: Inserted macro in rte always positioned above existing content (in IE)
Work Items: 30061
2011-02-23 07:49:15 -01:00
Elijah c2ff9019cf Microsoft.Web.Infrastructure.dll is required, missed it bacause webmatrix was installed 2011-02-22 21:14:52 -11:00
hartvig ff3a776617 Fix for parents in DynamicNode by Agrath 2011-02-23 00:16:50 -01:00
slace 76bb93fa23 changing umbraco.presentation project to .NET 4.0 2011-02-22 13:44:54 -11:00
hartvig 4225ac9d8a 4.7.0.beta 2011-02-22 23:10:34 -01:00
hartvig 6e58c622cd Work Items: 30059 2011-02-22 23:03:23 -01:00
hartvig ceb8c9d896 Work items: 29237 2011-02-22 23:00:41 -01:00
hartvig 5eb20a1101 Better error reporting inside the NiceUrl engine 2011-02-22 13:53:56 -01:00
hartvig 9196c039d1 Patches via GPLwhite => Work items: 30057 2011-02-22 13:30:20 -01:00
hartvig d54b2416f0 Work items: 30050 2011-02-22 13:27:45 -01:00
hartvig 7be3314a11 Work items: 29917, 30065, 30066 2011-02-22 13:23:15 -01:00
hartvig c2acb33933 Fix by Lee Kelleher. Work items: 30064 2011-02-22 12:55:50 -01:00
hartvig 5ca12fb99f Work items: 29918 2011-02-22 12:00:15 -01:00
hartvig b2db75bcb2 Fixes issues with macro caching, Work items: 29891 2011-02-22 11:52:58 -01:00
hartvig e2cee9e99d Work items: 29972 2011-02-22 11:21:22 -01:00
hartvig 526bc454a5 Work items: 29149 2011-02-22 11:03:28 -01:00
hartvig fef629181f Work items: 29934 2011-02-22 09:45:21 -01:00
hartvig 33741210b3 Fix to macro container bug. Thank you to the 'mysterious patcher'. Work items: 29874 2011-02-22 09:11:45 -01:00
psterling 970903eb2a Added graceful installation completion option when no connection to repo exists 2011-02-22 13:13:58 +08:00
Elijah 9d5c127c14 Resharper Renamed My Property!!! Now Fixed :( 2011-02-21 17:27:32 -11:00
Elijah 0071bfbb13 webPages:Enabled requires a lowercase "W" 2011-02-21 17:01:55 -11:00
PerPloug 69ccf5a138 AddRestExtension package action, swicth to use XmlHelper instead of doc.load(); 2011-02-21 12:49:45 -01:00
hartvig 4866bcafb8 Fixes issue with tildes in content, work items: 30048 2011-02-21 11:12:38 -01:00
hartvig 64914da779 Adding missing files 2011-02-21 10:05:13 -01:00
hartvig 16f78d0f4c Merge of razor query improvements (missing one file in merge, though - will be added in next commit!) 2011-02-21 09:28:13 -01:00
PerPloug fa008b3679 Removing umbraco.MacroEngines.Legacy files from build 2011-02-21 09:05:34 -01:00
agrath@gmail.com 03441fab21 Added umbraco.Settings entry for controlling what document element types are parsed as DynamicXml
Added documentElement checking to DynamicXml convert for DynamicNode property get to solve a potential issue with XHTML RTEs
Fixed issue with calling @Model.Children.First() in testing (null Children in testing)
Put some commented placeholder code in .XPath->DynamicNodeList inside DynamicNode.cs for future return of DynamicXml if not valid List<NodeFactory.Node>
2011-02-20 19:55:06 -13:00
psterling 3e56fe947a Add catch for no internet connection on final Installer screen 2011-02-21 05:38:03 +08:00
psterling 9410d34485 Update to DB selection text in installer 2011-02-21 05:05:03 +08:00
agrath@gmail.com 6b431eb000 Fixed a bug in DynamicNode when the string contained "false" it would fail and not return (bool)false
Decided that if using @Model.XPath and you were in testing, then the resulting DynamicNodeList should contain self/this, not be empty
Should allow chaining to work when in test mode

Fixed a potential issue when DynamicNode got returned during testing because there are no children
and then property accesses would return false causing chaining to break

Added [a somewhat experimental] DynamicXml and xml fragment detection within DynamicNode to DynamicXml,
When accessing a string property that contains XML, you can now continue your dot based access
Call .ToXml() to get the real XML string again
Call .XPath(string) to run a XPath query on the fragment and return another DynamicXml
Example:
	<Catalog>
	  <Book id="bk101">
	    <Author>Garghentini, Davide</Author>
	    <Title>XML Developer's Guide</Title>
	    <Genre>Computer</Genre>
	    ...
	@Model.Children.Random().someXmlProperty.Catalog.Book[1].Genre
	@Model.Children.Random().someXmlProperty.Book[1].XPath(".//Genre")
	@Model.Children.Random().someXmlProperty.Book[1].ToXml()
2011-02-19 21:19:45 -13:00
agrath@gmail.com 84d7999f32 Added .XPath helper to DynamicNode list that allows you to use XPath to query from the current node represented in XML (e.g. if you have a child DynamicNode which actually exists part way down the original dom from NodeFactory then get it at that position (allowing you to use .. to move to parent)
Nodes are attempted to be turned back into NodeFactory.Node when returned by XPath and then wrapped in DynamicNode and then DynamicNodeList

Added .Random parameterless overload to pick a single random node from the DynamicNodeList

Example of new Methods being used:
<img src='@Model.XPath("//ChildItem[catCount = 2]").Random().Media("catPicture","umbracoFile")'/>
2011-02-19 20:05:02 -13:00
Elijah db89bbc676 Merge 2011-02-18 04:12:41 -11:00
Elijah 344c36a84a Updated presentation web.config for razor support 2011-02-18 04:03:14 -11:00
Elijah 868e1bdb42 Updated Build Web.Config To Support Razor 2011-02-18 03:32:39 -11:00
hartvig fa5e5de818 Updates to fetching macro parameters in a case insensitive way 2011-02-18 13:12:58 -01:00
PerPloug 0c5acf544e Merge 2011-02-18 13:08:50 -01:00
PerPloug 627fbcdd15 Version number for nant 2011-02-18 13:06:06 -01:00
hartvig f64e902bf8 Merge 2011-02-18 13:03:47 -01:00
hartvig b5c78d397d Updates to fetching extension methods in a more stable way in DynamicNodeList 2011-02-18 13:02:20 -01:00
PerPloug fe514e15ea Removal of another post-build-event that fails if done in release mode 2011-02-18 12:52:06 -01:00
PerPloug 32887c23e5 Nant files for 4.6.2 2011-02-18 12:44:32 -01:00
hartvig 7df518155d Clean up of merging 2011-02-18 10:09:20 -01:00
hartvig 90f5c4ce9a Merge initial merge of Agraths improvements (might break compilation atm) 2011-02-18 09:38:19 -01:00
agrath@gmail.com cc23fdbd8e Added .Random implementation from the blog post so it's internal to 4.6.2 2011-02-17 20:57:12 -13:00
agrath@gmail.com 3a30c285fe Updated .OrderBy implementation to support OrderBy,OrderByDescending,ThenBy,ThenByDescending properly on DynamicNodeList
Usage is: @foreach(var item in home.ChildItems.OrderBy("catCount, colour desc"))
If you use the simple form of home.ChildItems.OrderBy("catCount") it will use a simpler/faster implementation
2011-02-17 19:07:22 -13:00
agrath@gmail.com d9f420d45a Added .OrderBy method to DynamicNodeList
Only supports single pass, ascending currently, so no ThenBy implementation or Descending variants
The original query parser supports OrderBy("catCount, name desc") by nesting Expression.Call
Current implementation for DynamicNodeList supports OrderBy("catCount") only
2011-02-17 14:52:05 -13:00
agrath@gmail.com 300c975284 Moved caching of property data type from DynamicNode to a static method in ContentType
Simplified SQL query used for property type lookup
Added cache clearing for propertyType cache when ContentType.ClearCache is called
Improves performance of new razor property lookups - most improvement on large sets
2011-02-17 14:23:20 -13:00
hartvig f8b5e5e89d Merge of DougMs patches 2011-02-17 17:19:06 -01:00
hartvig d57bc67121 Merge of Sebastiaans patches 2011-02-17 16:56:22 -01:00
hartvig 71aa8a20af Merge of ElijahGs brilliant razor implementation 2011-02-17 16:52:15 -01:00
hartvig ef50f7d38c Merge more of sgays patches 2011-02-17 16:07:22 -01:00
hartvig 2e6341b945 Merge sgay patches 2011-02-17 13:42:28 -01:00
Elijah e277e4cadb Dynamic keyword is back for Parameters/Dictionary 2011-02-16 22:53:11 -10:00
Elijah 35cfee3f85 inline @inherts not required, fix 2011-02-16 21:42:45 -10:00
Elijah 3a76e9caae Supports default @inherits directive umbraco.MacroEngines.DynamicNodeContext 2011-02-16 21:29:35 -10:00
Elijah 2def8a520a .razor ext added as a Build Provider 2011-02-16 18:42:14 -10:00
Elijah 45fefda660 editMacro.aspx - adds sub directory slash/now shows "Browse scripting files on server..." 2011-02-16 18:40:40 -10:00
matt 8dac6662a5 Updated DMU with latest changes
Changed DMU version number to 2.1.0 to allow for additional work on original DMU project if needed
2011-02-16 18:48:03 +00:00
Elijah 68ce71685d Updated config added factoryType 2011-02-16 01:49:31 -11:00
Elijah ce83c8a1b9 Added SupportedUIExtensions to IMacroEngine 2011-02-16 01:48:40 -11:00
Elijah 3d5ed109af .razor proxy .cshtml file ext- #unbreakingcode 2011-02-16 01:32:04 -11:00
PerPloug fa4483f08c /base issue with virtual directories fixes: 30042 2011-02-16 08:27:41 -01:00
Elijah 8a1c8475b8 Update Interfaces BaseContext 2011-02-13 22:54:51 -11:00
Elijah 7f57fde279 Seperated Parameter & Culture Dict
Fixed inline auto inherit directive
2011-02-13 22:54:14 -11:00
agrath@gmail.com b20d1bfd4c Added support for string Comparisons e.g. @Model.Children.Where("menuType = \"Top Menu\") and support for And/Or @Model.Children.Where("menuType == \"Top Menu\ || menuType == \"Bottom Menu\"") 2011-02-07 17:28:59 -13:00
agrath@gmail.com 070a03e827 Fixed DynamicNodeList extension method invocation finding the wrong method when the method being checked was defined on a class that implemented no interfaces
Caused user-loaded extension methods on DynamicNodeList to be pretty unreliable (would work sometimes, sometimes wouldn't find method - particularly after an iisreset)
2011-02-07 15:29:44 -13:00
agrath@gmail.com 313d67ed94 Added reference to datalayer (to get SqlHelper) from DynamicNode 2011-02-07 14:11:03 -13:00
agrath@gmail.com e7ebcb29bc Broke string properties with new typecasting stuff by returning false instead of true if the typecasting failed (e.g. it was actually a string)
Changed this to a return true

Replaced some API calls via Document & Property (database level, not nodefactory) with a single SQL scalar where I was getting the control type (to determine if "0"/"1" should actually be "true"/"false")
Should perform a lot better now
2011-02-07 14:10:38 -13:00
agrath@gmail.com e5c3c8869a Upgraded DynamicNode to do some type inferrence from the IProperty type .Value which is a string
Already had support for YesNoType (where the string value is 1 or 0) being converted/parsed to boolean
Added some TryParse calls to int and decimal respecitvely so that if a IProperty.Value is a valid decimal or int it will be returned from DynamicNode.TryGetMember as such
This enables the .Where operator to have the correct type after property retrieval so that some numerical comparisons will work

Added support for >, >=, <, <= and %[mod] to .Where
@Model.Children.Where("catCount > 1")
@Model.Children.Where("catCount % 2 == 0")
2011-02-07 13:12:34 -13:00
agrath@gmail.com 878f6fc812 Added support for some more Func<> types in my Where implementation
Refactored GenerateEqual into a Factory method HandleDynamicNodeLambdas that takes an ExpressionType
Implemented Expression.NotEqual
@Model.Children.Where("shouldBeVisible != true") => children that are hidden
2011-02-07 10:23:40 -13:00
agrath@gmail.com 6d0be45acf Changed some type comparisons where I determine if the LambdaExpression is Func<DynamicNode,object> to handle simple equality operations:
e.g. @Model.Children.Where("shouldBeVisible == true")
Also changed internal where implementation to handle Func<DynamicNode,bool> as well as Func<DynamicNode,object>
Both left & right side as lambda expressions should work (though I haven't tested this yet)
e.g. @Model.Children.Where("property1 == property2")
Only == (Expression.Equals) is supported currently due to the extra code required to invoke the lambda when generating the final comparison expression
2011-02-07 08:56:59 -13:00
agrath@gmail.com 649a98daf4 Added missing DynamicQueryable and DynamicQueryableBinders class files for previous commit 2011-02-06 19:53:07 -13:00
agrath@gmail.com bcf735f4f8 Added support for DynamicLinq in place of Lambda syntax. The short version is you can't use a Lambda with a DynamicNode
e.g. @Model.Children.Where(node=>node.shouldBeVisible)
To solve this, I used the DynamicQueryable class from the Linq samples which has a parser that can take a string then modified the internals a bit so
that if your object is a DynamicObject, an additional expression tree is generated which calls the TryGetMember on it
The end result is that you can now do this [I have Random(this DynamicNodeList nodes, int max) in my bin folder]
@Model.Children.Where("shouldBeVisible").Random(2) => two nodes, randomly picked, from the ones that should be visible
*Only* Where is implemented here currently, I'll add support by OrderBy and ThenBy after I've tested some more complex scenarios.
I need to fix a small issue with my DynamicLoading of extensions - under some scenarios the class doesn't get found and i'm not sure why.
2011-02-06 19:52:05 -13:00
matt ba3c7fd680 Added a wmode parameter to DMU badge to prevent it displaying on top of the lock modal popup 2011-02-06 14:49:26 +00:00
matt 043f0e03b2 Merge 2011-02-05 12:46:28 +00:00
matt 03f8aac4e5 Added DMU Flex source
Changed all TheOutfield namesspaces to Umbraco
Added DMU dasboards
Removed ZipUpload dashboards
Added air mimetype to web.config
2011-02-05 12:21:04 +00:00
agrath@gmail.com eba7c9d550 Overloads for DynamicMedia and DynamicNode constructors that take object and string respectively
New DynamicNode .MediaById (because @Model is DynamicNode) to find a media item by id, e.g. if you are using it with @Model.Parameters.imageId
Overloads for MediaById and NodeById that take object and string to match constructors
2011-02-02 15:51:51 -13:00
agrath@gmail.com 5a5ccfea98 Changed reflection of assemblies to all assemblies in bin folder via BuildManager instead of currently loaded assemblies 2011-02-02 13:05:10 -13:00
agrath@gmail.com 799d718881 Refactored my implementation of IEnumerables being returned from .Children etc to return a new type called DynamicNodeList instead of a DynamicNode (singular) containing a nested list.
This makes the code cleaner and also allows for the .Items (underlying initialization data for DynamicNodeList) to be exposed when you have an instance and hide all of the singular properties etc (Url, Name) that are on DynamicNode - they're not applicable for a List.
Rewrote the reflection code for calling methods on DynamicNodeList to allow mix-ins (e.g. external dlls) to have an extension method defined for DynamicNodeList (e.g. Random(nodeCount))
Lambda syntax still doesn't work (e.g. Children.Where(item=>item.shouldBeVisible)) however methods that don't take lamdas (Take, Random[external], Skip, ElementAt, First, etc) work
2011-02-02 11:52:09 -13:00
sgay 0b5ce63c3a fix #29949 - do not hide errors when loading xslt ext 2011-02-01 13:18:22 -01:00
sgay 39a34954ce fix #29989 - refactor TypeFinder and TypeResolver 2011-02-01 13:17:49 -01:00
agrath@gmail.com 83d88e70a5 Fixed an issue with boolean casting in razor file for if shorthand when properties didn't have value 2011-01-31 08:37:44 -13:00
sebastiaan d165b75456 Workitem: 29976 - Additional fix, sometimes the niceUrl does NOT start with a slash, in which case you wouldn´t want to strip the first character 2011-01-31 15:02:24 -01:00
sebastiaan e07dfd49a1 Workitem: 29976 - Additional fix in wording, the word for ´login´ in Dutch is not ´aanmelden´ (which means: ´to register´), but ´inloggen´. 2011-01-31 10:35:58 -01:00
sebastiaan 2b11cab075 Fixes 29976
NiceUrlFetch now uses the new niceUrlJuno function. The result of niceUrlJuno does not include a leading slash. The old NiceUrl (used in the presentation of the URL) does include one, leading to wrong URLs.
2011-01-31 08:43:38 -01:00
matt a5527769f3 Forgot to save project file before commiting 2011-01-30 17:50:37 +00:00
matt 4b8cc30c3f Added Desktop Media Uploader factories, HttpHandler and initial Dashboard control.
Need to finish dashboard control, swap with ZipUpload and test.
2011-01-30 17:39:20 +00:00
Elijah 5cc819407c *Breaking Change* Removed Parameter & Culture Dictionaries - results in easier to read razor 2011-01-29 03:24:12 -10:00
agrath@gmail.com 26bf18766b Fixed a bad check in my patch for booleans that wasn't installation-portable by making it check the DataTypeDefinition instead of ContentTypeId.
Added a cache for the propertyType lookup (within a single DynamicNode instance) in case the razor logic needs to check the same boolean multiple times within a node.
Should improve performance if working with large trees & repeatedly checking a boolean value
2011-01-28 14:36:13 -13:00
sebastiaan 28d5a81403 Workitem 26949 - Fixed: Login field doesn't fit Dutch translation 2011-01-28 13:35:07 -01:00
agrath@gmail.com c692b296d7 Added Pascal Case support to DynamicMedia and .Media helper 2011-01-27 21:56:09 -13:00
agrath@gmail.com a0dd8aa2ab Improves access to media items when working in Razor
Added a new DynamicMedia class that wraps umbraco.cms.businesslogic.media.Media which caches GetProperty calls (while DynamicMedia is instantiated)
Added method to DynamicNode to retrieve a property as DynamicMedia: @Model.Media("catPicture"); or @Model.Media("catPicture").umbracoFile;
Added overload to DynamicNode Media method for shorthand if you only want one property; @Model.Media("catPicture","umbracoFile");
@Model.catPicture will still return the nodeId of the media item because we can't easily check the propertyType (no propertyType on IProperty)
2011-01-27 21:38:06 -13:00
agrath@gmail.com 6382241e4c Special casing in DynamicNode property retrieval for when the property being retrieved is True/False. I'm not sure how comfortable I am with having to go to Document to get the proerty info or the check of the ContentTypeId but the syntactic sugar of being able to go:
if(@Model.shouldBeVisible) {...} where shouldBeVisible is a true/false property on the datatype is pretty nice
2011-01-27 15:29:38 -13:00
agrath@gmail.com 3ab4944e5e If you're dealing with dynamicNode such as using:
var someNode = new umbraco.MacroEngines.DynamicNode(1046) in your template, it instantiates a DynamicNode like you'd expect, but then it doesn't function as a dynamic object
because it wasn't initialised as a dynamic variable [dynamic someNode = new umbraco.MacroEngines.DynamicNode(1046)]

Added a method to DynamicNode called NodeById which returns a new DynamicNode with the ID you pass, so you can call it off @Model
e.g. var item = @Model.NodeById(1046) will still function as a dynamic, even though it was defined as var
2011-01-27 14:49:56 -13:00
agrath@gmail.com 28b48b187a Added DynamicNode constructor that takes an int and passes it to NodeFactory so you can go var @clientNode = new umbraco.MacroEngines.DynamicNode(1560); 2011-01-27 14:22:28 -13:00
agrath@gmail.com fce7ea48b0 Didn't test the AncestorOrSelf changes on a non-parent node. Changed implementation to call into Func<DynamicNode,bool> to check Level == 1
Also fixed post-build rule on umbraco.MacroEngines which had an incorrect path for copying umbraco.MacroEngines to presentation (allows debug without manual file copy, I think)
2011-01-27 13:07:10 -13:00
agrath@gmail.com fbf13d8cf7 Fixed support for AncestorOrSelf when in Test mode (the INode passed to the razor script in testing has a null parent)
Added AncestorOrSelf overload which doesn't require a Func<DynamicNode,bool> argument

Both changes modify DynamicNode.Parent so that if there is no parent, it returns itself instead of null, (you can't new DynamicNode(null) as it throws exception)
and then in the AncestorOrSelf checks, the loop makes sure that it won't get stuck by continually returning itself (because this.Parent returns this)
2011-01-27 12:59:34 -13:00
DougM 00dc8e0356 fix #29829 - Edit datatype -> Richtext editor displays incorrect icons for remove formatting and media 2011-01-27 19:23:13 +00:00
agrath@gmail.com dca21f9ce1 Added support for Macro Parameters in Razor Macros (@Model.Parameters.AnimalName) where AnimalName is defined on the Macro as a Parameter 2011-01-26 08:28:16 -13:00
DougM 48c635e452 fix #29904 - Rich text editor 'insert link' breaks when selecting node with single quote in name (incorreclty marked as fixed in work item) 2011-01-26 20:38:01 +00:00
agrath@gmail.com 69a1e7000c Added support for calling IEnumerable methods which return IEnumerable (e.g. Skip,Take) rather than single nodes (e.g. First,ElementAt) 2011-01-26 07:35:55 -13:00
DougM 1c02059509 fix #29945 - RTE xhtml strict compliant underline and strikethrough 2011-01-26 20:25:08 +00:00
sgay 7631522a9e fix #29966 - cache xslt extensions 2011-01-26 10:46:47 -01:00
agrath@gmail.com c1f96000b4 Adding web.config transformation file for agrath/Gareth Evans/Sniper Systems Laptop 2011-01-25 22:31:33 -13:00
agrath@gmail.com 873871b6c2 Fixing messup 2011-01-25 22:30:56 -13:00
agrath@gmail.com 6650394bf9 Upgraded DynamicNode to handle IEnumerable better so that you can chain method/property calls through an IEnumerable set like this: @Model.Children.Count() or @Model.Children.ElementAt(2) 2011-01-25 22:24:51 -13:00
agrath@gmail.com 9259dd897f Upgraded DynamicNode to handle IEnumerable better so that you can chain method/property calls through an IEnumerable set like this: @Model.Children.Count() or @Model.Children.ElementAt(2) 2011-01-25 22:24:40 -13:00
sgay 934c48cac6 fix #29956 - refactor cookies 2011-01-25 12:14:05 -01:00
starfighter83 5b99b1e803 Fixes small issue with installer db step 2011-01-25 10:36:35 -01:00
starfighter83 4a144ea6da Merge 2011-01-25 09:39:59 -01:00
starfighter83 991fb6236d Fixes: Possible to upload to media root when user doesn't have access (start media node set)
Work Items: 29942
2011-01-25 09:39:24 -01:00
psterling 05459b12c9 backed out fix for #29741 - updates default Admin Language to en-US including date/time/currency formats 2011-01-25 01:45:06 +08:00
hartvig 966c792c8b Patch by sgay. Work items: 29889 2011-01-24 09:58:14 -01:00
starfighter83 320382a143 Small css update to skin customization dialog 2011-01-24 08:04:18 -01:00
starfighter83 2d856cf664 Merge 2011-01-24 07:41:38 -01:00
starfighter83 1cf475e120 Update to installer, makes 'Connection string' input bigger 2011-01-24 07:40:45 -01:00
Elijah afe872c28e Added InjectContext
Using WebPageBase.CreateInstanceFromVirtualPath to create instances
RenderPage now works, copying Parameters/Node
2011-01-23 00:41:33 -10:00
psterling cd50056154 update to API Wiki link in default dashboard 2011-01-21 23:50:30 +08:00
psterling c2caf8ba91 fixes #29741 - updates default Admin Language to en-US including date/time/currency formats 2011-01-21 23:32:51 +08:00
Elijah ec7619510a Merge 2011-01-21 05:26:26 -10:00
Elijah 5859cc9867 Added BaseContext Future Stub 2011-01-21 05:22:49 -10:00
sgay 6e157581ca fix #29889 - content tabs issues 2011-01-21 14:10:52 -01:00
Elijah 10bf3511fc changed activator to use the build engine object factory 2011-01-21 04:58:54 -10:00
Elijah 6922f1d0d3 **Breaking Change IMacroEngine** passes physical path into the validate method
Added CultureDictionary Escape Char _
Razor Validation Added
Inline @inherits directive added when not found
DLR Scripting Engine Validation Soft Fail
2011-01-21 04:26:26 -10:00
Elijah 8511c2b5c8 Added Dynamic Property For Fetching Dictionary Items
Added Base Dynamic Lambda Dictionary
2011-01-21 02:37:03 -10:00
hartvig 7beffb2305 Merge of gplwhite patches, reviewed by hartvig. Work items: 29833 2011-01-21 11:20:01 -01:00
hartvig f51f5354f1 Merge of sgays patches, reviewed by hartvig. Work items: 29931, 29930, 29929, 29928, 29927, 29926, 29447, 29443, 29470, 28975, 29889 2011-01-21 11:10:01 -01:00
PerPloug b67f3a9c8e Missing build dependencie for release target 2011-01-21 07:32:38 -01:00
PerPloug 27ec2d16f1 Updated build.config for webPi package generation 2011-01-21 07:18:31 -01:00
Elijah 17efba1242 Removed Old Razor Stuff 2011-01-20 21:55:51 -10:00
PerPloug 17c3699612 WebPi Assets 2011-01-21 06:42:21 -01:00
PerPloug 0b4d7902b8 Adding missing SqlCE Manifests for x86 + amd64 2011-01-21 06:41:51 -01:00
Elijah 8ada4a4e1e Merge 2011-01-20 18:00:38 -10:00
Elijah e837c3c841 updated macroengine csproj RazorBuildProvider.cs/App.config 2011-01-20 17:55:59 -10:00
Elijah af79bb24e5 Added Medium Trust Support, Razor DLL's can now exist in the GAC or BIN
Added Inline Razor Support - Caches Templates In The App_Data directory for now
Taken out umbdebug from the engine, as it caches the debug content
Custom Build Provider - Future Stub
2011-01-20 17:52:56 -10:00
Elijah 26e6305e9c Add Helper Binaries - Microsoft.Web.Helpers - System.Web.Helpers 2011-01-20 17:49:38 -10:00
sgay 5790ff26fd fix #29931 - cleanup member statue management 2011-01-20 14:19:06 -01:00
sgay 542b892dd5 fix #29930 2011-01-20 14:08:15 -01:00
sgay 4af6ea2b3c fix #29929 2011-01-20 14:04:32 -01:00
sgay b82a251bb8 fix #29928 2011-01-20 14:01:17 -01:00
sgay 582b5797dc fix #29927 2011-01-20 14:00:08 -01:00
sgay edc930241b fix #29926 2011-01-20 13:56:20 -01:00
sgay f08ca0f014 fix #29447 - fail to rebuild content tree 2011-01-20 13:51:47 -01:00
sgay 415f6f38b1 should fix #29443 - duplicate node in content tree 2011-01-20 13:50:29 -01:00
sgay 3b7c8d73de fix #29470 - macros rendered twice 2011-01-20 13:47:46 -01:00
starfighter83 bae04cd27e WIP installer db step update 2011-01-20 11:42:26 -01:00
starfighter83 447582b018 Update to installer, adds continue button to validate permissions step 2011-01-20 11:10:19 -01:00
starfighter83 2af1812b01 WIP installer db step refactor, opens video help link in new window 2011-01-20 09:45:34 -01:00
starfighter83 d8c98ccfd8 WIP installer db step refactor 2011-01-20 09:23:04 -01:00
starfighter83 f4b4c03a9c Merge 2011-01-19 08:27:35 -01:00
starfighter83 580b670f33 Fixes: RTE can't cleanup pasted code automatically(umbraco 4.6.1)
Work Items: 29897
2011-01-19 08:27:00 -01:00
Elijah b450b04ee6 Added Fully Qualified Namespace For RazorBuildProvider 2011-01-18 16:15:55 -10:00
Elijah 9ca7e02e69 Added Web.Config To Configure Razor
Updated csproj dependency paths
2011-01-18 14:23:26 -10:00
Elijah 7144ff46e7 Added Razor ASP.NET WebPages Dependencies 2011-01-18 14:17:47 -10:00
Elijah 3b07515730 Renamed RazorEngine, Context Now Inherits From WebPageBase 2011-01-18 13:55:19 -10:00
Elijah 6f00df4c85 Updated Razor To Use System.Web.Complication.BuildManager 2011-01-18 06:14:06 -10:00
gplwhite 791b31bc3a Work Item #29833
Avoid saving an empty Xml document to the file-based content cache when a database connection is not available.
2011-01-17 15:00:49 -13:00
sgay 7c87b09e97 fix #28975 - broken macros cache 2011-01-17 14:19:54 -01:00
sgay 3ae4511532 fix #29889 - broken content tabs 2011-01-17 14:19:10 -01:00
hartvig 2fd905edb9 Work items: 29899 2011-01-17 09:34:40 -01:00
starfighter83 db10f1ed26 Merge 2011-01-17 06:47:00 -01:00
starfighter83 a9dd0a7e65 Fixed: RestExtensionMethod doesn't honour returnXml property
Work Items: 29898
2011-01-17 06:46:20 -01:00
hartvig d031e1da91 Work items: 29888 2011-01-15 22:06:28 +05:00
PerPloug 74f80e2ba5 Merge 2011-01-12 14:09:59 -01:00
PerPloug bbfc881a9e EditorControls.csproj release configuration fubar 2011-01-12 14:06:47 -01:00
starfighter83 018c5050b9 Merge 2011-01-12 14:06:46 -01:00
starfighter83 96f2ded0aa Merge 2011-01-12 14:05:12 -01:00
starfighter83 f0883b0994 Fixes tinymce media/members issue 2011-01-12 13:59:44 -01:00
PerPloug 571f89bbe3 Recommit of TinyMCE for media and members 2011-01-12 13:58:08 -01:00
hartvig 8e4deca486 Fixes issue with tinymce on media/members (missing commit) 2011-01-12 12:59:07 -01:00
PerPloug 5650c6427a Removes xml files from /bin on release builds 2011-01-12 12:47:12 -01:00
PerPloug 7b2750f503 Disables umbraco.test project in release mode due to MsTest limitation 2011-01-12 12:35:53 -01:00
PerPloug 7c7004c73e Merge 2011-01-12 12:17:44 -01:00
PerPloug ed2d771d32 Changing the build runner configuration requires editing this XML, move configuration to Teamcity, defaults to Release 2011-01-12 12:16:19 -01:00
hartvig 300de8c4ab Marked as 4.6.1 2011-01-12 11:44:35 -01:00
starfighter83 e777a97cb6 Merge 2011-01-12 10:50:57 -01:00
starfighter83 c72f15d1ba Fixes: Unable to set a link in the rich text editor
Work Items: 29861
2011-01-12 10:50:13 -01:00
hartvig 7ce70cc09f Merge 2011-01-12 10:20:21 -01:00
hartvig 35bc0cce0d Work items: 29016 2011-01-12 10:18:53 -01:00
starfighter83 449418c648 Fixes: Deleting Razor scripting files
Work Items: 29859
2011-01-12 10:14:40 -01:00
PerPloug e67a114a70 just a test to see if the right branch i build 2011-01-12 08:50:29 -01:00
PerPloug 461234ad3f Change nant build to 4.6.1 2011-01-12 08:19:00 -01:00
PerPloug 6a0e15e8f1 Auto-removal of .orig files during nant build 2011-01-12 08:06:01 -01:00
hartvig 7f82a46f56 Work items: 29860, 29858 2011-01-12 07:57:21 -01:00
boxbinary 9449ab1ed0 Opening a new branch for 4.6.1 development in the future.
This will be merged back into 4.6.0, and tagged with the appropriate release, when complete.
2011-01-12 01:18:17 +00:00
boxbinary c1cd915f7d Adding tag for 4.6.0 release (yay) 2011-01-12 01:14:14 +00:00
hartvig 0dbd27f21c Adds <httpRuntime requestValidationMode="2.0" /> to default web.config 2011-01-11 21:13:25 -01:00
6274 changed files with 302147 additions and 272517 deletions
+47 -3
View File
@@ -1,6 +1,8 @@
# use glob syntax
syntax: glob
syntax: regexp
^src/packages/(?!repositories.config$)
web.Template.[a-zA-Z0-9]*.Debug.config
syntax: glob
*.obj
*.exe
*.pdb
@@ -13,6 +15,10 @@ syntax: glob
obj/
[Rr]elease*/
_ReSharper*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
@@ -21,4 +27,42 @@ _ReSharper*/
[sS]andbox
umbraco.config
*.vs10x
App_Data\TEMP\*
App_Data\TEMP\*
umbraco\presentation\umbraco\plugins\*
umbraco\presentation\usercontrols\*
umbraco\presentation\scripts\*
umbraco\presentation\fonts\*
umbraco\presentation\css\*
src\Umbraco.Web.UI\[Cc]ss\*
src\Umbraco.Web.UI\App_Code\*
src\Umbraco.Web.UI\App_Data\*
src\Umbraco.Tests\App_Data\*
src\Umbraco.Web.UI\[Mm]edia\*
src\Umbraco.Web.UI\[Mm]aster[Pp]ages\*
src\Umbraco.Web.UI\[Mm]acro[Ss]cripts\*
src\Umbraco.Web.UI\[Xx]slt\*
src\Umbraco.Web.UI\[Ii]mages\*
src\Umbraco.Web.UI\[Ss]cripts\*
umbraco\presentation\umbraco\plugins\uComponents\uComponentsInstaller.ascx
umbraco\presentation\packages\uComponents\MultiNodePicker\CustomTreeService.asmx
_BuildOutput/*
*.ncrunchsolution
build/UmbracoCms.AllBinaries*zip
build/UmbracoCms.WebPI*zip
build/UmbracoCms*zip
build/*.nupkg
src/Umbraco.Tests/config/applications.config
src/Umbraco.Tests/config/trees.config
src/Umbraco.Web.UI/web.config
*.orig
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Web.UI/Views/*.cshtml
src/Umbraco.Web.UI/Views/*.vbhtml
src/Umbraco.Tests/config/umbracoSettings.config
src/Umbraco.Web.UI/App_Plugins/*
src/Umbraco.Web.UI/Views/*
src\Umbraco.Web.UI\[Ww]eb.config
*.transformed
+16
View File
@@ -4,3 +4,19 @@ d0aba247db91d1b70c39c6397b965ca370a67497 Sprint-Juno-A
f15d4ff81a8368e9d42788f7e0ae726f7a70a3b1 Release-4.0.3
283065df4d3c27245267709dd2644a479c4f62a5 Release-4.0.4.2
ffc34b23e1a03785e4098afa4290d8c03cf10115 Release-4.5.2
d03fcffb8834a9583a56813bb44b6abbd9f042cc Release-4.6.0
1809f7b2593270c192cd47bdcfdb392100686f79 4.7.2
488779dec0ceb1d2874bcef906241b919325c904 4.8.0-beta
096f20bb0575d6199f20fcb3147b63554e765a74 Release-4.8.0
8f8a203857886b373148af29edd57460a42940be Release-4.8.1
de73e687ddf6086ed52b6554676c1632865d07f2 Release-4.9.0
8d7d8609e2e4b971da99cd97f72132ce85ce3333 Release-4.9.1
f6da531fbb4c251ff61d314e2a7effb13c71e74a Release-4.10.0
20e4dff821d8ac2527a5353618fa1a23ea1d8b34 Release-4.11.0
7f827760cb49d749616859f528d19dde64807947 Release-4.11.1
7f827760cb49d749616859f528d19dde64807947 Release-4.11.1
6eb5f2fb5a88aa29ea544499df9160a1b31b5638 Release-4.11.1
73711b806a4044dbf0d7d7c095ddfdda23b09932 4.11.2
73711b806a4044dbf0d7d7c095ddfdda23b09932 4.11.2
0000000000000000000000000000000000000000 4.11.2
73711b806a4044dbf0d7d7c095ddfdda23b09932 Release-4.11.2
-38
View File
@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="INDIGO64 Tests" id="338122db-6049-471e-b696-cbaf25469edc" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>This is a default test run configuration for a local test run.</Description>
<Execution>
<Hosts type="ASP.NET" skipUnhostableTests="false">
<AspNet name="ASP.NET" executionType="Iis" urlToTest="http://sandbox1.umbraco.local">
<DevelopmentServer pathToWebSite="C:\Development\CodePlex\Umbraco\branches\4.1.0\umbraco\presentation" webApplicationRoot="/" />
</AspNet>
</Hosts>
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
<WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">
<Browser name="Internet Explorer 7.0">
<Headers>
<Header name="User-Agent" value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" />
<Header name="Accept" value="*/*" />
<Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />
<Header name="Accept-Encoding" value="GZIP" />
</Headers>
</Browser>
</WebTestRunConfiguration>
</TestTypeSpecific>
<AgentRule name="LocalMachineDefaultRole">
<DataCollectors>
<DataCollector uri="datacollector://microsoft/TraceDebugger/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TraceCollector.TraceDebuggerDataCollector, Microsoft.VisualStudio.TraceCollector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="IntelliTrace">
</DataCollector>
<DataCollector uri="datacollector://microsoft/HttpProxy/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TraceCollector.HttpProxyCollector, Microsoft.VisualStudio.TraceCollector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="ASP.NET Client Proxy for IntelliTrace and Test Impact">
</DataCollector>
<DataCollector uri="datacollector://microsoft/AspNetProfiler/1.0" assemblyQualifiedName="Microsoft.VisualStudio.PerformanceTools.DataCollection.AspNetProfileDataCollector, Microsoft.VisualStudio.PerformanceTools.DataCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="ASP.NET Profiler">
</DataCollector>
</DataCollectors>
</AgentRule>
</Execution>
</TestSettings>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-83
View File
@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - FREE Community Edition 7.0.5.906 (http://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DocumentTypes">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="DocumentType">
<xs:annotation>
<xs:documentation>Repesents an Umbraco Document Type and its known properties</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="BaseStructure">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Property">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="BaseStructure">
<xs:sequence>
<xs:element name="Mandatory" type="xs:boolean" />
<xs:element name="RegularExpression" type="xs:string" />
<xs:element name="Type" type="xs:string" />
<xs:element name="ControlId" type="xs:string" />
<xs:element name="Description" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Associations">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Association" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ParentId" type="xs:int" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="DataContextName" use="required">
<xs:annotation>
<xs:documentation>Name prefix for the DataContext that will be generated</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Serialization" use="required">
<xs:annotation>
<xs:documentation>Serialization mode of the generated classes</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="None" />
<xs:enumeration value="Unidirectional" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="PluralizeCollections" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
<xs:complexType name="BaseStructure">
<xs:annotation>
<xs:documentation>Pairing of ID and Name</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Id" type="xs:int" />
<xs:element name="Name" type="xs:string" />
<xs:element name="Alias" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="nodeType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="data">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="alias" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="node" type="nodeType" />
</xs:sequence>
<xs:attribute name="id" type="xs:int" use="required" />
<xs:attribute name="version" type="xs:string" use="required" />
<xs:attribute name="parentID" type="xs:int" use="required" />
<xs:attribute name="level" type="xs:int" use="required" />
<xs:attribute name="writerID" type="xs:int" use="required" />
<xs:attribute name="creatorID" type="xs:int" use="required" />
<xs:attribute name="nodeType" type="xs:int" use="required" />
<xs:attribute name="template" type="xs:int" use="required" />
<xs:attribute name="sortOrder" type="xs:int" use="required" />
<xs:attribute name="createDate" type="xs:dateTime" use="required" />
<xs:attribute name="updateDate" type="xs:dateTime" use="required" />
<xs:attribute name="nodeName" type="xs:string" use="required" />
<xs:attribute name="urlName" type="xs:string" use="required" />
<xs:attribute name="writerName" type="xs:string" use="required" />
<xs:attribute name="creatorName" type="xs:string" use="required" />
<xs:attribute name="nodeTypeAlias" type="xs:string" use="required" />
<xs:attribute name="path" type="xs:string" use="required" />
</xs:complexType>
<xs:element name="root">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="node" type="nodeType" />
</xs:sequence>
<xs:attribute name="id" type="xs:int" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
@@ -1,769 +0,0 @@
<!DOCTYPE umbraco[
<!ELEMENT nodes ANY>
<!ELEMENT node ANY>
<!ATTLIST node id ID #REQUIRED>
]>
<root id="-1">
<node id="1048" version="d76c30e9-8c89-47e3-bd64-f7e0620f2b87" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1045" template="1042" sortOrder="2" createDate="2008-05-02T09:52:36" updateDate="2009-02-24T12:43:20" nodeName="Runway Homepage" urlName="runway-homepage" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="RunwayHomepage" path="-1,1048">
<data alias="bodyText">
<![CDATA[
<p>Runway gives you a bare-bones website that introduces you to a
set of well-defined conventions for building an umbraco
website.</p>
<p>The Runway website is very simple in form and provided without
any design or functionality. By installing Runway, you'll begin
with a minimal site built on best practices. You'll also enjoy the
benefits of speaking the same "language" as the rest of the umbraco
community by using common properties and naming conventions.</p>
<p>Now that you know what Runway is, it is time to get started
using Runway.</p>
<?UMBRACO_MACRO macroAlias="ContactForm" />
<p>AJAX Loader:</p>
<?UMBRACO_MACRO macroAlias="AjaxLoader" />
]]>
</data>
<data alias="siteName">Runway</data>
<data alias="siteDescription"><![CDATA[Off to a great start]]></data>
<node id="1049" version="ace8cba9-338e-4153-bb07-0177df9352d7" parentID="1048" level="2" writerID="0" creatorID="0" nodeType="1046" template="1044" sortOrder="1" createDate="2008-06-01T23:12:54" updateDate="2009-02-24T12:28:28" nodeName="Installing runway modules" urlName="installing-runway-modules" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="RunwayTextpage" path="-1,1048,1049">
<data alias="bodyText">
<![CDATA[<p>Runway modules encapsulate specific bits of advanced functionality that are easily added to your website.</p>
<p>Once installed, Runway Modules are open source and easy to customize if you want to modify the behavior for your specific needs. <br />Because Runway modules are provided under the MIT license you are free to use and modify them any way you want, with no strings attached.</p>
<p>To add Runway modules to your website, go to the <strong>Developer</strong> section, expand the <strong>Packages</strong> item and click <strong>Install Runway modules</strong>.</p>
<p>Runwau modules are available for various kinds of navigation, a sitemap, and a contact form. The list of available Runway modules is growing rapidly and is automatically updated from a central source, always fresh and current.</p>
<p><a href="http://umbraco.org/redir/Runway/aboutUmbraco">Get more information</a> about the umbraco way.</p>]]>
</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1050" version="8250593e-3aa1-40ab-bbac-86908346f061" parentID="1048" level="2" writerID="0" creatorID="0" nodeType="1046" template="1044" sortOrder="2" createDate="2008-06-01T23:14:52" updateDate="2009-02-24T12:28:28" nodeName="Go further" urlName="go-further" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="RunwayTextpage" path="-1,1048,1050">
<data alias="bodyText">
<![CDATA[<p>Runway only scratches the surface of what&rsquo;s possible with umbraco. Below Runway and its modules lies a great architecture that lets you implement whatever you need.</p>
<p>With umbraco you&rsquo;ve finally got a solid, open and reliable platform for websites as simple as a Runway site, and umbraco can be rapidly expanded to support multi-language websites, collaboration platforms and intra/extranets, to name just a few.</p>
<p>Advanced functionality is created with umbraco macros, built with XSLT and umbraco&rsquo;s award-winning .NET integration, including full support for any .NET User or Custom control. Create and integrate your own .NET macros in mere minutes with point and click simplicity. Simply copy your controls to the umbraco website, go to the <strong>Developer</strong> section and create a new macro, selecting your control from the list.</p>
<p>We&rsquo;ve also gathered the best community macros into a repository that&rsquo;s also accessed from the <strong>Developer</strong> section, in the <strong>Packages</strong> area. You can find more information <a href="http://umbraco.org/redir/Runway/macros">about creating macros</a>, on the umbraco website.</p>
<p>The sky is the limit with umbraco, and you have the benefit a friendly community, training, and guaranteed support. Find out how to <a href="http://umbraco.org/redir/Runway/support">get help</a>.</p>]]>
</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1051" version="317d8fee-a3ce-465b-8cec-3b385d5f6444" parentID="1048" level="2" writerID="0" creatorID="0" nodeType="1046" template="1044" sortOrder="3" createDate="2008-06-01T23:11:56" updateDate="2009-02-24T12:28:28" nodeName="Getting started" urlName="getting-started" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="RunwayTextpage" path="-1,1048,1051">
<data alias="bodyText">
<![CDATA[<p>You&rsquo;ve installed umbraco and a minimal Runway website.</p>
<p>Edit the text on the homepage and create a site structure by adding new texpages to your site. This is all done in the <strong>Content</strong> section.</p>
<p>If you find the editing options provided by Runway too limited for you needs, simply add more properties to the page by going to the <strong>Settings</strong> section, expanding the <strong>Document Types</strong> item and adding new properties on the <strong>Generic Properties</strong> tab. You can find more information about <a href="http://umbraco.org/redir/Runway/documentTypes">document types and properties</a> at the umbraco website.</p>
<p>But mostly you&rsquo;ll probably want to personalize your site by changing the current design. This is also done in the <strong>Settings</strong> section, by editing the CSS styles and HTML templates. Umbraco uses master templates, so the main, common markup is placed in the <strong>Runway Master</strong> template, while the Homeage and Textpage have separate templates for their unique layouts. You can find more information about <a href="http://umbraco.org/redir/Runway/templates">templates and css</a> in umbraco at the umbraco website.</p>
<p>Once you&rsquo;re happy with your site&rsquo;s design, you might want to add more functionality, such as automated navigation. This is done by <a href="/installing-nitros">installing Runway modules</a>.</p>]]>
</data>
<data alias="umbracoNaviHide">0</data>
</node>
</node>
<node id="1054" version="d0841c5e-8819-428b-9862-fabe04ddd22e" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1052" template="0" sortOrder="3" createDate="2009-02-24T12:50:00" updateDate="2009-02-24T12:50:32" nodeName="People" urlName="people" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="Content Folder" path="-1,1054">
<node id="1055" version="48949e3d-b103-4801-8e11-e9d0f6303dc5" parentID="1054" level="2" writerID="0" creatorID="0" nodeType="1053" template="0" sortOrder="1" createDate="2009-02-24T12:50:11" updateDate="2009-02-24T12:50:35" nodeName="Aaron" urlName="aaron" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="Person" path="-1,1054,1055">
<data alias="FirstName">Aaron</data>
<data alias="LastName">Powell</data>
</node>
<node id="1056" version="7d42b11c-7aae-461e-a17a-862d82549728" parentID="1054" level="2" writerID="0" creatorID="0" nodeType="1053" template="0" sortOrder="2" createDate="2009-02-24T12:50:46" updateDate="2009-02-24T12:50:55" nodeName="Bart" urlName="bart" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="Person" path="-1,1054,1056">
<data alias="FirstName">Bart</data>
<data alias="LastName">Simpson</data>
</node>
<node id="1057" version="9786afbd-bf54-43a1-ae41-2fa4d91aa441" parentID="1054" level="2" writerID="0" creatorID="0" nodeType="1053" template="0" sortOrder="3" createDate="2009-02-24T12:51:00" updateDate="2009-02-24T12:51:09" nodeName="Homer" urlName="homer" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="Person" path="-1,1054,1057">
<data alias="FirstName">Homer</data>
<data alias="LastName">Simpson</data>
</node>
<node id="1058" version="fb025f86-9ffb-40b6-8cd9-badfe7d4fad1" parentID="1054" level="2" writerID="0" creatorID="0" nodeType="1053" template="0" sortOrder="4" createDate="2009-02-24T12:51:25" updateDate="2009-02-24T12:51:31" nodeName="Lisa" urlName="lisa" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="Person" path="-1,1054,1058">
<data alias="FirstName">Lisa</data>
<data alias="LastName">Simpson</data>
</node>
</node>
<node id="1098" version="58bf4556-d9b0-4dc4-a9e9-fb74c26d42f9" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1084" template="1069" sortOrder="4" createDate="2009-02-26T18:39:39" updateDate="2009-04-07T08:31:39" nodeName="Home" urlName="home" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Home" path="-1,1098">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="siteName">Your logo/name</data>
<data alias="headerText">
<![CDATA[
<p><strong>Sam Grady</strong> designed <strong>this for Warren
Buckley.</strong> "This" idea was first created by the incredible
Robert Brownjohn and has been copied many times since.</p>
]]>
</data>
<data alias="homepagePhoto">/media/49/home_photo.jpg</data>
<data alias="bodyText">
<![CDATA[
<p>Thank you for installing the umbraco website package created and
developed by Warren Buckley. This website package should be used to
help you understand how all the components of an Umbraco site
works.</p>
]]>
</data>
<node id="1099" version="7d9982e5-ae3b-43b4-b61f-1203e03d178e" parentID="1098" level="2" writerID="0" creatorID="0" nodeType="1088" template="1076" sortOrder="1" createDate="2009-02-26T18:47:46" updateDate="2009-04-07T08:31:40" nodeName="About" urlName="about" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Textpage" path="-1,1098,1099">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[This is the META description for the about page.]]></data>
<data alias="metaKeywords"><![CDATA[about, creative web specialist, umbraco, warren buckley, sam grady]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>This is a good place to put a service message or something to
help define your site or company.</p>
]]>
</data>
<data alias="articlePhoto">
</data>
<data alias="bodyText">
<![CDATA[
<p><strong>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aliquam ullamcorper condimentum lorem. Curabitur placerat nunc ut
leo. Integer eros ligula, vestibulum at, eleifend id, dignissim
vel, est.</strong></p>
<p>Fusce tristique. Cras faucibus porta nunc. Aliquam ultrices,
arcu quis ornare sagittis, lectus augue ornare nulla, eu lobortis
velit lectus id nibh. Aliquam condimentum aliquet purus. Quisque
blandit ante non sapien. Sed justo libero, sollicitudin ac, pretium
et, luctus nec, nisl. Nulla semper neque nec magna. Cras ut nibh ut
urna bibendum sodales. Quisque venenatis euismod lacus.
Pellentesque dapibus turpis at urna.</p>
<h3>Sub Header</h3>
<p>Sed scelerisque adipiscing mauris. Mauris egestas dapibus quam.
Integer in libero eget eros dignissim pretium. Proin luctus sem nec
lorem. Praesent lorem. Vivamus eget nunc quis sapien condimentum
egestas. Maecenas facilisis, nunc at sodales facilisis, quam magna
pretium nibh, vel ultrices lectus lorem quis neque. Nam sit amet
leo ac lectus gravida convallis. Phasellus at enim vel dui porta
porttitor. Morbi id dolor adipiscing erat egestas consequat.</p>
<p><a href="http://www.google.co.uk">Phasellus diam. Morbi
dolor.</a> Donec consequat sodales nunc. Nam dapibus lectus id
lectus. Sed ultrices metus sit amet est. Morbi porttitor. Proin vel
risus. Phasellus sodales convallis justo. <em>Sed luctus hendrerit
risus. Sed est lorem, feugiat et, rutrum quis, condimentum non,
nunc.</em> Aenean urna leo, sagittis a, commodo eget, lobortis nec,
eros. Vivamus pharetra, lectus eu ultrices pulvinar, nunc quam
consectetur nibh, sed pulvinar leo dolor ut felis.</p>
<ol>
<li>Item one</li>
<li>Item two</li>
<li>Item three</li>
</ol>
<p>Nullam lobortis, mi nec feugiat congue, dolor diam cursus lacus,
a elementum ligula dolor vitae sem. Suspendisse at quam. Praesent
neque. Vestibulum at justo. Nulla rutrum velit et eros.</p>
<ul>
<li>Integer convallis augue in tellus</li>
<li>Magna quam sollicitudin mauris</li>
</ul>
<p>Nullam lobortis, mi nec feugiat congue, dolor diam cursus lacus,
a elementum ligula dolor vitae sem. Suspendisse at quam.</p>
]]>
</data>
<node id="1100" version="e10f3703-4af1-461d-baff-060d1f6c5e4e" parentID="1099" level="3" writerID="0" creatorID="0" nodeType="1088" template="1076" sortOrder="1" createDate="2009-02-26T18:51:52" updateDate="2009-04-07T08:31:40" nodeName="About Umbraco" urlName="about-umbraco" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Textpage" path="-1,1098,1099,1100">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>It's the <strong>KING</strong> of all CMS's, what more do you
need to know about it?</p>
]]>
</data>
<data alias="articlePhoto">/media/171/umbraco_tshirt.jpg</data>
<data alias="bodyText">
<![CDATA[
<h3>Umbraco CMS is free</h3>
<p>It means that you are not bound and locked to the licensing
rules about the number of content items / processors / web /
domains, etc. Many products are very expensive as the license cost
escalates with the number of websites. In many cases, one is soon
up in the 500' before one can even start to implement the
solution.</p>
<h3>Umbraco is Open Source</h3>
<p>In an Open Source product one has at any time full access to
source code. This provides insight and leads to better quality, as
"shortcuts" and bad code can easily be penetrated. Moreover, one
has the ability to influence and further develop the product.</p>
<p>Umbraco is based on open source and is therefore not
lisence-plated or subject to an enterprise's ownership. The Umbraco
publishing tool places great emphasis on simplicity, standards,
flexibility and integration. Umbraco was launched in 2005 and has
had a tremendous growth since that time. Umbraco is today among the
most popular systems based on open source for Microsoft. NET
platform.</p>
<h3>100% Microsoft .NET</h3>
<p>Umbraco is built 100% on the Microsoft. NET 2.0. This means that
you can use 3rd party .NET components directly in Umbraco.
Moreover, integration with other .NET-based solutions is well
adapted from Umbracos part. Umbraco won an award for the
Integration possibilities on BNP Awards 2006.</p>
<h3>Fast results</h3>
<p>Umbraco is a powerful tool with a focus on core functionality
and openness. This efficiently allows you to achieve exactly what
you want - rather than be restricted to a "finished" module, which
makes only half of what you really wanted.</p>
<h3>Easy-to-use</h3>
<p>Umbraco has a focus on content and facilitate rapid and
intuitive content management. The system strives to be elegant,
usable and effective.</p>
<h3>Based on standards</h3>
<p>Umbraco is based on standards from the W3C as XHTML, CSS, XML
and XSLT. This gives a greater flexibility and independence, which
in turn provides more value for the money.</p>
<h3>Integration</h3>
<p>Umbraco is known to be among the best CMS on integration. Much
of the reason for this is the way to expose Microsoft ASP.NET
components as elements of, or so-called "macro's" for use in
templates, as well as in the WYSIWYG editor that writers and
editors use. Elements is also possible to "cache" on several levels
and is based on standard Microsoft .NET technology. Below are some
examples:</p>
<ul>
<li>External XML sources (ex RSS) can be directly implemented via
XSLT elements (macros).</li>
<li>ASP.NET controls that retrieve data from external or internal
posterior systems via standard Web Services.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]>
</data>
</node>
<node id="1101" version="535d77b2-0e18-449c-8f29-c9e16f854e1d" parentID="1099" level="3" writerID="0" creatorID="0" nodeType="1089" template="1077" sortOrder="2" createDate="2009-02-26T18:56:06" updateDate="2009-04-07T08:31:41" nodeName="About this project" urlName="about-this-project" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_TextpageTwoCol" path="-1,1098,1099,1101">
<data alias="articlePhotoColOne">/media/227/warren-buckley.jpg</data>
<data alias="articlePhotoColTwo">/media/228/sam-grady.jpg</data>
<data alias="bodyTextColTwo">
<![CDATA[
<h3>Sam Grady</h3>
<p>Sam Grady, me, is a graphic designer. I loves graphic design.
Great graphic design and simple solutions makes this man very
happy. Photography is also very close to my heart and I'd like to
be better, so I practice a lot and annoy people with my
requests.<br />
<br />
I haven't got a blog, yet, don't Twitter and cancelled my Facebook
account as I felt uncomfortable with people knowing my business.
Anyone else feel that way? I do, however, have a Flickr account, so
go check it out: <a
href="http://www.flickr.com/photos/mrgrady">www.flickr.com/photos/mrgrady</a><br />
<br />
I also have my own business, G72, which has a website that
desperately needs updating. Also, as of today (03/03/09), it's
currently down due to inept web hosts. Hopefully it won't be if you
want to take a look: <a
href="http://www.g-72.co.uk">www.g-72.co.uk</a><br />
<br />
Regarding this project, Warren asked me if I wanted to design his
website starter package for the fantastic Umbraco CMS, which I
jumped at the chance to do. Hopefully you'll find the design
appropriate and the package very useful, as that's what we really
want from this project.<br />
<br />
Finally, Warren says the layout is work in progress and I have a,
typically fussy, list of designer layout requests that I've asked
Warren to do, but time being what it is, these changes won't be
made on version 2.0, so if you spot anything, do mail the man as
we'll be compiling a list of tweaks to be made.<br />
<br />
Enjoy.</p>
]]>
</data>
<data alias="bodyTextColOne">
<![CDATA[
<h3>Warren Buckley</h3>
<p>Warren Buckley is a web developer who specialises in using the
Umbraco CMS platform to build content managed websites for Xeed in
Norway. I run a blog called <a
href="http://www.creativewebspecialist.co.uk">Creative Web
Specialist</a>, where I mainly write tips and tutorial articles
around Umbraco.</p>
<p>I have teamed up with ex-collegue Sam Grady to help me design
the new version of CWS as he produces wonderfully sexy designs for
the web. If you have seen my previous version/s of CWS you will
know that my design skills are far from stunning.</p>
<p>I decided to create this website starter site nicknamed CWS
(Creative Website Starter site) as a learning tool to help you
understand how all the elements of a site work together in
Umbraco.</p>
<p>From this <strong>NEW</strong> CWS package comes the
following:</p>
<ul>
<li>Obviously a <strong>BRAND NEW</strong> spanking design from
ex-collegue Sam Grady of G-72</li>
<li>A focus for this site to be used to help teach new users to the
Umbraco CMS platform.</li>
<li>.NET usercontrols written in C#</li>
<li>XSLT &amp; .NET code heavily commented to help understand what
is going on.</li>
<li>With supporting documentation coming in the near future.</li>
</ul>
<p>Want to see where else you can find me on the net?<br />
Blog - <a
href="http://www.creativewebspecialist.co.uk">www.creativewebspecialist.co.uk</a><br />
Flickr - <a
href="http://www.flickr.com/photos/warrenbuckley">www.flickr.com/photos/warrenbuckley</a><br />
Last.FM - <a
href="http://www.last.fm/user/warrenbuckley">www.last.fm/user/warrenbuckley</a><br />
Twitter - <a
href="http://twitter.com/warrenbuckley">twitter.com/warrenbuckley</a></p>
]]>
</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>This website has been produced to help you understand
Umbraco.</p>
]]>
</data>
</node>
</node>
<node id="1102" version="aaaee7bb-f068-4e6d-b191-4993366f1acf" parentID="1098" level="2" writerID="0" creatorID="0" nodeType="1082" template="1067" sortOrder="2" createDate="2009-02-27T09:39:54" updateDate="2009-04-07T08:31:42" nodeName="Gallery" urlName="gallery" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_GalleryList" path="-1,1098,1102">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>This first page displays all the albums featured within your
site.<br />
Please have a browse through.</p>
]]>
</data>
<data alias="sortBy"><![CDATA[sortOrder]]></data>
<data alias="sortOrder"><![CDATA[ascending]]></data>
<node id="1103" version="baefb3c9-1ccc-4aa9-93c4-7f5760c25932" parentID="1102" level="3" writerID="0" creatorID="0" nodeType="1083" template="1068" sortOrder="1" createDate="2009-03-02T17:58:22" updateDate="2009-04-07T08:31:48" nodeName="The Bookhouse Boys" urlName="the-bookhouse-boys" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Gallery" path="-1,1098,1102,1103">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>The Bookhouse Boys. Live at the ICA, London.</p>
]]>
</data>
<data alias="sortBy"><![CDATA[sortOrder]]></data>
<data alias="sortOrder"><![CDATA[ascending]]></data>
<data alias="galleryThumbnail">/media/1239/bookhouse-boys_gallery.jpg</data>
<node id="1104" version="3e1ed560-41de-4d44-a6f1-5e548cc712db" parentID="1103" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="1" createDate="2009-03-03T18:08:55" updateDate="2009-04-07T08:31:49" nodeName="Catherine Turner and Paul Van Oestren" urlName="catherine-turner-and-paul-van-oestren" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1103,1104">
<data alias="photoText">Credit: Sam Grady</data>
<data alias="photo">/media/1277/bookhouse-boys_3.jpg</data>
<data alias="photoThumbnail">/media/1314/bookhouse-boys_3_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1105" version="da6ddbfc-1a91-4701-8d94-1f96ee9d3622" parentID="1103" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="2" createDate="2009-03-03T18:08:19" updateDate="2009-04-07T08:31:49" nodeName="J.P.Fellows" urlName="jpfellows" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1103,1105">
<data alias="photoText">Credit: Sam Grady</data>
<data alias="photo">/media/1250/bookhouse-boys_1.jpg</data>
<data alias="photoThumbnail">/media/1296/bookhouse-boys_1_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1106" version="7cd4e67f-0ff5-4703-8ce5-8a8797cd4ecc" parentID="1103" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="3" createDate="2009-03-03T18:08:48" updateDate="2009-04-07T08:31:50" nodeName="Catherine Turner" urlName="catherine-turner" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1103,1106">
<data alias="photoText">Credit: Sam Grady</data>
<data alias="photo">/media/1331/bookhouse-boys_2.jpg</data>
<data alias="photoThumbnail">/media/1350/bookhouse-boys_2_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
</node>
<node id="1107" version="017fd898-fdbb-4afd-8e06-0bc38fbe51db" parentID="1102" level="3" writerID="0" creatorID="0" nodeType="1083" template="1068" sortOrder="2" createDate="2009-02-27T09:48:12" updateDate="2009-04-07T08:31:51" nodeName="Codegarden 08" urlName="codegarden-08" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Gallery" path="-1,1098,1102,1107">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>Where all the great minds of umbraco meet!</p>
]]>
</data>
<data alias="sortBy"><![CDATA[sortOrder]]></data>
<data alias="sortOrder"><![CDATA[ascending]]></data>
<data alias="galleryThumbnail">/media/993/codegarden-08_gallery.jpg</data>
<node id="1108" version="de2b19f5-b93e-48de-86a2-4e044b7926d1" parentID="1107" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="1" createDate="2009-03-02T15:40:01" updateDate="2009-04-07T08:31:51" nodeName="Darren and David have a chat" urlName="darren-and-david-have-a-chat" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1107,1108">
<data alias="photoText">Credit: Douglas Robar</data>
<data alias="photo">/media/825/darren-ferguson_david-conlisk.jpg</data>
<data alias="photoThumbnail">/media/835/darren-ferguson_david-conlisk_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1109" version="99394045-f7cf-4bb6-a2fa-e3b11d1c3d7e" parentID="1107" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="2" createDate="2009-02-27T09:54:07" updateDate="2009-04-07T08:31:51" nodeName="Codegarden 08 T-Shirt" urlName="codegarden-08-t-shirt" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1107,1109">
<data alias="photoText">Credit: Warren Buckley</data>
<data alias="photo">/media/394/codegarden08-t-shirt.jpg</data>
<data alias="photoThumbnail">/media/799/codegarden08-t-shirt_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1110" version="4f229339-b59e-4656-9b6e-7eab0bf94f56" parentID="1107" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="3" createDate="2009-03-02T15:43:43" updateDate="2009-04-07T08:31:52" nodeName="The Umbraco BINGO callers" urlName="the-umbraco-bingo-callers" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1107,1110">
<data alias="photoText">Credit: Douglas Robar</data>
<data alias="photo">/media/852/bingo-callers.jpg</data>
<data alias="photoThumbnail">/media/871/bingo-callers_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1111" version="0321d7a9-0cf2-43b8-88d8-fb198db20c07" parentID="1107" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="4" createDate="2009-03-02T15:59:24" updateDate="2009-04-07T08:31:52" nodeName="Christian Palm chatting" urlName="christian-palm-chatting" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1107,1111">
<data alias="photoText">Credit: Douglas Robar</data>
<data alias="photo">/media/879/christian-palm.jpg</data>
<data alias="photoThumbnail">/media/889/christian-palm_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
</node>
<node id="1112" version="103caccd-68ee-45f0-8943-34fc772de05e" parentID="1102" level="3" writerID="0" creatorID="0" nodeType="1083" template="1068" sortOrder="3" createDate="2009-03-02T16:02:14" updateDate="2009-04-07T08:31:53" nodeName="Bath, UK" urlName="bath,-uk" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Gallery" path="-1,1098,1102,1112">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>Photos from a trip to Bath in November 2008</p>
]]>
</data>
<data alias="sortBy"><![CDATA[updateDate]]></data>
<data alias="sortOrder"><![CDATA[ascending]]></data>
<data alias="galleryThumbnail">/media/935/bath_gallery.jpg</data>
<node id="1113" version="6f819ee4-7f08-4423-b4ec-2c4935edbe7b" parentID="1112" level="4" writerID="0" creatorID="0" nodeType="1087" template="1073" sortOrder="1" createDate="2009-03-02T16:27:17" updateDate="2009-04-07T08:31:54" nodeName="Royal Crescent" urlName="royal-crescent" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Photo" path="-1,1098,1102,1112,1113">
<data alias="photoText">Credit: Warren Buckley</data>
<data alias="photo">/media/995/royal-crescent.jpg</data>
<data alias="photoThumbnail">/media/1014/royal-crescent_thumb.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
</node>
</node>
<node id="1114" version="5944cb0d-2395-4032-95bb-f93b0763ea7c" parentID="1098" level="2" writerID="0" creatorID="0" nodeType="1085" template="1071" sortOrder="3" createDate="2009-02-27T09:57:30" updateDate="2009-04-07T08:31:54" nodeName="News and Events" urlName="news-and-events" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_NewsEventsList" path="-1,1098,1114">
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="sortBy"><![CDATA[sortOrder]]></data>
<data alias="sortOrder"><![CDATA[ascending]]></data>
<data alias="headerText">
<![CDATA[
<p>Please browse through our news archive and event listings
below.</p>
]]>
</data>
<node id="1115" version="515b40e0-cc1a-4342-a285-a407cabc9546" parentID="1114" level="3" writerID="0" creatorID="0" nodeType="1081" template="1066" sortOrder="1" createDate="2009-02-27T10:00:53" updateDate="2009-04-07T08:31:54" nodeName="Codegarden 09" urlName="codegarden-09" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_EventItem" path="-1,1098,1114,1115">
<data alias="eventDate">2009-06-22T00:00:00</data>
<data alias="bodyText">
<![CDATA[
<h3>Come join the annual umbraco developer conference in Wonderful
Copenhagen on June 22nd - 23rd. Two days for insights, eye-openers,
great conversations and friendly people.</h3>
<p>The who's who of umbraco will be gathered and share their
knowledge through talks, tutorials and via un-conference formats
like open space or hacking sessions. We have booked a cool, old and
huge industrial venue in central Copenhagen where we'll have one
huge room, three rooms for breakout sessions and a Caf&eacute; that
serves your taste of espresso.</p>
<p>Come join the annual umbraco developer conference in Wonderful
Copenhagen on June 22nd - 23rd. Two days for insights, eye-openers,
great conversations and friendly people.</p>
<p>We've planned a program that fits both experienced umbraco users
as well as new comers. The conference is kicked off with a Keynote
and after that we'll have two or three tracks of sessions and the
first day is rounded with an open Q/A session with the umbraco core
team.</p>
<p>The second day features an un-conference format called open
space, which we also used with great success at last year's
conference. It's a format where everybody can suggest a topic and
as we have plenty of break-out rooms rest assured that there'll be
room for your topic as well. Last year's more than 20 topics
covered Silverlight, High performance websites with umbraco,
building custom data types and much more.</p>
<p>But it doesn't ends there. We've ensured that we can stay at the
venue until midnight both days which means that when the first day
ends, the fun begins. With more than hundred people gathered at a
place with loads of umbraco knowledge, wifi, great food and plenty
of space, who knows what could happen. A BBQ, new packages,
improvised demos and talks, or...?</p>
<p>&nbsp;</p>
]]>
</data>
<data alias="articlePhoto">/media/445/umbraco_tshirt.jpg</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
<node id="1116" version="00a7fcd7-5a5b-4b50-97f5-6fad5261b6cd" parentID="1114" level="3" writerID="0" creatorID="0" nodeType="1086" template="1072" sortOrder="2" createDate="2009-03-02T16:32:06" updateDate="2009-04-07T08:31:55" nodeName="CWS2 is released" urlName="cws2-is-released" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_NewsItem" path="-1,1098,1114,1116">
<data alias="bodyText">
<![CDATA[
<h3>After Warren Buckley's success of the first Creative Website
Starter site package, with over 20K downloads he has decided to
work on CWS2.</h3>
<p>As of today Wednesday the 4th March 2009, the CWS2 package is
now available to download from the built in package repository
inside Umbraco.</p>
<p>With this new version comes the following:</p>
<ul>
<li>A <strong>BRAND NEW</strong> spanking design from ex-collegue
<a href="http://www.g-72.co.uk"
title="Designer Sam Grady of G72">Sam Grady of G-72</a></li>
<li>A focus for this site to be used to help teach new users to the
Umbraco CMS platform.</li>
<li>.NET usercontrols written in C#</li>
<li>XSLT &amp; .NET code heavily commented to help understand what
is going on.</li>
<li>With supporting documentation coming in the near future.</li>
</ul>
]]>
</data>
<data alias="articlePhoto">
</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
</node>
</node>
<node id="1117" version="e29fb4b9-3a29-46a0-9c82-bdc3e297cfc5" parentID="1098" level="2" writerID="0" creatorID="0" nodeType="1079" template="1064" sortOrder="4" createDate="2009-02-27T10:03:12" updateDate="2009-04-07T08:31:55" nodeName="Contact" urlName="contact" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_Contact" path="-1,1098,1117">
<data alias="emailTo">you@yourcompany.co.uk</data>
<data alias="emailSubject">Email from Contact form on website</data>
<data alias="emailBody">
<![CDATA[Hello a user of your site has filled in your contact form on [Date] @ [Time]
Name: [Name]
Address: [AddressLine1], [AddressLine2]
Email: [Email]
Message: [Message]]]>
</data>
<data alias="emailReplyFrom">you@yourcompany.co.uk</data>
<data alias="emailReplySubject">Thank you for your message</data>
<data alias="emailReplyBody">
<![CDATA[Hello [Name]
Thanks for contacting us, we will reply shortly.
Your Company Name
www.yourcompany.co.uk]]>
</data>
<data alias="enableSSL">0</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">0</data>
<data alias="headerText">
<![CDATA[
<p>Everything you need to<br />
get in touch.</p>
]]>
</data>
<data alias="formText">
<![CDATA[
<h3>Enquiry Form</h3>
<p>If you have a particular enquiry, please fill out the form below
and provide as much information as you can, so that one of our
representatives can deal with your enquiry as effciently as
possible.</p>
]]>
</data>
<data alias="thankYouHeaderText">
<![CDATA[
<p><strong>Thank you.</strong> We will be in touch shortly.</p>
]]>
</data>
<data alias="thankYouMessageText">
<![CDATA[
<p>Thanks for filling out our contact form we will get back to you
shortly.</p>
<p>Regards,<br />
My Company</p>
]]>
</data>
</node>
<node id="1118" version="f0ac3795-d7bf-4869-a147-4def5358ed26" parentID="1098" level="2" writerID="0" creatorID="0" nodeType="1080" template="1065" sortOrder="5" createDate="2009-02-27T10:05:57" updateDate="2009-04-07T08:31:56" nodeName="Email a Friend" urlName="email-a-friend" writerName="Administrator" creatorName="Administrator" nodeTypeAlias="CWS_EmailAFriend" path="-1,1098,1118">
<data alias="emailFrom">you@yourcompany.co.uk</data>
<data alias="emailSubjectToFriend">[YourName] has sent you a link to read</data>
<data alias="emailMessageToFriend">
<![CDATA[Hello [FriendName], [YourName] has sent you this link to read.
URL: [URL]
Message: [Message]
--------------------------------------------------------
Your Company Name
www.yourcompany.co.uk]]>
</data>
<data alias="enableSSL">0</data>
<data alias="umbracoUrlName">
</data>
<data alias="umbracoUrlAlias">
</data>
<data alias="metaDescription"><![CDATA[]]></data>
<data alias="metaKeywords"><![CDATA[]]></data>
<data alias="umbracoRedirect">0</data>
<data alias="umbracoNaviHide">1</data>
<data alias="headerText">
<![CDATA[
<p>Send a page onto your friend.</p>
]]>
</data>
<data alias="thankYouHeaderText">
<![CDATA[
<p><strong>Thank you.</strong> We appreciate the love you are
giving our site.</p>
]]>
</data>
<data alias="thankYouMessageText">
<![CDATA[
<p>Thanks for sending that link onto your friend, we really
appreciate it here at My Company.</p>
]]>
</data>
</node>
</node>
</root>
@@ -1,83 +0,0 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{324A7FA9-8F19-4D4D-B96A-6F673C82BC92}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>umbraco.LinqCore.Mockable.Tests</RootNamespace>
<AssemblyName>umbraco.LinqCore.Mockable.Tests</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</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>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Fixed Version|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug - Fixed Version\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="Rhino.Mocks, Version=3.5.0.1337, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\dep\Reference Assemblies\Mocking\Rhino.Mocks.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Runtime.Serialization">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Solution Items\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="DataContextMockTest.cs" />
<Compile Include="MyUmbraco.designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\umbraco.Linq.Core.csproj">
<Project>{31CAEC36-0C3D-4D69-B092-84866811EA07}</Project>
<Name>umbraco.Linq.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,5 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>
@@ -1,10 +0,0 @@
""
{
"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"
}
@@ -1,84 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Rhino.Mocks;
using umbraco.Linq.Core;
using umbraco.Test;
namespace umbraco.LinqCore.Mockable.Tests
{
/// <summary>
/// Summary description for DataContextMockTest
/// </summary>
[TestClass]
public class DataContextMockTest
{
public DataContextMockTest()
{
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod]
public void DataContextMockTest_MockProvider()
{
var dataProvider = MockRepository.GenerateMock<UmbracoDataProvider>();
using (var ctx = new MyUmbracoDataContext(dataProvider))
{
}
}
[TestMethod, ExpectedException(typeof(NotImplementedException))]
public void DataContextMockTest_MockProviderThrowsException()
{
var dataProvider = MockRepository.GenerateMock<UmbracoDataProvider>();
dataProvider.Stub(d => d.LoadTree<CwsHome>()).Throw(new NotImplementedException());
using (var ctx = new MyUmbracoDataContext(dataProvider))
{
var homes = ctx.CwsHomes;
}
}
}
}
File diff suppressed because it is too large Load Diff
@@ -1,9 +0,0 @@
using System.Reflection;
// 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("Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Core")]
@@ -1,118 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for AncestorTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class AncestorTest
{
public AncestorTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void AncestorTest_NoWhereCondition_Exists()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var textPage = ctx.CWSTextpages.First();
var hp = textPage.AncestorOrDefault<CWSHome>();
Assert.IsNotNull(hp);
}
}
[TestMethod, Isolated]
public void AncestorTest_NoWhereCondition_NotExists()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var textPage = ctx.CWSTextpages.First();
var a = textPage.AncestorOrDefault<CWSPhoto>();
Assert.IsNull(a);
}
}
[TestMethod, Isolated]
public void AncestorTest_Where_Exists()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var photo = ctx.CWSPhotos.First(p => p.Name.Contains("Umbraco"));
var gallery = photo.AncestorOrDefault<CWSGallery>(g => g.Name.Contains("Codegarden"));
Assert.IsNotNull(gallery);
}
}
[TestMethod, Isolated]
public void AncestorTest_Where_NotExists()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var photo = ctx.CWSPhotos.First(p => p.Name.Contains("Umbraco"));
var gallery = photo.AncestorOrDefault<CWSGallery>(g => g.Name.Contains("Bookhouses"));
Assert.IsNull(gallery);
}
}
}
}
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="umbracoPath" value="umbraco.config"/>
</appSettings>
</configuration>
@@ -1,136 +0,0 @@
==========================================================================
Visual Studio Team System: Overview of Authoring and Running Tests
==========================================================================
This overview describes the features for authoring and running tests in
Visual Studio Team System and Visual Studio Team Edition for Software Testers.
Opening Tests
-------------
To open a test, open a test project or a test metadata file (a file with
extension .vsmdi) that contains the definition of the test. You can find
test projects and metadata files in Solution Explorer.
Viewing Tests
-------------
To see which tests are available to you, open the Test View window. Or,
if you have installed Team Edition for Software Testers, you can also open
the Test List Editor window to view tests.
To open the Test View window, click the Test menu, point to Windows, and
then click Test View. To open the Test List Editor window (if you have
installed Team Edition for Software Testers), click Test, point to Windows,
and then click Test List Editor.
Running Tests
-------------
You can run tests from the Test View window and the Test List Editor window.
See Viewing Tests to learn how to open these windows. To run one or more
tests displayed in the Test View window, first select the tests in that
window; to select multiple tests, hold either the Shift or CTRL key while
clicking tests. Then click the Run Tests button in the Test View window
toolbar.
If you have installed Visual Studio Team Edition for Software Testers, you can
also use the Test List Editor window to run tests. To run tests in Test List Editor,
select the check box next to each test that you want to run. Then click the
Run Tests button in the Test List Editor window toolbar.
Viewing Test Results
--------------------
When you run a test or a series of tests, the results of the test run will be
shown in the Test Results window. Each individual test in the run is shown on
a separate line so that you can see its status. The window contains an
embedded status bar in the top half of the window that provides you with
summary details of the complete test run.
To see more detailed results for a particular test result, double-click it in
the Test Results window. This opens a window that provides more information
about the particular test result, such as any specific error messages returned
by the test.
Changing the way that tests are run
-----------------------------------
Each time you run one or more tests, a collection of settings is used to
determine how those tests are run. These settings are contained in a “test
run configuration” file.
Here is a partial list of the changes you can make with a test run
configuration file:
- Change the naming scheme for each test run.
- Change the test controller that the tests are run on so that you can run
tests remotely.
- Gather code coverage data for the code being tested so that you can see
which lines of code are covered by your tests.
- Enable and disable test deployment.
- Specify additional files to deploy before tests are run.
- Select a different host, ASP.NET, for running ASP.NET unit tests.
- Select a different host, the smart device test host, for running smart device unit tests.
- Set various properties for the test agents that run your tests.
- Run custom scripts at the start and end of each test run so that you can
set up the test environment exactly as required each time tests are run.
- Set time limits for tests and test runs.
- Set the browser mix and the number of times to repeat Web tests in the
test run.
By default, a test run configuration file is created whenever you create a
new test project. You make changes to this file by double-clicking it in
Solution Explorer and then changing its settings. (Test run configuration
files have the extension .testrunconfig.)
A solution can contain multiple test run configuration files. Only one of
those files, known as the “Active” test run configuration file, is used to
determine the settings that are currently used for test runs. You select
the active test run configuration by clicking Select Active Test Run
Configuration on the Test menu.
-------------------------------------------------------------------------------
Test Types
----------
Using Visual Studio Team Edition for Software Testers, you can create a number
of different test types:
Unit test: Use a unit test to create a programmatic test in C++, Visual C# or
Visual Basic that exercises source code. A unit test calls the methods of a
class, passing suitable parameters, and verifies that the returned value is
what you expect.
There are three specialized variants of unit tests:
- Data-driven unit tests are created when you configure a unit test to be
called repeatedly for each row of a data source. The data from each row
is used by the unit test as input data.
- ASP.NET unit tests are unit tests that exercise code in an ASP.NET Web
application.
- Smart device unit tests are unit tests that are deployed to a smart device
or emulator and then executed by the smart device test host.
Web Test: Web tests consist of an ordered series of HTTP requests that you
record in a browser session using Microsoft Internet Explorer. You can have
the test report specific details about the pages or sites it requests, such
as whether a particular page contains a specified string.
Load Test: You use a load test to encapsulate non-manual tests, such as
unit, Web, and generic tests, and then run them simultaneously by using
virtual users. Running these tests under load generates test results,
including performance and other counters, in tables and in graphs.
Generic test: A generic test is an existing program wrapped to function as a
test in Visual Studio. The following are examples of tests or programs that
you can turn into generic tests:
- An existing test that uses process exit codes to communicate whether the
test passed or failed. 0 indicates passing and any other value indicates
a failure.
- A general program to obtain specific functionality during a test scenario.
- A test or program that uses a special XML file (called a “summary results
file”), to communicate detailed results.
Manual test: The manual test type is used when the test tasks are to be
completed by a test engineer as opposed to an automated script.
Ordered test: Use an ordered test to execute a set of tests in an order you
specify.
-------------------------------------------------------------------------------
@@ -1,93 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for CacheTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class CacheTest
{
public CacheTest()
{
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void CacheTest_ForcedRefresh()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var hps = ctx.CWSHomes;
ctx.CWSHomes.ReloadCache();
var reloadedHps = ctx.CWSHomes;
Assert.AreNotSame(reloadedHps, hps, "Force reload should result in a different object");
}
}
[TestMethod, Isolated]
public void CacheTest_RequeryLoadFromCache()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var hps = ctx.CWSHomes;
var requeriedHps = ctx.CWSHomes;
Assert.AreSame(requeriedHps, hps, "Requeried objects should result in the same collection");
}
}
}
}
@@ -1,102 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for ChildTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class ChildTest
{
public ChildTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void ChildTest_ChildExist()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var pages = ctx.CWSHomes.First().CWSTextpages;
Assert.AreNotEqual(0, pages.Count());
}
}
[TestMethod, Isolated]
public void ChildTest_ChildToParent()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var page = ctx.CWSHomes.First().CWSTextpages.First();
Assert.AreEqual(ctx.CWSHomes.First().Id, page.Parent<CWSHome>().Id);
}
}
[TestMethod, Isolated]
public void ChildTest_AllChildren()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var hp = ctx.CWSHomes.First();
Assert.IsTrue(hp.Children.Count() > 0);
Assert.IsInstanceOfType(hp.Children.First(), typeof(CWSTextpage));
Assert.IsInstanceOfType(hp.Children.Skip(1).First(), typeof(CWSGalleryList));
}
}
}
}
@@ -1,130 +0,0 @@
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A80528D0-E68C-4A94-9489-C712216665B0}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>umbraco.Linq.Core.Tests</RootNamespace>
<AssemblyName>umbraco.Linq.Core.Tests</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
</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>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug - Fixed Version|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug - Fixed Version\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Runtime.Serialization">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="TypeMock, Version=5.3.0.0, Culture=neutral, PublicKeyToken=3dae460033b8d8e2, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\dep\Reference Assemblies\Mocking\TypeMock.dll</HintPath>
</Reference>
<Reference Include="Typemock.ArrangeActAssert, Version=5.3.0.0, Culture=neutral, PublicKeyToken=3dae460033b8d8e2, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\dep\Reference Assemblies\Mocking\Typemock.ArrangeActAssert.Dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Solution Items\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="AncestorTest.cs" />
<Compile Include="CacheTest.cs" />
<Compile Include="ChildTest.cs" />
<Compile Include="CwsReplicationTest.cs" />
<Compile Include="DataContextTest.cs" />
<Compile Include="Extensions.cs" />
<Compile Include="InheritanceTest.cs" />
<Compile Include="MockHelpers.cs" />
<Compile Include="MyUmbraco.Abstractions.cs" />
<Compile Include="MyUmbraco.designer.cs" />
<Compile Include="OrderingTest.cs" />
<Compile Include="ParentTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SelectTest.cs" />
<Compile Include="WhereTest.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="AuthoringTests.txt" />
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\dep\Test Helpers\umbraco.config">
<Link>umbraco.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\umbraco\businesslogic\umbraco.businesslogic.csproj">
<Project>{E469A9CE-1BEC-423F-AC44-713CD72457EA}</Project>
<Name>umbraco.businesslogic</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\umbraco\datalayer\umbraco.datalayer.csproj">
<Project>{C7CB79F0-1C97-4B33-BFA7-00731B579AE2}</Project>
<Name>umbraco.datalayer</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\umbraco\presentation\umbraco.presentation.csproj">
<Project>{651E1350-91B6-44B7-BD60-7207006D7003}</Project>
<Name>umbraco.presentation</Name>
</ProjectReference>
<ProjectReference Include="..\Core\umbraco.Linq.Core.csproj">
<Project>{31CAEC36-0C3D-4D69-B092-84866811EA07}</Project>
<Name>umbraco.Linq.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,5 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>
@@ -1,10 +0,0 @@
""
{
"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"
}
@@ -1,85 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Tests to replicate the functionality of the CWS2 xslt's
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class CwsReplicationTest
{
public CwsReplicationTest()
{
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void CwsReplicationTest_ListGalleries()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var galleryList = ctx.CWSGalleryLists.First(); //this would really be a Where(g => g.Id == umbracoContext.Current.PageId.Value) but since I'm not really on a page...
var galleries = from g in galleryList.CWSGalleries
where g.CWSPhotos.Count() >= 1
orderby g.Name
select new
{
g.Name,
Url = umbraco.library.NiceUrl(g.Id),
Thumbnail = (string.IsNullOrEmpty(g.GalleryThumbnail) ? "/Assets/Placeholders/gallery_placeholder.gif" : g.GalleryThumbnail),
PhotoCount = g.CWSPhotos.Count(),
};
Assert.AreEqual(3, galleries.Count());
}
}
}
}
@@ -1,145 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Linq.Core.Node;
using umbraco.Test;
using System.IO;
using System.Web;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for DataContextTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class DataContextTest
{
public DataContextTest()
{
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, ExpectedException(typeof(ArgumentNullException))]
public void DataContextTest_FileNameRequired()
{
var nodeProvider = new NodeDataProvider(string.Empty);
}
[TestMethod, ExpectedException(typeof(FileNotFoundException))]
public void DataContextTest_FileMustExist()
{
var nodeProvider = new NodeDataProvider(@"C:\fakeFile.config");
}
[TestMethod]
public void DataContextTest_ConstructFromExistingProvider()
{
var nodeProvider = new NodeDataProvider(Path.Combine(Environment.CurrentDirectory, "umbraco.config"));
MyUmbracoDataContext ctx = new MyUmbracoDataContext(nodeProvider);
}
[TestMethod]
public void DataContextTest_EnsureSchemaValidation()
{
var nodeProvider = new NodeDataProvider(Path.Combine(Environment.CurrentDirectory, "umbraco.config"), true);
MyUmbracoDataContext ctx = new MyUmbracoDataContext(nodeProvider);
var hp = ctx.CWSHomes.First();
Assert.IsNotNull(hp);
}
[TestMethod, Isolated]
public void DataContextTest_DefaultConstructorIsNodeProvider()
{
MockHelpers.SetupFakeHttpContext();
var ctx = new MyUmbracoDataContext();
Assert.IsInstanceOfType(ctx.DataProvider, typeof(NodeDataProvider));
}
[TestMethod, Isolated]
public void DataContextTest_NodeCached()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var hp = ctx.CWSHomes.First();
var hp2 = ctx.CWSHomes.First();
Assert.AreSame(hp, hp2);
}
}
[TestMethod, Isolated]
public void DataContextTest_FullCache()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var one = ctx.CWSHomes;
var two = ctx.CWSHomes;
Assert.AreSame(one, two);
}
}
[TestMethod, Isolated]
public void DataContextTest_OfNodeTypes()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var tree = ctx.CWSHomes;
Assert.IsInstanceOfType(tree, typeof(NodeTree<CWSHome>));
Assert.IsInstanceOfType(tree.First().CWSTextpages, typeof(NodeAssociationTree<CWSTextpage>));
}
}
}
}
@@ -1,42 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TypeMock.ArrangeActAssert;
namespace umbraco.Linq.Core.Tests
{
public static class Extensions
{
public static ActionRepeater<TReturn> WillReturnRepeat<TReturn>(this IPublicNonVoidMethodHandler<TReturn> ret, TReturn value, int numberOfReturns)
{
for (var i = 0; i < numberOfReturns; i++)
ret.WillReturn(value);
return new ActionRepeater<TReturn>(ret);
}
public static ActionRepeater<TReturn> CallOriginalRepeat<TReturn>(this IPublicNonVoidMethodHandler<TReturn> ret, int numberOfReturns)
{
for (var i = 0; i < numberOfReturns; i++)
ret.CallOriginal();
return new ActionRepeater<TReturn>(ret);
}
}
public class ActionRepeater<TReturn>
{
private IPublicNonVoidMethodHandler<TReturn> _actionRepeater;
public ActionRepeater(IPublicNonVoidMethodHandler<TReturn> actionRepeater)
{
_actionRepeater = actionRepeater;
}
public IPublicNonVoidMethodHandler<TReturn> AndThen()
{
return _actionRepeater;
}
}
}
@@ -1,80 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for InheritanceTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class InheritanceTest
{
public InheritanceTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod]
public void InheritanceTest_ImplementsBaseClass()
{
var tmp = new TextPageThreeCol();
Assert.AreEqual(typeof(CWSTextpageTwoCol), tmp.GetType().BaseType);
}
[TestMethod, Isolated]
public void InheritanceTest_PropertyFromBase()
{
var fake = Isolate.Fake.Instance<TextPageThreeCol>();
Assert.AreEqual(typeof(CWSTextpageTwoCol), fake.GetType().GetProperties().Single(p => p.Name == "Headertext").DeclaringType);
}
}
}
@@ -1,19 +0,0 @@
using System;
using System.Web;
using TypeMock.ArrangeActAssert;
using System.IO;
namespace umbraco.Linq.Core.Tests
{
internal class MockHelpers
{
public static void SetupFakeHttpContext()
{
HttpContext fakeHttpContext = Isolate.Fake.Instance<HttpContext>(Members.MustSpecifyReturnValues);
HttpServerUtility fakeServer = Isolate.Fake.Instance<HttpServerUtility>();
Isolate.WhenCalled(() => HttpContext.Current).WillReturn(fakeHttpContext);
Isolate.WhenCalled(() => fakeHttpContext.Server).WillReturn(fakeServer);
Isolate.WhenCalled(() => fakeServer.MapPath(string.Empty)).WillReturn(Path.Combine(Environment.CurrentDirectory, "umbraco.config"));
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,81 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for OrderingTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class OrderingTest
{
public OrderingTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void OrderingTest_Date()
{
MockHelpers.SetupFakeHttpContext();
using (var orderedContext = new MyUmbracoDataContext())
{
var asc = orderedContext.CWSTextpages.OrderBy(p => p.CreateDate);
var desc = orderedContext.CWSTextpages.OrderByDescending(p => p.CreateDate);
Assert.AreEqual(asc.Count(), desc.Count());
Assert.AreNotEqual(asc.First().Id, desc.First().Id);
Assert.AreEqual(asc.First().Id, desc.Last().Id);
}
}
}
}
@@ -1,109 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for ParentTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class ParentTest
{
public ParentTest()
{
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void ParentTest_ParentIdExists()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var p = ctx.CWSTextpages.First();
Assert.AreNotEqual(0, p.ParentNodeId);
}
}
[TestMethod, Isolated]
public void ParentTest_ParentCreated()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var page = ctx.CWSTextpages.Single(p => p.Id == 1099);
Assert.AreEqual(1098, page.ParentNodeId);
var parent = page.Parent<CWSHome>();
Assert.AreEqual(page.ParentNodeId, parent.Id);
}
}
[TestMethod, Isolated]
public void ParentTest_TopParentNull()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var hp = ctx.CWSHomes.First();
Assert.IsNull(hp.Parent<CWSHome>());
}
}
[TestMethod, Isolated, ExpectedException(typeof(DocTypeMissMatchException))]
public void ParentTest_InvalidParentType()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var p = ctx.CWSPhotos.First().Parent<CWSHome>();
}
}
}
}
@@ -1,9 +0,0 @@
using System.Reflection;
// 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("Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Core")]
@@ -1,179 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using umbraco.Test;
using TypeMock.ArrangeActAssert;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for SelectTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class SelectTest
{
public SelectTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void SelectTest_LoopTree_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var homePages = from hp in ctx.CWSHomes
select hp;
Assert.IsNotNull(homePages);
foreach (var item in homePages)
{
Assert.IsTrue(item.BodyText.Length > 0);
}
}
}
[TestMethod, Isolated]
public void SelectTest_LoopTree_Lambda()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var homePages = ctx.CWSHomes;
Assert.IsNotNull(homePages);
foreach (CWSHome item in homePages)
{
Assert.IsTrue(item.BodyText.Length > 0);
}
}
}
[TestMethod, Isolated]
public void SelectTest_SingleProperty_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var homePageText = from hp in ctx.CWSHomes
select hp.BodyText;
Assert.IsNotNull(homePageText);
foreach (var item in homePageText)
{
Assert.IsNotNull(item);
}
}
}
[TestMethod, Isolated]
public void SelectTest_SingleProperty_Lambda()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var homePageText = ctx.CWSHomes.Select(hp => hp.BodyText);
Assert.IsNotNull(homePageText);
foreach (var item in homePageText)
{
Assert.IsNotNull(item);
}
}
}
[TestMethod, Isolated]
public void SelectTest_Anonymous_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var anon = from hp in ctx.CWSHomes
select new
{
hp.BodyText,
CreatedDate = hp.CreateDate
};
Assert.IsNotNull(anon);
foreach (var item in anon)
{
Assert.IsNotNull(item.BodyText);
Assert.AreNotEqual(DateTime.MinValue, item.CreatedDate);
}
}
}
[TestMethod, Isolated]
public void SelectTest_Anonymous_Lambda()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var anon = ctx.CWSHomes.Select(hp => new
{
hp.BodyText,
CreatedDate = hp.CreateDate
});
Assert.IsNotNull(anon);
foreach (var item in anon)
{
Assert.IsNotNull(item.BodyText);
Assert.AreNotEqual(DateTime.MinValue, item.CreatedDate);
}
}
}
}
}
@@ -1,130 +0,0 @@
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TypeMock.ArrangeActAssert;
using umbraco.Test;
namespace umbraco.Linq.Core.Tests
{
/// <summary>
/// Summary description for WhereTest
/// </summary>
[TestClass, DeploymentItem("umbraco.config")]
public class WhereTest
{
public WhereTest()
{
//
// TODO: Add constructor logic here
//
}
private TestContext testContextInstance;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region Additional test attributes
//
// You can use the following additional attributes as you write your tests:
//
// Use ClassInitialize to run code before running the first test in the class
// [ClassInitialize()]
// public static void MyClassInitialize(TestContext testContext) { }
//
// Use ClassCleanup to run code after all tests in a class have run
// [ClassCleanup()]
// public static void MyClassCleanup() { }
//
// Use TestInitialize to run code before running each test
// [TestInitialize()]
// public void MyTestInitialize() { }
//
// Use TestCleanup to run code after each test has run
// [TestCleanup()]
// public void MyTestCleanup() { }
//
#endregion
[TestMethod, Isolated]
public void WhereTest_SingleParameter_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var pages = from page in ctx.CWSTextpages
where page.BodyText.Length > 0
select page;
Assert.IsNotNull(pages);
Assert.IsTrue(pages.Count() > 0);
}
}
[TestMethod, Isolated]
public void WhereTest_DateTimeGreaterThan_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var pages = from page in ctx.CWSTextpages
where page.CreateDate > DateTime.MinValue
select page;
Assert.IsNotNull(pages);
Assert.IsTrue(pages.Count() > 0);
}
}
[TestMethod, Isolated]
public void WhereTest_TwoParameter_Query()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var pages = from page in ctx.CWSTextpages
where page.BodyText.Length > 0
&& page.CreateDate > DateTime.MinValue
select page;
Assert.IsNotNull(pages);
Assert.IsTrue(pages.Count() > 0);
}
}
[TestMethod, Isolated]
public void WhereTest_ToAnonymous()
{
MockHelpers.SetupFakeHttpContext();
using (var ctx = new MyUmbracoDataContext())
{
var pages = from page in ctx.CWSTextpages
where page.BodyText.Length > 0
select new
{
page.Id,
page.BodyText
};
Assert.AreNotEqual(0, pages.Count());
}
}
}
}
@@ -1,29 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.Core
{
/// <summary>
/// Represents the child items of TDocTypeBase
/// </summary>
/// <remarks>
/// This is used for creating a DataProvider specific child item collection of a DocType instance.
///
/// It allows a DocType to have strongly typed child associations, and accessors such as:
/// <example>
/// myDocType.SomeChildTypes
/// </example>
/// </remarks>
/// <typeparam name="TDocTypeBase">The type of the DocTypeBase which this association represents.</typeparam>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
public abstract class AssociationTree<TDocTypeBase> : Tree<TDocTypeBase> where TDocTypeBase : DocTypeBase, new()
{
/// <summary>
/// Gets or sets the parent node id which this AssociationTree is for
/// </summary>
/// <value>The parent node id.</value>
public int ParentNodeId { get; protected set; }
}
}
@@ -1,85 +0,0 @@
using System;
namespace umbraco.Linq.Core
{
/// <summary>
/// Standard umbraco info
/// </summary>
[global::System.AttributeUsage(AttributeTargets.Property | AttributeTargets.Class | AttributeTargets.Interface, Inherited = true, AllowMultiple = false)]
public sealed class UmbracoInfoAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoInfoAttribute"/> class.
/// </summary>
/// <param name="alias">The alias for this piece of umbraco info.</param>
public UmbracoInfoAttribute(string alias)
{
this.Alias = alias;
}
/// <summary>
/// Gets or sets the display name of the item.
/// </summary>
/// <value>The display name.</value>
public string DisplayName { get; set; }
/// <summary>
/// Gets or sets the alias.
/// </summary>
/// <value>The alias.</value>
public string Alias { get; private set; }
/// <summary>
/// Gets or sets a value indicating whether this property is mandatory.
/// </summary>
/// <value><c>true</c> if mandatory; otherwise, <c>false</c>.</value>
public bool Mandatory { get; set; }
}
/// <summary>
/// Marks a class as an umbraco DocType
/// </summary>
[global::System.AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, Inherited = true, AllowMultiple = false)]
public sealed class DocTypeAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="DocTypeAttribute"/> class.
/// </summary>
public DocTypeAttribute()
{
}
}
/// <summary>
/// Marks a property as a standard umbraco field
/// </summary>
/// <remarks>
/// Example usage:
/// - ID
/// - ParentID
/// - CreateDate
/// </remarks>
[global::System.AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)]
public sealed class FieldAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="FieldAttribute"/> class.
/// </summary>
public FieldAttribute()
{
}
}
/// <summary>
/// Marks a property as a custom umbraco DocType property
/// </summary>
[global::System.AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)]
public sealed class PropertyAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of the <see cref="PropertyAttribute"/> class.
/// </summary>
public PropertyAttribute()
{
}
}
}
@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1" GroupingSetting="Access" MembersFormat="NameAndType">
<Class Name="umbraco.Linq.Core.AssociationTree&lt;TDocTypeBase&gt;">
<Position X="1" Y="4.75" Width="2.25" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA=</HashCode>
<FileName>AssociationTree.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="umbraco.Linq.Core.DocTypeBase" BaseTypeListCollapsed="true">
<Position X="8.25" Y="0.75" Width="4.5" />
<Compartments>
<Compartment Name="Internal" Collapsed="true" />
<Compartment Name="Private" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>MAASJAACAQCEAAAgAACUYAQBgACAAAAhEAIBAAEEAYI=</HashCode>
<FileName>DocTypeBase.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="umbraco.Linq.Core.Tree&lt;TDocType&gt;">
<Position X="2.5" Y="0.75" Width="3" />
<Compartments>
<Compartment Name="Private" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AAAQAAAAAAAEABAQAAAAAAAAAAAAAAAEAAAAAAAAAAA=</HashCode>
<FileName>Tree.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="umbraco.Linq.Core.UmbracoDataContext" BaseTypeListCollapsed="true">
<Position X="13" Y="0.75" Width="3.5" />
<Compartments>
<Compartment Name="Private" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AAAAAAAAACAEAAAAAAAAAABAAAAAAAAAAAAACACAAAA=</HashCode>
<FileName>UmbracoDataContext.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="umbraco.Linq.Core.Node.NodeAssociationTree&lt;TDocTypeBase&gt;">
<Position X="0.5" Y="6.75" Width="3.25" />
<Compartments>
<Compartment Name="Private" Collapsed="true" />
<Compartment Name="Internal" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AAAUABAAAAAEABAQAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Node\NodeAssociationTree.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="umbraco.Linq.Core.Node.NodeDataProvider" BaseTypeListCollapsed="true">
<Position X="5.25" Y="12" Width="4.5" />
<Compartments>
<Compartment Name="Private" Collapsed="true" />
<Compartment Name="Internal" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>IAAAiAAAACAUAAQAAAABCKQAAAAAAAAAAAACKAiAAAA=</HashCode>
<FileName>Node\NodeDataProvider.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="umbraco.Linq.Core.Node.NodeTree&lt;TDocTypeBase&gt;">
<Position X="4.5" Y="4.75" Width="3.25" />
<Compartments>
<Compartment Name="Private" Collapsed="true" />
<Compartment Name="Internal" Collapsed="true" />
</Compartments>
<TypeIdentifier>
<HashCode>AAASABAAAAAEABAQAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Node\NodeTree.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="umbraco.Linq.Core.UmbracoDataProvider">
<Position X="5.25" Y="8.75" Width="4.5" />
<TypeIdentifier>
<HashCode>AAAAgAAAACAAAAQAAAABAAQAAAAAAAAAAAAAAACAAAA=</HashCode>
<FileName>UmbracoDataProvider.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Interface Name="umbraco.Linq.Core.ITree">
<Position X="5.75" Y="0.75" Width="2.25" />
<TypeIdentifier>
<HashCode>AAAQAAAAAAAEAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>ITree.cs</FileName>
</TypeIdentifier>
</Interface>
<Font Name="Segoe UI" Size="9" />
</ClassDiagram>
@@ -1,442 +0,0 @@
using System;
using System.ComponentModel;
using System.Linq;
using System.Runtime.Serialization;
using umbraco.BusinessLogic;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace umbraco.Linq.Core
{
/// <summary>
/// Provides the base framework for an umbraco item
/// </summary>
[DataContract]
public class DocTypeBase : IDocTypeBase //This class should be abstract but it can't be done AND achieve the Children property like this
{
#region Internal Storage
private int _Id;
private string _nodeName;
private string _versionId;
private int _templateId;
private int _parentId;
private int writerID;
private User _writer;
private int creatorID;
private User _creator;
private string _path;
private IEnumerable<DocTypeBase> _ancestors;
private AssociationTree<DocTypeBase> _children;
#endregion
/// <summary>
/// Initializes a new instance of the <see cref="DocTypeBase"/> class.
/// </summary>
public DocTypeBase()
{
this.IsDirty = true;
}
/// <summary>
/// Gets or sets the provider.
/// </summary>
/// <value>The provider.</value>
protected internal UmbracoDataProvider Provider { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance has been modified since it was first loaded
/// </summary>
/// <value><c>true</c> if this instance has been modified; otherwise, <c>false</c>.</value>
public bool IsDirty { get; protected internal set; }
#region Fields
/// <summary>
/// Gets or sets the id of the umbraco item
/// </summary>
/// <value>The id.</value>
[Field]
[UmbracoInfo("id", DisplayName = "Id", Mandatory = true), DataMember(Name = "Id")]
public virtual int Id
{
get
{
return this._Id;
}
protected internal set
{
if (this._Id != value)
{
this.RaisePropertyChanging();
this._Id = value;
this.RaisePropertyChanged("Id");
}
}
}
/// <summary>
/// Gets or sets the name (title) of the umbraco item
/// </summary>
/// <value>The name.</value>
[Field]
[UmbracoInfo("nodeName", DisplayName = "NodeName", Mandatory = true), DataMember(Name = "NodeName")]
public virtual string NodeName
{
get
{
return this._nodeName;
}
set
{
if (this._nodeName != value)
{
this.RaisePropertyChanging();
this._nodeName = value;
this.IsDirty = true;
this.RaisePropertyChanged("NodeName");
}
}
}
[Field]
[Obsolete("Name property is obsolete, use NodeName instead")] //this is because most people expect NodeName not Name as the property
public virtual string Name
{
get
{
return this.NodeName;
}
set
{
this.NodeName = value;
}
}
/// <summary>
/// Gets or sets the template ID of the umbraco item
/// </summary>
/// <value>The name.</value>
[Field]
[UmbracoInfo("template", DisplayName = "Template", Mandatory = true), DataMember(Name = "TemplateId")]
public virtual int TemplateId
{
get
{
return this._templateId;
}
set
{
if (this._templateId != value)
{
this.RaisePropertyChanging();
this._templateId = value;
this.IsDirty = true;
this.RaisePropertyChanged("Template");
}
}
}
/// <summary>
/// Gets or sets the version of the umbraco item
/// </summary>
/// <value>The version.</value>
[Field]
[UmbracoInfo("version", DisplayName = "Version", Mandatory = true), DataMember(Name = "Version")]
public virtual string Version
{
get
{
return this._versionId;
}
protected internal set
{
if (this._versionId != value)
{
this.RaisePropertyChanging();
this._versionId = value;
this.RaisePropertyChanged("Version");
}
}
}
/// <summary>
/// Gets or sets the ID of the parent node.
/// </summary>
/// <value>The parent node id.</value>
[Field]
[UmbracoInfo("parentID", DisplayName = "ParentId", Mandatory = true), DataMember(Name = "ParentId")]
public virtual int ParentNodeId
{
get
{
return this._parentId;
}
set
{
if (this._parentId != value)
{
this.RaisePropertyChanging();
this._parentId = value;
this.RaisePropertyChanged("ParentId");
}
}
}
/// <summary>
/// Gets or sets the created date.
/// </summary>
/// <value>The create date.</value>
[Field]
[UmbracoInfo("createDate", DisplayName = "CreateDate"), DataMember(Name = "CreateDate")]
public virtual DateTime CreateDate { get; set; }
/// <summary>
/// Gets or sets the sort order.
/// </summary>
/// <value>The sort order.</value>
[Field]
[UmbracoInfo("sortOrder", DisplayName = "SortOrder"), DataMember(Name = "SortOrder")]
public virtual int SortOrder { get; set; }
/// <summary>
/// Gets or sets the last updated date of the current version
/// </summary>
/// <value>The update date.</value>
[Field]
[UmbracoInfo("updateDate", DisplayName = "UpdateDate"), DataMember(Name = "UpdateDate")]
public virtual DateTime UpdateDate { get; set; }
/// <summary>
/// Gets or sets the level of this item in the content tree
/// </summary>
/// <value>The level.</value>
[Field]
[UmbracoInfo("level", DisplayName = "Level"), DataMember(Name = "Level")]
public virtual int Level { get; set; }
/// <summary>
/// Gets or sets the path.
/// </summary>
/// <value>The path.</value>
[Field]
[UmbracoInfo("path", DisplayName = "Path")]
[DataMember(Name = "Path")]
public virtual string Path
{
get
{
return this._path;
}
set
{
if (this._path != value)
{
this.RaisePropertyChanging();
this._path = value;
this.RaisePropertyChanged("Path");
}
}
}
#endregion
#region Parents and Children
/// <summary>
/// Gets the children of this DocType instance.
/// </summary>
/// <value>The children of this DocType instance.</value>
public AssociationTree<DocTypeBase> Children
{
get
{
if (this._children == null)
{
this._children = this.Provider.LoadAssociation(this.Id); //tell the provider to create it
}
return this._children;
}
}
/// <summary>
/// Gets the children which are of the type TDocTypeBase.
/// </summary>
/// <typeparam name="TDocTypeBase">The DocType of the children desired.</typeparam>
/// <returns>An <see cref="umbraco.Linq.Core.AssociationTree&lt;TDocTypeBase&gt;"/> of the children</returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
protected AssociationTree<TDocTypeBase> ChildrenOfType<TDocTypeBase>() where TDocTypeBase : DocTypeBase, new()
{
return this.Provider.LoadAssociation<TDocTypeBase>(this.Children.Where(d => d is TDocTypeBase).Cast<TDocTypeBase>());
}
/// <summary>
/// Parent this instance.
/// </summary>
/// <typeparam name="TParent">The type of the parent.</typeparam>
/// <returns>Null when at the root level, else the parent instance</returns>
/// <exception cref="umbraco.Linq.Core.DocTypeMissMatchException">If the type of the parent does not match the provided type</exception>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
public virtual TParent Parent<TParent>() where TParent : DocTypeBase, new()
{
if (this._parentId == -1)
{
return null;
}
return this.Provider.Load<TParent>(this._parentId);
}
/// <summary>
/// Retrieves the first matching ancestor of the current type
/// </summary>
/// <remarks>
/// Provides similar functionality to the XPath method
/// </remarks>
/// <returns>First ancestor matching type. Null if no match found</returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
public TDocType AncestorOrDefault<TDocType>() where TDocType : DocTypeBase
{
return this.AncestorOrDefault<TDocType>(t => true); //just a simple little true statement ;)
}
/// <summary>
/// Retrieves the first matching ancestor of the current type and additional boolean function
/// </summary>
/// <typeparam name="TDocType">The type of the doc type.</typeparam>
/// <param name="func">Additional boolean operation to filter on</param>
/// <returns>First ancestor matching type and function. Null if no match found</returns>
/// <exception cref="System.ArgumentNullException">Func parameter required</exception>
public TDocType AncestorOrDefault<TDocType>(Func<TDocType, bool> func) where TDocType : DocTypeBase
{
if (func == null)
{
throw new ArgumentNullException("func");
}
if (this._ancestors == null)
{
this._ancestors = this.Provider.LoadAncestors(this.Id);
}
return this._ancestors.Where(a => a is TDocType).Cast<TDocType>().FirstOrDefault(func);
}
#endregion
/// <summary>
/// Gets or sets the creator ID.
/// </summary>
/// <value>The creator ID.</value>
public int CreatorID
{
get
{
return creatorID;
}
internal set
{
this.creatorID = value;
}
}
/// <summary>
/// Gets the umbraco user who created the item
/// </summary>
/// <value>The creator.</value>
public virtual User Creator
{
get
{
if (this._creator == null)
{
this._creator = new User(this.CreatorID);
}
return this._creator;
}
}
public virtual string CreatorName { get; internal set; }
/// <summary>
/// ID of the user who last edited the item
/// </summary>
public int WriterID
{
get
{
return writerID;
}
internal set
{
this.writerID = value;
}
}
/// <summary>
/// Gets the umbraco user who last edited the instance
/// </summary>
/// <value>The writer.</value>
public virtual User Writer
{
get
{
if (this._writer == null)
{
this._writer = new User(this.WriterID);
}
return this._writer;
}
}
public virtual string WriterName { get; internal set; }
/// <summary>
/// Raises the property changing event.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate")]
protected virtual void RaisePropertyChanging()
{
if (this.PropertyChanging != null)
{
this.PropertyChanging(this, new PropertyChangingEventArgs(String.Empty));
}
}
/// <summary>
/// Raises the property changed event.
/// </summary>
/// <param name="name">The name of the changed property.</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate")]
protected virtual void RaisePropertyChanged(string name)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
#region INotifyPropertyChanging Members
/// <summary>
/// Occurs when a property value is changing.
/// </summary>
public event PropertyChangingEventHandler PropertyChanging;
#endregion
#region INotifyPropertyChanged Members
/// <summary>
/// Occurs when a property value changes.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
#endregion
protected void ValidateProperty(string regex, string value)
{
Regex r = new Regex(regex);
if (!r.IsMatch(value))
{
throw new InvalidCastException("Value does not match validation expression from Umbraco");
}
}
}
}
@@ -1,128 +0,0 @@
using System;
namespace umbraco.Linq.Core
{
/// <summary>
/// Exception for when the provided class does not meet the expected class
/// </summary>
[global::System.Serializable]
public class DocTypeMissMatchException : ArgumentException
{
/// <summary>
/// Initializes a new instance of the <see cref="DocTypeMissMatchException"/> class.
/// </summary>
/// <param name="actual">The actual doc type alias.</param>
/// <param name="expected">The expcected doc type alias.</param>
public DocTypeMissMatchException(string actual, string expected) : this(actual, expected, string.Empty) { }
/// <summary>
/// Initializes a new instance of the <see cref="DocTypeMissMatchException"/> class.
/// </summary>
/// <param name="actual">The actual doc type alias.</param>
/// <param name="expected">The expcected doc type alias.</param>
/// <param name="message">Additional message information.</param>
public DocTypeMissMatchException(string actual, string expected, string message)
: base(string.Format("DocTypeAlias provided did not match what was expected (provided: {0}, expected: {1}){2}{3}", actual, expected, Environment.NewLine, message))
{
Expected = expected;
Actual = actual;
}
/// <summary>
/// Initializes a new instance of the <see cref="DocTypeMissMatchException"/> class.
/// </summary>
/// <param name="actual">The actual doc type alias.</param>
/// <param name="expected">The expcected doc type alias.</param>
/// <param name="message">Additional message information.</param>
/// <param name="innerException">The inner exception.</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])")]
public DocTypeMissMatchException(string actual, string expected, string message, Exception innerException)
: base(string.Format("DocTypeAlias provided did not match what was expected (provided: {0}, expected: {1}){2}{3}", actual, expected, Environment.NewLine, message), innerException)
{
Expected = expected;
Actual = actual;
}
/// <summary>
/// Initializes a new instance of the <see cref="MandatoryFailureException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">
/// The <paramref name="info"/> parameter is null.
/// </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">
/// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
/// </exception>
protected DocTypeMissMatchException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
/// <summary>
/// Gets or sets the expected DocTypeAlias
/// </summary>
/// <value>The expected DocTypeAlias.</value>
public string Expected { get; set; }
/// <summary>
/// Gets or sets the actual DocTypeAlias
/// </summary>
/// <value>The actual DocTypeAlias.</value>
public string Actual { get; set; }
}
/// <summary>
/// Exception raised when a field isn't meeting its mandatory requirement
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors"), global::System.Serializable]
public class MandatoryFailureException : Exception
{
/// <summary>
/// Initializes a new instance of the <see cref="MandatoryFailureException"/> class.
/// </summary>
/// <param name="propertyName">Name of the property that failed the mandatory check.</param>
public MandatoryFailureException(string propertyName) : this(propertyName, string.Empty) { }
/// <summary>
/// Initializes a new instance of the <see cref="MandatoryFailureException"/> class.
/// </summary>
/// <param name="propertyName">Name of the property that failed the mandatory check.</param>
/// <param name="message">Additional message information.</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")]
public MandatoryFailureException(string propertyName, string message)
: base(string.Format("The mandatory property \"{0}\" did not have a value.{1}{2}", propertyName, Environment.NewLine, message))
{
PropertyName = propertyName;
}
/// <summary>
/// Initializes a new instance of the <see cref="MandatoryFailureException"/> class.
/// </summary>
/// <param name="propertyName">Name of the property that failed the mandatory check.</param>
/// <param name="message">Additional message information.</param>
/// <param name="innerException">The inner exception.</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")]
public MandatoryFailureException(string propertyName, string message, Exception innerException)
: base(string.Format("The mandatory property \"{0}\" did not have a value.{1}{2}", propertyName, Environment.NewLine, message), innerException)
{
PropertyName = propertyName;
}
/// <summary>
/// Initializes a new instance of the <see cref="MandatoryFailureException"/> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
/// <exception cref="T:System.ArgumentNullException">
/// The <paramref name="info"/> parameter is null.
/// </exception>
/// <exception cref="T:System.Runtime.Serialization.SerializationException">
/// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
/// </exception>
protected MandatoryFailureException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
/// <summary>
/// Gets or sets the name of the property the exception was raised for.
/// </summary>
/// <value>The name of the property.</value>
public string PropertyName { get; set; }
}
}
@@ -1,26 +0,0 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
//
// To add a suppression to this file, right-click the message in the
// Error List, point to "Suppress Message(s)", and click
// "In Project Suppression File".
// You do not need to add suppressions to this file manually.
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "namespace", Target = "umbraco.Linq.Core")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "umbraco.Linq.Core.Node")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "namespace", Target = "umbraco.Linq.Core.Node")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Scope = "type", Target = "umbraco.Linq.Core.DocTypeMissMatchException")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])", Scope = "member", Target = "umbraco.Linq.Core.DocTypeMissMatchException.#.ctor(System.String,System.String,System.String)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "member", Target = "umbraco.Linq.Core.ReflectionAssistance.#GetumbracoInfoAttribute(System.Type)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "type", Target = "umbraco.Linq.Core.umbracoDataContext")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "type", Target = "umbraco.Linq.Core.umbracoDataProvider")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "umbraco.Linq.Core.umbracoDataProvider.#Load`1(System.Int32)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "umbraco.Linq.Core.umbracoDataProvider.#LoadTree`1()")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco", Scope = "type", Target = "umbraco.Linq.Core.umbracoInfoAttribute")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "umbraco.Linq.Core.Node.NodeAssociationTree`1")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "umbraco.Linq.Core.Node.NodeDataProvider.#LoadTree`1()")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Scope = "type", Target = "umbraco.Linq.Core.Node.NodeTree`1")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "umbraco.Linq.Core.Node.NodeDataProvider.#Load`1(System.Int32)")]
@@ -1,27 +0,0 @@
namespace umbraco.Linq.Core
{
/// <summary>
/// Base of an umbraco content tree
/// </summary>
public interface IContentTree
{
/// <summary>
/// Gets the <see cref="UmbracoDataProvider"/> Provider associated with this instance
/// </summary>
/// <value>The provider.</value>
UmbracoDataProvider Provider { get; }
/// <summary>
/// Gets a value indicating whether this instance is read only.
/// </summary>
/// <value>
/// <c>true</c> if this instance is read only; otherwise, <c>false</c>.
/// </value>
bool IsReadOnly { get; }
/// <summary>
/// Reloads the cache for the particular tree
/// </summary>
void ReloadCache();
}
}
@@ -1,116 +0,0 @@
using System;
using System.ComponentModel;
namespace umbraco.Linq.Core
{
/// <summary>
///
/// </summary>
public interface IDocTypeBase : INotifyPropertyChanging, INotifyPropertyChanged
{
/// <summary>
/// Gets the Ancestor or Default based on type
/// </summary>
/// <typeparam name="TDocType">The type of the Ancestor.</typeparam>
/// <returns></returns>
TDocType AncestorOrDefault<TDocType>() where TDocType : DocTypeBase;
/// <summary>
/// Gets the Ancestor or Default based on type
/// </summary>
/// <typeparam name="TDocType">The type of the Ancestor.</typeparam>
/// <param name="func">The func.</param>
/// <returns></returns>
TDocType AncestorOrDefault<TDocType>(Func<TDocType, bool> func) where TDocType : DocTypeBase;
/// <summary>
/// Gets the children.
/// </summary>
/// <value>The children.</value>
AssociationTree<DocTypeBase> Children { get; }
/// <summary>
/// Gets or sets the create date.
/// </summary>
/// <value>The create date.</value>
DateTime CreateDate { get; set; }
/// <summary>
/// Gets the creator user ID.
/// </summary>
/// <value>The creator ID.</value>
int CreatorID { get; }
/// <summary>
/// Gets the name of the creator.
/// </summary>
/// <value>The name of the creator.</value>
string CreatorName { get; }
/// <summary>
/// Gets the id of the item.
/// </summary>
/// <value>The id.</value>
int Id { get; }
/// <summary>
/// Gets a value indicating whether this instance is dirty.
/// </summary>
/// <value><c>true</c> if this instance is dirty; otherwise, <c>false</c>.</value>
bool IsDirty { get; }
/// <summary>
/// Gets or sets the level of the item
/// </summary>
/// <value>The level.</value>
int Level { get; set; }
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>The name.</value>
string NodeName { get; set; }
/// <summary>
/// Gets or sets the name.
/// </summary>
/// <value>The name.</value>
[Obsolete("Name property is obsolete, use NodeName instead")] //this is because most people expect NodeName not Name as the property
string Name { get; set; }
/// <summary>
/// Parent if current instance
/// </summary>
/// <typeparam name="TParent">The type of the parent.</typeparam>
/// <returns></returns>
TParent Parent<TParent>() where TParent : DocTypeBase, new();
/// <summary>
/// Gets or sets the parent node id.
/// </summary>
/// <value>The parent node id.</value>
int ParentNodeId { get; set; }
/// <summary>
/// Gets or sets the sort order.
/// </summary>
/// <value>The sort order.</value>
int SortOrder { get; set; }
/// <summary>
/// Gets or sets the template id.
/// </summary>
/// <value>The template id.</value>
int TemplateId { get; set; }
/// <summary>
/// Gets or sets the update date.
/// </summary>
/// <value>The update date.</value>
DateTime UpdateDate { get; set; }
/// <summary>
/// Gets the version.
/// </summary>
/// <value>The version.</value>
string Version { get; }
/// <summary>
/// Gets the writer user ID.
/// </summary>
/// <value>The writer ID.</value>
int WriterID { get; }
/// <summary>
/// Gets the name of the writer.
/// </summary>
/// <value>The name of the writer.</value>
string WriterName { get; }
/// <summary>
/// Gets or sets the path.
/// </summary>
/// <value>The path.</value>
string Path { get; set; }
}
}
@@ -1,20 +0,0 @@
using System;
namespace umbraco.Linq.Core
{
/// <summary>
/// Abstraction of the UmbracoDataContext
/// </summary>
public interface IUmbracoDataContext : IDisposable
{
/// <summary>
/// Gets the data provider.
/// </summary>
/// <value>The data provider.</value>
UmbracoDataProvider DataProvider { get; }
/// <summary>
/// Submits the changes tracked in this data context
/// </summary>
void SubmitChanges();
}
}
@@ -1,115 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace umbraco.Linq.Core.Node
{
/// <summary>
/// Represents a collection of TDocTypeBase retrieved from the umbraco XML cache which are direct children of a node
/// </summary>
/// <typeparam name="TDocTypeBase">The type of the doc type base.</typeparam>
public sealed class NodeAssociationTree<TDocTypeBase> : AssociationTree<TDocTypeBase> where TDocTypeBase : DocTypeBase, new()
{
private object lockObject = new object();
private IEnumerable<TDocTypeBase> _nodes;
internal NodeAssociationTree(IEnumerable<TDocTypeBase> nodes)
{
this._nodes = new List<TDocTypeBase>();
this._nodes = nodes;
}
/// <summary>
/// Initializes a new instance of the <see cref="NodeAssociationTree&lt;TDocTypeBase&gt;"/> class for a particular tree section
/// </summary>
/// <param name="parentNodeId">The parent node id to start from.</param>
/// <param name="provider">The NodeDataProvider to link the tree with.</param>
public NodeAssociationTree(int parentNodeId, NodeDataProvider provider)
{
this.Provider = provider;
this.ParentNodeId = parentNodeId;
}
/// <summary>
/// Gets the enumerator for this Tree collection
/// </summary>
/// <returns></returns>
public override IEnumerator<TDocTypeBase> GetEnumerator()
{
if (this._nodes == null) //first access, otherwise it'd be cached
{
LoadNodes();
}
return this._nodes.GetEnumerator();
}
private void LoadNodes()
{
var provider = this.Provider as NodeDataProvider;
provider.CheckDisposed();
lock (lockObject)
{
var parents = provider
.Xml
.Descendants()
.Where(x => x.Attribute("id") != null && (int)x.Attribute("id") == this.ParentNodeId);
var rawNodes = parents
.Single()
.Elements()
.Where(x => x.Attribute("isDoc") != null)
;
this._nodes = provider.DynamicNodeCreation(rawNodes).Cast<TDocTypeBase>(); //drop is back to the type which was asked for
}
}
/// <summary>
/// Indicates that the NodeAssociationTree is ReadOnly
/// </summary>
/// <value>
/// <c>true</c>
/// </value>
public override bool IsReadOnly
{
get
{
return true;
}
}
/// <summary>
/// Gets or sets the DataProvider associated with this Tree
/// </summary>
/// <value>The provider.</value>
public override UmbracoDataProvider Provider { get; protected set; }
/// <summary>
/// Reloads the cache.
/// </summary>
public override void ReloadCache()
{
this.LoadNodes();
}
public override void InsertOnSubmit(TDocTypeBase item)
{
throw new NotImplementedException("The NodeAssociationTree does not support Inserting items");
}
public override void InsertAllOnSubmit(IEnumerable<TDocTypeBase> items)
{
throw new NotImplementedException("The NodeAssociationTree does not support Inserting items");
}
public override void DeleteOnSubmit(TDocTypeBase itemm)
{
throw new NotImplementedException("The NodeAssociationTree does not support Deleting items");
}
public override void DeleteAllOnSubmit(IEnumerable<TDocTypeBase> items)
{
throw new NotImplementedException("The NodeAssociationTree does not support Deleting items");
}
}
}
@@ -1,395 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Xml.Linq;
using System.Reflection;
using umbraco.presentation;
using umbraco.cms.helpers;
using umbraco.BusinessLogic.Utils;
namespace umbraco.Linq.Core.Node
{
/// <summary>
/// Data Provider for LINQ to umbraco via umbraco ndoes
/// </summary>
/// <remarks>
/// <para>This class provides a data access model for the umbraco XML cache.
/// It is responsible for the access to the XML and construction of nodes from it.</para>
/// <para>The <see cref="umbraco.Linq.Core.Node.NodeDataProvider"/> is capable of reading the XML cache from either the path provided in the umbraco settings or from a specified location on the file system.</para>
/// </remarks>
public sealed class NodeDataProvider : UmbracoDataProvider
{
private object lockObject = new object();
private string _xmlPath;
private Dictionary<UmbracoInfoAttribute, IContentTree> _trees;
private XDocument _xml;
private Dictionary<string, Type> _knownTypes;
private bool _tryMemoryCache = false;
internal XDocument Xml
{
get
{
if (this._xml == null)
{
if (this._tryMemoryCache)
{
var doc = UmbracoContext.Current.Server.ContentXml;
if (doc != null)
{
this._xml = doc;
}
else
{
this._xml = XDocument.Load(this._xmlPath);
}
}
else
{
this._xml = XDocument.Load(this._xmlPath);
}
}
return this._xml; //cache the XML in memory to increase performance and force the disposable pattern
}
}
/// <summary>
/// Initializes the NodeDataProvider, performing validation
/// </summary>
/// <param name="xmlPath">The XML path.</param>
/// <param name="newSchemaMode">if set to <c>true</c> [new schema mode].</param>
protected void Init(string xmlPath, bool newSchemaMode)
{
if (!newSchemaMode)
throw new NotSupportedException(this.Name + " only supports the new XML schema. Change the umbracoSettings.config to implement this and republish");
if (string.IsNullOrEmpty(xmlPath))
throw new ArgumentNullException("xmlPath");
if (!File.Exists(xmlPath))
throw new FileNotFoundException("The XML used by the provider must exist", xmlPath);
this._xmlPath = xmlPath;
this._trees = new Dictionary<UmbracoInfoAttribute, IContentTree>();
}
/// <summary>
/// Initializes a new instance of the <see cref="NodeDataProvider"/> class using umbraco settings as XML path
/// </summary>
public NodeDataProvider()
: this(UmbracoContext.Current.Server.MapPath(UmbracoContext.Current.Server.ContentXmlPath), UmbracoContext.Current.NewSchemaMode)
{
this._tryMemoryCache = true;
}
/// <summary>
/// Initializes a new instance of the <see cref="NodeDataProvider"/> class
/// </summary>
/// <param name="xmlPath">The path of the umbraco XML</param>
/// <param name="newSchemaMode">Indicates which Schema mode is used for the XML file</param>
/// <remarks>
/// This constructor is ideal for unit testing as it allows for the XML to be located anywhere
/// </remarks>
public NodeDataProvider(string xmlPath, bool newSchemaMode)
{
this.Init(xmlPath, newSchemaMode);
}
#region IDisposable Members
/// <summary>
/// Releases unmanaged and - optionally - managed resources
/// </summary>
/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
protected internal override void Dispose(bool disposing)
{
if (disposing)
{
this._xmlPath = null;
}
base.Dispose(disposing);
}
#endregion
/// <summary>
/// Gets the name of the provider
/// </summary>
/// <value>The name of the provider.</value>
public override string Name
{
get
{
return "NodeDataProvider";
}
}
/// <summary>
/// Loads the tree with the relivent DocTypes from the XML
/// </summary>
/// <typeparam name="TDocType">The type of the DocType to load.</typeparam>
/// <returns><see cref="umbraco.Linq.Core.Node.NodeTree&lt;TDocType&gt;"/> representation of the content tree</returns>
/// <exception cref="System.ObjectDisposedException">When the data provider has been disposed of</exception>
public override Tree<TDocType> LoadTree<TDocType>()
{
CheckDisposed();
var attr = ReflectionAssistance.GetUmbracoInfoAttribute(typeof(TDocType));
if (!this._trees.ContainsKey(attr))
SetupNodeTree<TDocType>(attr);
return (NodeTree<TDocType>)this._trees[attr];
}
internal void SetupNodeTree<TDocType>(UmbracoInfoAttribute attr) where TDocType : DocTypeBase, new()
{
var tree = new NodeTree<TDocType>(this);
if (!this._trees.ContainsKey(attr))
{
lock (lockObject)
{
this._trees.Add(attr, tree); //cache so it's faster to get next time
}
}
else
{
this._trees[attr] = tree;
}
}
/// <summary>
/// Loads the specified id.
/// </summary>
/// <typeparam name="TDocType">The type of the doc type.</typeparam>
/// <param name="id">The id.</param>
/// <returns></returns>
/// <exception cref="umbraco.Linq.Core.DocTypeMissMatchException">If the type of the parent does not match the provided type</exception>
/// <exception cref="System.ArgumentException">No node found matching the provided ID for the parent</exception>
/// <exception cref="System.ObjectDisposedException">When the data provider has been disposed of</exception>
public override TDocType Load<TDocType>(int id)
{
CheckDisposed();
var parentXml = this.Xml.Descendants().SingleOrDefault(d => d.Attribute("isDoc") != null && (int)d.Attribute("id") == id);
if (!ReflectionAssistance.CompareByAlias(typeof(TDocType), parentXml))
throw new DocTypeMissMatchException(parentXml.Name.LocalName, ReflectionAssistance.GetUmbracoInfoAttribute(typeof(TDocType)).Alias);
if (parentXml == null) //really shouldn't happen!
throw new ArgumentException("Parent ID \"" + id + "\" cannot be found in the loaded XML. Ensure that the umbracoDataContext is being disposed of once it is no longer needed");
var parent = new TDocType();
this.LoadFromXml(parentXml, parent);
return parent;
}
/// <summary>
/// Loads the associated (children) nodes with the relivent DocTypes
/// </summary>
/// <param name="parentNodeId">The parent node id.</param>
/// <returns></returns>
/// <exception cref="System.ObjectDisposedException">When the data provider has been disposed of</exception>
public override AssociationTree<DocTypeBase> LoadAssociation(int parentNodeId)
{
CheckDisposed();
NodeAssociationTree<DocTypeBase> associationTree = new NodeAssociationTree<DocTypeBase>(parentNodeId, this);
return associationTree;
}
/// <summary>
/// Loads the associated nodes with the relivent DocTypes
/// </summary>
/// <typeparam name="TDocType">The type of the DocType to load.</typeparam>
/// <param name="nodes">The nodes.</param>
/// <returns></returns>
/// <exception cref="System.ObjectDisposedException">When the data provider has been disposed of</exception>
public override AssociationTree<TDocType> LoadAssociation<TDocType>(IEnumerable<TDocType> nodes)
{
CheckDisposed();
return new NodeAssociationTree<TDocType>(nodes);
}
/// <summary>
/// Loads the ancestors for a node
/// </summary>
/// <param name="startNodeId">The start node id.</param>
/// <returns></returns>
/// <exception cref="System.ObjectDisposedException">When the data provider has been disposed of</exception>
public override IEnumerable<DocTypeBase> LoadAncestors(int startNodeId)
{
CheckDisposed();
var startElement = this.Xml.Descendants().Single(x => x.Attribute("isDoc") != null && (int)x.Attribute("id") == startNodeId);
var ancestorElements = startElement.Ancestors();
IEnumerable<DocTypeBase> ancestors = DynamicNodeCreation(ancestorElements);
return ancestors;
}
/// <summary>
/// Creates a collection of nodes with the type specified from the XML
/// </summary>
/// <param name="elements">The elements.</param>
/// <returns>Collecton of .NET types from the XML</returns>
internal IEnumerable<DocTypeBase> DynamicNodeCreation(IEnumerable<XElement> elements)
{
// TODO: investigate this method for performance bottlenecks
// TODO: dataContext knows the types, maybe can load from there?
List<DocTypeBase> ancestors = new List<DocTypeBase>();
foreach (var ancestor in elements)
{
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);
instaceOfT.Provider = this;
ancestors.Add(instaceOfT);
yield return instaceOfT;
}
}
internal Dictionary<string, Type> KnownTypes
{
get
{
if (this._knownTypes == null)
{
this._knownTypes = new Dictionary<string, Type>();
var types = TypeFinder
.FindClassesOfType<DocTypeBase>()
.Where(t => t != typeof(DocTypeBase))
.ToDictionary(k =>
{
return ((UmbracoInfoAttribute)k.GetCustomAttributes(typeof(UmbracoInfoAttribute), true)[0]).Alias;
});
foreach (var type in types)
this._knownTypes.Add(Casing.SafeAlias(type.Key), type.Value);
}
return this._knownTypes;
}
}
/// <summary>
/// Flushes the cache for this provider
/// </summary>
public void Flush()
{
this.CheckDisposed();
this._xml = null;
this._trees.Clear();
}
/// <summary>
/// Loads from XML.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="xml">The XML.</param>
/// <param name="node">The node.</param>
public void LoadFromXml<T>(XElement xml, T node) where T : DocTypeBase
{
if (!ReflectionAssistance.CompareByAlias(node.GetType(), xml))
{
throw new DocTypeMissMatchException(xml.Name.LocalName, ReflectionAssistance.GetUmbracoInfoAttribute(node.GetType()).Alias);
}
node.Id = (int)xml.Attribute("id");
node.ParentNodeId = (int)xml.Attribute("parentID");
node.NodeName = (string)xml.Attribute("nodeName");
node.Version = (string)xml.Attribute("version");
node.CreateDate = (DateTime)xml.Attribute("createDate");
node.SortOrder = (int)xml.Attribute("sortOrder");
node.UpdateDate = (DateTime)xml.Attribute("updateDate");
node.CreatorID = (int)xml.Attribute("creatorID");
node.CreatorName = (string)xml.Attribute("creatorName");
node.WriterID = (int)xml.Attribute("writerID");
node.WriterName = (string)xml.Attribute("writerName");
node.Level = (int)xml.Attribute("level");
node.TemplateId = (int)xml.Attribute("template");
var properties = node.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(p => p.GetCustomAttributes(typeof(PropertyAttribute), true).Count() > 0);
foreach (var p in properties)
{
var attr = ReflectionAssistance.GetUmbracoInfoAttribute(p);
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
//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
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
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
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);
}
}
}
}
}
}
@@ -1,119 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace umbraco.Linq.Core.Node
{
/// <summary>
/// Represents a collection of TDocTypeBase retrieved from the umbraco XML cache
/// </summary>
/// <typeparam name="TDocTypeBase">The type of the doc type base.</typeparam>
public sealed class NodeTree<TDocTypeBase> : Tree<TDocTypeBase> where TDocTypeBase : DocTypeBase, new()
{
private object lockObject = new object();
private NodeDataProvider _provider;
private List<TDocTypeBase> _nodes;
internal NodeTree(NodeDataProvider provider)
{
this._provider = provider;
}
/// <summary>
/// Gets or sets the provider.
/// </summary>
/// <value>The provider.</value>
public override UmbracoDataProvider Provider
{
get
{
return this._provider;
}
protected set
{
var nodeProvider = value as NodeDataProvider;
if (nodeProvider == null)
{
throw new ArgumentException("Value must be of type NodeDataProvider");
}
this._provider = nodeProvider;
}
}
/// <summary>
/// Indicates that the NodeTree is ReadOnly
/// </summary>
/// <value>
/// <c>true</c>
/// </value>
public override bool IsReadOnly
{
get
{
return true;
}
}
/// <summary>
/// Gets the enumerator.
/// </summary>
/// <returns></returns>
public override IEnumerator<TDocTypeBase> GetEnumerator()
{
if (this._nodes == null)
{
this._nodes = new List<TDocTypeBase>();
var rawNodes = this._provider.Xml.Descendants().Where(x => ReflectionAssistance.CompareByAlias(typeof(TDocTypeBase), x));
lock (lockObject)
{
foreach (XElement n in rawNodes)
{
var dt = new TDocTypeBase();
this._provider.LoadFromXml(n, dt);
dt.IsDirty = false;
dt.Provider = this._provider;
this._nodes.Add(dt);
}
}
}
return this._nodes.GetEnumerator();
}
/// <summary>
/// Reloads the cache for the particular NodeTree
/// </summary>
public override void ReloadCache()
{
this._provider.CheckDisposed();
var attr = ReflectionAssistance.GetUmbracoInfoAttribute(typeof(TDocTypeBase));
this._provider.SetupNodeTree<TDocTypeBase>(attr);
}
public override void InsertOnSubmit(TDocTypeBase item)
{
throw new NotImplementedException("The NodeTree does not support Inserting items");
}
public override void InsertAllOnSubmit(IEnumerable<TDocTypeBase> items)
{
throw new NotImplementedException("The NodeTree does not support Inserting items");
}
public override void DeleteOnSubmit(TDocTypeBase itemm)
{
throw new NotImplementedException("The NodeTree does not support Deleting items");
}
public override void DeleteAllOnSubmit(IEnumerable<TDocTypeBase> items)
{
throw new NotImplementedException("The NodeTree does not support Deleting items");
}
}
}
@@ -1,12 +0,0 @@
using System.Reflection;
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("Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Core")]
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("umbraco.Linq.Core.Tests")]
[assembly: ComVisible(false)]
@@ -1,55 +0,0 @@
using System;
using System.Linq;
using System.Reflection;
using System.Xml.Linq;
using umbraco.cms.helpers;
namespace umbraco.Linq.Core
{
/// <summary>
/// Class containing helpers when doing reflection against nodes
/// </summary>
public sealed class ReflectionAssistance
{
private ReflectionAssistance() { }
/// <summary>
/// Prebuilt function for getting the custom properites of the class
/// </summary>
/// <remarks>This is a Lambda function which will return all the properties of the current class which are custom DocType properties</remarks>
internal static Func<PropertyInfo, bool> CustomDocTypeProperties = p => p.GetCustomAttributes(typeof(UmbracoInfoAttribute), false).Count() != 0 && p.GetCustomAttributes(typeof(PropertyAttribute), false).Count() != 0;
/// <summary>
/// Prebuild function for getting the mandatory properites of the class
/// </summary>
/// <remarks>This is a Lambda function which will return all the properties of the current class which are custom DocType properties and mandatory</remarks>
internal static Func<PropertyInfo, bool> MandatoryDocTypeProperties = p => p.GetCustomAttributes(typeof(UmbracoInfoAttribute), false).Count() != 0 && ((UmbracoInfoAttribute)p.GetCustomAttributes(typeof(UmbracoInfoAttribute), false)[0]).Mandatory;
/// <summary>
/// Compares a .NET type to an Xml representation
/// </summary>
internal static Func<Type, XElement, bool> CompareByAlias = (t, x) => x.Name.LocalName == Casing.SafeAlias(ReflectionAssistance.GetUmbracoInfoAttribute(t).Alias);
/// <summary>
/// Get the <see cref="umbraco.Linq.Core.umbracoInfoAttribute"/> for a <see cref="System.Reflection.MethodInfo"/> object
/// </summary>
/// <param name="member">The methodInfo to get the <see cref="umbraco.Linq.Core.umbracoInfoAttribute"/> for.</param>
/// <returns></returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "umbraco")]
public static UmbracoInfoAttribute GetUmbracoInfoAttribute(MemberInfo member)
{
return member.GetCustomAttributes(typeof(UmbracoInfoAttribute), true).Cast<UmbracoInfoAttribute>().SingleOrDefault();
}
/// <summary>
/// Get the <see cref="umbraco.Linq.Core.umbracoInfoAttribute"/> for a type
/// </summary>
/// <param name="type">The type to get the <see cref="umbraco.Linq.Core.umbracoInfoAttribute"/> for.</param>
/// <returns></returns>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")]
public static UmbracoInfoAttribute GetUmbracoInfoAttribute(Type type)
{
return type.GetCustomAttributes(typeof(UmbracoInfoAttribute), true).Cast<UmbracoInfoAttribute>().SingleOrDefault();
}
}
}
@@ -1,109 +0,0 @@
using System;
namespace umbraco.Linq.Core
{
/// <summary>
/// Typed switch implementation from Bart De Smet: http://community.bartdesmet.net/blogs/bart/archive/2008/03/30/a-functional-c-type-switch.aspx
/// </summary>
public class Switch
{
/// <summary>
/// Initializes a new instance of the <see cref="Switch"/> class.
/// </summary>
/// <param name="o">The o.</param>
public Switch(object o)
{
Obj = o;
}
/// <summary>
/// Gets or sets the object being operated against
/// </summary>
/// <value>The obj.</value>
public object Obj { get; private set; }
/// <summary>
/// Case statement
/// </summary>
/// <typeparam name="T">Type of object</typeparam>
/// <param name="a">Action method to execute for case evaluation</param>
/// <returns></returns>
public Switch Case<T>(Action<T> a)
{
return Case<T>(o => true, a, false);
}
/// <summary>
/// Case statement
/// </summary>
/// <typeparam name="T">Type of object</typeparam>
/// <param name="a">Action method to execute for case evaluation</param>
/// <param name="fallThrough">if set to <c>true</c> fall through to next case statement.</param>
/// <returns></returns>
public Switch Case<T>(Action<T> a, bool fallThrough)
{
return Case<T>(o => true, a, fallThrough);
}
/// <summary>
/// Case statement
/// </summary>
/// <typeparam name="T">Type of object</typeparam>
/// <param name="c">The funcation to eveluate against to object.</param>
/// <param name="a">Action method to execute for case evaluation</param>
/// <returns></returns>
public Switch Case<T>(Func<T, bool> c, Action<T> a)
{
return Case<T>(c, a, false);
}
/// <summary>
/// Case statement
/// </summary>
/// <typeparam name="T">Type of object</typeparam>
/// <param name="c">The funcation to eveluate against to object.</param>
/// <param name="a">Action method to execute for case evaluation</param>
/// <param name="fallThrough">if set to <c>true</c> fall through to next case statement.</param>
/// <returns></returns>
public Switch Case<T>(Func<T, bool> c, Action<T> a, bool fallThrough)
{
if (this == null)
{
return null;
}
else
{
if (this.Obj is T)
{
T t = (T)this.Obj;
if (c(t))
{
a(t);
return fallThrough ? this : null;
}
}
}
return this;
}
/// <summary>
/// Defaults case
/// </summary>
/// <typeparam name="T">Type of object</typeparam>
/// <param name="a">Action to perform</param>
/// <returns></returns>
public Switch Default<T>(Action<T> a)
{
if (this == null)
{
return null;
}
else
{
a((T)this.Obj);
return this;
}
}
}
}
@@ -1,88 +0,0 @@
using System.Collections.Generic;
using System.Collections;
namespace umbraco.Linq.Core
{
/// <summary>
/// Represents a collection within DataProvider of a DocType
/// </summary>
/// <remarks>
/// Similar to the implementation of <see cref="System.Data.Linq.Table&lt;TEntity&gt;"/>,
/// providing a single collection which represents all instances of the given type within the DataProvider.
///
/// Implementers of this type will need to provide a manner of retrieving the TDocType from the DataProvider
/// </remarks>
/// <typeparam name="TDocType">The type of the DocType.</typeparam>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
public abstract class Tree<TDocType> : IContentTree, IEnumerable<TDocType>, IEnumerable
where TDocType : DocTypeBase, new()
{
#region IContentTree Members
/// <summary>
/// Gets the <see cref="umbracoDataProvider"/> Provider associated with this instance
/// </summary>
/// <value>The provider.</value>
public abstract UmbracoDataProvider Provider { get; protected set; }
/// <summary>
/// Gets a value indicating whether this instance is read only. The collection is not ReadOnly by default
/// </summary>
/// <value>
/// <c>false</c> to indicate that this collection isn't read-only
/// </value>
public virtual bool IsReadOnly
{
get
{
return false;
}
}
public abstract void ReloadCache();
#endregion
#region IEnumerable<TDocType> Members
/// <summary>
/// Returns an enumerator that iterates through the collection.
/// </summary>
/// <returns>
/// A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
/// </returns>
public abstract IEnumerator<TDocType> GetEnumerator();
#endregion
#region IEnumerable Members
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
/// <summary>
/// Insert an item on submit of the DataContext
/// </summary>
/// <param name="item">The item.</param>
public abstract void InsertOnSubmit(TDocType item);
/// <summary>
/// Insert a collection of items on submit of the DataContext
/// </summary>
/// <param name="items">The items.</param>
public abstract void InsertAllOnSubmit(IEnumerable<TDocType> items);
/// <summary>
/// Deletes an item on submit of the DataContext
/// </summary>
/// <param name="itemm">The itemm.</param>
public abstract void DeleteOnSubmit(TDocType itemm);
/// <summary>
/// Deletes a collection of items on submit of the DataContext
/// </summary>
/// <param name="items">The items.</param>
public abstract void DeleteAllOnSubmit(IEnumerable<TDocType> items);
}
}
@@ -1,114 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using umbraco.Linq.Core.Node;
namespace umbraco.Linq.Core
{
/// <summary>
/// The umbracoDataContext which handles the interaction with an <see cref="umbraco.Linq.Core.UmbracoDataProvider"/>
/// </summary>
public abstract class UmbracoDataContext : IUmbracoDataContext
{
#region Privates
private UmbracoDataProvider _dataProvider;
#endregion
/// <summary>
/// Loads the tree of umbraco items.
/// </summary>
/// <typeparam name="TDocTypeBase">The type of the DocTypeBase.</typeparam>
/// <returns>Collection of umbraco items</returns>
/// <exception cref="System.ObjectDisposedException">If the DataContext has been disposed of</exception>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")]
protected Tree<TDocTypeBase> LoadTree<TDocTypeBase>() where TDocTypeBase : DocTypeBase, new()
{
CheckDisposed();
return this._dataProvider.LoadTree<TDocTypeBase>();
}
/// <summary>
/// Gets the data provider.
/// </summary>
/// <value>The data provider.</value>
public UmbracoDataProvider DataProvider
{
get
{
return this._dataProvider;
}
}
/// <summary>
/// Submits the changes within the UmbracoDataContext through the <see cref="umbraco.Linq.Core.UmbracoDataProvider"/>
/// </summary>
public void SubmitChanges()
{
this.CheckDisposed();
this._dataProvider.SubmitChanges();
}
#region Constructors
/// <summary>
/// Initializes a new instance of the <see cref="umbraco.Linq.Core.UmbracoDataProvider"/> class, using a <see cref="umbraco.Linq.Core.Node.NodeDataProvider"/> data provider with the connection string from the umbraco config
/// </summary>
protected UmbracoDataContext() : this(new NodeDataProvider())
{
}
/// <summary>
/// Initializes a new instance of the <see cref="umbraco.Linq.Core.UmbracoDataProvider"/> class.
/// </summary>
/// <param name="dataProvider">The data provider to use within the DataContext.</param>
protected UmbracoDataContext(UmbracoDataProvider dataProvider)
{
this._dataProvider = dataProvider;
}
#endregion
#region IDisposable Members
private bool _disposed;
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Releases unmanaged and - optionally - managed resources
/// </summary>
/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
protected virtual void Dispose(bool disposing)
{
if (!this._disposed && disposing)
{
if (this._dataProvider != null)
{
this._dataProvider.Dispose(true);
}
this._disposed = true;
}
}
private void CheckDisposed()
{
if (this._disposed)
{
throw new ObjectDisposedException(null);
}
}
#endregion
}
}
@@ -1,106 +0,0 @@
using System;
using System.Collections.Generic;
namespace umbraco.Linq.Core
{
/// <summary>
/// Provides the methods required for a data access model within the LINQ to Umbraco project
/// </summary>
/// <remarks>
/// This base class is used when defining how a DataProvider operates against a data source (such as the umbraco.config).
///
/// It provides abstractions for all the useful operations of the DataProvider
/// </remarks>
public abstract class UmbracoDataProvider : IDisposable
{
/// <summary>
/// Indicates the disposal status of the current provider
/// </summary>
protected bool _disposed;
/// <summary>
/// Gets the name of the provider
/// </summary>
/// <value>The name of the provider.</value>
public abstract string Name { get; }
/// <summary>
/// Loads the tree with the relevant DocTypes
/// </summary>
/// <typeparam name="TDocType">The type of the DocType to load.</typeparam>
/// <returns></returns>
public abstract Tree<TDocType> LoadTree<TDocType>() where TDocType : DocTypeBase, new();
/// <summary>
/// Loads the associated nodes with the relevant DocTypes
/// </summary>
/// <param name="parentNodeId">The parent node id.</param>
/// <returns></returns>
public abstract AssociationTree<DocTypeBase> LoadAssociation(int parentNodeId);
/// <summary>
/// Loads the associated nodes with the relevant DocTypes
/// </summary>
/// <typeparam name="TDocType">The type of the DocType to load.</typeparam>
/// <param name="nodes">The nodes.</param>
/// <returns></returns>
public abstract AssociationTree<TDocType> LoadAssociation<TDocType>(IEnumerable<TDocType> nodes) where TDocType : DocTypeBase, new();
/// <summary>
/// Loads the specified id.
/// </summary>
/// <typeparam name="TDocType">The type of the doc type.</typeparam>
/// <param name="id">The id.</param>
/// <returns></returns>
public abstract TDocType Load<TDocType>(int id) where TDocType : DocTypeBase, new();
/// <summary>
/// Loads the ancestors.
/// </summary>
/// <param name="startNodeId">The start node id.</param>
/// <returns></returns>
public abstract IEnumerable<DocTypeBase> LoadAncestors(int startNodeId);
#region IDisposable Members
/// <summary>
/// Checks if the provider has been disposed
/// </summary>
protected internal void CheckDisposed()
{
if (this._disposed)
throw new ObjectDisposedException(null);
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
/// <summary>
/// Releases unmanaged and - optionally - managed resources
/// </summary>
/// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly")]
protected internal virtual void Dispose(bool disposing)
{
this._disposed = true;
}
#endregion
/// <summary>
/// Submits the changes tracked by the UmbracoDataProvider
/// </summary>
/// <remarks>It is up to the implementor of the UmbracoDataProvider to decide whether or not they are supporting change submission in their provider. This will thrown an exception unless it is explicitly implemented.</remarks>
/// <exception cref="System.NotImplementedException">Thrown unless the method is implemented in a custom UmbracoDataProvider.</exception>
protected internal virtual void SubmitChanges()
{
throw new NotImplementedException("Provider \"" + this.Name + "\" does not implement a submittable pattern");
}
}
}
@@ -1,153 +0,0 @@
<?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>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{31CAEC36-0C3D-4D69-B092-84866811EA07}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>umbraco.Linq.Core</RootNamespace>
<AssemblyName>umbraco.Linq.Core</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<umbracoPresentationPath>..\..\..\..\..\umbraco\presentation\bin</umbracoPresentationPath>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation />
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</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>
<DocumentationFile>bin\Debug\umbraco.Linq.Core.xml</DocumentationFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</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>
<DocumentationFile>bin\Release\umbraco.Linq.Core.XML</DocumentationFile>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Runtime.Serialization">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\foreign dlls\System.Web.Abstractions.dll</HintPath>
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.XML" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Solution Items\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="AssociationTree.cs" />
<Compile Include="Attributes.cs" />
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="IContentTree.cs" />
<Compile Include="IDocTypeBase.cs" />
<Compile Include="IUmbracoDataContext.cs" />
<Compile Include="UmbracoDataProvider.cs" />
<Compile Include="Node\NodeAssociationTree.cs" />
<Compile Include="Node\NodeTree.cs" />
<Compile Include="Node\NodeDataProvider.cs" />
<Compile Include="Tree.cs" />
<Compile Include="UmbracoDataContext.cs" />
<Compile Include="DocTypeBase.cs" />
<Compile Include="Exceptions.cs" />
<Compile Include="ReflectionAssistance.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Switch.cs" />
</ItemGroup>
<ItemGroup>
<None Include="CoreClasses.cd" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\umbraco\businesslogic\umbraco.businesslogic.csproj">
<Project>{E469A9CE-1BEC-423F-AC44-713CD72457EA}</Project>
<Name>umbraco.businesslogic</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\umbraco\cms\umbraco.cms.csproj">
<Project>{CCD75EC3-63DB-4184-B49D-51C1DD337230}</Project>
<Name>umbraco.cms</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\umbraco\presentation\umbraco.presentation.csproj">
<Project>{651E1350-91B6-44B7-BD60-7207006D7003}</Project>
<Name>umbraco.presentation</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>-->
<Target Name="AfterBuild">
</Target>
<PropertyGroup>
<PostBuildEvent>XCOPY "$(TargetPath)" "$(SolutionDir)\umbraco\presentation\bin" /Y</PostBuildEvent>
</PropertyGroup>
</Project>
@@ -1,10 +0,0 @@
""
{
"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"
}
File diff suppressed because it is too large Load Diff
@@ -1,10 +0,0 @@
""
{
"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"
}
@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{4872D945-97E8-4C30-8EDC-64E424645979}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Umbraco.Linq.DTMetal.CodeBuilder.Installer</RootNamespace>
<AssemblyName>Umbraco.Linq.DTMetal.CodeBuilder.Installer</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Solution Items\umbraco-key.snk</AssemblyOriginatorKeyFile>
</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.Configuration.Install" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\Solution Items\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="InstallerHandler.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="InstallerProgress.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="InstallerProgress.Designer.cs">
<DependentUpon>InstallerProgress.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InstallerProgress.resx">
<DependentUpon>InstallerProgress.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="Item packages\LINQtoUmbracoCS.zip" />
<Content Include="Item packages\LINQtoUmbracoVB.zip" />
</ItemGroup>
<ItemGroup>
<None Include="..\Solution Items\umbraco-key.snk">
<Link>Properties\umbraco-key.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DTMetal.CodeBuilder\DTMetal.CodeBuilder.csproj">
<Project>{461089E7-008E-4737-BA17-E1FCD1CC3D0E}</Project>
<Name>DTMetal.CodeBuilder</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,5 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>
@@ -1,10 +0,0 @@
""
{
"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"
}
@@ -1,50 +0,0 @@
using System.ComponentModel;
using Microsoft.Win32;
using System.Windows.Forms;
using System.Globalization;
namespace Umbraco.Linq.DTMetal.CodeBuilder.Installer
{
[RunInstaller(true)]
public class InstallerHandler : System.Configuration.Install.Installer
{
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
var vsPath = GetVsPath();
var targetPath = Context.Parameters["TargetDir"];
if (vsPath != null && targetPath != null)
{
var progress = new InstallerProgress(InstallMode.Install, vsPath, targetPath);
MessageBoxOptions options = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft ? MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading : 0;
if (progress.ShowDialog() != DialogResult.OK)
{
MessageBox.Show("VS 2008 Setup Failed", "LINQ to Umbraco Setup", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, options);
MessageBox.Show(progress.Error.ToString());
}
}
}
private static string GetVsPath()
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\9.0", false);
if (key != null)
return (string)key.GetValue("InstallDir");
return null;
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
var vsPath = GetVsPath();
if (vsPath != null)
{
var progress = new InstallerProgress(InstallMode.Uninstall, vsPath, null);
progress.ShowDialog();
}
}
}
}
@@ -1,84 +0,0 @@
namespace Umbraco.Linq.DTMetal.CodeBuilder.Installer
{
partial class InstallerProgress
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallerProgress));
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.installWorker = new System.ComponentModel.BackgroundWorker();
this.SuspendLayout();
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2";
//
// progressBar1
//
resources.ApplyResources(this.progressBar1, "progressBar1");
this.progressBar1.Name = "progressBar1";
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
//
// installWorker
//
this.installWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.installWorker_DoWork);
this.installWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.installWorker_RunWorkerCompleted);
//
// InstallerProgress
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ControlBox = false;
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "InstallerProgress";
this.Load += new System.EventHandler(this.InstallerProgress_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ProgressBar progressBar1;
private System.ComponentModel.BackgroundWorker installWorker;
}
}
@@ -1,287 +0,0 @@
using System;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using System.Globalization;
using Microsoft.Win32;
using System.Linq;
namespace Umbraco.Linq.DTMetal.CodeBuilder.Installer
{
public partial class InstallerProgress : Form
{
private const string generatorKey = "{52B316AA-1997-4c81-9969-95404C09EEB4}";
private const string dtml = ".dtml";
private const string clas = "LINQtoUmbraco.DTML.1.0";
private const string desc = "LINQ to Umbraco Entity Mapping";
private InstallMode _mode;
private string _vsPath;
private string _targetPath;
public InstallerProgress(InstallMode mode, string vsPath, string targetPath)
{
InitializeComponent();
_mode = mode;
_vsPath = vsPath;
_targetPath = targetPath;
}
#region Events
private void installWorker_DoWork(object sender, DoWorkEventArgs e)
{
switch (_mode)
{
case InstallMode.Install:
InstallVsTemplates();
SetupRegistry();
InstallDtmlXsd();
ConfigVs();
break;
case InstallMode.Uninstall:
UninstallVsTemplates();
TearDownRegistry();
UninstallDtmlXsd();
ConfigVs();
break;
default:
break;
}
}
private void installWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
this.DialogResult = DialogResult.Cancel;
this.Error = e.Error;
}
else
{
this.DialogResult = DialogResult.OK;
}
}
public Exception Error { get; set; }
private void InstallerProgress_Load(object sender, EventArgs e)
{
installWorker.RunWorkerAsync();
}
#endregion
#region Uninstall
private void UninstallDtmlXsd()
{
try
{
File.Delete(GetDtmlXsdPath());
}
catch { }
}
private void TearDownRegistry()
{
if(Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey) != null)
{
Registry.LocalMachine.DeleteSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey);
}
if (Registry.ClassesRoot.OpenSubKey(dtml) != null)
{
Registry.ClassesRoot.DeleteSubKeyTree(dtml);
}
if (Registry.ClassesRoot.OpenSubKey(clas) != null)
{
Registry.ClassesRoot.DeleteSubKeyTree(clas);
}
}
private void UninstallVsTemplates()
{
string csTgt = Path.Combine(_vsPath, @"ItemTemplates\CSharp\1033\LINQtoUmbracoCS.zip");
string vbTgt = Path.Combine(_vsPath, @"ItemTemplates\VisualBasic\1033\LINQtoUmbracoVB.zip");
try
{
File.Delete(csTgt);
File.Delete(vbTgt);
}
catch { }
}
#endregion
#region Install
private void InstallDtmlXsd()
{
//string assemblyName = GetCodeBuilderAssemblyName();
//Assembly assembly = Assembly.Load(assemblyName);
//it seems that it runs this before the GAC is deployed, so the above code deosn't work
//I have to embed the XSD in this assembly instead
var assembly = Assembly.GetExecutingAssembly();
// Load the XSD for DocTypeML.
string xsd;
using (Stream s = ClassGenerator.GetXsd())
{
using (StreamReader sr = new StreamReader(s))
{
xsd = sr.ReadToEnd();
}
}
// Write the XSD to the Visual Studio folder with XML schemas.
using (StreamWriter sw = File.CreateText(GetDtmlXsdPath()))
{
sw.Write(xsd);
}
}
private void SetupRegistry()
{
#region LINQtoUmbracoGenerator Key
RegistryKey genKey = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey);
genKey.SetValue("Assembly", GetCodeBuilderAssemblyName()); //full name of the assembly which the generator is in
genKey.SetValue("Class", "Umbraco.Linq.DTMetal.CodeBuilder.LINQtoUmbracoGenerator"); //generator class
genKey.SetValue("InprocServer32", Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), @"system32\mscoree.dll"));
genKey.SetValue("ThreadingModel", "Both");
genKey.Close();
#endregion
#region HKEY_CLASSES_ROOT\.dtml
{
RegistryKey dtmlKey = Registry.ClassesRoot.CreateSubKey(dtml, RegistryKeyPermissionCheck.ReadWriteSubTree);
dtmlKey.SetValue(null, clas);
dtmlKey.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0
{
RegistryKey kClas = Registry.ClassesRoot.CreateSubKey(clas, RegistryKeyPermissionCheck.ReadWriteSubTree);
kClas.SetValue(null, desc);
kClas.SetValue("AlwaysShowExt", "1");
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\DefaultIcon
{
RegistryKey kIcon = kClas.CreateSubKey("DefaultIcon");
kIcon.SetValue(null, Path.Combine(_targetPath, @"DTMetal.exe") + ",0");
kIcon.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell
{
RegistryKey kShel = kClas.CreateSubKey("shell");
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell\Open
{
RegistryKey kOpen = kShel.CreateSubKey("Open");
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell\Open\Command
{
RegistryKey kComm = kOpen.CreateSubKey("Command");
kComm.SetValue(null, "\"" + Path.Combine(_vsPath, "devenv.exe") + "\" /dde \"%1\"");
kComm.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell\Open\ddeexec
{
RegistryKey kDdex = kOpen.CreateSubKey("ddeexec");
kDdex.SetValue(null, "Open(\"%1\")");
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell\Open\ddeexec\Application
{
RegistryKey kAppn = kDdex.CreateSubKey("Application");
kAppn.SetValue(null, "VisualStudio.9.0");
kAppn.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoUmbraco.DTML.1.0\shell\Open\ddeexec\Topic
{
RegistryKey kTopc = kDdex.CreateSubKey("Topic");
kTopc.SetValue(null, "system");
kTopc.Close();
}
#endregion
kDdex.Close();
}
#endregion
kOpen.Close();
}
#endregion
kShel.Close();
}
#endregion
kClas.Close();
}
#endregion
}
private void InstallVsTemplates()
{
string csSrc = Path.Combine(_targetPath, @"Item packages\LINQtoUmbracoCS.zip");
string vbSrc = Path.Combine(_targetPath, @"Item packages\LINQtoUmbracoVB.zip");
string csTgt = Path.Combine(_vsPath, @"ItemTemplates\CSharp\1033\LINQtoUmbracoCS.zip");
string vbTgt = Path.Combine(_vsPath, @"ItemTemplates\VisualBasic\1033\LINQtoUmbracoVB.zip");
if (!File.Exists(csTgt))
File.Copy(csSrc, csTgt);
if (!File.Exists(vbTgt))
File.Copy(vbSrc, vbTgt);
}
#endregion
private static string GetCodeBuilderAssemblyName()
{
//get the assembly version info
AssemblyName current = Assembly.GetExecutingAssembly().GetName();
StringBuilder sb = new StringBuilder();
foreach (byte b in current.GetPublicKeyToken())
sb.AppendFormat("{0:x2}", b);
string publicKeyToken = sb.ToString();
string version = current.Version.ToString();
return String.Format(CultureInfo.InvariantCulture, "Umbraco.Linq.DTMetal.CodeBuilder, Version={0}, Culture=neutral, PublicKeyToken={1}", version, publicKeyToken);
}
private string GetDtmlXsdPath()
{
string path = _vsPath; //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\
path = path.TrimEnd('\\'); //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 9.0
path = Path.Combine(path, "Xml"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml
path = Path.Combine(path, "Schemas"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml\Schemas
path = Path.Combine(path, "DocTypeML.xsd"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml\Schemas\DocTypeML.xsd
return path;
}
private void ConfigVs()
{
string devenv = Path.Combine(_vsPath, "devenv.exe");
Process p = Process.Start(devenv, "/InstallVSTemplates");
p.WaitForExit();
}
}
public enum InstallMode
{
Install,
Uninstall
}
}
@@ -1,228 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 13</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>246, 13</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>LINQ to Umbraco is configuring Visual Studio 2008</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 30</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 13</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>This may take a few minutes, please stand by</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="progressBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 61</value>
</data>
<data name="progressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 27</value>
</data>
<data name="progressBar1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;progressBar1.Name" xml:space="preserve">
<value>progressBar1</value>
</data>
<data name="&gt;&gt;progressBar1.Type" xml:space="preserve">
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;progressBar1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;progressBar1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="installWorker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>275, 100</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>LINQ to Umbraco Installer Progress</value>
</data>
<data name="&gt;&gt;installWorker.Name" xml:space="preserve">
<value>installWorker</value>
</data>
<data name="&gt;&gt;installWorker.Type" xml:space="preserve">
<value>System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>InstallerProgress</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>
@@ -1,31 +0,0 @@
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>LINQ to Umbraco File</Name>
<Description>An empty LINQ to Umbraco file</Description>
<Icon>umbraco.ico</Icon>
<ProjectType>CSharp</ProjectType>
<SortOrder>100</SortOrder>
<DefaultName>DataClasses.dtml</DefaultName>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<TemplateID>Umbraco.Linq.Core.Designer</TemplateID>
<RequiredFrameworkVersion>3.5</RequiredFrameworkVersion>
</TemplateData>
<TemplateContent>
<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
<Reference>
<Assembly>System.Core</Assembly>
</Reference>
<Reference>
<Assembly>Umbraco.Linq.Core</Assembly>
</Reference>
</References>
<ProjectItem TargetFileName="$fileinputname$.dtml" ReplaceParameters="true">dtml.dtml</ProjectItem>
<CustomParameters>
<CustomParameter Name="$CustomTool$" Value="LINQtoUmbracoGenerator" />
<CustomParameter Name="$Namespace$" Value="$rootnamespace$" />
</CustomParameters>
</TemplateContent>
</VSTemplate>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<auto-generated>
This code was generated by a tool.
LINQ to Umbraco Version: $version$
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</auto-generated>
-->
<DocumentTypes Serialization="Unidirectional" DataContextName="$fileinputname$" PluralizeCollections="true">
</DocumentTypes>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

@@ -1,31 +0,0 @@
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>LINQ to Umbraco File</Name>
<Description>An empty LINQ to Umbraco file</Description>
<Icon>umbraco.ico</Icon>
<ProjectType>VisualBasic</ProjectType>
<SortOrder>100</SortOrder>
<DefaultName>DataClasses.dtml</DefaultName>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<TemplateID>Umbraco.Linq.Core.Designer</TemplateID>
<RequiredFrameworkVersion>3.5</RequiredFrameworkVersion>
</TemplateData>
<TemplateContent>
<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
<Reference>
<Assembly>System.Core</Assembly>
</Reference>
<Reference>
<Assembly>Umbraco.Linq.Core</Assembly>
</Reference>
</References>
<ProjectItem TargetFileName="$fileinputname$.dtml" ReplaceParameters="true">dtml.dtml</ProjectItem>
<CustomParameters>
<CustomParameter Name="$CustomTool$" Value="LINQtoUmbracoGenerator" />
<CustomParameter Name="$Namespace$" Value="$rootnamespace$" />
</CustomParameters>
</TemplateContent>
</VSTemplate>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<auto-generated>
This code was generated by a tool.
LINQ to Umbraco Version: $version$
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</auto-generated>
-->
<DocumentTypes Serialization="Unidirectional" DataContextName="$fileinputname$" PluralizeCollections="true">
</DocumentTypes>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

@@ -1,9 +0,0 @@
using System.Reflection;
// 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("DTMetal.CodeBuilder.Installer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("DTMetal.CodeBuilder.Installer")]
@@ -1,185 +0,0 @@
/***************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
This code is licensed under the Visual Studio SDK license terms.
THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
***************************************************************************/
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
/// <summary>
/// A managed wrapper for VS's concept of an IVsSingleFileGenerator which is
/// a custom tool invoked at design time which can take any file as an input
/// and provide any file as output.
/// </summary>
public abstract class BaseCodeGenerator : IVsSingleFileGenerator
{
private IVsGeneratorProgress codeGeneratorProgress;
private string codeFileNameSpace = String.Empty;
private string codeFilePath = String.Empty;
#region IVsSingleFileGenerator Members
/// <summary>
/// Implements the IVsSingleFileGenerator.DefaultExtension method.
/// Returns the extension of the generated file
/// </summary>
/// <param name="pbstrDefaultExtension">Out parameter, will hold the extension that is to be given to the output file name. The returned extension must include a leading period</param>
/// <returns>S_OK if successful, E_FAIL if not</returns>
int IVsSingleFileGenerator.DefaultExtension(out string pbstrDefaultExtension)
{
try
{
pbstrDefaultExtension = GetDefaultExtension();
return VSConstants.S_OK;
}
catch (Exception e)
{
Trace.WriteLine(Strings.GetDefaultExtensionFailed);
Trace.WriteLine(e.ToString());
pbstrDefaultExtension = string.Empty;
return VSConstants.E_FAIL;
}
}
/// <summary>
/// Implements the IVsSingleFileGenerator.Generate method.
/// Executes the transformation and returns the newly generated output file, whenever a custom tool is loaded, or the input file is saved
/// </summary>
/// <param name="wszInputFilePath">The full path of the input file. May be a null reference (Nothing in Visual Basic) in future releases of Visual Studio, so generators should not rely on this value</param>
/// <param name="bstrInputFileContents">The contents of the input file. This is either a UNICODE BSTR (if the input file is text) or a binary BSTR (if the input file is binary). If the input file is a text file, the project system automatically converts the BSTR to UNICODE</param>
/// <param name="wszDefaultNamespace">This parameter is meaningful only for custom tools that generate code. It represents the namespace into which the generated code will be placed. If the parameter is not a null reference (Nothing in Visual Basic) and not empty, the custom tool can use the following syntax to enclose the generated code</param>
/// <param name="rgbOutputFileContents">[out] Returns an array of bytes to be written to the generated file. You must include UNICODE or UTF-8 signature bytes in the returned byte array, as this is a raw stream. The memory for rgbOutputFileContents must be allocated using the .NET Framework call, System.Runtime.InteropServices.AllocCoTaskMem, or the equivalent Win32 system call, CoTaskMemAlloc. The project system is responsible for freeing this memory</param>
/// <param name="pcbOutput">[out] Returns the count of bytes in the rgbOutputFileContent array</param>
/// <param name="pGenerateProgress">A reference to the IVsGeneratorProgress interface through which the generator can report its progress to the project system</param>
/// <returns>If the method succeeds, it returns S_OK. If it fails, it returns E_FAIL</returns>
int IVsSingleFileGenerator.Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContents, out uint pcbOutput, IVsGeneratorProgress pGenerateProgress)
{
if (bstrInputFileContents == null)
{
throw new ArgumentNullException(bstrInputFileContents);
}
codeFilePath = wszInputFilePath;
codeFileNameSpace = wszDefaultNamespace;
codeGeneratorProgress = pGenerateProgress;
byte[] bytes = GenerateCode(bstrInputFileContents);
if (bytes == null)
{
// This signals that GenerateCode() has failed. Tasklist items have been put up in GenerateCode()
rgbOutputFileContents = null;
pcbOutput = 0;
// Return E_FAIL to inform Visual Studio that the generator has failed (so that no file gets generated)
return VSConstants.E_FAIL;
}
else
{
// The contract between IVsSingleFileGenerator implementors and consumers is that
// any output returned from IVsSingleFileGenerator.Generate() is returned through
// memory allocated via CoTaskMemAlloc(). Therefore, we have to convert the
// byte[] array returned from GenerateCode() into an unmanaged blob.
int outputLength = bytes.Length;
rgbOutputFileContents[0] = Marshal.AllocCoTaskMem(outputLength);
Marshal.Copy(bytes, 0, rgbOutputFileContents[0], outputLength);
pcbOutput = (uint)outputLength;
return VSConstants.S_OK;
}
}
#endregion
/// <summary>
/// Namespace for the file
/// </summary>
protected string FileNameSpace
{
get
{
return codeFileNameSpace;
}
}
/// <summary>
/// File-path for the input file
/// </summary>
protected string InputFilePath
{
get
{
return codeFilePath;
}
}
/// <summary>
/// Interface to the VS shell object we use to tell our progress while we are generating
/// </summary>
internal IVsGeneratorProgress CodeGeneratorProgress
{
get
{
return codeGeneratorProgress;
}
}
/// <summary>
/// Gets the default extension for this generator
/// </summary>
/// <returns>String with the default extension for this generator</returns>
protected abstract string GetDefaultExtension();
/// <summary>
/// The method that does the actual work of generating code given the input file
/// </summary>
/// <param name="inputFileContent">File contents as a string</param>
/// <returns>The generated code file as a byte-array</returns>
protected abstract byte[] GenerateCode(string inputFileContent);
/// <summary>
/// Method that will communicate an error via the shell callback mechanism
/// </summary>
/// <param name="level">Level or severity</param>
/// <param name="message">Text displayed to the user</param>
/// <param name="line">Line number of error</param>
/// <param name="column">Column number of error</param>
protected virtual void GeneratorError(uint level, string message, uint line, uint column)
{
IVsGeneratorProgress progress = CodeGeneratorProgress;
if (progress != null)
{
progress.GeneratorError(0, level, message, line, column);
}
}
/// <summary>
/// Method that will communicate a warning via the shell callback mechanism
/// </summary>
/// <param name="level">Level or severity</param>
/// <param name="message">Text displayed to the user</param>
/// <param name="line">Line number of warning</param>
/// <param name="column">Column number of warning</param>
protected virtual void GeneratorWarning(uint level, string message, uint line, uint column)
{
IVsGeneratorProgress progress = CodeGeneratorProgress;
if (progress != null)
{
progress.GeneratorError(1, level, message, line, column);
}
}
}
}
@@ -1,199 +0,0 @@
/***************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
This code is licensed under the Visual Studio SDK license terms.
THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
***************************************************************************/
using System;
using System.CodeDom.Compiler;
using System.Diagnostics;
using System.Runtime.InteropServices;
using EnvDTE;
using EnvDTE80;
using VSLangProj;
using VSOLE = Microsoft.VisualStudio.OLE.Interop;
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Designer.Interfaces;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
/// <summary>
/// Base code generator with site implementation
/// </summary>
public abstract class BaseCodeGeneratorWithSite : BaseCodeGenerator, VSOLE.IObjectWithSite
{
private object site = null;
private CodeDomProvider codeDomProvider = null;
private ServiceProvider serviceProvider = null;
#region IObjectWithSite Members
/// <summary>
/// GetSite method of IOleObjectWithSite
/// </summary>
/// <param name="riid">interface to get</param>
/// <param name="ppvSite">IntPtr in which to stuff return value</param>
void VSOLE.IObjectWithSite.GetSite(ref Guid riid, out IntPtr ppvSite)
{
if (site == null)
{
throw new COMException("object is not sited", VSConstants.E_FAIL);
}
IntPtr pUnknownPointer = Marshal.GetIUnknownForObject(site);
IntPtr intPointer = IntPtr.Zero;
Marshal.QueryInterface(pUnknownPointer, ref riid, out intPointer);
if (intPointer == IntPtr.Zero)
{
throw new COMException("site does not support requested interface", VSConstants.E_NOINTERFACE);
}
ppvSite = intPointer;
}
/// <summary>
/// SetSite method of IOleObjectWithSite
/// </summary>
/// <param name="pUnkSite">site for this object to use</param>
void VSOLE.IObjectWithSite.SetSite(object pUnkSite)
{
site = pUnkSite;
codeDomProvider = null;
serviceProvider = null;
}
#endregion
/// <summary>
/// Demand-creates a ServiceProvider
/// </summary>
private ServiceProvider SiteServiceProvider
{
get
{
if (serviceProvider == null)
{
serviceProvider = new ServiceProvider(site as VSOLE.IServiceProvider);
Debug.Assert(serviceProvider != null, "Unable to get ServiceProvider from site object.");
}
return serviceProvider;
}
}
/// <summary>
/// Method to get a service by its GUID
/// </summary>
/// <param name="serviceGuid">GUID of service to retrieve</param>
/// <returns>An object that implements the requested service</returns>
protected object GetService(Guid serviceGuid)
{
return SiteServiceProvider.GetService(serviceGuid);
}
/// <summary>
/// Method to get a service by its Type
/// </summary>
/// <param name="serviceType">Type of service to retrieve</param>
/// <returns>An object that implements the requested service</returns>
protected object GetService(Type serviceType)
{
return SiteServiceProvider.GetService(serviceType);
}
/// <summary>
/// Returns a CodeDomProvider object for the language of the project containing
/// the project item the generator was called on
/// </summary>
/// <returns>A CodeDomProvider object</returns>
protected virtual CodeDomProvider GetCodeProvider()
{
if (codeDomProvider == null)
{
//Query for IVSMDCodeDomProvider/SVSMDCodeDomProvider for this project type
IVSMDCodeDomProvider provider = GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider;
if (provider != null)
{
codeDomProvider = provider.CodeDomProvider as CodeDomProvider;
}
else
{
//In the case where no language specific CodeDom is available, fall back to C#
codeDomProvider = CodeDomProvider.CreateProvider("C#");
}
}
return codeDomProvider;
}
/// <summary>
/// Gets the default extension of the output file from the CodeDomProvider
/// </summary>
/// <returns></returns>
protected override string GetDefaultExtension()
{
CodeDomProvider codeDom = GetCodeProvider();
Debug.Assert(codeDom != null, "CodeDomProvider is NULL.");
string extension = codeDom.FileExtension;
if (extension != null && extension.Length > 0)
{
extension = "." + extension.TrimStart(".".ToCharArray());
}
return extension;
}
/// <summary>
/// Returns the EnvDTE.ProjectItem object that corresponds to the project item the code
/// generator was called on
/// </summary>
/// <returns>The EnvDTE.ProjectItem of the project item the code generator was called on</returns>
protected ProjectItem GetProjectItem()
{
object p = GetService(typeof(ProjectItem));
Debug.Assert(p != null, "Unable to get Project Item.");
return (ProjectItem)p;
}
/// <summary>
/// Returns the EnvDTE.Project object of the project containing the project item the code
/// generator was called on
/// </summary>
/// <returns>
/// The EnvDTE.Project object of the project containing the project item the code generator was called on
/// </returns>
protected Project GetProject()
{
return GetProjectItem().ContainingProject;
}
/// <summary>
/// Returns the VSLangProj.VSProjectItem object that corresponds to the project item the code
/// generator was called on
/// </summary>
/// <returns>The VSLangProj.VSProjectItem of the project item the code generator was called on</returns>
protected VSProjectItem GetVSProjectItem()
{
return (VSProjectItem)GetProjectItem().Object;
}
/// <summary>
/// Returns the VSLangProj.VSProject object of the project containing the project item the code
/// generator was called on
/// </summary>
/// <returns>
/// The VSLangProj.VSProject object of the project containing the project item
/// the code generator was called on
/// </returns>
protected VSProject GetVSProject()
{
return (VSProject)GetProject().Object;
}
}
}
@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="umbraco.Linq.DTMetal.CodeBuilder.DtmlCodeGenerator">
<Position X="7" Y="3" Width="2.25" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAIAAAAAAAgAAAEAAAAAAAAAAACAAA=</HashCode>
<FileName>DtmlCodeGenerator.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="umbraco.Linq.DTMetal.CodeBuilder.BaseCodeGenerator">
<Position X="0.5" Y="3" Width="2.75" />
<TypeIdentifier>
<HashCode>AAAAABAAAAAAAAAIAAQAIAAEAAAAMABAABAAABACAIA=</HashCode>
<FileName>BaseCodeGenerator.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="umbraco.Linq.DTMetal.CodeBuilder.BaseCodeGeneratorWithSite">
<Position X="4" Y="3" Width="2.25" />
<TypeIdentifier>
<HashCode>AAAAAABAAAAAQQAAAIAAAAAAQAAFACAABgAAAEACAEA=</HashCode>
<FileName>BaseCodeGeneratorWithSite.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Font Name="Tahoma" Size="8.25" />
</ClassDiagram>
@@ -1,810 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Runtime.Serialization;
using System.IO;
using System.Xml.Linq;
using System.Xml.Schema;
using Microsoft.VisualBasic;
using Microsoft.CSharp;
using System.Globalization;
using System.Reflection;
using umbraco.Linq.DTMetal.CodeBuilder.DataType;
using VB = Microsoft.VisualBasic;
using System.Text.RegularExpressions;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
public enum GenerationLanguage
{
CSharp,
VB
}
internal enum SerializationMode
{
None, Unidirectional
}
internal sealed class ClassGeneratorArgs
{
public string Namespace { get; set; }
public CodeDomProvider Provider { get; set; }
public string DtmlPath { get; set; }
public XDocument Dtml { get; set; }
public bool IsInterface { get; set; }
public bool GenerateInterfaceInheritance { get; set; }
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling")]
public sealed class ClassGenerator
{
internal ClassGeneratorArgs Args { get; set; }
internal bool PluralizeCollections { get; set; }
internal SerializationMode SerializationMode { get; set; }
private CodeCompileUnit Code { get; set; }
internal bool IsCSharpCodeProvider()
{
return (string.Compare(this.Args.Provider.FileExtension, "CS", StringComparison.OrdinalIgnoreCase) == 0);
}
/// <summary>
/// Creates a new CodeBuilder.
/// </summary>
/// <param name="xmlPath">The path to the DTML file</param>
/// <param name="lang">The language to generate with.</param>
/// <returns></returns>
public static ClassGenerator CreateBuilder(string xmlPath, string ns, GenerationLanguage lang)
{
var args = new ClassGeneratorArgs()
{
DtmlPath = xmlPath,
Namespace = ns,
};
switch (lang)
{
case GenerationLanguage.VB:
args.Provider = new VBCodeProvider();
break;
case GenerationLanguage.CSharp:
default:
args.Provider = new CSharpCodeProvider();
break;
}
return new ClassGenerator(args);
}
public static ClassGenerator CreateBuilder(string ns, GenerationLanguage lang, XDocument dtml, bool isInterface, bool interfaceInheritance)
{
var args = new ClassGeneratorArgs()
{
Dtml = dtml,
Namespace = ns,
IsInterface = isInterface,
GenerateInterfaceInheritance = interfaceInheritance
};
switch (lang)
{
case GenerationLanguage.VB:
args.Provider = new VBCodeProvider();
break;
case GenerationLanguage.CSharp:
default:
args.Provider = new CSharpCodeProvider();
break;
}
return new ClassGenerator(args);
}
internal ClassGenerator(ClassGeneratorArgs args)
{
this.Args = args;
}
public void Save()
{
if (this.Code == null)
{
this.GenerateCode();
}
var dtml = new FileInfo(this.Args.DtmlPath);
CodeGeneratorOptions options = new CodeGeneratorOptions();
options.BracingStyle = "C";
using (StreamWriter sourceWriter = new StreamWriter(dtml.FullName.Replace("dtml", "designer." + this.Args.Provider.FileExtension)))
{
this.Args.Provider.GenerateCodeFromCompileUnit(this.Code, sourceWriter, options);
}
}
public void Save(Stream stream)
{
if (this.Code == null)
{
this.GenerateCode();
}
CodeGeneratorOptions options = new CodeGeneratorOptions()
{
BracingStyle = "C"
};
using (var sw = new StreamWriter(stream))
{
this.Args.Provider.GenerateCodeFromCompileUnit(this.Code, sw, options);
}
}
internal byte[] SaveForVs()
{
if (this.Code == null)
{
this.GenerateCode();
}
CodeGeneratorOptions options = new CodeGeneratorOptions();
options.BracingStyle = "C";
StringBuilder code = new StringBuilder();
TextWriter tw = new StringWriter(code, CultureInfo.InvariantCulture);
this.Args.Provider.GenerateCodeFromCompileUnit(this.Code, tw, null);
tw.Flush();
Encoding enc = Encoding.GetEncoding(tw.Encoding.WindowsCodePage);
byte[] preamble = enc.GetPreamble();
int preambleLength = preamble.Length;
byte[] body = enc.GetBytes(code.ToString());
Array.Resize<byte>(ref preamble, preambleLength + body.Length);
Array.Copy(body, 0, preamble, preambleLength, body.Length);
// Return generated code.
return preamble;
}
public void GenerateCode()
{
if (Args == null)
{
throw new ArgumentNullException("Args");
}
if (!string.IsNullOrEmpty(this.Args.DtmlPath))
{
var dtml = new FileInfo(this.Args.DtmlPath);
if (!dtml.Exists)
{
throw new FileNotFoundException(String.Format(Strings.DtmlNotFound, this.Args.DtmlPath));
}
else
{
this.Args.Dtml = XDocument.Load(this.Args.DtmlPath);
}
}
ValidateSchema();
this.PluralizeCollections = (bool)this.Args.Dtml.Root.Attribute("PluralizeCollections");
this.SerializationMode = (SerializationMode)Enum.Parse(typeof(SerializationMode), (string)this.Args.Dtml.Root.Attribute("Serialization"));
IEnumerable<DocType> docTypes = XmlToClasses(this.Args.Dtml);
this.Code = new CodeCompileUnit();
CodeNamespace ns = GenerateNamespace(this.Args.Namespace);
if (!Args.IsInterface)
{
CodeTypeDeclaration dataContext = CreateDataContext(this.Args.Dtml, docTypes);
ns.Types.Add(dataContext);
}
CreateDocTypes(docTypes, ns);
this.Code.Namespaces.Add(ns);
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling")]
private CodeTypeDeclaration CreateDataContext(XDocument dtmlXml, IEnumerable<DocType> docTypes)
{
string methodName = "OnCreated";
CodeExpressionStatement statement = new CodeExpressionStatement(new CodeMethodInvokeExpression(null, methodName, new CodeExpression[0]));
string dataContextName = dtmlXml.Root.Attribute("DataContextName").Value;
//ensure the naming is standard
if (!dataContextName.ToUpper().Contains("DATACONTEXT"))
{
dataContextName += "DataContext";
}
CodeTypeDeclaration dataContext = new CodeTypeDeclaration(dataContextName);
dataContext.BaseTypes.Add("UmbracoDataContext");
dataContext.IsClass = true;
dataContext.IsPartial = true;
string partialOnCreated = string.Empty;
if (IsCSharpCodeProvider())
{
partialOnCreated = " partial void " + methodName + "();\r\n";
}
else
{
partialOnCreated = " Partial Private Void " + methodName + "()\r\nEnd Sub\r\n";
}
CodeSnippetTypeMember onCreated = new CodeSnippetTypeMember(partialOnCreated);
CodeRegionDirective region = new CodeRegionDirective(CodeRegionMode.Start, "Partials");
onCreated.StartDirectives.Add(region);
onCreated.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End, "Partials"));
dataContext.Members.Add(onCreated);
//constructor with no arguments
CodeConstructor ctor = new CodeConstructor();
ctor.Attributes = MemberAttributes.Public;
ctor.BaseConstructorArgs.Add(new CodePropertyReferenceExpression());
ctor.Statements.Add(statement);
dataContext.Members.Add(ctor);
//constructor that takes an umbracoDataProvider
ctor = new CodeConstructor();
ctor.Attributes = MemberAttributes.Public;
ctor.Parameters.Add(new CodeParameterDeclarationExpression("UmbracoDataProvider", "provider"));
ctor.BaseConstructorArgs.Add(new CodePropertyReferenceExpression(null, "provider"));
ctor.Statements.Add(statement);
dataContext.Members.Add(ctor);
//Generate the Tree<TDocType> for each docType
foreach (var dt in docTypes)
{
string name = dt.TypeName;
if (this.PluralizeCollections)
{
name = PluraliseName(dt.TypeName);
}
var t = new CodeTypeReference("Tree");
t.TypeArguments.Add(dt.TypeName);
CodeMemberProperty p = new CodeMemberProperty();
p.Name = name;
p.Type = t;
p.Attributes = MemberAttributes.Public | MemberAttributes.Final;
p.HasGet = true;
p.HasSet = false;
if (!Args.IsInterface)
{
p.GetStatements.Add(
new CodeMethodReturnStatement(
new CodeMethodInvokeExpression(
new CodeMethodReferenceExpression(
new CodeThisReferenceExpression(),
"LoadTree",
new CodeTypeReference[] {
new CodeTypeReference(dt.TypeName)
}),
new CodeExpression[0])
)
);
}
dataContext.Members.Add(p);
}
return dataContext;
}
internal IEnumerable<DocType> XmlToClasses(XDocument dtmlXml)
{
return dtmlXml.Descendants("DocumentType").Select(x => new DocType
{
Alias = (string)x.Element("Alias"),
Description = (string)x.Element("Description"),
Id = (int)x.Element("Id"),
Name = (string)x.Element("Name"),
ParentId = (int)x.Attribute("ParentId"),
TypeName = Normalise((string)x.Element("Alias")),
Properties = x.Descendants("Property").Select(p => new DocTypeProperty
{
Alias = (string)p.Element("Alias"),
ControlId = new Guid((string)p.Element("ControlId")),
DatabaseType = Type.GetType((string)p.Element("Type")),
Description = (string)p.Element("Description"),
Id = (int)p.Element("Id"),
Name = (string)p.Element("Name"),
Mandatory = (bool)p.Element("Mandatory"),
RegularExpression = (string)p.Element("RegularExpression"),
TypeName = Normalise((string)p.Element("Alias"))
}).ToList(),
Associations = x.Descendants("Association").Select(a => new DocTypeAssociation
{
AllowedId = (int)a
}).ToList()
});
}
private void ValidateSchema()
{
XmlSchemaSet schemas = new XmlSchemaSet();
//read the resorce for the XSD to validate against
Assembly assembly = Assembly.GetExecutingAssembly();
schemas.Add("", System.Xml.XmlReader.Create(assembly.GetManifestResourceStream(assembly.GetName().Name + ".DocTypeML.xsd")));
//we'll have a list of all validation exceptions to put them to the screen
List<XmlSchemaException> exList = new List<XmlSchemaException>();
//some funky in-line event handler. Lambda loving goodness ;)
this.Args.Dtml.Validate(schemas, (o, e) => { exList.Add(e.Exception); });
if (exList.Count > 0)
{
//dump out the exception list
StringBuilder sb = new StringBuilder();
sb.AppendLine(umbraco.Linq.DTMetal.CodeBuilder.Strings.XsdValidationFailureHeading);
foreach (var item in exList)
{
sb.AppendLine(" * " + item.Message + " - " + item.StackTrace);
}
throw new XmlSchemaException(sb.ToString());
}
}
private void CreateDocTypes(IEnumerable<DocType> docTypes, CodeNamespace ns)
{
foreach (var docType in docTypes)
{
string genName = docType.TypeName;
CodeCompileUnit currUnit = new CodeCompileUnit();
currUnit.Namespaces.Add(ns);
//create class
CodeTypeDeclaration currClass = new CodeTypeDeclaration(genName);
//create the custom attribute
CodeAttributeDeclarationCollection classAttributes = new CodeAttributeDeclarationCollection(
new CodeAttributeDeclaration[] {
new CodeAttributeDeclaration("UmbracoInfo",
new CodeAttributeArgument(new CodePrimitiveExpression(docType.Alias))
),
new CodeAttributeDeclaration("DocType")
});
if (!Args.IsInterface)
{
classAttributes.Add(new CodeAttributeDeclaration(new CodeTypeReference(typeof(DataContractAttribute))));
}
//add the address to the class
currClass.CustomAttributes.AddRange(classAttributes);
currClass.IsClass = true;
//add the summary decoration
currClass.Comments.AddRange(GenerateSummary(docType.Description));
//set up the type
currClass.TypeAttributes = TypeAttributes.Public;
if (docType.ParentId > 0)
{
string typeName = docTypes.Single(d => d.Id == docType.ParentId).TypeName;
if (!Args.IsInterface)
{
currClass.BaseTypes.Add(new CodeTypeReference(typeName)); //docType inheritance
}
else
{
currClass.BaseTypes.Add(new CodeTypeReference("I" + typeName)); //docType inheritance of interface type
}
}
else
{
if (!Args.IsInterface)
{
currClass.BaseTypes.Add(new CodeTypeReference("DocTypeBase")); //base class
}
else
{
currClass.BaseTypes.Add(new CodeTypeReference("IDocTypeBase")); //base interface
}
}
if (!Args.IsInterface)
{
currClass.IsPartial = true;
}
else
{
currClass.IsInterface = true;
currClass.Name = "I" + currClass.Name;
}
currClass.Members.AddRange(GenerateConstructors());
#region Doc Type Properties
foreach (var docTypeProperty in docType.Properties)
{
CodeMemberField valueField = new CodeMemberField();
valueField.Attributes = MemberAttributes.Private;
valueField.Name = "_" + docTypeProperty.TypeName;
valueField.Type = new CodeTypeReference(docTypeProperty.DatabaseType);
currClass.Members.Add(valueField);
//store the umbraco data in an attribute.
CodeMemberProperty p = new CodeMemberProperty();
p.CustomAttributes.AddRange(GenerateDocTypePropertyAttributes(docTypeProperty));
p.Name = docTypeProperty.TypeName;
p.Type = new CodeTypeReference(docTypeProperty.DatabaseType);
p.Attributes = MemberAttributes.Public;
p.HasGet = true;
p.HasSet = false;
p.GetStatements.Add(new CodeMethodReturnStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), valueField.Name))
);
#region Set statement
//have a conditional statment so we can use the INotifyChanging and INotifyChanged events
CodeExpression left = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), valueField.Name);
CodeExpression right = new CodePropertySetValueReferenceExpression();
CodeExpression cond = GenerateInequalityConditionalStatement(left, right);
//Build the statements to execute when we are changing the property value
//The order is:
// - RaisePropertyChanging event
// - Assign the property
// - RaisePropertyChanged event
var trues = new CodeStatement[] {
new CodeExpressionStatement(new CodeMethodInvokeExpression(
new CodeThisReferenceExpression(),
"RaisePropertyChanging"
)
),
new CodeAssignStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), valueField.Name),
new CodePropertySetValueReferenceExpression()
),
new CodeExpressionStatement(
new CodeMethodInvokeExpression(
new CodeThisReferenceExpression(),
"RaisePropertyChanged",
new CodePrimitiveExpression(docTypeProperty.TypeName)
)
)
};
CodeConditionStatement condition = new CodeConditionStatement(cond, trues);
//enforce the validation from umbraco. It's there for a reason ;)
if (!string.IsNullOrEmpty(docTypeProperty.RegularExpression))
{
p.SetStatements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(
null,
"ValidateProperty",
new CodePrimitiveExpression(docTypeProperty.RegularExpression),
new CodePropertySetValueReferenceExpression())
)
);
}
p.SetStatements.Add(condition);
#endregion
//comment the property with the description from umbraco
p.Comments.AddRange(GenerateSummary(docTypeProperty.Description));
currClass.Members.Add(p);
CodeMemberProperty retypedProperty = CreateCustomProperty(docTypeProperty, valueField.Name);
if (retypedProperty != null)
{
currClass.Members.Add(retypedProperty);
}
}
#endregion
#region Child Associations
foreach (var child in docType.Associations)
{
var realDocType = docTypes.SingleOrDefault(dt => dt.Id == child.AllowedId);
//put a check that a docType is actually returned
//This will cater for the bug of when you don't select to generate a
//docType but it is a child of the current
if (realDocType != null)
{
string name = realDocType.TypeName;
if (this.PluralizeCollections)
{
name = PluraliseName(realDocType.TypeName);
}
var t = new CodeTypeReference("AssociationTree");
t.TypeArguments.Add(realDocType.TypeName);
CodeMemberProperty p = new CodeMemberProperty();
p.Name = name;
p.Type = t;
p.Attributes = MemberAttributes.Public | MemberAttributes.Final;
p.HasGet = true;
p.HasSet = true;
if (!Args.IsInterface)
{
CodeMemberField childMember = new CodeMemberField();
childMember.Attributes = MemberAttributes.Private;
childMember.Name = "_" + name;
childMember.Type = t;
currClass.Members.Add(childMember);
CodeExpression left = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), childMember.Name);
CodeExpression right = new CodePrimitiveExpression(null);
CodeExpression cond = GenerateEqualityConditionalStatement(left, right);
var trues = new CodeConditionStatement(cond, new CodeAssignStatement(
new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), childMember.Name),
new CodeMethodInvokeExpression(
new CodeMethodReferenceExpression(
new CodeThisReferenceExpression(),
"ChildrenOfType",
new CodeTypeReference[] {
new CodeTypeReference(realDocType.TypeName)
})
)
)
);
p.GetStatements.Add(trues);
p.GetStatements.Add(new CodeMethodReturnStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), childMember.Name))
);
p.SetStatements.Add(
new CodeAssignStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), childMember.Name),
new CodePropertySetValueReferenceExpression()
)
);
}
currClass.Members.Add(p);
}
}
#endregion
ns.Types.Add(currClass);
}
}
private CodeMemberProperty CreateCustomProperty(DocTypeProperty docTypeProperty, string privateVariableName)
{
var internalTypes = Assembly.GetExecutingAssembly().GetTypes().Where(t => typeof(DataTypeRetyper).IsAssignableFrom(t) && t.GetCustomAttributes(typeof(DataTypeAttribute), true).Length == 1);
var currType = internalTypes.SingleOrDefault(t => t.GetCustomAttributes(typeof(DataTypeAttribute), true).Cast<DataTypeAttribute>().First().ControlId == docTypeProperty.ControlId);
if (currType != null)
{
var retyper = (DataTypeRetyper)Activator.CreateInstance(currType);
CodeMemberProperty p = new CodeMemberProperty();
p.Type = new CodeTypeReference(retyper.MemberType);
p.Name = retyper.MemberName(docTypeProperty.TypeName);
p.Attributes = MemberAttributes.Public;
p.HasGet = true;
p.HasSet = false;
new Switch(retyper)
.Case<YesNoRetyper>(b =>
{
p.GetStatements.Add(new CodeMethodReturnStatement(
GenerateEqualityConditionalStatement(
new CodeFieldReferenceExpression(
new CodeThisReferenceExpression(), privateVariableName)
, new CodePrimitiveExpression(0)
)
)
);
}, true)
;
return p;
}
return null;
}
private CodeExpression GenerateInequalityConditionalStatement(CodeExpression left, CodeExpression right)
{
//Build a binary conditional operation (an IF)
CodeExpression cond;
//if (GenerationLanaguage == Language.CSharp)
//{
cond = new CodeBinaryOperatorExpression(
left,
CodeBinaryOperatorType.IdentityInequality,
right
);
//}
//else
//{
// cond = new CodeBinaryOperatorExpression(
// new CodeBinaryOperatorExpression(
// left,
// CodeBinaryOperatorType.IdentityEquality,
// right
// ),
// CodeBinaryOperatorType.ValueEquality,
// new CodePrimitiveExpression(false)
// );
//}
return cond;
}
private CodeExpression GenerateEqualityConditionalStatement(CodeExpression left, CodeExpression right)
{
//Build a binary conditional operation (an IF)
CodeExpression cond;
//if (GenerationLanaguage == Language.CSharp)
//{
cond = new CodeBinaryOperatorExpression(
left,
CodeBinaryOperatorType.IdentityEquality,
right
);
//}
//else
//{
// cond = new CodeBinaryOperatorExpression(
// new CodeBinaryOperatorExpression(
// left,
// CodeBinaryOperatorType.IdentityInequality,
// right
// ),
// CodeBinaryOperatorType.ValueEquality,
// new CodePrimitiveExpression(false)
// );
//}
return cond;
}
private CodeAttributeDeclaration[] GenerateDocTypePropertyAttributes(DocTypeProperty docTypeProperty)
{
List<CodeAttributeDeclaration> attrs = new List<CodeAttributeDeclaration>();
CodeAttributeDeclaration umbInfoAtt = new CodeAttributeDeclaration("UmbracoInfo",
new CodeAttributeArgument(new CodePrimitiveExpression(docTypeProperty.Alias)),
new CodeAttributeArgument("DisplayName", new CodePrimitiveExpression(docTypeProperty.Name)),
new CodeAttributeArgument("Mandatory", new CodePrimitiveExpression(docTypeProperty.Mandatory))
);
attrs.Add(umbInfoAtt);
attrs.Add(new CodeAttributeDeclaration("Property"));
if (this.SerializationMode == SerializationMode.Unidirectional)
{
CodeAttributeDeclaration dataMemberAtt = new CodeAttributeDeclaration(new CodeTypeReference(typeof(DataMemberAttribute)),
new CodeAttributeArgument("Name", new CodePrimitiveExpression(docTypeProperty.TypeName))
);
}
return attrs.ToArray();
}
private static CodeTypeMember[] GenerateConstructors()
{
CodeConstructor defaultConstructor = new CodeConstructor();
defaultConstructor.Attributes = MemberAttributes.Public;
return new CodeTypeMember[] { defaultConstructor };
}
private static CodeNamespace GenerateNamespace(string name)
{
CodeNamespace ns = new CodeNamespace(name);
//ns.Imports.Add(new CodeNamespaceImport("System"));
ns.Imports.Add(new CodeNamespaceImport("umbraco.Linq.Core"));
ns.Imports.Add(new CodeNamespaceImport("umbraco.Linq.Core.Node"));
ns.Imports.Add(new CodeNamespaceImport("System.Linq"));
return ns;
}
private static CodeCommentStatement[] GenerateSummary(string summaryBody)
{
return new CodeCommentStatement[] {
new CodeCommentStatement("<summary>", true),
new CodeCommentStatement(summaryBody, true),
new CodeCommentStatement("</summary>", true)
};
}
private static bool IsVowel(char c)
{
switch (c)
{
case 'O':
case 'U':
case 'Y':
case 'A':
case 'E':
case 'I':
case 'o':
case 'u':
case 'y':
case 'a':
case 'e':
case 'i':
return true;
}
return false;
}
internal static string PluraliseName(string name)
{
if ((name.EndsWith("x", StringComparison.OrdinalIgnoreCase) || name.EndsWith("ch", StringComparison.OrdinalIgnoreCase)) || (name.EndsWith("ss", StringComparison.OrdinalIgnoreCase) || name.EndsWith("sh", StringComparison.OrdinalIgnoreCase)))
{
name = name + "es";
return name;
}
if ((name.EndsWith("y", StringComparison.OrdinalIgnoreCase) && (name.Length > 1)) && !IsVowel(name[name.Length - 2]))
{
name = name.Remove(name.Length - 1, 1);
name = name + "ies";
return name;
}
if (!name.EndsWith("s", StringComparison.OrdinalIgnoreCase))
{
name = name + "s";
}
return name;
}
internal string Normalise(string input)
{
if (string.IsNullOrEmpty(input))
{
throw new ArgumentNullException("input");
}
var invalids = new string[] { "_", "-", ".", "$", "@", "*" };
input = Regex.Replace(input, "([A-Z])", " $1", RegexOptions.Compiled);
input = input.Trim().ToLower();
foreach (var i in invalids)
{
input = input.Replace(i, " ");
}
var correctCasedInput = VB.Strings.StrConv(input, VB.VbStrConv.ProperCase, 0);
var correctCasedAsArray = correctCasedInput.Split(' ').Where(s => !string.IsNullOrEmpty(s));
StringBuilder ret = new StringBuilder();
var foundChar = false;
foreach (var item in correctCasedAsArray)
{
foreach (var c in item)
{
if (Char.IsLetter(c))
{
ret.Append(c);
foundChar = true;
}
else if (Char.IsDigit(c) && foundChar)
{
ret.Append(c);
}
}
}
if (string.IsNullOrEmpty(ret.ToString()))
{
throw new IndexOutOfRangeException("No valid characters found within the string being normalised");
}
return ret.ToString();
}
}
}
@@ -1,75 +0,0 @@
/***************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
This code is licensed under the Visual Studio SDK license terms.
THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
***************************************************************************/
using System;
using System.Runtime.InteropServices;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using Microsoft.Win32;
using Microsoft.VisualStudio.Shell;
using VSLangProj80;
using System.Xml.Linq;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
/// <summary>
/// This is the generator class.
/// When setting the 'Custom Tool' property of a C# or VB project item to "LINQtoumbracoGenerator",
/// the GenerateCode function will get called and will return the contents of the generated file
/// to the project system
/// </summary>
[ComVisible(true)]
[Guid("52B316AA-1997-4c81-9969-95404C09EEB4")]
[CodeGeneratorRegistration(typeof(LINQtoumbracoGenerator), "C# LINQ to umbraco Class Generator", vsContextGuids.vsContextGuidVCSProject, GeneratesDesignTimeSource = true)]
[CodeGeneratorRegistration(typeof(LINQtoumbracoGenerator), "VB LINQ to umbraco Class Generator", vsContextGuids.vsContextGuidVBProject, GeneratesDesignTimeSource = true)]
[ProvideObject(typeof(LINQtoumbracoGenerator))]
public class LINQtoumbracoGenerator : BaseCodeGeneratorWithSite
{
#pragma warning disable 0414
//The name of this generator (use for 'Custom Tool' property of project item)
internal static string name = "LINQtoumbracoGenerator";
#pragma warning restore 0414
/// <summary>
/// Function that builds the contents of the generated file based on the contents of the input file
/// </summary>
/// <param name="inputFileContent">Content of the input file</param>
/// <returns>Generated file as a byte array</returns>
protected override byte[] GenerateCode(string inputFileContent)
{
var args = new ClassGeneratorArgs()
{
Namespace = this.FileNameSpace,
Dtml = XDocument.Parse(inputFileContent),
Provider = this.GetCodeProvider()
};
var builder = new ClassGenerator(args);
//this.GetVSProject().References.Add("umbraco.Linq.Core");
//this.GetVSProject().References.Add("System.Core");
//this.GetVSProject().References.Add("umbraco");
builder.GenerateCode();
return builder.SaveForVs();
}
protected override string GetDefaultExtension()
{
return ".designer" + base.GetDefaultExtension();
}
}
}
@@ -1,159 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{461089E7-008E-4737-BA17-E1FCD1CC3D0E}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>umbraco.Linq.DTMetal.CodeBuilder</RootNamespace>
<AssemblyName>umbraco.Linq.DTMetal.CodeBuilder</AssemblyName>
<CommonRegAttributes>$(VSSDK90Install)VisualStudioIntegration\Common\Source\CSharp\RegistrationAttributes</CommonRegAttributes>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Solution Items\umbraco-key.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<OutputPath>.\bin\Debug\</OutputPath>
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\umbraco.Linq.DTMetal.CodeBuilder.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<OutputPath>.\bin\Release\</OutputPath>
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
<DefineConstants>TRACE</DefineConstants>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EnvDTE">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="EnvDTE80">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Microsoft.VisualStudio.Designer.Interfaces" />
<Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Shell.9.0" />
<Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.Runtime.Serialization">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="VSLangProj">
</Reference>
<Reference Include="VSLangProj2">
<HintPath>$(DevEnvDir)\VSLangProj2.dll</HintPath>
</Reference>
<Reference Include="VSLangProj80">
<HintPath>$(DevEnvDir)\VSLangProj80.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Solution Items\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="Code Builder\BaseCodeGenerator.cs" />
<Compile Include="Code Builder\BaseCodeGeneratorWithSite.cs" />
<Compile Include="Code Builder\ClassGenerator.cs" />
<Compile Include="DataType\DataTypeAttribute.cs" />
<Compile Include="DataType\DataTypeRetyper.cs" />
<Compile Include="DataType\YesNoRetyper.cs" />
<Compile Include="DocType.cs" />
<Compile Include="DocTypeAssociation.cs" />
<Compile Include="DocTypeProperty.cs" />
<Compile Include="Installer\InstallerHandler.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Installer\InstallerProgress.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Installer\InstallerProgress.Designer.cs">
<DependentUpon>InstallerProgress.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RegistrationAttributes\CodeGeneratorRegistrationAttribute.cs" />
<Compile Include="Strings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="Code Builder\LINQtoUmbracoGenerator.cs" />
<Compile Include="Switch.cs" />
<Compile Include="Wizard\CreateDtmlWizard.cs" />
<EmbeddedResource Include="..\..\..\dep\Schemas\DocTypeML.xsd">
<Link>DocTypeML.xsd</Link>
</EmbeddedResource>
<None Include="..\Solution Items\umbraco-key.snk">
<Link>Properties\umbraco-key.snk</Link>
</None>
<None Include="Code Builder\ClassDiagram.cd" />
<Content Include="Item packages\LINQtoUmbracoVB.zip" />
<Content Include="Item packages\LINQtoUmbracoCS.zip" />
</ItemGroup>
<ItemGroup>
<AppDesigner Include="Project\" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Strings.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
<CustomToolNamespace>Umbraco.Linq.DTMetal.CodeBuilder</CustomToolNamespace>
</EmbeddedResource>
<EmbeddedResource Include="Installer\InstallerProgress.resx">
<DependentUpon>InstallerProgress.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<PropertyGroup>
<!--
To specify a different registry root to register your package, uncomment the TargetRegistryRoot
tag and specify a registry root in it.
<TargetRegistryRoot></TargetRegistryRoot>
-->
<RegisterOutputPackage>true</RegisterOutputPackage>
<RegisterWithCodebase>true</RegisterWithCodebase>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug - Fixed Version' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug - Fixed Version\</OutputPath>
<DefineConstants>DEBUG;TRACE;FIXEDVERSION</DefineConstants>
<DocumentationFile>bin\Debug\Umbraco.Linq.DTMetal.CodeBuilder.xml</DocumentationFile>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
</VisualStudio>
</ProjectExtensions>
</Project>
@@ -1,20 +0,0 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</StartProgram>
<StartArguments>/ranu /rootsuffix Exp</StartArguments>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</StartProgram>
<StartArguments>/ranu /rootsuffix Exp</StartArguments>
</PropertyGroup>
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug - Fixed Version' ">
<StartProgram>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</StartProgram>
<StartArguments>/ranu /rootsuffix Exp</StartArguments>
<StartAction>Program</StartAction>
</PropertyGroup>
</Project>
@@ -1,10 +0,0 @@
""
{
"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"
}
@@ -1,18 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder.DataType
{
[global::System.AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
public sealed class DataTypeAttribute : Attribute
{
public DataTypeAttribute(string controlId)
{
this.ControlId = new Guid(controlId);
}
public Guid ControlId { get; private set; }
}
}
@@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder.DataType
{
public abstract class DataTypeRetyper
{
/// <summary>
/// Gets the .NET type of the DataType
/// </summary>
/// <value>The type of the member.</value>
public abstract Type MemberType { get; }
/// <summary>
/// Creates the name for the retyped member. Overload if custom naming is required
/// </summary>
/// <param name="baseName">Name used for the standard implementation</param>
/// <returns>baseName + MemberType.Name</returns>
public virtual string MemberName(string baseName)
{
return baseName + this.MemberType.Name;
}
}
}
@@ -1,19 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder.DataType
{
/// <summary>
/// A converter for the Yes/ No DataType
/// </summary>
[DataType("38b352c1-e9f8-4fd8-9324-9a2eab06d97a")]
public sealed class YesNoRetyper : DataTypeRetyper
{
public override Type MemberType
{
get { return typeof(bool); }
}
}
}
@@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
public sealed class DocType
{
public int Id { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
public string Alias { get; set; }
public string Description { get; set; }
public string TypeName { get; set; }
public List<DocTypeProperty> Properties { get; set; }
public List<DocTypeAssociation> Associations { get; set; }
}
}
@@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
public sealed class DocTypeAssociation
{
public int AllowedId { get; set; }
}
}
@@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.Linq.DTMetal.CodeBuilder
{
public sealed class DocTypeProperty
{
public int Id { get; set; }
public string Name { get; set; }
public string Alias { get; set; }
public string Description { get; set; }
public bool Mandatory { get; set; }
public string RegularExpression { get; set; }
public Type DatabaseType { get; set; }
public Guid ControlId { get; set; }
public string TypeName { get; set; }
}
}
@@ -1,60 +0,0 @@
using System.ComponentModel;
using Microsoft.Win32;
using System.Windows.Forms;
using System.Globalization;
namespace umbraco.Linq.DTMetal.CodeBuilder.Installer
{
[RunInstaller(true)]
public class InstallerHandler : System.Configuration.Install.Installer
{
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
var vsPath9 = GetVsPath9();
var vsPath10 = GetVsPath10();
var targetPath = Context.Parameters["TargetDir"];
if ((vsPath9 != null || vsPath10 != null) && targetPath != null)
{
var progress = new InstallerProgress(InstallMode.Install, vsPath9, vsPath10, targetPath);
MessageBoxOptions options = CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft ? MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading : 0;
if (progress.ShowDialog() != DialogResult.OK)
{
MessageBox.Show(Strings.InstallFailureMessage, "LINQ to umbraco Setup", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, options);
MessageBox.Show(progress.Error.ToString());
}
}
}
private static string GetVsPath9()
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\9.0", false);
if (key != null)
return (string)key.GetValue("InstallDir");
return null;
}
private static string GetVsPath10()
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\10.0", false);
if (key != null)
return (string)key.GetValue("InstallDir");
return null;
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
var vsPath9 = GetVsPath9();
var vsPath10 = GetVsPath10();
if (vsPath9 != null || vsPath10 != null)
{
var progress = new InstallerProgress(InstallMode.Uninstall, vsPath9, vsPath10, null);
progress.ShowDialog();
}
}
}
}
@@ -1,84 +0,0 @@
namespace umbraco.Linq.DTMetal.CodeBuilder.Installer
{
partial class InstallerProgress
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallerProgress));
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.installWorker = new System.ComponentModel.BackgroundWorker();
this.SuspendLayout();
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// label2
//
resources.ApplyResources(this.label2, "label2");
this.label2.Name = "label2";
//
// progressBar1
//
resources.ApplyResources(this.progressBar1, "progressBar1");
this.progressBar1.Name = "progressBar1";
this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee;
//
// installWorker
//
this.installWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(this.installWorker_DoWork);
this.installWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.installWorker_RunWorkerCompleted);
//
// InstallerProgress
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ControlBox = false;
this.Controls.Add(this.progressBar1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "InstallerProgress";
this.Load += new System.EventHandler(this.InstallerProgress_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ProgressBar progressBar1;
private System.ComponentModel.BackgroundWorker installWorker;
}
}
@@ -1,358 +0,0 @@
using System;
using System.ComponentModel;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using System.Globalization;
using Microsoft.Win32;
using System.Linq;
namespace umbraco.Linq.DTMetal.CodeBuilder.Installer
{
public partial class InstallerProgress : Form
{
private const string generatorKey = "{52B316AA-1997-4c81-9969-95404C09EEB4}";
private const string dtml = ".dtml";
private const string clas = "LINQtoumbraco.DTML.1.0";
private const string desc = "LINQ to umbraco Entity Mapping";
private InstallMode _mode;
private string _vs9Path;
private string _vs10Path;
private string _targetPath;
internal InstallerProgress(InstallMode mode, string vs9Path, string vs10Path, string targetPath)
{
InitializeComponent();
_mode = mode;
_vs9Path = vs9Path;
_vs10Path = vs10Path;
_targetPath = targetPath;
}
#region Events
private void installWorker_DoWork(object sender, DoWorkEventArgs e)
{
switch (_mode)
{
case InstallMode.Install:
InstallVsTemplates();
SetupRegistry();
InstallDtmlXsd();
ConfigVs();
break;
case InstallMode.Uninstall:
UninstallVsTemplates();
TearDownRegistry();
UninstallDtmlXsd();
ConfigVs();
break;
default:
break;
}
}
private void installWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
this.DialogResult = DialogResult.Cancel;
this.Error = e.Error;
}
else
{
this.DialogResult = DialogResult.OK;
}
}
public Exception Error { get; set; }
private void InstallerProgress_Load(object sender, EventArgs e)
{
installWorker.RunWorkerAsync();
}
#endregion
#region Uninstall
private void UninstallDtmlXsd()
{
try
{
File.Delete(GetDtmlXsdPathVs9());
}
catch { }
try
{
File.Delete(GetDtmlXsdPathVs10());
}
catch { }
}
private void TearDownRegistry()
{
if(Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey) != null)
{
Registry.LocalMachine.DeleteSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey);
}
if (Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\VisualStudio\10.0\CLSID\" + generatorKey) != null)
{
Registry.LocalMachine.DeleteSubKey(@"Software\Microsoft\VisualStudio\10.0\CLSID\" + generatorKey);
}
if (Registry.ClassesRoot.OpenSubKey(dtml) != null)
{
Registry.ClassesRoot.DeleteSubKeyTree(dtml);
}
if (Registry.ClassesRoot.OpenSubKey(clas) != null)
{
Registry.ClassesRoot.DeleteSubKeyTree(clas);
}
}
private void UninstallVsTemplates()
{
if (!string.IsNullOrEmpty(_vs9Path))
{
string csTgt = Path.Combine(_vs9Path, @"ItemTemplates\CSharp\1033\LINQtoumbracoCS.zip");
string vbTgt = Path.Combine(_vs9Path, @"ItemTemplates\VisualBasic\1033\LINQtoumbracoVB.zip");
try
{
File.Delete(csTgt);
File.Delete(vbTgt);
}
catch { }
}
if (!string.IsNullOrEmpty(_vs10Path))
{
string csTgt = Path.Combine(_vs10Path, @"ItemTemplates\CSharp\1033\LINQtoumbracoCS.zip");
string vbTgt = Path.Combine(_vs10Path, @"ItemTemplates\VisualBasic\1033\LINQtoumbracoVB.zip");
try
{
File.Delete(csTgt);
File.Delete(vbTgt);
}
catch { }
}
}
#endregion
#region Install
private void InstallDtmlXsd()
{
var assembly = Assembly.GetExecutingAssembly();
// Load the XSD for DocTypeML.
string xsd;
using (Stream s = assembly.GetManifestResourceStream(assembly.GetName().Name + ".DocTypeML.xsd"))
{
using (StreamReader sr = new StreamReader(s))
{
xsd = sr.ReadToEnd();
}
}
// Write the XSD to the Visual Studio folder with XML schemas.
if (!string.IsNullOrEmpty(_vs9Path))
{
using (StreamWriter sw = File.CreateText(GetDtmlXsdPathVs9()))
{
sw.Write(xsd);
}
}
if (!string.IsNullOrEmpty(_vs10Path))
{
using (StreamWriter sw = File.CreateText(GetDtmlXsdPathVs10()))
{
sw.Write(xsd);
}
}
}
private void SetupRegistry()
{
#region LINQtoumbracoGenerator Key
if (!string.IsNullOrEmpty(_vs9Path))
{
RegistryKey genKey = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\VisualStudio\9.0\CLSID\" + generatorKey);
genKey.SetValue("Assembly", Assembly.GetExecutingAssembly().FullName); //full name of the assembly which the generator is in
genKey.SetValue("Class", "umbraco.Linq.DTMetal.CodeBuilder.LINQtoumbracoGenerator"); //generator class
genKey.SetValue("InprocServer32", Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), @"system32\mscoree.dll"));
genKey.SetValue("ThreadingModel", "Both");
genKey.Close();
}
if (!string.IsNullOrEmpty(_vs10Path))
{
RegistryKey genKey = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\VisualStudio\10.0\CLSID\" + generatorKey);
genKey.SetValue("Assembly", Assembly.GetExecutingAssembly().FullName); //full name of the assembly which the generator is in
genKey.SetValue("Class", "umbraco.Linq.DTMetal.CodeBuilder.LINQtoumbracoGenerator"); //generator class
genKey.SetValue("InprocServer32", Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), @"system32\mscoree.dll"));
genKey.SetValue("ThreadingModel", "Both");
genKey.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\.dtml
{
RegistryKey dtmlKey = Registry.ClassesRoot.CreateSubKey(dtml, RegistryKeyPermissionCheck.ReadWriteSubTree);
dtmlKey.SetValue(null, clas);
dtmlKey.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0
{
RegistryKey kClas = Registry.ClassesRoot.CreateSubKey(clas, RegistryKeyPermissionCheck.ReadWriteSubTree);
kClas.SetValue(null, desc);
kClas.SetValue("AlwaysShowExt", "1");
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\DefaultIcon
{
RegistryKey kIcon = kClas.CreateSubKey("DefaultIcon");
kIcon.SetValue(null, Path.Combine(_targetPath, @"DTMetal.exe") + ",0");
kIcon.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell
{
RegistryKey kShel = kClas.CreateSubKey("shell");
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell\Open
{
RegistryKey kOpen = kShel.CreateSubKey("Open");
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell\Open\Command
{
RegistryKey kComm = kOpen.CreateSubKey("Command");
kComm.SetValue(null, "\"" + Path.Combine(_vs9Path, "devenv.exe") + "\" /dde \"%1\"");
kComm.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell\Open\ddeexec
{
RegistryKey kDdex = kOpen.CreateSubKey("ddeexec");
kDdex.SetValue(null, "Open(\"%1\")");
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell\Open\ddeexec\Application
{
RegistryKey kAppn = kDdex.CreateSubKey("Application");
kAppn.SetValue(null, "VisualStudio.9.0");
kAppn.Close();
}
#endregion
#region HKEY_CLASSES_ROOT\LINQtoumbraco.DTML.1.0\shell\Open\ddeexec\Topic
{
RegistryKey kTopc = kDdex.CreateSubKey("Topic");
kTopc.SetValue(null, "system");
kTopc.Close();
}
#endregion
kDdex.Close();
}
#endregion
kOpen.Close();
}
#endregion
kShel.Close();
}
#endregion
kClas.Close();
}
#endregion
}
private void InstallVsTemplates()
{
if (!string.IsNullOrEmpty(_vs9Path))
{
string csSrc = Path.Combine(_targetPath, @"Item packages\LINQtoumbracoCS.zip");
string vbSrc = Path.Combine(_targetPath, @"Item packages\LINQtoumbracoVB.zip");
string csTgt = Path.Combine(_vs9Path, @"ItemTemplates\CSharp\1033\LINQtoumbracoCS.zip");
string vbTgt = Path.Combine(_vs9Path, @"ItemTemplates\VisualBasic\1033\LINQtoumbracoVB.zip");
if (!File.Exists(csTgt))
File.Copy(csSrc, csTgt);
if (!File.Exists(vbTgt))
File.Copy(vbSrc, vbTgt);
}
if (!string.IsNullOrEmpty(_vs10Path))
{
string csSrc = Path.Combine(_targetPath, @"Item packages\LINQtoumbracoCS.zip");
string vbSrc = Path.Combine(_targetPath, @"Item packages\LINQtoumbracoVB.zip");
string csTgt = Path.Combine(_vs10Path, @"ItemTemplates\CSharp\1033\LINQtoumbracoCS.zip");
string vbTgt = Path.Combine(_vs10Path, @"ItemTemplates\VisualBasic\1033\LINQtoumbracoVB.zip");
if (!File.Exists(csTgt))
File.Copy(csSrc, csTgt);
if (!File.Exists(vbTgt))
File.Copy(vbSrc, vbTgt);
}
}
#endregion
private string GetDtmlXsdPathVs9()
{
string path = _vs9Path; //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\
path = path.TrimEnd('\\'); //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 9.0\Common7
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 9.0
path = Path.Combine(path, "Xml"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml
path = Path.Combine(path, "Schemas"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml\Schemas
path = Path.Combine(path, "DocTypeML.xsd"); //%ProgramFiles%\Microsoft Visual Studio 9.0\Xml\Schemas\DocTypeML.xsd
return path;
}
private string GetDtmlXsdPathVs10()
{
string path = _vs10Path; //%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\
path = path.TrimEnd('\\'); //%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 10.0\Common7
path = path.Substring(0, path.LastIndexOf('\\')); //%ProgramFiles%\Microsoft Visual Studio 10.0
path = Path.Combine(path, "Xml"); //%ProgramFiles%\Microsoft Visual Studio 10.0\Xml
path = Path.Combine(path, "Schemas"); //%ProgramFiles%\Microsoft Visual Studio 10.0\Xml\Schemas
path = Path.Combine(path, "DocTypeML.xsd"); //%ProgramFiles%\Microsoft Visual Studio 10.0\Xml\Schemas\DocTypeML.xsd
return path;
}
private void ConfigVs()
{
if (!string.IsNullOrEmpty(_vs9Path))
{
string devenv = Path.Combine(_vs9Path, "devenv.exe");
Process p = Process.Start(devenv, "/InstallVSTemplates");
p.WaitForExit();
}
if (!string.IsNullOrEmpty(_vs10Path))
{
string devenv = Path.Combine(_vs10Path, "devenv.exe");
Process p = Process.Start(devenv, "/InstallVSTemplates");
p.WaitForExit();
}
}
}
internal enum InstallMode
{
Install,
Uninstall
}
}
@@ -1,228 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 13</value>
</data>
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
<value>278, 13</value>
</data>
<data name="label1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="label1.Text" xml:space="preserve">
<value>LINQ to umbraco is configuring Visual Studio 2008/ 2010</value>
</data>
<data name="&gt;&gt;label1.Name" xml:space="preserve">
<value>label1</value>
</data>
<data name="&gt;&gt;label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
<value>38, 30</value>
</data>
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
<value>221, 13</value>
</data>
<data name="label2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>This may take a few minutes, please stand by</value>
</data>
<data name="&gt;&gt;label2.Name" xml:space="preserve">
<value>label2</value>
</data>
<data name="&gt;&gt;label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label2.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="progressBar1.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 61</value>
</data>
<data name="progressBar1.Size" type="System.Drawing.Size, System.Drawing">
<value>271, 27</value>
</data>
<data name="progressBar1.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;progressBar1.Name" xml:space="preserve">
<value>progressBar1</value>
</data>
<data name="&gt;&gt;progressBar1.Type" xml:space="preserve">
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;progressBar1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;progressBar1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="installWorker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>299, 100</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterParent</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>LINQ to umbraco Installer Progress</value>
</data>
<data name="&gt;&gt;installWorker.Name" xml:space="preserve">
<value>installWorker</value>
</data>
<data name="&gt;&gt;installWorker.Type" xml:space="preserve">
<value>System.ComponentModel.BackgroundWorker, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>InstallerProgress</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>
@@ -1,31 +0,0 @@
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>LINQ to Umbraco File</Name>
<Description>An empty LINQ to Umbraco file</Description>
<Icon>umbraco.ico</Icon>
<ProjectType>CSharp</ProjectType>
<SortOrder>100</SortOrder>
<DefaultName>DataClasses.dtml</DefaultName>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<TemplateID>Umbraco.Linq.Core.Designer</TemplateID>
<RequiredFrameworkVersion>3.5</RequiredFrameworkVersion>
</TemplateData>
<TemplateContent>
<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
<Reference>
<Assembly>System.Core</Assembly>
</Reference>
<Reference>
<Assembly>Umbraco.Linq.Core</Assembly>
</Reference>
</References>
<ProjectItem TargetFileName="$fileinputname$.dtml" ReplaceParameters="true">dtml.dtml</ProjectItem>
<CustomParameters>
<CustomParameter Name="$Generator$" Value="LINQtoUmbracoGenerator" />
<CustomParameter Name="$Namespace$" Value="$rootnamespace$" />
</CustomParameters>
</TemplateContent>
</VSTemplate>
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<auto-generated>
This code was generated by a tool.
LINQ to Umbraco Version: $version$
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</auto-generated>
-->
<DocumentTypes Serialization="Unidirectional" DataContextName="$fileinputname$" PluralizeCollections="true">
</DocumentTypes>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

@@ -1,31 +0,0 @@
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>LINQ to Umbraco File</Name>
<Description>An empty LINQ to Umbraco file</Description>
<Icon>umbraco.ico</Icon>
<ProjectType>VisualBasic</ProjectType>
<SortOrder>100</SortOrder>
<DefaultName>DataClasses.dtml</DefaultName>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<TemplateID>Umbraco.Linq.Core.Designer</TemplateID>
<RequiredFrameworkVersion>3.5</RequiredFrameworkVersion>
</TemplateData>
<TemplateContent>
<References>
<Reference>
<Assembly>System</Assembly>
</Reference>
<Reference>
<Assembly>System.Core</Assembly>
</Reference>
<Reference>
<Assembly>Umbraco.Linq.Core</Assembly>
</Reference>
</References>
<ProjectItem TargetFileName="$fileinputname$.dtml" ReplaceParameters="true">dtml.dtml</ProjectItem>
<CustomParameters>
<CustomParameter Name="$Generator$" Value="LINQtoUmbracoGenerator" />
<CustomParameter Name="$Namespace$" Value="$rootnamespace$" />
</CustomParameters>
</TemplateContent>
</VSTemplate>

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