Compare commits
164 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fec91ebd75 | |||
| 335c7a4333 | |||
| 648ac811e8 | |||
| f6475b3812 | |||
| ef5cb3dd4c | |||
| 4c76081568 | |||
| 0889e9c033 | |||
| 700aa48a2e | |||
| 43ccf77d7e | |||
| 24d5eefe38 | |||
| 551bcdde2f | |||
| 6f1776fb69 | |||
| 33618f9c2a | |||
| ff39e069db | |||
| a2357bad85 | |||
| 3d02429285 | |||
| cef7401ff8 | |||
| 8fb62265b7 | |||
| 62db053500 | |||
| 0edf5a5e5e | |||
| dc1be04202 | |||
| 5c70ba1eb8 | |||
| 38b1385b66 | |||
| b9849a2ded | |||
| 792450328d | |||
| babf5dabe2 | |||
| 1e3eaf8094 | |||
| fec878227e | |||
| a1abd9dd18 | |||
| 44e01c09d6 | |||
| 6eb738e0d3 | |||
| c50d2e994e | |||
| 058b195a12 | |||
| bff788f048 | |||
| cc96e01b4c | |||
| b57b18c0b1 | |||
| 631eb1fecb | |||
| 564fa2659b | |||
| 2177686e43 | |||
| 36e0b28e70 | |||
| 4ac3a5537e | |||
| 51977637b7 | |||
| ee4477f6ab | |||
| 8baa2db7e7 | |||
| 5d3aeee02f | |||
| 6da0a00e06 | |||
| 7d69bed9c9 | |||
| d182a297b8 | |||
| aa3b8fb808 | |||
| 73e552d105 | |||
| 8f2f81b558 | |||
| 48ff65e597 | |||
| 58874238cc | |||
| 8062df53f8 | |||
| 9df031c6fd | |||
| b17e54976f | |||
| 28479e5257 | |||
| fb90e44dad | |||
| 76fc41f14e | |||
| 60a3d581ab | |||
| c4385335a1 | |||
| 2f90f76348 | |||
| 873ee6a7d1 | |||
| fa54d0a1e8 | |||
| 413fe775d1 | |||
| dd1119bcad | |||
| 9efc931b92 | |||
| 09a785537e | |||
| d851afd8e2 | |||
| e883a22093 | |||
| 7dea3b872f | |||
| 6795f700d5 | |||
| 682104a1f1 | |||
| d29eb77383 | |||
| 07804c149b | |||
| b89257b96c | |||
| 288ae8826c | |||
| d00e9c502a | |||
| f4c976e600 | |||
| 83322a1916 | |||
| 8a9a625964 | |||
| b0dcfec61e | |||
| 13d93de517 | |||
| 0a39ee90c2 | |||
| b8b39ae890 | |||
| feff4a5713 | |||
| d3df402d4a | |||
| 87d96f389d | |||
| fc23004a1b | |||
| 4ec0aaab24 | |||
| cbf9a2e7e0 | |||
| 6bf2b10231 | |||
| 792aff0f1a | |||
| 2bbf3c8af2 | |||
| c239578bd8 | |||
| 0c3f57f537 | |||
| 6b423f5082 | |||
| cbea0ad4e7 | |||
| f18fe684cd | |||
| 4795bb9f43 | |||
| 63d5615698 | |||
| 216ab8c966 | |||
| e5f734acf3 | |||
| 3646f8af4b | |||
| 8d16887ba9 | |||
| fb7f28e00d | |||
| 057ab8cd15 | |||
| 9203fb6fed | |||
| 389454868d | |||
| 25daf42363 | |||
| 7b91c3beab | |||
| a36cda81e3 | |||
| aa5f57432d | |||
| 386f008dd7 | |||
| 34e0b10633 | |||
| 4f5d4c05c1 | |||
| 0e6bb6fb10 | |||
| 93f934b0c1 | |||
| 8c7636558b | |||
| 7d4430855f | |||
| abacb50ee8 | |||
| 0b1c8e39e6 | |||
| b0a46e6a06 | |||
| f27c625439 | |||
| d027fdb3d0 | |||
| 4a40b1046e | |||
| 10c9c14037 | |||
| f29a93422e | |||
| 2c3c6ce391 | |||
| 5105a2c9ef | |||
| 6a92a2f321 | |||
| 4578054f1b | |||
| 1d26a0353b | |||
| b375ddf1f8 | |||
| df2cfec816 | |||
| 89182fc3a9 | |||
| bf73588b6e | |||
| e29fe682b7 | |||
| c9c7eed6d9 | |||
| 9b56b76ad4 | |||
| 94722e82dd | |||
| a03fe234e8 | |||
| 5e83d590f9 | |||
| ddbbf5e799 | |||
| 6e51d690ce | |||
| 6a69202f5e | |||
| 06f6111876 | |||
| 0d91a841ff | |||
| 47e9aa6088 | |||
| 7c7df808b4 | |||
| 34eea0742b | |||
| 78c97971aa | |||
| 4f37fb0c00 | |||
| 60ca487ea3 | |||
| 777a857b6b | |||
| 712571fc38 | |||
| 1c08fc0351 | |||
| e765df10fe | |||
| 84d88161fa | |||
| accb94c415 | |||
| 4c0852c0e8 | |||
| e21057e9c8 | |||
| 03de5ca711 | |||
| 99d0b8c37e |
@@ -0,0 +1,24 @@
|
||||
# use glob syntax
|
||||
syntax: glob
|
||||
|
||||
*.obj
|
||||
*.exe
|
||||
*.pdb
|
||||
*.user
|
||||
*.aps
|
||||
*.pch
|
||||
*.vspscc
|
||||
[Bb]in
|
||||
[Db]ebug*/
|
||||
obj/
|
||||
[Rr]elease*/
|
||||
_ReSharper*/
|
||||
[Tt]est[Rr]esult*
|
||||
[Bb]uild[Ll]og.*
|
||||
*.[Pp]ublish.xml
|
||||
*.suo
|
||||
[sS]ource
|
||||
[sS]andbox
|
||||
umbraco.config
|
||||
*.vs10x
|
||||
App_Data\TEMP\*
|
||||
@@ -0,0 +1,6 @@
|
||||
d0aba247db91d1b70c39c6397b965ca370a67497 Sprint-Juno-A
|
||||
0b8f67be2ca8faf008151d87f232c698de69e735 Release-4.5.0
|
||||
5960c073250926d202861a09472f5f334da6e283 Sprint-Juno-B
|
||||
f15d4ff81a8368e9d42788f7e0ae726f7a70a3b1 Release-4.0.3
|
||||
283065df4d3c27245267709dd2644a479c4f62a5 Release-4.0.4.2
|
||||
ffc34b23e1a03785e4098afa4290d8c03cf10115 Release-4.5.2
|
||||
@@ -0,0 +1,24 @@
|
||||
Hi! Thanks for grabbing the Umbraco sourcecode.
|
||||
|
||||
===========================================
|
||||
NOTE - DEFAULT BRANCH EMPTY - December 2010
|
||||
===========================================
|
||||
|
||||
|
||||
- With the help of CodePlex we have migrated much of our previous changesets (as of Dec 13th 2010) from TFS to Mercurial.
|
||||
|
||||
- However, not everything could be migrated to our new branching workflow. So for each nominal group of 4.x changes, we've created named branches. For upcoming 5.x changesets, we'll adhere to our new workflow which we'll describe on the Wiki for contributors.
|
||||
|
||||
- FOR THE MOMENT, the 'default' branch is empty - pending the addition of the 5.0 changesets
|
||||
|
||||
- To switch to the codebase on which you want to work, 'hg update' to the named branch (e.g. "4.6.0") or tag (e.g. "Release-4.5.2") and browse or work from that point.
|
||||
|
||||
|
||||
Thanks to Matt Hawley at CodePlex for his help in our migration!
|
||||
|
||||
Cheers,
|
||||
The Umbraco Team
|
||||
|
||||
http://umbraco.org
|
||||
http://our.umbraco.org
|
||||
http://umbraco.codeplex.com
|
||||
+8
-216
@@ -1,221 +1,13 @@
|
||||
umbraco v3 is licensed under the open source license CPL - Common Public License (attached below). Please notice that it's only v3 that uses the CPL. The prior versions (v2.0, v2.1 and v2.1.x) uses GPL.
|
||||
Umbraco CMS version 4.5 is licensed under the OSI approved MIT License:
|
||||
|
||||
Important License Guidelines - How we see and adopt the CPL
|
||||
- You're free to choose whatever license (both open source and properary licenses) for any umbraco extensions you make as long as these are distributed alone and not bundled with umbraco.
|
||||
- umbraco may only be distributed as a whole. You may not use part of umbraco to create another stand-alone application, this could be using the UI parts to create another CMS.
|
||||
- You may not re-brand umbraco
|
||||
- If in doubt, please contact us (http://umbraco.org) before using our software for other than the original purpose. We have a commercial non-CPL license for those in doubt, wishes not to use CPL licensed software or wishes to build a new product based on parts of umbraco (see http://umbraco.org).
|
||||
Copyright (c) 2007-2010 umbraco I/S
|
||||
|
||||
Common Public License Version 1.0
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
|
||||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
|
||||
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
1. DEFINITIONS
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
"Contribution" means:
|
||||
|
||||
a) in the case of the initial Contributor, the initial code and
|
||||
documentation distributed under this Agreement, and
|
||||
|
||||
b) in the case of each subsequent Contributor:
|
||||
|
||||
i) changes to the Program, and
|
||||
|
||||
ii) additions to the Program;
|
||||
|
||||
where such changes and/or additions to the Program originate from and are
|
||||
distributed by that particular Contributor. A Contribution 'originates' from a
|
||||
Contributor if it was added to the Program by such Contributor itself or anyone
|
||||
acting on such Contributor's behalf. Contributions do not include additions to
|
||||
the Program which: (i) are separate modules of software distributed in
|
||||
conjunction with the Program under their own license agreement, and (ii) are not
|
||||
derivative works of the Program.
|
||||
|
||||
"Contributor" means any person or entity that distributes the Program.
|
||||
|
||||
"Licensed Patents " mean patent claims licensable by a Contributor which are
|
||||
necessarily infringed by the use or sale of its Contribution alone or when
|
||||
combined with the Program.
|
||||
|
||||
"Program" means the Contributions distributed in accordance with this Agreement.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement,
|
||||
including all Contributors.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
Recipient a non-exclusive, worldwide, royalty-free copyright license to
|
||||
reproduce, prepare derivative works of, publicly display, publicly perform,
|
||||
distribute and sublicense the Contribution of such Contributor, if any, and such
|
||||
derivative works, in source code and object code form.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby grants
|
||||
Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
|
||||
Patents to make, use, sell, offer to sell, import and otherwise transfer the
|
||||
Contribution of such Contributor, if any, in source code and object code form.
|
||||
This patent license shall apply to the combination of the Contribution and the
|
||||
Program if, at the time the Contribution is added by the Contributor, such
|
||||
addition of the Contribution causes such combination to be covered by the
|
||||
Licensed Patents. The patent license shall not apply to any other combinations
|
||||
which include the Contribution. No hardware per se is licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the licenses
|
||||
to its Contributions set forth herein, no assurances are provided by any
|
||||
Contributor that the Program does not infringe the patent or other intellectual
|
||||
property rights of any other entity. Each Contributor disclaims any liability to
|
||||
Recipient for claims brought by any other entity based on infringement of
|
||||
intellectual property rights or otherwise. As a condition to exercising the
|
||||
rights and licenses granted hereunder, each Recipient hereby assumes sole
|
||||
responsibility to secure any other intellectual property rights needed, if any.
|
||||
For example, if a third party patent license is required to allow Recipient to
|
||||
distribute the Program, it is Recipient's responsibility to acquire that license
|
||||
before distributing the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has sufficient
|
||||
copyright rights in its Contribution, if any, to grant the copyright license set
|
||||
forth in this Agreement.
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
A Contributor may choose to distribute the Program in object code form under its
|
||||
own license agreement, provided that:
|
||||
|
||||
a) it complies with the terms and conditions of this Agreement; and
|
||||
|
||||
b) its license agreement:
|
||||
|
||||
i) effectively disclaims on behalf of all Contributors all warranties and
|
||||
conditions, express and implied, including warranties or conditions of title and
|
||||
non-infringement, and implied warranties or conditions of merchantability and
|
||||
fitness for a particular purpose;
|
||||
|
||||
ii) effectively excludes on behalf of all Contributors all liability for
|
||||
damages, including direct, indirect, special, incidental and consequential
|
||||
damages, such as lost profits;
|
||||
|
||||
iii) states that any provisions which differ from this Agreement are offered
|
||||
by that Contributor alone and not by any other party; and
|
||||
|
||||
iv) states that source code for the Program is available from such
|
||||
Contributor, and informs licensees how to obtain it in a reasonable manner on or
|
||||
through a medium customarily used for software exchange.
|
||||
|
||||
When the Program is made available in source code form:
|
||||
|
||||
a) it must be made available under this Agreement; and
|
||||
|
||||
b) a copy of this Agreement must be included with each copy of the Program.
|
||||
|
||||
Contributors may not remove or alter any copyright notices contained within the
|
||||
Program.
|
||||
|
||||
Each Contributor must identify itself as the originator of its Contribution, if
|
||||
any, in a manner that reasonably allows subsequent Recipients to identify the
|
||||
originator of the Contribution.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities with
|
||||
respect to end users, business partners and the like. While this license is
|
||||
intended to facilitate the commercial use of the Program, the Contributor who
|
||||
includes the Program in a commercial product offering should do so in a manner
|
||||
which does not create potential liability for other Contributors. Therefore, if
|
||||
a Contributor includes the Program in a commercial product offering, such
|
||||
Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
|
||||
every other Contributor ("Indemnified Contributor") against any losses, damages
|
||||
and costs (collectively "Losses") arising from claims, lawsuits and other legal
|
||||
actions brought by a third party against the Indemnified Contributor to the
|
||||
extent caused by the acts or omissions of such Commercial Contributor in
|
||||
connection with its distribution of the Program in a commercial product
|
||||
offering. The obligations in this section do not apply to any claims or Losses
|
||||
relating to any actual or alleged intellectual property infringement. In order
|
||||
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
|
||||
Contributor in writing of such claim, and b) allow the Commercial Contributor to
|
||||
control, and cooperate with the Commercial Contributor in, the defense and any
|
||||
related settlement negotiations. The Indemnified Contributor may participate in
|
||||
any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial product
|
||||
offering, Product X. That Contributor is then a Commercial Contributor. If that
|
||||
Commercial Contributor then makes performance claims, or offers warranties
|
||||
related to Product X, those performance claims and warranties are such
|
||||
Commercial Contributor's responsibility alone. Under this section, the
|
||||
Commercial Contributor would have to defend claims against the other
|
||||
Contributors related to those performance claims and warranties, and if a court
|
||||
requires any other Contributor to pay any damages as a result, the Commercial
|
||||
Contributor must pay those damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
|
||||
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
|
||||
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
|
||||
Recipient is solely responsible for determining the appropriateness of using and
|
||||
distributing the Program and assumes all risks associated with its exercise of
|
||||
rights under this Agreement, including but not limited to the risks and costs of
|
||||
program errors, compliance with applicable laws, damage to or loss of data,
|
||||
programs or equipment, and unavailability or interruption of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
|
||||
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
|
||||
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
|
||||
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under applicable
|
||||
law, it shall not affect the validity or enforceability of the remainder of the
|
||||
terms of this Agreement, and without further action by the parties hereto, such
|
||||
provision shall be reformed to the minimum extent necessary to make such
|
||||
provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against a Contributor with respect to
|
||||
a patent applicable to software (including a cross-claim or counterclaim in a
|
||||
lawsuit), then any patent licenses granted by that Contributor to such Recipient
|
||||
under this Agreement shall terminate as of the date such litigation is filed. In
|
||||
addition, if Recipient institutes patent litigation against any entity
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that the Program
|
||||
itself (excluding combinations of the Program with other software or hardware)
|
||||
infringes such Recipient's patent(s), then such Recipient's rights granted under
|
||||
Section 2(b) shall terminate as of the date such litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it fails to
|
||||
comply with any of the material terms or conditions of this Agreement and does
|
||||
not cure such failure in a reasonable period of time after becoming aware of
|
||||
such noncompliance. If all Recipient's rights under this Agreement terminate,
|
||||
Recipient agrees to cease use and distribution of the Program as soon as
|
||||
reasonably practicable. However, Recipient's obligations under this Agreement
|
||||
and any licenses granted by Recipient relating to the Program shall continue and
|
||||
survive.
|
||||
|
||||
Everyone is permitted to copy and distribute copies of this Agreement, but in
|
||||
order to avoid inconsistency the Agreement is copyrighted and may only be
|
||||
modified in the following manner. The Agreement Steward reserves the right to
|
||||
publish new versions (including revisions) of this Agreement from time to time.
|
||||
No one other than the Agreement Steward has the right to modify this Agreement.
|
||||
IBM is the initial Agreement Steward. IBM may assign the responsibility to serve
|
||||
as the Agreement Steward to a suitable separate entity. Each new version of the
|
||||
Agreement will be given a distinguishing version number. The Program (including
|
||||
Contributions) may always be distributed subject to the version of the Agreement
|
||||
under which it was received. In addition, after a new version of the Agreement
|
||||
is published, Contributor may elect to distribute the Program (including its
|
||||
Contributions) under the new version. Except as expressly stated in Sections
|
||||
2(a) and 2(b) above, Recipient receives no rights or licenses to the
|
||||
intellectual property of any Contributor under this Agreement, whether
|
||||
expressly, by implication, estoppel or otherwise. All rights in the Program not
|
||||
expressly granted under this Agreement are reserved.
|
||||
|
||||
This Agreement is governed by the laws of the State of New York and the
|
||||
intellectual property laws of the United States of America. No party to this
|
||||
Agreement will bring a legal action under this Agreement more than one year
|
||||
after the cause of action arose. Each party waives its rights to a jury trial in
|
||||
any resulting litigation.
|
||||
Umbraco versions prior to 4.5 were licensed under a combination of MIT and a propriatary UI license. The license history can be found here:
|
||||
http://umbraco.codeplex.com/license
|
||||
@@ -352,18 +352,42 @@ namespace umbraco.Linq.Core.Node
|
||||
if (string.IsNullOrEmpty(data))
|
||||
{
|
||||
//non-mandatory structs which have no value will be null
|
||||
p.SetValue(node, null, null);
|
||||
try
|
||||
{
|
||||
p.SetValue(node, null, null);
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
throw new FormatException(
|
||||
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//non-mandatory structs which do have a value have to be cast based on the type of their Nullable<T>, found from the first (well, only) GenericArgument
|
||||
p.SetValue(node, Convert.ChangeType(data, p.PropertyType.GetGenericArguments()[0]), null);
|
||||
try
|
||||
{
|
||||
p.SetValue(node, Convert.ChangeType(data, p.PropertyType.GetGenericArguments()[0]), null);
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
throw new FormatException(
|
||||
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: Address how Convert.ChangeType works in globalisation
|
||||
p.SetValue(node, Convert.ChangeType(data, p.PropertyType), null);
|
||||
try
|
||||
{
|
||||
p.SetValue(node, Convert.ChangeType(data, p.PropertyType), null);
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
throw new FormatException(
|
||||
string.Format("Unable to cast '{0}' to the appropriate type ({1}) for node `{2}`. The alias of the property being parsed is {3}. Refer to inner exception for more details", data, p.PropertyType.FullName, node.Id, attr.Alias), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,14 @@
|
||||
<AssemblyName>umbraco.Linq.Core</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<umbracoPresentationPath>..\..\..\..\..\umbraco\presentation\bin</umbracoPresentationPath>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
@@ -146,4 +150,4 @@
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>XCOPY "$(TargetPath)" "$(SolutionDir)\umbraco\presentation\bin" /Y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -0,0 +1,9 @@
|
||||
!! Umbraco - the simple, flexible and friendly ASP.NET CMS
|
||||
For the first time on the Microsoft platform a free user and developer friendly cms that makes it quick and easy to create websites - or a breeze to build complex web applications. umbraco got award-winning integration capabilities and supports your ASP.NET User and Custom Controls out of the box. It's a developers dream and your users will love it too. Used by more than 57.000 active websites including Heinz.com, Peugeot.com, NAIAS.com and Microsofts documentinteropinitiative.org website you can be sure that the technology is proven, stable and scales.
|
||||
[url:More info at http://umbraco.org|http://umbraco.org]
|
||||
|
||||
!! Forums
|
||||
We have a forum running on [url:http://our.umbraco.org]. The discussions area on CodePlex will be for discussions on developing the core, and not on Umbraco-implementations or extensions in general. For those topics, please use [url:http://our.umbraco.org].
|
||||
|
||||
!! Submitting Issues
|
||||
Another way you can contribute to Umbraco is by providing issue reports, for information on how to submit an issue report refer to our [url:online guide|http://our.umbraco.org/wiki/how-tos/submitting-bug-reports].
|
||||
@@ -4,8 +4,8 @@
|
||||
<Deployment enabled="false" />
|
||||
<Execution>
|
||||
<Hosts type="ASP.NET" skipUnhostableTests="false">
|
||||
<AspNet name="ASP.NET" executionType="WebDev" urlToTest="http://localhost:52453">
|
||||
<DevelopmentServer pathToWebSite="C:\Users\hartvig\Documents\Visual Studio 2008\Projects\Core\branches\4.1.0\umbraco\presentation" webApplicationRoot="/" />
|
||||
<AspNet name="ASP.NET" executionType="WebDev" urlToTest="http://localhost:6557">
|
||||
<DevelopmentServer pathToWebSite="C:\Users\hartvig\Documents\Visual Studio 2010\Projects\Core\umbraco\presentation" webApplicationRoot="/" />
|
||||
</AspNet>
|
||||
</Hosts>
|
||||
<TestTypeSpecific>
|
||||
|
||||
@@ -12,10 +12,14 @@
|
||||
<AssemblyName>SQLCE4Umbraco</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace umbraco.editorControls.macrocontainer
|
||||
{
|
||||
|
||||
[ClientDependency(ClientDependencyType.Javascript, "ui/jqueryui.js", "UmbracoClient")]
|
||||
[ClientDependency(ClientDependencyType.Css, "/macroContainer/macroContainer.css", "UmbracoClient")]
|
||||
[ClientDependency(ClientDependencyType.Css, "macroContainer/macroContainer.css", "UmbracoClient")]
|
||||
public class Editor : UpdatePanel, IDataEditor
|
||||
{
|
||||
private IData _data;
|
||||
@@ -257,18 +257,24 @@ namespace umbraco.editorControls.macrocontainer
|
||||
{
|
||||
string number = temp.Substring(temp.LastIndexOf('=') + 1);
|
||||
|
||||
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number));
|
||||
if (current.Visible)
|
||||
value += current.MacroTag;
|
||||
if (this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number) != null)
|
||||
{
|
||||
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + number));
|
||||
if (current.Visible)
|
||||
value += current.MacroTag;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < _maxNumber; i++)
|
||||
{
|
||||
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
|
||||
if (current.Visible)
|
||||
value += current.MacroTag;
|
||||
if (this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()) != null)
|
||||
{
|
||||
MacroEditor current = ((MacroEditor)this.ContentTemplateContainer.FindControl(ID + "macroeditor_" + i.ToString()));
|
||||
if (current.Visible)
|
||||
value += current.MacroTag;
|
||||
}
|
||||
}
|
||||
}
|
||||
_data.Value = value;
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.DataLayer;
|
||||
using umbraco.presentation.nodeFactory;
|
||||
using umbraco.presentation;
|
||||
using ClientDependency.Core.Controls;
|
||||
using ClientDependency.Core;
|
||||
@@ -152,7 +151,7 @@ namespace umbraco.editorControls.tags
|
||||
// we need an empty try/catch as Node.GetCurrent() will throw an exception if we're outside of Umbraco Context
|
||||
try
|
||||
{
|
||||
Node currentNode = Node.GetCurrent();
|
||||
NodeFactory.Node currentNode = NodeFactory.Node.GetCurrent();
|
||||
if (currentNode != null)
|
||||
{
|
||||
pageId = currentNode.Id.ToString();
|
||||
|
||||
@@ -260,6 +260,10 @@ namespace umbraco.editorControls.tinymce
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid",SqlParams);
|
||||
// we need to populate the parameters again due to an issue with SQL CE
|
||||
SqlParams = new IParameter[] {
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams);
|
||||
}
|
||||
|
||||
|
||||
@@ -126,6 +126,10 @@ namespace umbraco.editorControls.ultimatepicker
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
|
||||
// need to unlock the parameters (for SQL CE compat)
|
||||
SqlParams = new IParameter[] {
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
|
||||
|
||||
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
@@ -344,6 +348,7 @@
|
||||
<Compile Include="tinymce\TinyMCELegacyControl.cs" />
|
||||
<Compile Include="tinymce\tinyMCEImageHelper.cs" />
|
||||
<Compile Include="tinymce\tinyMCEPreValueConfigurator.cs" />
|
||||
<Compile Include="userControlWrapper\usercontrolData.cs" />
|
||||
<Compile Include="wysiwyg\editorButton.cs" />
|
||||
<Compile Include="tinyMCE3\TinyMCE.cs" />
|
||||
<Compile Include="tinyMCE3\tinyMCE3dataType.cs" />
|
||||
|
||||
@@ -104,8 +104,9 @@ namespace umbraco.editorControls
|
||||
|
||||
//}
|
||||
|
||||
// Find filename
|
||||
_text = SafeUrl(this.PostedFile.FileName);
|
||||
// Find filename (removed the safe url here as it removes fullpath characters (such as c:\ becomes c:) - the safe url should only be used when saving the
|
||||
// local filename
|
||||
_text = this.PostedFile.FileName;
|
||||
string filename;
|
||||
string _fullFilePath;
|
||||
|
||||
@@ -113,7 +114,8 @@ namespace umbraco.editorControls
|
||||
|
||||
if (umbraco.UmbracoSettings.UploadAllowDirectories)
|
||||
{
|
||||
filename = _text.Substring(_text.LastIndexOf(IOHelper.DirSepChar) + 1, _text.Length - _text.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower();
|
||||
// moved the safeUrl call to here as it's the local file name to be stored
|
||||
filename = SafeUrl(_text.Substring(_text.LastIndexOf(IOHelper.DirSepChar) + 1, _text.Length - _text.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower());
|
||||
// Create a new folder in the /media folder with the name /media/propertyid
|
||||
|
||||
|
||||
|
||||
@@ -84,7 +84,11 @@ namespace umbraco.editorControls.uploadfield
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid",SqlParams);
|
||||
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams);
|
||||
// need to unlock the parameters (for SQL CE compat)
|
||||
SqlParams = new IParameter[] {
|
||||
SqlHelper.CreateParameter("@value",data),
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
|
||||
}
|
||||
|
||||
protected override void Render(HtmlTextWriter writer)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
|
||||
namespace umbraco.editorControls.userControlGrapper
|
||||
{
|
||||
public class usercontrolData : umbraco.cms.businesslogic.datatype.DefaultData
|
||||
{
|
||||
public usercontrolData(umbraco.cms.businesslogic.datatype.BaseDataType DataType) : base(DataType) { }
|
||||
|
||||
|
||||
public override System.Xml.XmlNode ToXMl(System.Xml.XmlDocument data)
|
||||
{
|
||||
|
||||
if (this.Value != null)
|
||||
{
|
||||
|
||||
XmlDocument xd = new XmlDocument();
|
||||
|
||||
try
|
||||
{
|
||||
xd.LoadXml(this.Value.ToString());
|
||||
return data.ImportNode(xd.DocumentElement, true);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return base.ToXMl(data);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return base.ToXMl(data);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,14 +10,25 @@ using System.Web.UI.HtmlControls;
|
||||
|
||||
using umbraco.interfaces;
|
||||
using umbraco.editorControls;
|
||||
using umbraco.cms.businesslogic.datatype;
|
||||
using System.Collections.Generic;
|
||||
using umbraco.IO;
|
||||
|
||||
namespace umbraco.editorControls.userControlGrapper
|
||||
{
|
||||
[ValidationProperty("Value")]
|
||||
public class usercontrolDataEditor : System.Web.UI.WebControls.PlaceHolder, umbraco.interfaces.IDataEditor
|
||||
{
|
||||
private umbraco.interfaces.IData _data;
|
||||
private string _usercontrolPath;
|
||||
|
||||
public object Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return ((IUsercontrolDataEditor)Controls[0]).value;
|
||||
}
|
||||
}
|
||||
|
||||
public usercontrolDataEditor(umbraco.interfaces.IData Data, string UsercontrolPath)
|
||||
{
|
||||
@@ -49,13 +60,52 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
{
|
||||
base.OnInit (e);
|
||||
|
||||
this.Controls.Add(
|
||||
new System.Web.UI.UserControl().LoadControl(_usercontrolPath));
|
||||
Control oControl = new System.Web.UI.UserControl().LoadControl(_usercontrolPath);
|
||||
|
||||
if (HasSettings(oControl.GetType()))
|
||||
{
|
||||
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
|
||||
List<Setting<string, string>> s = ss.GetSettings(((umbraco.cms.businesslogic.datatype.DefaultData)_data).DataTypeDefinitionId);
|
||||
ss.Dispose();
|
||||
|
||||
foreach (Setting<string, string> setting in s)
|
||||
{
|
||||
try
|
||||
{
|
||||
if(!string.IsNullOrEmpty(setting.Key))
|
||||
{
|
||||
oControl.GetType().InvokeMember(setting.Key, System.Reflection.BindingFlags.SetProperty, null, oControl, new object[] { setting.Value });
|
||||
}
|
||||
|
||||
}
|
||||
catch (MissingMethodException ex) { }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.Controls.Add(oControl);
|
||||
|
||||
if (!Page.IsPostBack)
|
||||
((IUsercontrolDataEditor)Controls[0] as IUsercontrolDataEditor).value = _data.Value;
|
||||
|
||||
}
|
||||
|
||||
private bool HasSettings(Type t)
|
||||
{
|
||||
bool hasSettings = false;
|
||||
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
|
||||
{
|
||||
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
|
||||
|
||||
if (o.Length > 0)
|
||||
{
|
||||
hasSettings = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return hasSettings;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
get
|
||||
{
|
||||
if (_baseData == null)
|
||||
_baseData = new umbraco.cms.businesslogic.datatype.DefaultData(this);
|
||||
_baseData = new usercontrolData(this);
|
||||
return _baseData;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ using umbraco.BusinessLogic;
|
||||
|
||||
using umbraco.editorControls;
|
||||
using umbraco.IO;
|
||||
using System.Collections.Generic;
|
||||
using umbraco.cms.businesslogic.datatype;
|
||||
|
||||
namespace umbraco.editorControls.userControlGrapper
|
||||
{
|
||||
@@ -30,7 +32,9 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
|
||||
private DropDownList _dropdownlist;
|
||||
private DropDownList _dropdownlistUserControl;
|
||||
private PlaceHolder _phSettings;
|
||||
|
||||
private Dictionary<string, DataEditorSettingType> dtSettings = new Dictionary<string, DataEditorSettingType>();
|
||||
|
||||
public usercontrolPrevalueEditor(umbraco.cms.businesslogic.datatype.BaseDataType DataType)
|
||||
{
|
||||
@@ -52,15 +56,20 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
_dropdownlistUserControl = new DropDownList();
|
||||
_dropdownlistUserControl.ID = "usercontrol";
|
||||
|
||||
_phSettings = new PlaceHolder();
|
||||
_phSettings.ID = "settings";
|
||||
|
||||
// put the childcontrols in context - ensuring that
|
||||
// the viewstate is persisted etc.
|
||||
Controls.Add(_dropdownlist);
|
||||
Controls.Add(_dropdownlistUserControl);
|
||||
Controls.Add(_phSettings);
|
||||
|
||||
// populate the usercontrol dropdown
|
||||
_dropdownlistUserControl.Items.Add(new ListItem(ui.Text("choose"), ""));
|
||||
populateUserControls( IOHelper.MapPath( SystemDirectories.Usercontrols) );
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void populateUserControls(string path)
|
||||
@@ -104,9 +113,93 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
if (config != "")
|
||||
{
|
||||
_dropdownlistUserControl.SelectedValue = config;
|
||||
|
||||
|
||||
}
|
||||
_dropdownlist.SelectedValue = _datatype.DBType.ToString();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//check for settings
|
||||
if (!string.IsNullOrEmpty(Configuration))
|
||||
LoadSetttings(Configuration);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private Dictionary<string, DataEditorSetting> GetSettings(Type t)
|
||||
{
|
||||
Dictionary<string, DataEditorSetting> settings = new Dictionary<string, DataEditorSetting>();
|
||||
|
||||
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
|
||||
{
|
||||
|
||||
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
|
||||
|
||||
if (o.Length > 0)
|
||||
settings.Add(p.Name, (DataEditorSetting)o[0]);
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
|
||||
private bool HasSettings(Type t)
|
||||
{
|
||||
bool hasSettings = false;
|
||||
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
|
||||
{
|
||||
object[] o = p.GetCustomAttributes(typeof(DataEditorSetting), true);
|
||||
|
||||
if (o.Length > 0)
|
||||
{
|
||||
hasSettings = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return hasSettings;
|
||||
}
|
||||
|
||||
private void LoadSetttings(string fileName)
|
||||
{
|
||||
if (System.IO.File.Exists(IOHelper.MapPath("~/" + fileName)))
|
||||
{
|
||||
|
||||
UserControl oControl = (UserControl)this.Page.LoadControl(@"~/" + fileName);
|
||||
|
||||
Type type = oControl.GetType();
|
||||
|
||||
|
||||
Dictionary<string, DataEditorSetting> settings = GetSettings(type);
|
||||
|
||||
foreach (KeyValuePair<string, DataEditorSetting> kv in settings)
|
||||
{
|
||||
DataEditorSettingType dst = kv.Value.GetDataEditorSettingType();
|
||||
dtSettings.Add(kv.Key, dst);
|
||||
|
||||
DataEditorPropertyPanel panel = new DataEditorPropertyPanel();
|
||||
panel.Text = kv.Value.GetName();
|
||||
panel.Text += "<br/><small>" + kv.Value.description + "</small>";
|
||||
|
||||
|
||||
if (HasSettings(type))
|
||||
{
|
||||
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
|
||||
|
||||
List<Setting<string, string>> s = ss.GetSettings(_datatype.DataTypeDefinitionId);
|
||||
ss.Dispose();
|
||||
|
||||
if (s.Find(set => set.Key == kv.Key).Value != null)
|
||||
dst.Value = s.Find(set => set.Key == kv.Key).Value;
|
||||
|
||||
}
|
||||
|
||||
panel.Controls.Add(dst.RenderControl(kv.Value));
|
||||
|
||||
_phSettings.Controls.Add(panel);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,18 +216,48 @@ namespace umbraco.editorControls.userControlGrapper
|
||||
SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)};
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid", SqlParams);
|
||||
SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')", SqlParams);
|
||||
|
||||
|
||||
//settings
|
||||
|
||||
DataEditorSettingsStorage ss = new DataEditorSettingsStorage();
|
||||
|
||||
//ss.ClearSettings(_datatype.DataTypeDefinitionId);
|
||||
|
||||
int i = 0;
|
||||
foreach (KeyValuePair<string, DataEditorSettingType> k in dtSettings)
|
||||
{
|
||||
ss.InsertSetting(_datatype.DataTypeDefinitionId, k.Key, k.Value.Value, i);
|
||||
i++;
|
||||
|
||||
}
|
||||
|
||||
ss.Dispose();
|
||||
|
||||
if (dtSettings.Count == 0)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Configuration))
|
||||
LoadSetttings(Configuration);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected override void Render(HtmlTextWriter writer)
|
||||
{
|
||||
writer.WriteLine("<table>");
|
||||
writer.WriteLine("<tr><th>Database datatype</th><td>");
|
||||
writer.WriteLine("<div class=\"propertyItem\">");
|
||||
writer.WriteLine("<div class=\"propertyItemheader\">Database datatype</div>");
|
||||
writer.WriteLine("<div class=\"propertyItemContent\">");
|
||||
_dropdownlist.RenderControl(writer);
|
||||
writer.Write("</td></tr>");
|
||||
writer.Write("<tr><th>Usercontrol:</th><td>");
|
||||
writer.Write("</div></div>");
|
||||
|
||||
writer.WriteLine("<div class=\"propertyItem\">");
|
||||
writer.WriteLine("<div class=\"propertyItemheader\">Usercontrol:</div>");
|
||||
writer.WriteLine("<div class=\"propertyItemContent\">");
|
||||
_dropdownlistUserControl.RenderControl(writer);
|
||||
writer.Write("</td></tr>");
|
||||
writer.Write("</table>");
|
||||
writer.Write("</div></div>");
|
||||
|
||||
_phSettings.RenderControl(writer);
|
||||
}
|
||||
|
||||
public string Configuration
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
|
||||
@@ -10,10 +10,14 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>umbraco.uicontrols</RootNamespace>
|
||||
<AssemblyName>controls</AssemblyName>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
|
||||
@@ -12,10 +12,14 @@
|
||||
<AssemblyName>umbraco.webservices</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<createUI>
|
||||
<nodeType alias="nodeTypes">
|
||||
<header>Nodetype</header>
|
||||
<usercontrol>/create/nodeType.ascx</usercontrol>
|
||||
<tasks>
|
||||
<create assembly="umbraco" type="nodetypeTasks" />
|
||||
<delete assembly="umbraco" type="nodetypeTasks" />
|
||||
</tasks>
|
||||
</nodeType>
|
||||
<nodeType alias="initnodeTypes">
|
||||
<header>Nodetype</header>
|
||||
<usercontrol>/create/nodeType.ascx</usercontrol>
|
||||
<tasks>
|
||||
<create assembly="umbraco" type="nodetypeTasks" />
|
||||
</tasks>
|
||||
</nodeType>
|
||||
<nodeType alias="nodeTypes">
|
||||
<header>Nodetype</header>
|
||||
<usercontrol>/create/simple.ascx</usercontrol>
|
||||
<tasks>
|
||||
<delete assembly="umbraco" type="nodetypeTasks" />
|
||||
</tasks>
|
||||
</nodeType>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
look at http://www.urlrewriting.net/.
|
||||
|
||||
Remember to read the manual!
|
||||
http://umbraco.org/redir/urlRewritingManual
|
||||
http://our.umbraco.org/wiki/recommendations/recommended-reading-for-web-developers
|
||||
|
||||
The sample below rewrites a url from
|
||||
"/product/someproductid.aspx" to
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<zipUpload>
|
||||
<fileNodeTypeId>1033</fileNodeTypeId>
|
||||
<imageNodeTypeId>1032</imageNodeTypeId>
|
||||
<folderNodeTypeId>1031</folderNodeTypeId>
|
||||
<imageFileExtensions>jpeg,jpg,gif,bmp,png,tiff,tif</imageFileExtensions>
|
||||
</zipUpload>
|
||||
+17
-7
@@ -18,7 +18,7 @@
|
||||
<property name="build.dir" value="${root.dir}\build" />
|
||||
<property name="dlls.dir" value="${root.dir}\foreign dlls" />
|
||||
|
||||
<property name="build.version" value="4.6 Alpha "/>
|
||||
<property name="build.version" value="4.6 RC 1"/>
|
||||
|
||||
<property name="docs.dir" value="${root.dir}\docs" />
|
||||
|
||||
@@ -71,7 +71,14 @@
|
||||
<arg value="/p:ToolsVersion=4.0" />
|
||||
</exec>
|
||||
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / "${build.dir}""/>
|
||||
</target>
|
||||
|
||||
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
|
||||
<arg value="${root.dir}\umbraco.MacroEngines.Juno\umbraco.MacroEngines.csproj" />
|
||||
<arg value="/v:n" />
|
||||
<arg value="/p:WarningLevel=0" />
|
||||
<arg value="/p:ToolsVersion=4.0" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- Directories and files -->
|
||||
@@ -85,7 +92,6 @@
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
|
||||
<!-- DLR FILES -->
|
||||
<delete>
|
||||
<fileset>
|
||||
@@ -127,8 +133,11 @@
|
||||
<!-- 4.6 Files -->
|
||||
<copy file="${root.dir}\umbraco.MacroEngines.Juno\bin\Debug\umbraco.MacroEngines.dll" tofile="${build.dir}\bin\umbraco.MacroEngines.dll" failonerror="false" overwrite="true"/>
|
||||
<copy file="${root.dir}\umbraco.MacroEngines.Juno\bin\Debug\umbraco.MacroEngines.pdb" tofile="${build.dir}\bin\umbraco.MacroEngines.pdb" failonerror="false" overwrite="true"/>
|
||||
|
||||
|
||||
|
||||
<copy file="${root.dir}\foreign dlls\System.Web.Razor.dll" tofile="${build.dir}\bin\System.Web.Razor.dll" failonerror="false" overwrite="true"/>
|
||||
<copy file="${root.dir}\foreign dlls\RazorEngine.Core.dll" tofile="${build.dir}\bin\RazorEngine.Core.dll" failonerror="false" overwrite="true"/>
|
||||
<copy file="${root.dir}\foreign dlls\RazorEngine.Templates.dll" tofile="${build.dir}\bin\RazorEngine.Templates.dll" failonerror="false" overwrite="true"/>
|
||||
|
||||
<!--standard /data/packages files-->
|
||||
<mkdir dir="${build.dir}\App_Data" />
|
||||
<copy file="${root.dir}\config templates\packages\installedPackages.config" tofile="${build.dir}\app_data\packages\installed\installedPackages.config" failonerror="false" overwrite="true"/>
|
||||
@@ -175,12 +184,13 @@
|
||||
<include name="${build.dir}/**/*.resx" />
|
||||
<include name="${build.dir}/**/*.user" />
|
||||
<include name="${build.dir}/**/*.bak" />
|
||||
|
||||
|
||||
<include name="${build.dir}/**/*.pdb" />
|
||||
|
||||
<include name="${build.dir}/PrecompiledApp.config" />
|
||||
<include name="${build.dir}/web.config.template" />
|
||||
<include name="${build.dir}/*.xslt" />
|
||||
<include name="${build.dir}/web.STANDARD.config" />
|
||||
<include name="${build.dir}/web.*.config" />
|
||||
<include name="${build.dir}/site.py" />
|
||||
</fileset>
|
||||
</delete>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+149
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project name="umbraco" default="test" basedir=".">
|
||||
<description>Build the umbraco 4.6 Application for asp.net 3.5</description>
|
||||
|
||||
<property name="nant.settings.currentframework" value="net-2.0" />
|
||||
|
||||
<!-- filenames and directories, generally won't change -->
|
||||
|
||||
<property name="public.dir" value="C:\Users\per\Documents\Projects\NugetServer\GalleryServer\src\Gallery.Server\App_Data\packages" />
|
||||
|
||||
|
||||
<property name="root.dir" value="${directory::get-current-directory()}" />
|
||||
<property name="source.dir" value="${root.dir}\umbraco\presentation" />
|
||||
<property name="build.dir" value="${root.dir}\build" />
|
||||
<property name="dlls.dir" value="${root.dir}\foreign dlls" />
|
||||
|
||||
<property name="nuget.dir" value="${root.dir}\nuget" />
|
||||
<property name="nuget.app" value="C:\Program Files (x86)\nuget\nuget.exe" />
|
||||
<property name="nuget.spec" value="${public.dir}\..\umbraco.nuspec" />
|
||||
|
||||
<property name="build.version" value="4.6.Beta"/>
|
||||
|
||||
<property name="win.dir" value="C:\windows" />
|
||||
|
||||
<target name="build" depends="init">
|
||||
<!-- set everything to writable-->
|
||||
<attrib normal="true" readonly="false">
|
||||
<fileset basedir="${root.dir}">
|
||||
<include name="**/*" />
|
||||
</fileset>
|
||||
</attrib>
|
||||
|
||||
<!-- Remove those damn DLR dlls that might be left behind by careless devs...-->
|
||||
<!-- They will get added again after build is completed, no worries no dependencies during build-->
|
||||
<delete>
|
||||
<fileset>
|
||||
<include name="${source.dir}\bin\IronPython.dll" />
|
||||
<include name="${source.dir}\bin\IronPython.Modules.dll" />
|
||||
<include name="${source.dir}\bin\IronRuby.dll" />
|
||||
<include name="${source.dir}\bin\IronRuby.Libraries.dll" />
|
||||
<include name="${source.dir}\bin\IronRuby.Libraries.Yaml.dll" />
|
||||
<include name="${source.dir}\bin\Microsoft.Dynamic.dll" />
|
||||
<include name="${source.dir}\bin\Microsoft.ScriptinG.Core.dll" />
|
||||
<include name="${source.dir}\bin\Microsoft.Scripting.Debugging.dll" />
|
||||
<include name="${source.dir}\bin\Microsoft.Scripting.dll" />
|
||||
<include name="${source.dir}\bin\Microsoft.Scripting.ExtensionAttribute.dll" />
|
||||
</fileset>
|
||||
</delete>
|
||||
|
||||
<!-- build for 2.0 -->
|
||||
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
|
||||
<arg value="${root.dir}\umbraco.sln" />
|
||||
<arg value="/v:n" />
|
||||
<arg value="/p:WarningLevel=0" />
|
||||
<arg value="/p:ToolsVersion=3.5" />
|
||||
</exec>
|
||||
<exec program="${win.dir}\microsoft.net\framework\v2.0.50727\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / "${build.dir}\Net20""/>
|
||||
|
||||
|
||||
<!-- build for 4.0 -->
|
||||
<exec program="${win.dir}\microsoft.net\framework\v4.0.30319\msbuild.exe">
|
||||
<arg value="${root.dir}\umbraco.sln" />
|
||||
<arg value="/v:n" />
|
||||
<arg value="/p:WarningLevel=0" />
|
||||
<arg value="/p:ToolsVersion=4.0" />
|
||||
</exec>
|
||||
<exec program="${win.dir}\microsoft.net\framework\v2.0.50727\aspnet_compiler.exe" commandline="-f -u -p umbraco/presentation -v / "${build.dir}\Net40""/>
|
||||
</target>
|
||||
|
||||
|
||||
|
||||
<!-- Directories and files -->
|
||||
<target name="directories" depends="build">
|
||||
<!-- asp.net 2.0 SP1 DLR dlls -->
|
||||
<delete>
|
||||
<fileset>
|
||||
<include name="${build.dir}\**\*" />
|
||||
|
||||
<exclude name="${build.dir}\**\businesslogic.dll" />
|
||||
<exclude name="${build.dir}\**\cms.dll" />
|
||||
<exclude name="${build.dir}\**\controls.dll" />
|
||||
<exclude name="${build.dir}\**\Examine.dll" />
|
||||
|
||||
<exclude name="${build.dir}\**\interfaces.dll" />
|
||||
<exclude name="${build.dir}\**\Microsoft.ApplicationBlocks.Data.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.DataLayer.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.editorcontrols.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.linq.core.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.macrorenderings.dll" />
|
||||
<exclude name="${build.dir}\**\umbraco.providers.dll" />
|
||||
<exclude name="${build.dir}\**\UmbracoExamine.dll" />
|
||||
</fileset>
|
||||
</delete>
|
||||
|
||||
<copy todir="${nuget.dir}\lib\Net20">
|
||||
<fileset basedir="${build.dir}\Net20\bin">
|
||||
<include name="*.dll" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<copy todir="${nuget.dir}\lib\Net40">
|
||||
<fileset basedir="${build.dir}\Net40\bin">
|
||||
<include name="*.dll" />
|
||||
</fileset>
|
||||
</copy>
|
||||
|
||||
<copy file="${nuget.spec}" tofile="${nuget.dir}\umbraco.nuspec" failonerror="false" overwrite="true"/>
|
||||
|
||||
<xmlpoke
|
||||
file="${nuget.dir}\umbraco.nuspec"
|
||||
xpath="/package/metadata/version"
|
||||
value="${build.version}" />
|
||||
|
||||
</target>
|
||||
|
||||
|
||||
<!-- will produce the a clean /build folder and nothing else-->
|
||||
<target name="nuget" depends="directories">
|
||||
<exec program="${nuget.app}" commandline="pack "${nuget.dir}\umbraco.nuspec" /o "${public.dir}""/>
|
||||
</target>
|
||||
|
||||
|
||||
<target name="test">
|
||||
<exec program="${nuget.app}" commandline="pack "${nuget.dir}\umbraco.nuspec" /o "${public.dir}""/>
|
||||
</target>
|
||||
|
||||
<target name="init" description="init tasks for the build">
|
||||
|
||||
<!-- Clean the plugins dir any leftovers, only tinyMCE belongs in here -->
|
||||
<delete>
|
||||
<fileset>
|
||||
<include name="${build.dir}\umbraco\plugins\*" />
|
||||
<exclude name="${build.dir}\umbraco\plugins\tinymce3" />
|
||||
</fileset>
|
||||
</delete>
|
||||
|
||||
<delete dir="${build.dir}" />
|
||||
<mkdir dir="${build.dir}" />
|
||||
|
||||
<delete dir="${nuget.dir}" />
|
||||
<mkdir dir="${nuget.dir}" />
|
||||
<mkdir dir="${nuget.dir}\lib\Net20" />
|
||||
<mkdir dir="${nuget.dir}\lib\Net40" />
|
||||
|
||||
</target>
|
||||
|
||||
|
||||
</project>
|
||||
@@ -11,38 +11,41 @@ namespace umbraco.MacroEngines
|
||||
{
|
||||
#region IMacroEngine Members
|
||||
|
||||
public string Name
|
||||
public virtual string Name
|
||||
{
|
||||
get { return "Umbraco DLR Macro Engine"; }
|
||||
}
|
||||
|
||||
public List<string> SupportedExtensions
|
||||
public virtual List<string> SupportedExtensions
|
||||
{
|
||||
get
|
||||
{
|
||||
var exts = new List<string> {"py", "rb"};
|
||||
var exts = new List<string> { "py", "rb" };
|
||||
return exts;
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<string, IMacroGuiRendering> SupportedProperties
|
||||
public virtual Dictionary<string, IMacroGuiRendering> SupportedProperties
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
|
||||
public bool Validate(string code, INode currentPage, out string errorMessage)
|
||||
public virtual bool Validate(string code, INode currentPage, out string errorMessage)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public string Execute(MacroModel macro, INode currentPage)
|
||||
public virtual string Execute(MacroModel macro, INode currentPage)
|
||||
{
|
||||
string fileEnding = macro.ScriptName.Substring(macro.ScriptName.LastIndexOf('.')).Trim('.');
|
||||
|
||||
MacroScriptEngine mse = MacroScriptEngine.LoadEngineByFileExtension(fileEnding);
|
||||
|
||||
var vars = new SortedDictionary<string, object> {{"currentPage", currentPage}};
|
||||
var vars = new SortedDictionary<string, object>
|
||||
{
|
||||
{"currentPage", new DynamicNode(currentPage)}
|
||||
};
|
||||
foreach (MacroPropertyModel prop in macro.Properties)
|
||||
{
|
||||
vars.Add(prop.Key, prop.Value);
|
||||
|
||||
@@ -2,29 +2,27 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Dynamic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using umbraco.interfaces;
|
||||
using umbraco.presentation.nodeFactory;
|
||||
|
||||
namespace umbraco.MacroEngines
|
||||
{
|
||||
public class DynamicNode : DynamicObject
|
||||
{
|
||||
private INode n;
|
||||
private readonly INode n;
|
||||
public DynamicNode(INode n)
|
||||
{
|
||||
this.n = n;
|
||||
if (n != null)
|
||||
this.n = n;
|
||||
else
|
||||
throw new ArgumentNullException("n", "A node must be provided to make a dynamic instance");
|
||||
}
|
||||
|
||||
public List<DynamicNode> GetChildrenAsList
|
||||
public IEnumerable<DynamicNode> GetChildrenAsList
|
||||
{
|
||||
get
|
||||
{
|
||||
List<DynamicNode> nodes = new List<DynamicNode>();
|
||||
foreach(Node nn in n.ChildrenAsList)
|
||||
nodes.Add(new DynamicNode(nn));
|
||||
|
||||
return nodes;
|
||||
return from nn in n.ChildrenAsList
|
||||
select new DynamicNode(nn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,10 +35,6 @@ namespace umbraco.MacroEngines
|
||||
{
|
||||
result = GetChildrenAsList;
|
||||
return true;
|
||||
} else if (name == "Parent")
|
||||
{
|
||||
result = new DynamicNode(n.Parent);
|
||||
return true;
|
||||
}
|
||||
|
||||
var data = n.GetProperty(name);
|
||||
@@ -50,33 +44,208 @@ namespace umbraco.MacroEngines
|
||||
data = n.GetProperty(name.Substring(0, 1).ToLower() + name.Substring((1)));
|
||||
}
|
||||
|
||||
|
||||
if (data != null)
|
||||
{
|
||||
result = data.Value;
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
try
|
||||
{
|
||||
result = n.GetType().InvokeMember(binder.Name,
|
||||
System.Reflection.BindingFlags.GetProperty |
|
||||
System.Reflection.BindingFlags.Instance |
|
||||
System.Reflection.BindingFlags.Public |
|
||||
System.Reflection.BindingFlags.NonPublic,
|
||||
null,
|
||||
n,
|
||||
null);
|
||||
return true;
|
||||
} catch
|
||||
{
|
||||
result = "";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//check if the alias is that of a child type
|
||||
var typeChildren = n.ChildrenAsList
|
||||
.Where(x => MakePluralName(x.NodeTypeAlias) == name || x.NodeTypeAlias == name);
|
||||
if (typeChildren.Any())
|
||||
{
|
||||
result = typeChildren
|
||||
.Select(x => new DynamicNode(x));
|
||||
return true;
|
||||
}
|
||||
|
||||
return base.TryGetMember(binder, out result);
|
||||
try
|
||||
{
|
||||
result = n.GetType().InvokeMember(binder.Name,
|
||||
System.Reflection.BindingFlags.GetProperty |
|
||||
System.Reflection.BindingFlags.Instance |
|
||||
System.Reflection.BindingFlags.Public |
|
||||
System.Reflection.BindingFlags.NonPublic,
|
||||
null,
|
||||
n,
|
||||
null);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
result = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//this is from SqlMetal and just makes it a bit of fun to allow pluralisation
|
||||
private static string MakePluralName(string name)
|
||||
{
|
||||
if ((name.EndsWith("x", StringComparison.OrdinalIgnoreCase) || name.EndsWith("ch", StringComparison.OrdinalIgnoreCase)) || (name.EndsWith("ss", StringComparison.OrdinalIgnoreCase) || name.EndsWith("sh", StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
name = name + "es";
|
||||
return name;
|
||||
}
|
||||
if ((name.EndsWith("y", StringComparison.OrdinalIgnoreCase) && (name.Length > 1)) && !IsVowel(name[name.Length - 2]))
|
||||
{
|
||||
name = name.Remove(name.Length - 1, 1);
|
||||
name = name + "ies";
|
||||
return name;
|
||||
}
|
||||
if (!name.EndsWith("s", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
name = name + "s";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
private static bool IsVowel(char c)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case 'O':
|
||||
case 'U':
|
||||
case 'Y':
|
||||
case 'A':
|
||||
case 'E':
|
||||
case 'I':
|
||||
case 'o':
|
||||
case 'u':
|
||||
case 'y':
|
||||
case 'a':
|
||||
case 'e':
|
||||
case 'i':
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public DynamicNode AncestorOrSelf(Func<DynamicNode, bool> func)
|
||||
{
|
||||
var node = this;
|
||||
while (node != null)
|
||||
{
|
||||
if (func(node)) return node;
|
||||
node = node.Parent;
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
public DynamicNode Parent
|
||||
{
|
||||
get { return new DynamicNode(n.Parent); }
|
||||
}
|
||||
|
||||
public int Id
|
||||
{
|
||||
get { return n.Id; }
|
||||
}
|
||||
|
||||
public int template
|
||||
{
|
||||
get { return n.template; }
|
||||
}
|
||||
|
||||
public int SortOrder
|
||||
{
|
||||
get { return n.SortOrder; }
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return n.Name; }
|
||||
}
|
||||
|
||||
public string Url
|
||||
{
|
||||
get { return n.Url; }
|
||||
}
|
||||
|
||||
public string UrlName
|
||||
{
|
||||
get { return n.UrlName; }
|
||||
}
|
||||
|
||||
public string NodeTypeAlias
|
||||
{
|
||||
get { return n.NodeTypeAlias; }
|
||||
}
|
||||
|
||||
public string WriterName
|
||||
{
|
||||
get { return n.WriterName; }
|
||||
}
|
||||
|
||||
public string CreatorName
|
||||
{
|
||||
get { return n.CreatorName; }
|
||||
}
|
||||
|
||||
public int WriterID
|
||||
{
|
||||
get { return n.WriterID; }
|
||||
}
|
||||
|
||||
public int CreatorID
|
||||
{
|
||||
get { return n.CreatorID; }
|
||||
}
|
||||
|
||||
public string Path
|
||||
{
|
||||
get { return n.Path; }
|
||||
}
|
||||
|
||||
public DateTime CreateDate
|
||||
{
|
||||
get { return n.CreateDate; }
|
||||
}
|
||||
|
||||
public DateTime UpdateDate
|
||||
{
|
||||
get { return n.UpdateDate; }
|
||||
}
|
||||
|
||||
public Guid Version
|
||||
{
|
||||
get { return n.Version; }
|
||||
}
|
||||
|
||||
public string NiceUrl
|
||||
{
|
||||
get { return n.NiceUrl; }
|
||||
}
|
||||
|
||||
public int Level
|
||||
{
|
||||
get { return n.Level; }
|
||||
}
|
||||
|
||||
public List<IProperty> PropertiesAsList
|
||||
{
|
||||
get { return n.PropertiesAsList; }
|
||||
}
|
||||
|
||||
public List<INode> ChildrenAsList
|
||||
{
|
||||
get { return n.ChildrenAsList; }
|
||||
}
|
||||
|
||||
public IProperty GetProperty(string alias)
|
||||
{
|
||||
return n.GetProperty(alias);
|
||||
}
|
||||
|
||||
public System.Data.DataTable ChildrenAsTable()
|
||||
{
|
||||
return n.ChildrenAsTable();
|
||||
}
|
||||
|
||||
public System.Data.DataTable ChildrenAsTable(string nodeTypeAliasFilter)
|
||||
{
|
||||
return n.ChildrenAsTable(nodeTypeAliasFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
using System.CodeDom;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
namespace umbraco.MacroEngines.Razor {
|
||||
namespace umbraco.MacroEngines.Razor
|
||||
{
|
||||
using System;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.IO;
|
||||
@@ -13,9 +17,11 @@ namespace umbraco.MacroEngines.Razor {
|
||||
/// <summary>
|
||||
/// Compiles razor templates.
|
||||
/// </summary>
|
||||
internal class RazorCompiler {
|
||||
internal class RazorCompiler
|
||||
{
|
||||
#region Fields
|
||||
private readonly IRazorProvider provider;
|
||||
private Type templateBaseType;
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
@@ -23,7 +29,8 @@ namespace umbraco.MacroEngines.Razor {
|
||||
/// Initialises a new instance of <see cref="RazorCompiler"/>.
|
||||
/// </summary>
|
||||
/// <param name="provider">The provider used to compile templates.</param>
|
||||
public RazorCompiler(IRazorProvider provider) {
|
||||
public RazorCompiler(IRazorProvider provider)
|
||||
{
|
||||
if (provider == null)
|
||||
throw new ArgumentNullException("provider");
|
||||
|
||||
@@ -38,7 +45,8 @@ namespace umbraco.MacroEngines.Razor {
|
||||
/// <param name="className">The class name of the dynamic type.</param>
|
||||
/// <param name="template">The template to compile.</param>
|
||||
/// <param name="modelType">[Optional] The mode type.</param>
|
||||
private CompilerResults Compile(string className, string template, Type modelType = null) {
|
||||
private CompilerResults Compile(string className, string template, Type modelType = null)
|
||||
{
|
||||
var languageService = provider.CreateLanguageService();
|
||||
var codeDom = provider.CreateCodeDomProvider();
|
||||
var host = new RazorEngineHost(languageService);
|
||||
@@ -56,9 +64,11 @@ namespace umbraco.MacroEngines.Razor {
|
||||
? typeof(TemplateBaseDynamic)
|
||||
: typeof(TemplateBase<>).MakeGenericType(modelType));
|
||||
|
||||
templateBaseType = baseType;
|
||||
generator.GeneratedClass.BaseTypes.Add(baseType);
|
||||
|
||||
using (var reader = new StreamReader(new MemoryStream(Encoding.ASCII.GetBytes(template)))) {
|
||||
using (var reader = new StreamReader(new MemoryStream(Encoding.ASCII.GetBytes(template))))
|
||||
{
|
||||
parser.Parse(reader, generator);
|
||||
}
|
||||
|
||||
@@ -66,25 +76,20 @@ namespace umbraco.MacroEngines.Razor {
|
||||
generator.GeneratedExecuteMethod.Statements.Insert(0, new CodeExpressionStatement(statement));
|
||||
|
||||
var builder = new StringBuilder();
|
||||
using (var writer = new StringWriter(builder)) {
|
||||
using (var writer = new StringWriter(builder))
|
||||
{
|
||||
codeDom.GenerateCodeFromCompileUnit(generator.GeneratedCode, writer, new CodeGeneratorOptions());
|
||||
}
|
||||
|
||||
var @params = new CompilerParameters();
|
||||
// @params.ReferencedAssemblies.Add("System");
|
||||
// @params.ReferencedAssemblies.Add("System.Web");
|
||||
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
if (!assembly.IsDynamic)
|
||||
@params.ReferencedAssemblies.Add(assembly.Location);
|
||||
}
|
||||
var parameters = new CompilerParameters();
|
||||
AddReferences(parameters);
|
||||
|
||||
@params.GenerateInMemory = true;
|
||||
@params.IncludeDebugInformation = false;
|
||||
@params.GenerateExecutable = false;
|
||||
@params.CompilerOptions = "/target:library /optimize";
|
||||
parameters.GenerateInMemory = true;
|
||||
parameters.IncludeDebugInformation = false;
|
||||
parameters.GenerateExecutable = false;
|
||||
parameters.CompilerOptions = "/target:library /optimize";
|
||||
|
||||
var result = codeDom.CompileAssemblyFromSource(@params, new[] { builder.ToString() });
|
||||
var result = codeDom.CompileAssemblyFromSource(parameters, new[] { builder.ToString() });
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -94,7 +99,8 @@ namespace umbraco.MacroEngines.Razor {
|
||||
/// <param name="template">The template to compile.</param>
|
||||
/// <param name="modelType">[Optional] The model type.</param>
|
||||
/// <returns>An instance of <see cref="ITemplate"/>.</returns>
|
||||
public ITemplate CreateTemplate(string template, Type modelType = null) {
|
||||
public ITemplate CreateTemplate(string template, Type modelType = null)
|
||||
{
|
||||
string className = Regex.Replace(Guid.NewGuid().ToString("N"), @"[^A-Za-z]*", "");
|
||||
|
||||
var result = Compile(className, template, modelType);
|
||||
@@ -107,5 +113,92 @@ namespace umbraco.MacroEngines.Razor {
|
||||
return instance;
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Adds any required references to the compiler parameters.
|
||||
/// </summary>
|
||||
/// <param name="parameters">The compiler parameters.</param>
|
||||
private void AddReferences(CompilerParameters parameters)
|
||||
{
|
||||
var list = new List<string>();
|
||||
IEnumerable<string> coreRefs = GetCoreReferences();
|
||||
foreach (string location in coreRefs)
|
||||
{
|
||||
list.Add(location.ToLowerInvariant());
|
||||
}
|
||||
|
||||
IEnumerable<string> baseRefs = GetBaseTypeReferencedAssemblies();
|
||||
foreach (string location in baseRefs)
|
||||
{
|
||||
list.Add(location.ToLowerInvariant());
|
||||
}
|
||||
|
||||
foreach (string location in list)
|
||||
System.Diagnostics.Debug.Print(location);
|
||||
IEnumerable<string> distinctList = list.Distinct(new AssemblyVersionComparer());
|
||||
parameters.ReferencedAssemblies.AddRange(distinctList.ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the locations of assemblies referenced by a custom base template type.
|
||||
/// </summary>
|
||||
/// <returns>An enumerable of reference assembly locations.</returns>
|
||||
private IEnumerable<string> GetBaseTypeReferencedAssemblies()
|
||||
{
|
||||
if (templateBaseType == null)
|
||||
return new string[0];
|
||||
|
||||
return templateBaseType.Assembly
|
||||
.GetReferencedAssemblies()
|
||||
.Select(n => Assembly.ReflectionOnlyLoad(n.FullName).Location);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets the locations of all core referenced assemblies.
|
||||
/// </summary>
|
||||
/// <returns>An enumerable of reference assembly locations.</returns>
|
||||
private static IEnumerable<string> GetCoreReferences()
|
||||
{
|
||||
var refs = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.IsDynamic).Select(a => a.Location);
|
||||
|
||||
return refs.Concat(typeof(RazorCompiler)
|
||||
.Assembly
|
||||
.GetReferencedAssemblies().Select(n => Assembly.ReflectionOnlyLoad(n.FullName).Location));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class AssemblyVersionComparer : IEqualityComparer<string>
|
||||
{
|
||||
bool IEqualityComparer<string>.Equals(string x, string y)
|
||||
{
|
||||
x = findAssemblyName(x);
|
||||
y = findAssemblyName(y);
|
||||
return (x.Contains(y) || y.Contains(x));
|
||||
}
|
||||
|
||||
int IEqualityComparer<string>.GetHashCode(string obj)
|
||||
{
|
||||
// 1) find the assembly name without version number and path (xxx.yyy.dll)
|
||||
obj = findAssemblyName(obj);
|
||||
// 2) send det som hashcode
|
||||
if (Object.ReferenceEquals(obj, null))
|
||||
return 0;
|
||||
return obj.GetHashCode();
|
||||
}
|
||||
|
||||
private string findAssemblyName(string fullAssemblyPath)
|
||||
{
|
||||
|
||||
Regex r = new Regex(@"\\([^\\]*.dll)");
|
||||
Match m = r.Match(fullAssemblyPath);
|
||||
if (m.Groups.Count > 0)
|
||||
{
|
||||
fullAssemblyPath = m.Groups[0].Value;
|
||||
}
|
||||
return fullAssemblyPath;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using RazorEngine;
|
||||
using RazorEngine.Templating;
|
||||
using umbraco.cms.businesslogic.macro;
|
||||
using umbraco.interfaces;
|
||||
using umbraco.IO;
|
||||
using RE = RazorEngine;
|
||||
|
||||
namespace umbraco.MacroEngines
|
||||
{
|
||||
@@ -14,7 +17,7 @@ namespace umbraco.MacroEngines
|
||||
{
|
||||
public string Name
|
||||
{
|
||||
get { return "Razor Enggine"; }
|
||||
get { return "Razor Engine"; }
|
||||
}
|
||||
|
||||
public List<string> SupportedExtensions
|
||||
@@ -42,25 +45,46 @@ namespace umbraco.MacroEngines
|
||||
string template = !String.IsNullOrEmpty(macro.ScriptCode) ? macro.ScriptCode : loadScript(IOHelper.MapPath(SystemDirectories.Python + "/" + macro.ScriptName));
|
||||
try
|
||||
{
|
||||
//TODO: Add caching support
|
||||
// if (CacheTemplate)
|
||||
// result = Razor.Parse(template, new DynamicNode(currentPage), this.ID + "_razorTemplate");
|
||||
// else
|
||||
// {
|
||||
result = Razor.Razor.Parse(template, new DynamicNode(currentPage));
|
||||
Razor.SetTemplateBaseType(typeof(UmbracoTemplateBase<>));
|
||||
result = Razor.Parse(template, new DynamicNode(currentPage), macro.CacheIdenitifier);
|
||||
|
||||
}
|
||||
catch (TemplateException ee)
|
||||
{
|
||||
string error = ee.ToString();
|
||||
if (ee.Errors.Count > 0)
|
||||
{
|
||||
error += "</p><strong>Detailed errors:</strong><br/><ul style=\"list-style-type: disc; margin: 1em 0;\">";
|
||||
foreach (var err in ee.Errors)
|
||||
error += string.Format("<li style=\"display: list-item;\">{0}</li>", err.ToString());
|
||||
error += "</ul><p>";
|
||||
}
|
||||
result = string.Format(
|
||||
"<div class=\"error\"><h3>Razor Macro Engine</h3><p><em>An TemplateException occured while parsing the following code:</em></p><p>{0}</p><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Your Razor template:</h4><code>{1}</code><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Cache key:</h4><p>{2}</p></div>",
|
||||
error,
|
||||
HttpContext.Current.Server.HtmlEncode(template),
|
||||
friendlyCacheKey(macro.CacheIdenitifier));
|
||||
}
|
||||
// }
|
||||
catch (Exception ee)
|
||||
{
|
||||
result = string.Format(
|
||||
"<div class=\"error\"><h1>Razor Macro Engine</h1><em>An error occured while rendering the following code:</em><br /><p>{0}</p><code>{1}</code></div>",
|
||||
"<div class=\"error\"><h3>Razor Macro Engine</h3><em>An unknown error occured while rendering the following code:</em><br /><p>{0}</p><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Your Razor template:</h4><code>{1}</code><h4 style=\"font-weight: bold; margin: 0.5em 0 0.3em 0;\">Cache key:</h4><p>{2}</p></div>",
|
||||
ee.ToString(),
|
||||
HttpContext.Current.Server.HtmlEncode(template));
|
||||
HttpContext.Current.Server.HtmlEncode(template),
|
||||
friendlyCacheKey(macro.CacheIdenitifier));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private string friendlyCacheKey(string cacheKey)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(cacheKey))
|
||||
return cacheKey;
|
||||
else
|
||||
return "<em>No caching defined</em>";
|
||||
}
|
||||
|
||||
private string loadScript(string scriptName)
|
||||
{
|
||||
if (File.Exists(scriptName))
|
||||
@@ -70,5 +94,28 @@ namespace umbraco.MacroEngines
|
||||
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public abstract class UmbracoTemplateBase<T> : TemplateBase<T>
|
||||
{
|
||||
private object m_model;
|
||||
|
||||
public override T Model
|
||||
{
|
||||
get
|
||||
{
|
||||
return (T)m_model;
|
||||
}
|
||||
set
|
||||
{
|
||||
m_model = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string ToUpperCase(string name)
|
||||
{
|
||||
return name.ToUpper();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,10 +12,14 @@
|
||||
<AssemblyName>umbraco.MacroEngines</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -38,17 +42,22 @@
|
||||
<Reference Include="Microsoft.Scripting">
|
||||
<HintPath>..\foreign dlls\DLR 4.0\Microsoft.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RazorEngine.Core">
|
||||
<HintPath>..\foreign dlls\RazorEngine.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="RazorEngine.Templates">
|
||||
<HintPath>..\foreign dlls\RazorEngine.Templates.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\foreign dlls\System.Web.Razor.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -56,14 +65,6 @@
|
||||
<Compile Include="DynamicNode.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="RazorEngine.cs" />
|
||||
<Compile Include="Razor\CSharpRazorProvider.cs" />
|
||||
<Compile Include="Razor\IRazorProvider.cs" />
|
||||
<Compile Include="Razor\ITemplate.cs" />
|
||||
<Compile Include="Razor\Razor.cs" />
|
||||
<Compile Include="Razor\RazorCompiler.cs" />
|
||||
<Compile Include="Razor\TemplateBase.cs" />
|
||||
<Compile Include="Razor\TemplateException.cs" />
|
||||
<Compile Include="Razor\VBRazorProvider.cs" />
|
||||
<Compile Include="Scripting\MacroScript.cs" />
|
||||
<Compile Include="Scripting\ScriptEngine.cs" />
|
||||
</ItemGroup>
|
||||
@@ -87,8 +88,7 @@
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>xcopy "$(TargetPath)" "$(SolutionDir)\umbraco\presentation\bin" /Y
|
||||
xcopy "$(SolutionDir)foreign dlls\System.Web.Razor.dll" "$(SolutionDir)\umbraco\presentation\bin" /Y</PostBuildEvent>
|
||||
<PostBuildEvent>xcopy "$(ProjectDir)bin\debug\umbraco.MacroEngines.*" "$(ProjectDir)..\presentation\bin\" /Y</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@@ -12,10 +12,14 @@
|
||||
<AssemblyName>umbraco.MacroEngines.Legacy</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using System.Diagnostics;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using umbraco.BusinessLogic;
|
||||
@@ -274,6 +275,7 @@ namespace umbraco.Test
|
||||
var versions = doc.GetVersions().ToList();
|
||||
Assert.AreEqual(versionCount + 1, versions.Count());
|
||||
|
||||
string propertyTypeAlias = prop.PropertyType.Alias;
|
||||
prop.Value = "updated!"; //udpate the prop
|
||||
Assert.AreNotEqual(originalPropVal, prop.Value);
|
||||
|
||||
@@ -281,8 +283,7 @@ namespace umbraco.Test
|
||||
doc.RollBack(versions.OrderBy(x => x.Date).Last().Version, m_User);
|
||||
|
||||
var rolledBack = new Document(id);
|
||||
|
||||
Assert.AreEqual(originalPropVal, rolledBack.GenericProperties.ToList().Where(x => x.PropertyType.Alias == "headerText").First().Value);
|
||||
Assert.AreEqual(originalPropVal, rolledBack.GenericProperties.ToList().Where(x => x.PropertyType.Alias == propertyTypeAlias).First().Value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using System.Diagnostics;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -109,7 +109,8 @@ namespace umbraco.Test
|
||||
Assert.AreEqual<int>(t.Id, doc.Template);
|
||||
|
||||
//now delete, this should throw the exception
|
||||
var hasException = false;
|
||||
// changed by NH as the API will cleanup instead!
|
||||
/* var hasException = false;
|
||||
try
|
||||
{
|
||||
t.delete();
|
||||
@@ -119,7 +120,7 @@ namespace umbraco.Test
|
||||
hasException = true;
|
||||
}
|
||||
Assert.IsTrue(hasException);
|
||||
|
||||
*/
|
||||
//ok, now that we've proved it can't be removed, we'll remove the data in order
|
||||
doc.delete(true);
|
||||
Assert.IsFalse(Document.IsNode(doc.Id));
|
||||
|
||||
@@ -13,10 +13,14 @@
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
|
||||
+1
-55
@@ -45,6 +45,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{05329D
|
||||
config templates\config\umbracoSettings.config = config templates\config\umbracoSettings.config
|
||||
config templates\config\UrlRewriting.config = config templates\config\UrlRewriting.config
|
||||
config templates\config\xsltExtensions.config = config templates\config\xsltExtensions.config
|
||||
config templates\config\zipUpload.config = config templates\config\zipUpload.config
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{58072405-85D0-45CA-8F5C-EA8928C32A6A}"
|
||||
@@ -110,60 +111,6 @@ EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "umbraco.MacroEngines", "umbraco.MacroEngines.Juno\umbraco.MacroEngines.csproj", "{89C09045-1064-466B-B94A-DB3AFE2A5853}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(TeamFoundationVersionControl) = preSolution
|
||||
SccNumberOfProjects = 17
|
||||
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
|
||||
SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs01
|
||||
SccLocalPath0 = .
|
||||
SccProjectUniqueName1 = umbraco\\presentation\\umbraco.presentation.csproj
|
||||
SccProjectName1 = umbraco/presentation
|
||||
SccLocalPath1 = umbraco\\presentation
|
||||
SccProjectUniqueName2 = umbraco\\businesslogic\\umbraco.businesslogic.csproj
|
||||
SccProjectName2 = umbraco/businesslogic
|
||||
SccLocalPath2 = umbraco\\businesslogic
|
||||
SccProjectUniqueName3 = umbraco\\cms\\umbraco.cms.csproj
|
||||
SccProjectName3 = umbraco/cms
|
||||
SccLocalPath3 = umbraco\\cms
|
||||
SccProjectUniqueName4 = umbraco\\interfaces\\umbraco.interfaces.csproj
|
||||
SccProjectName4 = umbraco/interfaces
|
||||
SccLocalPath4 = umbraco\\interfaces
|
||||
SccProjectUniqueName5 = components\\editorControls\\umbraco.editorControls.csproj
|
||||
SccProjectName5 = components/editorControls
|
||||
SccLocalPath5 = components\\editorControls
|
||||
SccProjectUniqueName6 = components\\macroRenderings\\umbraco.macroRenderings.csproj
|
||||
SccProjectName6 = components/macroRenderings
|
||||
SccLocalPath6 = components\\macroRenderings
|
||||
SccProjectUniqueName7 = umbraco\\providers\\umbraco.providers.csproj
|
||||
SccProjectName7 = umbraco/providers
|
||||
SccLocalPath7 = umbraco\\providers
|
||||
SccProjectUniqueName8 = umbraco\\datalayer\\umbraco.datalayer.csproj
|
||||
SccProjectName8 = umbraco/datalayer
|
||||
SccLocalPath8 = umbraco\\datalayer
|
||||
SccProjectUniqueName9 = components\\umbraco.controls\\umbraco.controls.csproj
|
||||
SccProjectName9 = components/umbraco.controls
|
||||
SccLocalPath9 = components\\umbraco.controls
|
||||
SccProjectUniqueName10 = components\\umbraco.webservices\\umbraco.webservices.csproj
|
||||
SccProjectName10 = components/umbraco.webservices
|
||||
SccLocalPath10 = components\\umbraco.webservices
|
||||
SccProjectUniqueName11 = LinqToUmbraco\\src\\umbraco.Linq\\Core\\umbraco.Linq.Core.csproj
|
||||
SccProjectName11 = LinqToUmbraco/src/umbraco.Linq/Core
|
||||
SccLocalPath11 = LinqToUmbraco\\src\\umbraco.Linq\\Core
|
||||
SccProjectUniqueName12 = umbraco\\umbraco.Legacy\\umbraco.Legacy.csproj
|
||||
SccProjectName12 = umbraco/umbraco.Legacy
|
||||
SccLocalPath12 = umbraco\\umbraco.Legacy
|
||||
SccProjectUniqueName13 = umbraco.Test\\umbraco.Test.csproj
|
||||
SccProjectName13 = umbraco.Test
|
||||
SccLocalPath13 = umbraco.Test
|
||||
SccProjectUniqueName14 = components\\SQLCE4Umbraco\\SqlCE4Umbraco.csproj
|
||||
SccProjectName14 = components/SQLCE4Umbraco
|
||||
SccLocalPath14 = components\\SQLCE4Umbraco
|
||||
SccProjectUniqueName15 = umbraco.MacroEngines\\umbraco.MacroEngines.Legacy.csproj
|
||||
SccProjectName15 = umbraco.MacroEngines
|
||||
SccLocalPath15 = umbraco.MacroEngines
|
||||
SccProjectUniqueName16 = umbraco.MacroEngines.Juno\\umbraco.MacroEngines.csproj
|
||||
SccProjectName16 = umbraco.MacroEngines.Juno
|
||||
SccLocalPath16 = umbraco.MacroEngines.Juno
|
||||
EndGlobalSection
|
||||
GlobalSection(TestCaseManagementSettings) = postSolution
|
||||
CategoryFile = umbraco2.vsmdi
|
||||
EndGlobalSection
|
||||
@@ -229,7 +176,6 @@ Global
|
||||
{6AE67079-2C00-476C-81DE-2800D1AC14BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6AE67079-2C00-476C-81DE-2800D1AC14BC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{89C09045-1064-466B-B94A-DB3AFE2A5853}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace umbraco
|
||||
{
|
||||
#region Private static fields
|
||||
// CURRENT UMBRACO VERSION ID
|
||||
private static string _currentVersion = "4.6.0.Alpha";
|
||||
private static string _currentVersion = "4.6.0";
|
||||
|
||||
private static string _reservedUrlsCache;
|
||||
private static string _reservedPathsCache;
|
||||
|
||||
@@ -15,8 +15,60 @@ namespace umbraco.BusinessLogic.Utils
|
||||
public static class TypeFinder
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Searches all loaded assemblies for classes marked with the attribute passed in.
|
||||
/// </summary>
|
||||
/// <returns>A list of found types</returns>
|
||||
public static List<Type> FindClassesMarkedWithAttribute(Type attribute)
|
||||
{
|
||||
List<Type> types = new List<Type>();
|
||||
|
||||
|
||||
|
||||
|
||||
bool searchGAC = false;
|
||||
|
||||
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
//don't check any types if the assembly is part of the GAC
|
||||
if (!searchGAC && assembly.GlobalAssemblyCache)
|
||||
continue;
|
||||
|
||||
foreach (Type type in assembly.GetTypes())
|
||||
{
|
||||
if (type.GetCustomAttributes(attribute, true).Length > 0)
|
||||
{
|
||||
types.Add(type);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// also add types from app_code
|
||||
try
|
||||
{
|
||||
// only search the App_Code folder if it's not empty
|
||||
DirectoryInfo appCodeFolder = new DirectoryInfo(IOHelper.MapPath(IOHelper.ResolveUrl("~/App_code")));
|
||||
if (appCodeFolder.GetFiles().Length > 0)
|
||||
{
|
||||
foreach (Type type in System.Reflection.Assembly.Load("App_Code").GetTypes())
|
||||
{
|
||||
if (type.GetCustomAttributes(attribute, true).Length > 0)
|
||||
{
|
||||
types.Add(type);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch { } // Empty catch - this just means that an App_Code assembly wasn't generated by the files in folder
|
||||
|
||||
|
||||
|
||||
return types;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches all loaded assemblies for classes of the type passed in.
|
||||
/// </summary>
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
|
||||
@@ -443,6 +443,18 @@ namespace umbraco.cms.businesslogic
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Clears the locally loaded tabs which forces them to be reloaded next time they requested
|
||||
/// </summary>
|
||||
public void ClearVirtualTabs()
|
||||
{
|
||||
foreach (TabI t in getVirtualTabs)
|
||||
Tab.FlushCache(t.Id, t.ContentType);
|
||||
|
||||
m_VirtualTabs = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The list of ContentType Id's that defines which Content (by ContentType) can be created as child
|
||||
/// to the Content of this ContentType
|
||||
@@ -595,8 +607,6 @@ namespace umbraco.cms.businesslogic
|
||||
[MethodImpl(MethodImplOptions.Synchronized)]
|
||||
public int AddVirtualTab(string Caption)
|
||||
{
|
||||
// Remove from cache
|
||||
FlushFromCache(Id);
|
||||
|
||||
// Get tab count
|
||||
int tabCount = SqlHelper.ExecuteScalar<int>("SELECT COUNT(*) FROM cmsTab WHERE contenttypeNodeId = @nodeId",
|
||||
@@ -607,6 +617,10 @@ namespace umbraco.cms.businesslogic
|
||||
SqlHelper.CreateParameter("@nodeId", Id),
|
||||
SqlHelper.CreateParameter("@text", Caption),
|
||||
SqlHelper.CreateParameter("@sortorder", tabCount + 1));
|
||||
|
||||
// Remove from cache
|
||||
FlushFromCache(Id);
|
||||
|
||||
return SqlHelper.ExecuteScalar<int>("SELECT MAX(id) FROM cmsTab");
|
||||
}
|
||||
|
||||
@@ -787,7 +801,6 @@ namespace umbraco.cms.businesslogic
|
||||
ContentType ct = new ContentType(id);
|
||||
Cache.ClearCacheItem(string.Format("UmbracoContentType{0}", id));
|
||||
Cache.ClearCacheItem(ct.GetPropertiesCacheKey());
|
||||
|
||||
ct.ClearVirtualTabs();
|
||||
|
||||
|
||||
@@ -822,16 +835,7 @@ namespace umbraco.cms.businesslogic
|
||||
return "ContentType_PropertyTypes_Content:" + this.Id;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clears the locally loaded tabs which forces them to be reloaded next time they requested
|
||||
/// </summary>
|
||||
private void ClearVirtualTabs()
|
||||
{
|
||||
foreach (TabI t in getVirtualTabs)
|
||||
Tab.FlushCache(t.Id, t.ContentType);
|
||||
|
||||
m_VirtualTabs = null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Checks if we've loaded the virtual tabs into memory and if not gets them from the databse.
|
||||
@@ -858,7 +862,7 @@ namespace umbraco.cms.businesslogic
|
||||
{
|
||||
while (dr.Read())
|
||||
{
|
||||
m_VirtualTabs.Add(new Tab(dr.GetInt("id"), dr.GetString("text"), dr.GetInt("sortOrder"), this, true));
|
||||
m_VirtualTabs.Add(new Tab(dr.GetInt("id"), dr.GetString("text"), dr.GetInt("sortOrder"), this));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -964,20 +968,39 @@ namespace umbraco.cms.businesslogic
|
||||
/// <param name="caption">The caption.</param>
|
||||
/// <param name="sortOrder">The sort order.</param>
|
||||
/// <param name="cType">Type of the c.</param>
|
||||
public Tab(int id, string caption, int sortOrder, ContentType cType, bool loadInheritedProperties)
|
||||
public Tab(int id, string caption, int sortOrder, ContentType cType)
|
||||
{
|
||||
_id = id;
|
||||
_caption = caption;
|
||||
_sortOrder = sortOrder;
|
||||
_contenttype = cType;
|
||||
}
|
||||
|
||||
// NH: the cachekey needs to combine the tab and the content type id, due to master content types enables sharing of tabs between child types
|
||||
string cacheKey = generateCacheKey(id, cType.Id);
|
||||
_propertytypes =
|
||||
Cache.GetCacheItem<PropertyType[]>(cacheKey, propertyTypesCacheSyncLock, TimeSpan.FromMinutes(10),
|
||||
public static Tab GetTab(int id)
|
||||
{
|
||||
Tab tab = null;
|
||||
using (IRecordsReader dr = SqlHelper.ExecuteReader(
|
||||
string.Format(
|
||||
"Select Id, text, contenttypeNodeId, sortOrder from cmsTab where Id = {0} order by sortOrder",
|
||||
id)))
|
||||
{
|
||||
if (dr.Read())
|
||||
{
|
||||
tab = new Tab(id, dr.GetString("text"), dr.GetInt("sortOrder"), new ContentType(dr.GetInt("contenttypeNodeId")));
|
||||
}
|
||||
dr.Close();
|
||||
}
|
||||
|
||||
return tab;
|
||||
}
|
||||
|
||||
private PropertyType[] getPropertyTypes(bool loadInheritedPropertyTypes)
|
||||
{
|
||||
return
|
||||
Cache.GetCacheItem<PropertyType[]>(generateCacheKey(Id, ContentType), propertyTypesCacheSyncLock, TimeSpan.FromMinutes(10),
|
||||
delegate
|
||||
{
|
||||
string contentTypeModifier = loadInheritedProperties ? "" : String.Format(" and contentTypeId = {0}", cType.Id);
|
||||
string contentTypeModifier = loadInheritedPropertyTypes ? "" : String.Format(" and contentTypeId = {0}", ContentType);
|
||||
|
||||
List<PropertyType> tmp = new List<PropertyType>();
|
||||
|
||||
@@ -996,25 +1019,7 @@ namespace umbraco.cms.businesslogic
|
||||
}
|
||||
return tmp.ToArray();
|
||||
});
|
||||
}
|
||||
|
||||
public static Tab GetTab(int id)
|
||||
{
|
||||
Tab tab = null;
|
||||
using (IRecordsReader dr = SqlHelper.ExecuteReader(
|
||||
string.Format(
|
||||
"Select Id, text, contenttypeNodeId, sortOrder from cmsTab where Id = {0} order by sortOrder",
|
||||
id)))
|
||||
{
|
||||
if (dr.Read())
|
||||
{
|
||||
tab = new Tab(id, dr.GetString("text"), dr.GetInt("sortOrder"), new ContentType(dr.GetInt("contenttypeNodeId")),
|
||||
true);
|
||||
}
|
||||
dr.Close();
|
||||
}
|
||||
|
||||
return tab;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1037,6 +1042,8 @@ namespace umbraco.cms.businesslogic
|
||||
/// </summary>
|
||||
public void Delete()
|
||||
{
|
||||
SqlHelper.ExecuteNonQuery("update cmsPropertyType set tabId = NULL where tabid = @id",
|
||||
SqlHelper.CreateParameter("@id", Id));
|
||||
SqlHelper.ExecuteNonQuery("delete from cmsTab where id = @id",
|
||||
SqlHelper.CreateParameter("@id", Id));
|
||||
}
|
||||
@@ -1181,7 +1188,7 @@ namespace umbraco.cms.businesslogic
|
||||
/// </summary>
|
||||
public PropertyType[] PropertyTypes
|
||||
{
|
||||
get { return _propertytypes; }
|
||||
get { return getPropertyTypes(true); }
|
||||
}
|
||||
|
||||
public int ContentType
|
||||
|
||||
@@ -675,6 +675,8 @@ namespace umbraco.cms.businesslogic.packager
|
||||
for (int t = 0; t < tabs.Length; t++)
|
||||
tabNames += tabs[t].Caption + ";";
|
||||
|
||||
|
||||
|
||||
Hashtable ht = new Hashtable();
|
||||
foreach (XmlNode t in n.SelectNodes("Tabs/Tab"))
|
||||
{
|
||||
@@ -685,7 +687,7 @@ namespace umbraco.cms.businesslogic.packager
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dt.ClearVirtualTabs();
|
||||
// Get all tabs in hashtable
|
||||
Hashtable tabList = new Hashtable();
|
||||
foreach (cms.businesslogic.ContentType.TabI t in dt.getVirtualTabs.ToList())
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Web.UI;
|
||||
|
||||
namespace umbraco.cms.businesslogic.datatype
|
||||
{
|
||||
@@ -82,10 +83,35 @@ namespace umbraco.cms.businesslogic.datatype
|
||||
|
||||
}
|
||||
|
||||
[ValidationProperty("Value")]
|
||||
public class AbstractDataEditorControl : System.Web.UI.WebControls.WebControl, interfaces.IDataEditor
|
||||
{
|
||||
private cms.businesslogic.datatype.BaseDataType _datatype;
|
||||
|
||||
// property is used as a wrapper around the actual controls ValidationProperty
|
||||
public object Value {
|
||||
|
||||
get
|
||||
{
|
||||
|
||||
var attr = this.Control.GetType().GetCustomAttributes(typeof(ValidationPropertyAttribute), true);
|
||||
|
||||
if (attr != null && attr.Length > 0)
|
||||
{
|
||||
//get value of marked property
|
||||
System.Reflection.PropertyInfo info = this.Control.GetType().GetProperty(((ValidationPropertyAttribute)attr[0]).Name);
|
||||
return info.GetValue(this.Control, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
//not marked so no validation
|
||||
return "ok";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public AbstractDataEditorControl(cms.businesslogic.datatype.BaseDataType DataType)
|
||||
{
|
||||
_datatype = DataType;
|
||||
|
||||
@@ -49,11 +49,18 @@ namespace umbraco.cms.businesslogic.datatype
|
||||
{
|
||||
get
|
||||
{
|
||||
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
|
||||
interfaces.IDataType dt = f.DataType(_controlId);
|
||||
dt.DataTypeDefinitionId = Id;
|
||||
if (_controlId != Guid.Empty)
|
||||
{
|
||||
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
|
||||
interfaces.IDataType dt = f.DataType(_controlId);
|
||||
dt.DataTypeDefinitionId = Id;
|
||||
|
||||
return dt;
|
||||
return dt;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
@@ -233,7 +240,11 @@ namespace umbraco.cms.businesslogic.datatype
|
||||
|
||||
int newId = CMSNode.MakeNew(-1, _objectType, u.Id, 1, Text, UniqueId).Id;
|
||||
cms.businesslogic.datatype.controls.Factory f = new cms.businesslogic.datatype.controls.Factory();
|
||||
Guid FirstcontrolId = f.GetAll()[0].Id;
|
||||
|
||||
// initial control id changed to empty to ensure that it'll always work no matter if 3rd party configurators fail
|
||||
// ref: http://umbraco.codeplex.com/workitem/29788
|
||||
Guid FirstcontrolId = Guid.Empty;
|
||||
|
||||
SqlHelper.ExecuteNonQuery("Insert into cmsDataType (nodeId, controlId, dbType) values (" + newId.ToString() + ",@controlId,'Ntext')",
|
||||
SqlHelper.CreateParameter("@controlId", FirstcontrolId));
|
||||
|
||||
|
||||
@@ -87,6 +87,15 @@ namespace umbraco.cms.businesslogic.datatype
|
||||
}
|
||||
}
|
||||
|
||||
public int DataTypeDefinitionId
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dataType.DataTypeDefinitionId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region IData Members
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -47,8 +47,12 @@ namespace umbraco.cms.businesslogic.datatype.controls
|
||||
/// <returns></returns>
|
||||
public IDataType GetNewObject(Guid DataEditorId)
|
||||
{
|
||||
if (DataEditorId == Guid.Empty)
|
||||
{
|
||||
throw new ArgumentException("DataEditorId is empty. This usually means that no data editor was defined for the data type. To correct this update the entry in the cmsDataType table to ensure it matches a Guid from an installed data editor.");
|
||||
}
|
||||
IDataType newObject = Activator.CreateInstance(_controls[DataEditorId]) as IDataType;
|
||||
return newObject;
|
||||
return newObject;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
@@ -503,6 +505,49 @@ namespace umbraco.cms.businesslogic.macro
|
||||
}
|
||||
}
|
||||
|
||||
public static MacroTypes FindMacroType(string xslt, string scriptFile, string scriptType, string scriptAssembly)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(xslt))
|
||||
return MacroTypes.XSLT;
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(scriptFile))
|
||||
return MacroTypes.Script;
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(scriptType) && scriptType.ToLower().IndexOf(".ascx") > -1)
|
||||
{
|
||||
return MacroTypes.UserControl;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(scriptType) && !string.IsNullOrEmpty(scriptAssembly))
|
||||
return MacroTypes.CustomControl;
|
||||
}
|
||||
}
|
||||
|
||||
return MacroTypes.Unknown;
|
||||
}
|
||||
|
||||
public static string GenerateCacheKeyFromCode(string input)
|
||||
{
|
||||
if (String.IsNullOrEmpty(input))
|
||||
throw new ArgumentNullException("input", "An MD5 hash cannot be generated when 'input' parameter is null!");
|
||||
|
||||
// step 1, calculate MD5 hash from input
|
||||
MD5 md5 = System.Security.Cryptography.MD5.Create();
|
||||
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
|
||||
byte[] hash = md5.ComputeHash(inputBytes);
|
||||
|
||||
// step 2, convert byte array to hex string
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < hash.Length; i++)
|
||||
{
|
||||
sb.Append(hash[i].ToString("X2"));
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Macro events
|
||||
|
||||
//Delegates
|
||||
|
||||
@@ -12,16 +12,20 @@ namespace umbraco.cms.businesslogic.macro
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Alias { get; set; }
|
||||
public string MacroControlIdentifier { get; set; }
|
||||
public MacroTypes MacroType { get; set; }
|
||||
|
||||
public string TypeAssembly { get; set; }
|
||||
public string TypeName { get; set; }
|
||||
public string Xslt { get; set; }
|
||||
public string ScriptName { get; set; }
|
||||
public string ScriptCode { get; set; }
|
||||
public string ScriptLanguage { get; set; }
|
||||
|
||||
public int CacheDuration { get; set; }
|
||||
public bool CacheByPage { get; set; }
|
||||
public bool CacheByMember { get; set; }
|
||||
public string CacheIdenitifier { get; set; }
|
||||
|
||||
public List<MacroPropertyModel> Properties { get; set; }
|
||||
|
||||
@@ -43,6 +47,8 @@ namespace umbraco.cms.businesslogic.macro
|
||||
CacheByMember = cacheByMember;
|
||||
|
||||
Properties = new List<MacroPropertyModel>();
|
||||
|
||||
MacroType = Macro.FindMacroType(Xslt, ScriptName, TypeName, TypeAssembly);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,4 +69,16 @@ namespace umbraco.cms.businesslogic.macro
|
||||
Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
public enum MacroTypes
|
||||
{
|
||||
XSLT = 1,
|
||||
CustomControl = 2,
|
||||
UserControl = 3,
|
||||
Unknown = 4,
|
||||
Python = 5,
|
||||
Script = 6
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -28,24 +28,25 @@ namespace umbraco.cms.businesslogic.skinning.tasks
|
||||
HtmlDocument doc = new HtmlDocument();
|
||||
doc.Load(IO.IOHelper.MapPath(SystemDirectories.Masterpages) + "/" + TargetFile);
|
||||
|
||||
if (doc.DocumentNode.SelectSingleNode(string.Format("//link [@href = '{0}']", Value)) == null)
|
||||
{
|
||||
//if (doc.DocumentNode.SelectSingleNode(string.Format("//link [@href = '{0}']", Value)) == null)
|
||||
//{
|
||||
|
||||
HtmlNode target = doc.DocumentNode.SelectSingleNode(string.IsNullOrEmpty(TargetSelector) ? "//head" : TargetSelector.ToLower());
|
||||
|
||||
if (target != null)
|
||||
{
|
||||
HtmlNode s = new HtmlNode(HtmlNodeType.Element, doc, 0);
|
||||
s.Name = "link";
|
||||
s.Attributes.Add("rel", "stylesheet");
|
||||
s.Attributes.Add("type", "text/css");
|
||||
|
||||
HtmlNode s = doc.CreateElement("link");
|
||||
//s.Name = "link";
|
||||
s.Attributes.Append("rel", "stylesheet");
|
||||
s.Attributes.Append("type", "text/css");
|
||||
|
||||
|
||||
s.Attributes.Add("href", Value);
|
||||
s.Attributes.Append("href", Value);
|
||||
|
||||
|
||||
if (!string.IsNullOrEmpty(Media))
|
||||
s.Attributes.Add("media", Media);
|
||||
s.Attributes.Append("media", Media);
|
||||
|
||||
target.AppendChild(s);
|
||||
|
||||
@@ -56,9 +57,9 @@ namespace umbraco.cms.businesslogic.skinning.tasks
|
||||
}
|
||||
else
|
||||
d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
|
||||
}
|
||||
else
|
||||
d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
|
||||
//}
|
||||
//else
|
||||
// d.TaskExecutionStatus = TaskExecutionStatus.Cancelled;
|
||||
|
||||
return d;
|
||||
}
|
||||
@@ -72,7 +73,7 @@ namespace umbraco.cms.businesslogic.skinning.tasks
|
||||
|
||||
if (s != null)
|
||||
{
|
||||
s.Remove();
|
||||
s.RemoveAll();
|
||||
|
||||
doc.Save(IO.IOHelper.MapPath(SystemDirectories.Masterpages) + "/" + TargetFile);
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace umbraco.cms.businesslogic.skinning.tasks
|
||||
{
|
||||
if (target.Attributes[TargetAttribute] == null)
|
||||
{
|
||||
target.Attributes.Add(TargetAttribute, Value);
|
||||
target.Attributes.Append(TargetAttribute, Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -32,31 +32,40 @@ namespace umbraco.cms.businesslogic.web
|
||||
_checkedPages.Clear();
|
||||
}
|
||||
|
||||
static object _locko = new object();
|
||||
|
||||
public static XmlDocument AccessXml
|
||||
{
|
||||
get {
|
||||
if (_accessXmlContent == null)
|
||||
{
|
||||
if (_accessXmlSource == null)
|
||||
{
|
||||
//if we pop it here it'll make for better stack traces ;)
|
||||
_accessXmlSource = IOHelper.MapPath(SystemFiles.AccessXml, false);
|
||||
}
|
||||
get
|
||||
{
|
||||
if (_accessXmlContent == null)
|
||||
{
|
||||
lock (_locko)
|
||||
{
|
||||
if (_accessXmlContent == null)
|
||||
{
|
||||
if (_accessXmlSource == null)
|
||||
{
|
||||
//if we pop it here it'll make for better stack traces ;)
|
||||
_accessXmlSource = IOHelper.MapPath(SystemFiles.AccessXml, false);
|
||||
}
|
||||
|
||||
_accessXmlContent = new XmlDocument();
|
||||
_accessXmlContent = new XmlDocument();
|
||||
|
||||
if (!System.IO.File.Exists(_accessXmlSource))
|
||||
{
|
||||
System.IO.FileStream f = System.IO.File.Open(_accessXmlSource, FileMode.Create);
|
||||
System.IO.StreamWriter sw = new StreamWriter(f);
|
||||
sw.WriteLine("<access/>");
|
||||
sw.Close();
|
||||
f.Close();
|
||||
}
|
||||
_accessXmlContent.Load(_accessXmlSource);
|
||||
}
|
||||
return _accessXmlContent;
|
||||
}
|
||||
if (!System.IO.File.Exists(_accessXmlSource))
|
||||
{
|
||||
System.IO.FileStream f = System.IO.File.Open(_accessXmlSource, FileMode.Create);
|
||||
System.IO.StreamWriter sw = new StreamWriter(f);
|
||||
sw.WriteLine("<access/>");
|
||||
sw.Close();
|
||||
f.Close();
|
||||
}
|
||||
_accessXmlContent.Load(_accessXmlSource);
|
||||
}
|
||||
}
|
||||
}
|
||||
return _accessXmlContent;
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddMembershipRoleToDocument(int documentId, string role) {
|
||||
|
||||
@@ -1283,7 +1283,63 @@ namespace umbraco.cms.businesslogic.web
|
||||
// Copy the properties of the current document
|
||||
var props = GenericProperties;
|
||||
foreach (Property p in props)
|
||||
newDoc.getProperty(p.PropertyType.Alias).Value = p.Value;
|
||||
{
|
||||
//copy file if it's an upload property (so it doesn't get removed when original doc get's deleted)
|
||||
|
||||
IDataType uploadField = new Factory().GetNewObject(new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c"));
|
||||
|
||||
if (p.PropertyType.DataTypeDefinition.DataType.Id == uploadField.Id
|
||||
&& p.Value.ToString() != ""
|
||||
&& File.Exists(IOHelper.MapPath(p.Value.ToString())))
|
||||
{
|
||||
|
||||
int propId = newDoc.getProperty(p.PropertyType.Alias).Id;
|
||||
|
||||
System.IO.Directory.CreateDirectory(IOHelper.MapPath(SystemDirectories.Media + "/" + propId.ToString()));
|
||||
|
||||
string fileCopy = IOHelper.MapPath(
|
||||
SystemDirectories.Media + "/" +
|
||||
propId.ToString() + "/" +
|
||||
new FileInfo(IOHelper.MapPath(p.Value.ToString())).Name);
|
||||
|
||||
File.Copy(IOHelper.MapPath(p.Value.ToString()), fileCopy);
|
||||
|
||||
string relFilePath =
|
||||
SystemDirectories.Media + "/" +
|
||||
propId.ToString() + "/" +
|
||||
new FileInfo(IOHelper.MapPath(p.Value.ToString())).Name;
|
||||
|
||||
if (SystemDirectories.Root == string.Empty)
|
||||
relFilePath = relFilePath.TrimStart('~');
|
||||
|
||||
newDoc.getProperty(p.PropertyType.Alias).Value = relFilePath;
|
||||
|
||||
//copy thumbs
|
||||
FileInfo origFile = new FileInfo(IOHelper.MapPath(p.Value.ToString()));
|
||||
|
||||
foreach(FileInfo thumb in origFile.Directory.GetFiles("*_thumb*"))
|
||||
{
|
||||
if (!File.Exists(IOHelper.MapPath(
|
||||
SystemDirectories.Media + "/" +
|
||||
propId.ToString() + "/" +
|
||||
thumb.Name)))
|
||||
{
|
||||
thumb.CopyTo(IOHelper.MapPath(
|
||||
SystemDirectories.Media + "/" +
|
||||
propId.ToString() + "/" +
|
||||
thumb.Name));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
newDoc.getProperty(p.PropertyType.Alias).Value = p.Value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Relate?
|
||||
if (RelateToOrignal)
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
@@ -101,7 +105,8 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\foreign dlls\ClientDependency.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="HtmlAgilityPack">
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.0.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\foreign dlls\HtmlAgilityPack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace umbraco.DataLayer.Utility.Installer
|
||||
if (!String.IsNullOrEmpty(v.Table) && !String.IsNullOrEmpty(v.Field) && !String.IsNullOrEmpty(v.Value))
|
||||
{
|
||||
IRecordsReader reader = SqlHelper.ExecuteReader(string.Format("SELECT {0} FROM {1} WHERE {0}={2}", v.Field, v.Table, v.Value));
|
||||
if (!reader.HasRecords)
|
||||
if (!reader.Read())
|
||||
continue;
|
||||
}
|
||||
else if (String.IsNullOrEmpty(v.Table))
|
||||
|
||||
@@ -10,10 +10,14 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>umbraco.DataLayer</RootNamespace>
|
||||
<AssemblyName>umbraco.DataLayer</AssemblyName>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
|
||||
@@ -27,10 +27,14 @@
|
||||
</FileUpgradeFlags>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
|
||||
@@ -0,0 +1,211 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
|
||||
<!--
|
||||
<section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
|
||||
|
||||
|
||||
ASPNETAJAX ** DISABLED BY ALEX NORCLIFFE 2010 06 03 FOR COMPATIBILITY WITH RUNNING UNDER .NET 4
|
||||
USERS CAN ADD THIS THEMSELVES IF THEY WISH TO USE ASP.NET AJAX
|
||||
-->
|
||||
<!--<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
|
||||
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
</sectionGroup>
|
||||
</sectionGroup>
|
||||
</sectionGroup>-->
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="umbraco.presentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
<section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false" />
|
||||
<section name="Examine" type="Examine.Config.ExamineSettings, Examine" requirePermission="false" />
|
||||
<section name="ExamineLuceneIndexSets" type="UmbracoExamine.Config.ExamineLuceneIndexes, UmbracoExamine" requirePermission="false" />
|
||||
</configSections>
|
||||
<urlrewritingnet configSource="config\UrlRewriting.config" />
|
||||
<!-- <microsoft.scripting configSource="config\scripting.config" />-->
|
||||
<clientDependency configSource="config\ClientDependency.config" />
|
||||
<Examine configSource="config\ExamineSettings.config" />
|
||||
<ExamineLuceneIndexSets configSource="config\ExamineIndex.config" />
|
||||
<appSettings>
|
||||
<add key="umbracoDbDSN" value="server=.\sqlexpress;database=4.6-beta;integrated security=false;user id=sa;pwd=password!" />
|
||||
<add key="umbracoConfigurationStatus" value="4.6.0.beta" />
|
||||
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd" />
|
||||
<add key="umbracoReservedPaths" value="~/umbraco,~/install/" />
|
||||
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
|
||||
<add key="umbracoStorageDirectory" value="~/App_Data" />
|
||||
<add key="umbracoPath" value="~/umbraco" />
|
||||
<add key="umbracoEnableStat" value="false" />
|
||||
<add key="umbracoHideTopLevelNodeFromPath" value="true" />
|
||||
<add key="umbracoEditXhtmlMode" value="true" />
|
||||
<add key="umbracoUseDirectoryUrls" value="false" />
|
||||
<add key="umbracoDebugMode" value="true" />
|
||||
<add key="umbracoTimeOutInMinutes" value="20" />
|
||||
<add key="umbracoVersionCheckPeriod" value="7" />
|
||||
<add key="umbracoDisableXsltExtensions" value="true" />
|
||||
<add key="umbracoDefaultUILanguage" value="en" />
|
||||
<add key="umbracoProfileUrl" value="profiler" />
|
||||
<add key="umbracoUseSSL" value="false" />
|
||||
<add key="umbracoUseMediumTrust" value="false" />
|
||||
<!--
|
||||
Set this to true to enable storing the xml cache locally to the IIS server even if the app files are stored centrally on a SAN/NAS
|
||||
Alex Norcliffe 2010 02 for 4.1
|
||||
-->
|
||||
<add key="umbracoContentXMLUseLocalTemp" value="false" />
|
||||
</appSettings>
|
||||
<system.net>
|
||||
<mailSettings>
|
||||
<smtp>
|
||||
<network host="127.0.0.1" userName="username" password="password" />
|
||||
</smtp>
|
||||
</mailSettings>
|
||||
</system.net>
|
||||
<!-- REMOVE FOR BETA -->
|
||||
<!-- added by NH to test foreign membership providers-->
|
||||
<connectionStrings>
|
||||
<remove name="LocalSqlServer" />
|
||||
<!--<add name="LocalSqlServer" connectionString="server=.\sqlexpress;database=aspnetdb;user id=DBUSER;password=DBPASSWORD" providerName="System.Data.SqlClient"/>-->
|
||||
</connectionStrings>
|
||||
<system.web>
|
||||
<!-- <trust level="Medium" originUrl=".*" /> -->
|
||||
<customErrors mode="Off" />
|
||||
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
|
||||
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
|
||||
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
|
||||
<xhtmlConformance mode="Strict" />
|
||||
<pages enableEventValidation="false">
|
||||
<!-- ASPNETAJAX -->
|
||||
<controls>
|
||||
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add tagPrefix="umbraco" namespace="umbraco.presentation.templateControls" assembly="umbraco" />
|
||||
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</controls>
|
||||
</pages>
|
||||
<httpModules>
|
||||
<!-- URL REWRTIER -->
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<!-- UMBRACO -->
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule, umbraco" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule, umbraco" />
|
||||
<!-- ASPNETAJAX -->
|
||||
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<!-- CLIENT DEPENDENCY -->
|
||||
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
</httpModules>
|
||||
<httpHandlers>
|
||||
<remove verb="*" path="*.asmx" />
|
||||
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
|
||||
<!-- UMBRACO CHANNELS -->
|
||||
<add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<!-- CLIENT DEPENDENCY -->
|
||||
<add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<!-- SPELL CHECKER -->
|
||||
<add verb="GET,HEAD,POST" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
</httpHandlers>
|
||||
<compilation defaultLanguage="c#" debug="true" batch="false">
|
||||
<assemblies>
|
||||
<!-- ASPNETAJAX -->
|
||||
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
|
||||
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<!--<add assembly="Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
|
||||
</assemblies>
|
||||
</compilation>
|
||||
<authentication mode="Forms">
|
||||
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
|
||||
</authentication>
|
||||
<authorization>
|
||||
<allow users="?" />
|
||||
</authorization>
|
||||
<!-- Membership Provider -->
|
||||
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />
|
||||
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />
|
||||
</providers>
|
||||
</membership>
|
||||
<!-- added by NH to support membership providers in access layer -->
|
||||
<roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoRoleProvider" type="umbraco.providers.members.UmbracoRoleProvider" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
<!-- Sitemap provider-->
|
||||
<siteMap defaultProvider="UmbracoSiteMapProvider" enabled="true">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoSiteMapProvider" type="umbraco.presentation.nodeFactory.UmbracoSiteMapProvider" defaultDescriptionAlias="description" securityTrimmingEnabled="true" />
|
||||
</providers>
|
||||
</siteMap>
|
||||
</system.web>
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules>
|
||||
<remove name="ScriptModule" />
|
||||
<remove name="UrlRewriteModule" />
|
||||
<remove name="umbracoRequestModule" />
|
||||
<remove name="viewstateMoverModule" />
|
||||
<remove name="umbracoBaseRequestModule" />
|
||||
<remove name="ClientDependencyModule" />
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
|
||||
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
</modules>
|
||||
<handlers accessPolicy="Read, Write, Script, Execute">
|
||||
<remove name="WebServiceHandlerFactory-Integrated" />
|
||||
<remove name="ScriptHandlerFactory" />
|
||||
<remove name="ScriptHandlerFactoryAppServices" />
|
||||
<remove name="ScriptResource" />
|
||||
<remove name="Channels" />
|
||||
<remove name="Channels_Word" />
|
||||
<remove name="ClientDependency" />
|
||||
<remove name="SpellChecker" />
|
||||
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="*" name="Channels" preCondition="integratedMode" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" name="Channels_Word" preCondition="integratedMode" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<add verb="GET,HEAD,POST" preCondition="integratedMode" name="SpellChecker" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
<system.codedom>
|
||||
<compilers>
|
||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
|
||||
<providerOption name="CompilerVersion" value="v3.5" />
|
||||
<providerOption name="WarnAsError" value="false" />
|
||||
</compiler>
|
||||
</compilers>
|
||||
</system.codedom>
|
||||
<runtime>
|
||||
<!-- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
-->
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -0,0 +1,211 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
|
||||
<!--
|
||||
<section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
|
||||
|
||||
|
||||
ASPNETAJAX ** DISABLED BY ALEX NORCLIFFE 2010 06 03 FOR COMPATIBILITY WITH RUNNING UNDER .NET 4
|
||||
USERS CAN ADD THIS THEMSELVES IF THEY WISH TO USE ASP.NET AJAX
|
||||
-->
|
||||
<!--<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
|
||||
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
|
||||
</sectionGroup>
|
||||
</sectionGroup>
|
||||
</sectionGroup>-->
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<section name="umbraco.presentation.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
<section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false" />
|
||||
<section name="Examine" type="Examine.Config.ExamineSettings, Examine" requirePermission="false" />
|
||||
<section name="ExamineLuceneIndexSets" type="UmbracoExamine.Config.ExamineLuceneIndexes, UmbracoExamine" requirePermission="false" />
|
||||
</configSections>
|
||||
<urlrewritingnet configSource="config\UrlRewriting.config" />
|
||||
<!-- <microsoft.scripting configSource="config\scripting.config" />-->
|
||||
<clientDependency configSource="config\ClientDependency.config" />
|
||||
<Examine configSource="config\ExamineSettings.config" />
|
||||
<ExamineLuceneIndexSets configSource="config\ExamineIndex.config" />
|
||||
<appSettings>
|
||||
<add key="umbracoDbDSN" value="server=.\sqlexpress;database=umbraco-nightly;integrated security=true;" />
|
||||
<add key="umbracoConfigurationStatus" value="4.6.0.Alpha" />
|
||||
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd" />
|
||||
<add key="umbracoReservedPaths" value="~/umbraco,~/install/" />
|
||||
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />
|
||||
<add key="umbracoStorageDirectory" value="~/App_Data" />
|
||||
<add key="umbracoPath" value="~/umbraco" />
|
||||
<add key="umbracoEnableStat" value="false" />
|
||||
<add key="umbracoHideTopLevelNodeFromPath" value="true" />
|
||||
<add key="umbracoEditXhtmlMode" value="true" />
|
||||
<add key="umbracoUseDirectoryUrls" value="false" />
|
||||
<add key="umbracoDebugMode" value="true" />
|
||||
<add key="umbracoTimeOutInMinutes" value="20" />
|
||||
<add key="umbracoVersionCheckPeriod" value="7" />
|
||||
<add key="umbracoDisableXsltExtensions" value="true" />
|
||||
<add key="umbracoDefaultUILanguage" value="en" />
|
||||
<add key="umbracoProfileUrl" value="profiler" />
|
||||
<add key="umbracoUseSSL" value="false" />
|
||||
<add key="umbracoUseMediumTrust" value="false" />
|
||||
<!--
|
||||
Set this to true to enable storing the xml cache locally to the IIS server even if the app files are stored centrally on a SAN/NAS
|
||||
Alex Norcliffe 2010 02 for 4.1
|
||||
-->
|
||||
<add key="umbracoContentXMLUseLocalTemp" value="false" />
|
||||
</appSettings>
|
||||
<system.net>
|
||||
<mailSettings>
|
||||
<smtp>
|
||||
<network host="127.0.0.1" userName="username" password="password" />
|
||||
</smtp>
|
||||
</mailSettings>
|
||||
</system.net>
|
||||
<!-- REMOVE FOR BETA -->
|
||||
<!-- added by NH to test foreign membership providers-->
|
||||
<connectionStrings>
|
||||
<remove name="LocalSqlServer" />
|
||||
<!--<add name="LocalSqlServer" connectionString="server=.\sqlexpress;database=aspnetdb;user id=DBUSER;password=DBPASSWORD" providerName="System.Data.SqlClient"/>-->
|
||||
</connectionStrings>
|
||||
<system.web>
|
||||
<!-- <trust level="Medium" originUrl=".*" /> -->
|
||||
<customErrors mode="Off" />
|
||||
<trace enabled="true" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
|
||||
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
|
||||
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />
|
||||
<xhtmlConformance mode="Strict" />
|
||||
<pages enableEventValidation="false">
|
||||
<!-- ASPNETAJAX -->
|
||||
<controls>
|
||||
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add tagPrefix="umbraco" namespace="umbraco.presentation.templateControls" assembly="umbraco" />
|
||||
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</controls>
|
||||
</pages>
|
||||
<httpModules>
|
||||
<!-- URL REWRTIER -->
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<!-- UMBRACO -->
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule, umbraco" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule, umbraco" />
|
||||
<!-- ASPNETAJAX -->
|
||||
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<!-- CLIENT DEPENDENCY -->
|
||||
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
</httpModules>
|
||||
<httpHandlers>
|
||||
<remove verb="*" path="*.asmx" />
|
||||
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
|
||||
<!-- UMBRACO CHANNELS -->
|
||||
<add verb="*" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<!-- CLIENT DEPENDENCY -->
|
||||
<add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<!-- SPELL CHECKER -->
|
||||
<add verb="GET,HEAD,POST" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
</httpHandlers>
|
||||
<compilation defaultLanguage="c#" debug="true" batch="false">
|
||||
<assemblies>
|
||||
<!-- ASPNETAJAX -->
|
||||
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
|
||||
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<!--<add assembly="Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> -->
|
||||
</assemblies>
|
||||
</compilation>
|
||||
<authentication mode="Forms">
|
||||
<forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/" />
|
||||
</authentication>
|
||||
<authorization>
|
||||
<allow users="?" />
|
||||
</authorization>
|
||||
<!-- Membership Provider -->
|
||||
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoMembershipProvider" type="umbraco.providers.members.UmbracoMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Another Type" passwordFormat="Hashed" />
|
||||
<add name="UsersMembershipProvider" type="umbraco.providers.UsersMembershipProvider" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" />
|
||||
</providers>
|
||||
</membership>
|
||||
<!-- added by NH to support membership providers in access layer -->
|
||||
<roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoRoleProvider" type="umbraco.providers.members.UmbracoRoleProvider" />
|
||||
</providers>
|
||||
</roleManager>
|
||||
<!-- Sitemap provider-->
|
||||
<siteMap defaultProvider="UmbracoSiteMapProvider" enabled="true">
|
||||
<providers>
|
||||
<clear />
|
||||
<add name="UmbracoSiteMapProvider" type="umbraco.presentation.nodeFactory.UmbracoSiteMapProvider" defaultDescriptionAlias="description" securityTrimmingEnabled="true" />
|
||||
</providers>
|
||||
</siteMap>
|
||||
</system.web>
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules>
|
||||
<remove name="ScriptModule" />
|
||||
<remove name="UrlRewriteModule" />
|
||||
<remove name="umbracoRequestModule" />
|
||||
<remove name="viewstateMoverModule" />
|
||||
<remove name="umbracoBaseRequestModule" />
|
||||
<remove name="ClientDependencyModule" />
|
||||
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
|
||||
<add name="umbracoRequestModule" type="umbraco.presentation.requestModule" />
|
||||
<add name="viewstateMoverModule" type="umbraco.presentation.viewstateMoverModule" />
|
||||
<add name="umbracoBaseRequestModule" type="umbraco.presentation.umbracobase.requestModule" />
|
||||
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core" />
|
||||
</modules>
|
||||
<handlers accessPolicy="Read, Write, Script, Execute">
|
||||
<remove name="WebServiceHandlerFactory-Integrated" />
|
||||
<remove name="ScriptHandlerFactory" />
|
||||
<remove name="ScriptHandlerFactoryAppServices" />
|
||||
<remove name="ScriptResource" />
|
||||
<remove name="Channels" />
|
||||
<remove name="Channels_Word" />
|
||||
<remove name="ClientDependency" />
|
||||
<remove name="SpellChecker" />
|
||||
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<add verb="*" name="Channels" preCondition="integratedMode" path="umbraco/channels.aspx" type="umbraco.presentation.channels.api, umbraco" />
|
||||
<add verb="*" name="Channels_Word" preCondition="integratedMode" path="umbraco/channels/word.aspx" type="umbraco.presentation.channels.wordApi, umbraco" />
|
||||
<add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core " />
|
||||
<add verb="GET,HEAD,POST" preCondition="integratedMode" name="SpellChecker" path="GoogleSpellChecker.ashx" type="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker.GoogleSpellChecker,umbraco" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
<system.codedom>
|
||||
<compilers>
|
||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
|
||||
<providerOption name="CompilerVersion" value="v3.5" />
|
||||
<providerOption name="WarnAsError" value="false" />
|
||||
</compiler>
|
||||
</compilers>
|
||||
</system.codedom>
|
||||
<runtime>
|
||||
<!-- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
-->
|
||||
</runtime>
|
||||
</configuration>
|
||||
@@ -13,7 +13,6 @@
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<section alias="StartupDeveloperDashboardSection">
|
||||
<areas>
|
||||
<area>developer</area>
|
||||
@@ -27,7 +26,6 @@
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<section alias="StartupMediaDashboardSection">
|
||||
<areas>
|
||||
<area>media</area>
|
||||
@@ -44,7 +42,6 @@
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<section alias="StartupDashboardSection">
|
||||
<access>
|
||||
<deny>translator</deny>
|
||||
@@ -52,6 +49,11 @@
|
||||
<areas>
|
||||
<area>content</area>
|
||||
</areas>
|
||||
<tab caption="Property Test">
|
||||
<control addPanel="true" panelCaption="PropertyTest" First="Hello World" Second="Even more" Third="[#userContentStartNode]" Fourth="yaddi">
|
||||
/usercontrols/propertyTest.ascx
|
||||
</control>
|
||||
</tab>
|
||||
<tab caption="Get Started">
|
||||
<control showOnce="true" addPanel="true" panelCaption="">
|
||||
/umbraco/dashboard/startupdashboardintro.ascx
|
||||
@@ -70,7 +72,6 @@
|
||||
<control addPanel="true">/umbraco/dashboard/changepassword.ascx</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<section alias="StartupMemberDashboardSection">
|
||||
<areas>
|
||||
<area>member</area>
|
||||
@@ -87,75 +88,12 @@
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
|
||||
<!--
|
||||
<section>
|
||||
<access>
|
||||
<deny>translator</deny>
|
||||
</access>
|
||||
<section alias="Comments">
|
||||
<areas>
|
||||
<area>default</area>
|
||||
<area>content</area>
|
||||
</areas>
|
||||
<tab caption="Last Edits">
|
||||
<control>
|
||||
/umbraco/dashboard/latestEdits.ascx
|
||||
<access><grant>writer</grant><grant>editor</grant><deny>administrator</deny></access></control>
|
||||
</tab>
|
||||
<tab caption="Hidden from all but admins">
|
||||
<access>
|
||||
<grant>administrator</grant>
|
||||
<grant>writer</grant>
|
||||
</access>
|
||||
<control>
|
||||
<access>
|
||||
<deny>writer</deny>
|
||||
</access>
|
||||
/umbraco/dashboard/latestEdits.ascx
|
||||
</control>
|
||||
</tab>
|
||||
<tab caption="Only for devs">
|
||||
<access>
|
||||
<grant>administrator</grant>
|
||||
<grantBySection>settings</grantBySection>
|
||||
<deny>writer</deny>
|
||||
</access>
|
||||
<control>
|
||||
<access>
|
||||
<grant>administrator</grant>
|
||||
<grant>writer</grant>
|
||||
</access>
|
||||
/umbraco/dashboard/latestEdits.ascx
|
||||
</control>
|
||||
</tab>
|
||||
</section>
|
||||
<section>
|
||||
<areas>
|
||||
<area>default</area>
|
||||
<area>content</area>
|
||||
</areas>
|
||||
<tab caption="Contact Logs">
|
||||
<control>/usercontrols/dashboards/ContactForm_logs.ascx</control>
|
||||
</tab>
|
||||
<tab caption="Email a Friend Logs">
|
||||
<control>/usercontrols/dashboards/EmailAFriendForm_logs.ascx</control>
|
||||
</tab>
|
||||
</section>
|
||||
<section>
|
||||
<areas>
|
||||
<area>default</area>
|
||||
<area>member</area>
|
||||
</areas>
|
||||
<tab caption="Search Members">
|
||||
<control>/umbraco/members/membersearch.ascx</control>
|
||||
</tab>
|
||||
</section>
|
||||
<section id="contour">
|
||||
<areas>
|
||||
<area>contour</area>
|
||||
</areas>
|
||||
<tab caption="Umbraco Contour">
|
||||
<control>/umbraco/plugins/umbracocontour/formsdashboard.ascx</control>
|
||||
<tab caption="Comments">
|
||||
<control>/usercontrols/blog/CommentModeration.ascx</control>
|
||||
</tab>
|
||||
</section>
|
||||
<section alias="MyDashboardSection">
|
||||
@@ -170,5 +108,4 @@
|
||||
<control>/usercontrols/dashboards/EmailAFriendForm_logs.ascx</control>
|
||||
</tab>
|
||||
</section>
|
||||
-->
|
||||
</dashBoard>
|
||||
@@ -29,5 +29,6 @@
|
||||
Any bugs or problems with the rewriter, contact Anders/Duckie
|
||||
-->
|
||||
<add name="CWS_emaiAFriendID" virtualUrl="^~/email-a-friend/(.[0-9]*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/email-a-friend.aspx?nodeID=$1" ignoreCase="true" />
|
||||
<add name="CWS_emaiAFriendID" virtualUrl="^~/email-a-friend/(.[0-9]*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/email-a-friend.aspx?nodeID=$1" ignoreCase="true" />
|
||||
</rewrites>
|
||||
</urlrewritingnet>
|
||||
@@ -5,11 +5,12 @@
|
||||
<user>0</user>
|
||||
<startNode>1080</startNode>
|
||||
<fullTree>False</fullTree>
|
||||
<documentTypeAlias>FAQItem</documentTypeAlias>
|
||||
<documentTypeAlias>umbBlog</documentTypeAlias>
|
||||
<fields>
|
||||
<categories>
|
||||
</categories>
|
||||
<description>answer</description>
|
||||
<description>
|
||||
</description>
|
||||
<excerpt>
|
||||
</excerpt>
|
||||
</fields>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<permission method="setProperty" allowAll="false" />
|
||||
</ext>
|
||||
-->
|
||||
<ext assembly="Umlaut.Umb.Blog" type="Umlaut.Umb.Blog.Library.Base" alias="Blog4Umbraco">
|
||||
<ext assembly="Runway.Blog" type="Runway.Blog.Library.Base" alias="umbBlog">
|
||||
<permission method="CreateComment" returnXml="false" allowAll="true" />
|
||||
<permission method="GetGravatarImage" returnXml="false" allowAll="true" />
|
||||
</ext>
|
||||
|
||||
@@ -1,228 +1,182 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="noNodes.aspx.cs" Inherits="umbraco.presentation.config.splashes.noNodes" %>
|
||||
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head runat="server">
|
||||
|
||||
<meta charset="utf-8">
|
||||
|
||||
<title>Umbraco
|
||||
<%=umbraco.GlobalSettings.CurrentVersion%>
|
||||
- no pages found</title>
|
||||
<cc1:UmbracoClientDependencyLoader runat="server" ID="ClientLoader" />
|
||||
<umb:JsInclude ID="JsInclude4" runat="server" FilePath="ui/jquery.js" PathNameAlias="UmbracoClient"
|
||||
Priority="0" />
|
||||
<style type="text/css">
|
||||
body
|
||||
{
|
||||
font-size: 11px;
|
||||
width: 100%;
|
||||
font-family: Trebuchet MS, verdana, arial, Lucida Grande;
|
||||
text-align: center;
|
||||
padding-top: 25px;
|
||||
margin: 0px;
|
||||
}
|
||||
#Panel1_content
|
||||
{
|
||||
margin-left: 1px;
|
||||
background: url(images/background.png) no-repeat bottom center;
|
||||
width: 100%;
|
||||
}
|
||||
#Panel1_content p
|
||||
{
|
||||
font-size: 11px;
|
||||
line-height: 15px;
|
||||
}
|
||||
#buttons
|
||||
{
|
||||
position: absolute;
|
||||
bottom: 5px;
|
||||
width: 648px;
|
||||
}
|
||||
#buttons #next
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
#buttons #back
|
||||
{
|
||||
float: left;
|
||||
}
|
||||
|
||||
#loadingBar
|
||||
{
|
||||
visibility: hidden;
|
||||
padding-left: 220px;
|
||||
}
|
||||
#loadingBar img
|
||||
{
|
||||
width: 220px;
|
||||
}
|
||||
|
||||
#contentScroll
|
||||
{
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
height: 545px;
|
||||
padding-right: 7px;
|
||||
}
|
||||
|
||||
h1
|
||||
{
|
||||
font-size: 2em;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
h2
|
||||
{
|
||||
font-size: 1.4em;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.error, .notice, .success
|
||||
{
|
||||
padding: .8em;
|
||||
padding-top: 0em;
|
||||
padding-bottom: 0em;
|
||||
margin-bottom: .5em;
|
||||
border: 2px solid #ddd;
|
||||
}
|
||||
.error
|
||||
{
|
||||
background: #FBE3E4;
|
||||
color: #8a1f11;
|
||||
border-color: #FBC2C4;
|
||||
}
|
||||
.notice
|
||||
{
|
||||
background: #FFF6BF;
|
||||
color: #514721;
|
||||
border-color: #FFD324;
|
||||
}
|
||||
.success
|
||||
{
|
||||
background: #E6EFC2;
|
||||
color: #264409;
|
||||
border-color: #C6D880;
|
||||
}
|
||||
.error a
|
||||
{
|
||||
color: #8a1f11;
|
||||
}
|
||||
.notice a
|
||||
{
|
||||
color: #514721;
|
||||
}
|
||||
.success a
|
||||
{
|
||||
color: #264409;
|
||||
}
|
||||
|
||||
#videos
|
||||
{
|
||||
padding: 0px;
|
||||
width: 400px;
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
font-size: 11px;
|
||||
}
|
||||
#videos td
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
#videos a
|
||||
{
|
||||
color: #666;
|
||||
text-decoration: none;
|
||||
}
|
||||
#videos img
|
||||
{
|
||||
padding: 1px;
|
||||
border: none;
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
#videos.single
|
||||
{
|
||||
margin: 0px;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
#nitros p
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
#nitros h2
|
||||
{
|
||||
font-size: 1.2em;
|
||||
}
|
||||
#nitros h3
|
||||
{
|
||||
font-size: 1em;
|
||||
margin-bottom: 0px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
#nitros .umbNitroList input
|
||||
{
|
||||
float: left;
|
||||
}
|
||||
#nitros .umbNitroList div.nitro
|
||||
{
|
||||
float: left;
|
||||
padding: 3px 0px 5px 10px;
|
||||
clear: right;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css" />
|
||||
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../../umbraco_client/installer/css/reset.css" />
|
||||
|
||||
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/all.css" />
|
||||
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../../umbraco_client/installer/css/form.css" />
|
||||
|
||||
<script src="../../umbraco_client/installer/js/jquery.1.4.4.js" type="text/javascript"></script>
|
||||
<script src="../../umbraco_client/installer/js/jquery.ui.selectmenu.js" type="text/javascript"></script>
|
||||
<script src="../../umbraco_client/installer/js/jquery.main.js" type="text/javascript"></script>
|
||||
|
||||
<script src="../../umbraco_client/passwordStrength/passwordstrength.js" type="text/javascript"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<link media="all" rel="stylesheet" href="../../umbraco_client/installer/css/lt7.css" />
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if lt IE 7]><script type="text/javascript" src="../../umbraco_client/installer/js/ie-png.js"></script><![endif]-->
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<body class="theend">
|
||||
<form id="Form1" method="post" runat="server">
|
||||
<asp:ScriptManager runat="server" ID="umbracoScriptManager">
|
||||
</asp:ScriptManager>
|
||||
<cc1:UmbracoPanel Style="text-align: left;" ID="Panel1" runat="server" Height="600px"
|
||||
AutoResize="false" Width="680px" Text="No pages found">
|
||||
<div id="contentScroll">
|
||||
<div style="text-align: center; padding: 15px;">
|
||||
<img src="worker.png" align="middle" title="Umbraco logo" alt="Umbraco logo" />
|
||||
<h1>
|
||||
Looks like there's still work to do</h1>
|
||||
<p>
|
||||
You're seeing the wonderful image above because your website doesn't contain any
|
||||
<strong>published</strong> content yet.</p>
|
||||
<p>
|
||||
So get rid of that historic piece of web art by starting umbraco and publishing
|
||||
some content. You can do this by clicking the "launch umbraco" button below.
|
||||
</p>
|
||||
<p>
|
||||
<input type="button" value="Launch umbraco" id="bt_launch" runat="server" />
|
||||
</p>
|
||||
<br />
|
||||
<h2 style="border-top: 1px solid #ccc; padding-top: 10px;">
|
||||
Off to a great start</h2>
|
||||
<p>
|
||||
You can watch our intro videos on how to get off to a fast and easy start</p>
|
||||
<table id="videos">
|
||||
<tr>
|
||||
<td>
|
||||
<a target="_blank" href="http://umbraco.org/documentation/videos/getting-started/building-a-simple-site">
|
||||
<img runat="server" id="vid1" src="~/install/images/packagesVid1.png" />
|
||||
<span>Watch: Building a simple site.</span> </a>
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="http://umbraco.org/documentation/videos/getting-started/using-packages">
|
||||
<img runat="server" id="vid2" src="~/install/images/packagesVid2.png" />
|
||||
<span>Watch: using packages</span> </a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
If you need more information on how to use umbraco, visit <a href="http://umbraco.org/documentation">
|
||||
the books section on umbraco.org</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="buttons">
|
||||
</div>
|
||||
</cc1:UmbracoPanel>
|
||||
|
||||
<!-- all page -->
|
||||
|
||||
<section id="wrapper">
|
||||
|
||||
<div class="wholder">
|
||||
|
||||
<!-- header -->
|
||||
|
||||
<header id="header">
|
||||
|
||||
<div class="holder">
|
||||
|
||||
<strong class="logo"><a href="#">Umbraco</a></strong>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- all content -->
|
||||
|
||||
<section id="main">
|
||||
|
||||
|
||||
|
||||
<!-- content -->
|
||||
|
||||
<section class="content">
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
$.post("../../install/utills/p.aspx?feed=sitebuildervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-sitebuildervids").html(data);
|
||||
});
|
||||
|
||||
$.post("../../install/utills/p.aspx?feed=developervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-developervids").html(data);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!-- done box -->
|
||||
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>
|
||||
Looks like there's still work to do</h1>
|
||||
<p>
|
||||
You're seeing the wonderful page because your website doesn't contain any
|
||||
<strong>published</strong> content yet.
|
||||
</p>
|
||||
<p>
|
||||
So get rid of this page by starting umbraco and publishing
|
||||
some content. You can do this by clicking the "set up your new website" button below.
|
||||
</p>
|
||||
<ul class="btn-web">
|
||||
|
||||
|
||||
<li class="btn-set"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/umbraco.aspx"><span>Launch umbraco</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="threcol">
|
||||
<div class="t">
|
||||
</div>
|
||||
<div class="hold">
|
||||
|
||||
<aside class="col1">
|
||||
<h2>Useful links</h2>
|
||||
<p>We’ve put together some useful links to help you get started with Umbraco.</p>
|
||||
<nav class="links">
|
||||
<ul>
|
||||
<li><a href="http://our.umbraco.org?ref=ourFromInstaller">our.umbraco.org</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://our.umbraco.org/wiki?ref=LatestDocsFromInstaller">New documentation</a></li>
|
||||
<li><a href="http://our.umbraco.org/projects?ref=LatestProjectsFromInstaller">New Projects</a></li>
|
||||
<li><a href="http://our.umbraco.org/forum?ref=LatesTalkFromInstaller">Forum Talk</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
|
||||
<aside class="col2">
|
||||
<h2>Sitebuilder introduction</h2>
|
||||
<div id="ajax-sitebuildervids"><small>Loading...</small></div>
|
||||
</aside>
|
||||
<aside class="col3">
|
||||
<h2>Developer introduction</h2>
|
||||
<div id="ajax-developervids"><small>Loading...</small></div>
|
||||
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- bg page -->
|
||||
<div class="bg-main">
|
||||
<div class="color2">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color3">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color1">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color4">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color5">
|
||||
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -25,10 +25,7 @@ namespace umbraco.presentation.config.splashes
|
||||
/// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
ClientLoader.DataBind();
|
||||
bt_launch.Attributes.Add("onclick", "document.location.href='" + ResolveUrl(SystemDirectories.Umbraco) + "/';");
|
||||
vid1.Src = SystemDirectories.Install + "/images/packagesVid1.png";
|
||||
vid2.Src = SystemDirectories.Install + "/images/packagesVid2.png";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,24 +12,6 @@ namespace umbraco.presentation.config.splashes {
|
||||
|
||||
public partial class noNodes {
|
||||
|
||||
/// <summary>
|
||||
/// ClientLoader control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.UmbracoClientDependencyLoader ClientLoader;
|
||||
|
||||
/// <summary>
|
||||
/// JsInclude4 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::ClientDependency.Core.Controls.JsInclude JsInclude4;
|
||||
|
||||
/// <summary>
|
||||
/// Form1 control.
|
||||
/// </summary>
|
||||
@@ -38,50 +20,5 @@ namespace umbraco.presentation.config.splashes {
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm Form1;
|
||||
|
||||
/// <summary>
|
||||
/// umbracoScriptManager control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.ScriptManager umbracoScriptManager;
|
||||
|
||||
/// <summary>
|
||||
/// Panel1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::umbraco.uicontrols.UmbracoPanel Panel1;
|
||||
|
||||
/// <summary>
|
||||
/// bt_launch control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlInputButton bt_launch;
|
||||
|
||||
/// <summary>
|
||||
/// vid1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlImage vid1;
|
||||
|
||||
/// <summary>
|
||||
/// vid2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlImage vid2;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.4 KiB |
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<XsltExtensions>
|
||||
<!-- <ext assembly="your.assemblyName" type="your.class.name" alias="yourAlias">
|
||||
<!-- <ext assembly="your.assemblyName" type="your.class.name" alias="yourAlias">
|
||||
</ext> -->
|
||||
|
||||
</XsltExtensions>
|
||||
<ext assembly="umbraco.editorControls" type="umbraco.editorControls.tags.library" alias="tagsLib">
|
||||
</ext>
|
||||
</XsltExtensions>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<zipUpload>
|
||||
<fileNodeTypeId>1033</fileNodeTypeId>
|
||||
<imageNodeTypeId>1032</imageNodeTypeId>
|
||||
<folderNodeTypeId>1031</folderNodeTypeId>
|
||||
<imageFileExtensions>jpeg,jpg,gif,bmp,png,tiff,tif</imageFileExtensions>
|
||||
</zipUpload>
|
||||
@@ -15,6 +15,7 @@ using umbraco.cms.businesslogic.web;
|
||||
using umbraco.DataLayer;
|
||||
using umbraco.IO;
|
||||
using umbraco.BusinessLogic.Utils;
|
||||
using umbraco.presentation.nodeFactory;
|
||||
|
||||
namespace umbraco
|
||||
{
|
||||
@@ -298,7 +299,7 @@ namespace umbraco
|
||||
if (updateSitemapProvider && SiteMap.Provider is presentation.nodeFactory.UmbracoSiteMapProvider)
|
||||
{
|
||||
presentation.nodeFactory.UmbracoSiteMapProvider prov = (presentation.nodeFactory.UmbracoSiteMapProvider)SiteMap.Provider;
|
||||
prov.UpdateNode(new umbraco.presentation.nodeFactory.Node(d.Id, true));
|
||||
prov.UpdateNode(new umbraco.NodeFactory.Node(d.Id, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -432,20 +433,22 @@ namespace umbraco
|
||||
}
|
||||
|
||||
// clear cached field values
|
||||
System.Web.Caching.Cache httpCache = HttpContext.Current.Cache;
|
||||
string cachedFieldKeyStart = String.Format("contentItem{0}_", d.Id);
|
||||
List<string> foundKeys = new List<string>();
|
||||
foreach (DictionaryEntry cacheItem in httpCache)
|
||||
if (HttpContext.Current != null)
|
||||
{
|
||||
string key = cacheItem.Key.ToString();
|
||||
if (key.StartsWith(cachedFieldKeyStart))
|
||||
foundKeys.Add(key);
|
||||
System.Web.Caching.Cache httpCache = HttpContext.Current.Cache;
|
||||
string cachedFieldKeyStart = String.Format("contentItem{0}_", d.Id);
|
||||
List<string> foundKeys = new List<string>();
|
||||
foreach (DictionaryEntry cacheItem in httpCache)
|
||||
{
|
||||
string key = cacheItem.Key.ToString();
|
||||
if (key.StartsWith(cachedFieldKeyStart))
|
||||
foundKeys.Add(key);
|
||||
}
|
||||
foreach (string foundKey in foundKeys)
|
||||
{
|
||||
httpCache.Remove(foundKey);
|
||||
}
|
||||
}
|
||||
foreach (string foundKey in foundKeys)
|
||||
{
|
||||
httpCache.Remove(foundKey);
|
||||
}
|
||||
|
||||
umbraco.BusinessLogic.Actions.Action.RunActionHandlers(d, ActionPublish.Instance);
|
||||
|
||||
FireAfterUpdateDocumentCache(d, e);
|
||||
|
||||
@@ -11,23 +11,23 @@
|
||||
|
||||
<umb1:PageTitle runat="server" />
|
||||
|
||||
<link media="all" rel="stylesheet" href="css/jquery-ui-1.8.6.custom.css">
|
||||
<link media="all" type="text/css" rel="stylesheet" href="css/reset.css" />
|
||||
<link media="all" rel="stylesheet" href="css/all.css">
|
||||
<link media="all" type="text/css" rel="stylesheet" href="css/form.css" />
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css">
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/reset.css" />
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/all.css">
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/form.css" />
|
||||
|
||||
<script src="js/jquery.1.4.4.js" type="text/javascript"></script>
|
||||
<script src="js/jquery.ui.selectmenu.js" type="text/javascript"></script>
|
||||
<script src="js/jquery.main.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.1.4.4.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.ui.selectmenu.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.main.js" type="text/javascript"></script>
|
||||
|
||||
<script src="../umbraco_client/passwordStrength/passwordstrength.js" type="text/javascript"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<link media="all" rel="stylesheet" href="css/lt7.css">
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/lt7.css">
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if lt IE 7]><script type="text/javascript" src="js/ie-png.js"></script><![endif]-->
|
||||
<!--[if lt IE 7]><script type="text/javascript" src="../umbraco_client/installer/js/ie-png.js"></script><![endif]-->
|
||||
</head>
|
||||
|
||||
<body class="<%= currentStepClass %>">
|
||||
@@ -125,9 +125,9 @@
|
||||
</div>
|
||||
<div class="carusel">
|
||||
<ul>
|
||||
<li><img src="images/img09.jpg" alt="image description"></li>
|
||||
<li><img src="images/img10.jpg" alt="image description"></li>
|
||||
<li><img src="images/img11.jpg" alt="image description"></li>
|
||||
<li><img src="../umbraco_client/installer/images/img09.jpg" alt="image description"></li>
|
||||
<li><img src="../umbraco_client/installer/images/img10.jpg" alt="image description"></li>
|
||||
<li><img src="../umbraco_client/installer/images/img11.jpg" alt="image description"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -58,16 +58,15 @@ namespace umbraco.presentation.install
|
||||
_name.Text = (stepCounter).ToString() + " - " + i.Name;
|
||||
} else
|
||||
e.Item.Visible = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void GotoNextStep(string currentStep)
|
||||
{
|
||||
InstallerStep _s = InstallerSteps().GotoNextStep(currentStep);
|
||||
Response.Redirect("?installStep=" + _s.Alias);
|
||||
}
|
||||
public void GotoNextStep(string currentStep)
|
||||
{
|
||||
InstallerStep _s = InstallerSteps().GotoNextStep(currentStep);
|
||||
Response.Redirect("?installStep=" + _s.Alias);
|
||||
}
|
||||
|
||||
|
||||
#region Web Form Designer generated code
|
||||
@@ -86,9 +85,10 @@ namespace umbraco.presentation.install
|
||||
} catch {
|
||||
Response.Redirect(SystemDirectories.Umbraco + "/logout.aspx?redir=" + Server.UrlEncode(Request.RawUrl));
|
||||
}
|
||||
|
||||
//set the first step to upgrade.
|
||||
if (string.IsNullOrEmpty(_installStep))
|
||||
_installStep = "upgrade";
|
||||
// if (string.IsNullOrEmpty(_installStep))
|
||||
// _installStep = "upgrade";
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(_installStep))
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Web;
|
||||
using umbraco.cms.businesslogic.installer;
|
||||
using umbraco.cms.businesslogic.packager;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
|
||||
namespace umbraco.presentation.install.steps.Definitions
|
||||
{
|
||||
@@ -27,10 +28,17 @@ namespace umbraco.presentation.install.steps.Definitions
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
|
||||
return true;
|
||||
|
||||
if (InstalledPackage.GetAllInstalledPackages().Count > 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
if (Document.GetRootDocuments().Count() > 0)
|
||||
return true;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,12 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="loadStarterKitDesigns.ascx.cs" Inherits="umbraco.presentation.install.steps.Skinning.loadStarterKitDesigns" %>
|
||||
<%@ Import Namespace="umbraco.cms.businesslogic.packager.repositories" %>
|
||||
|
||||
|
||||
<asp:PlaceHolder ID="pl_loadStarterKitDesigns" runat="server">
|
||||
<asp:Panel id="pl_CustomizeSkin" runat="server" Visible="false">
|
||||
<h3>Starter kit and skin have been installed</h3>
|
||||
<p id="customizelink"><a target="_blank" href="<%= umbraco.GlobalSettings.Path %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank">Browse and customize your new site</a></p>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<div id="skinselector">
|
||||
<asp:Repeater ID="rep_starterKitDesigns" runat="server">
|
||||
<HeaderTemplate>
|
||||
@@ -28,8 +26,8 @@
|
||||
<ItemTemplate>
|
||||
<li>
|
||||
<div class="image-hold">
|
||||
<img class="faik-mask" src="images/bg-img.png" alt="image description" width="152" height="129">
|
||||
<img class="faik-mask-ie6" src="images/bg-img-ie.png" alt="image description" width="201" height="178">
|
||||
<img class="faik-mask" src="../umbraco_client/installer/images/bg-img.png" alt="image description" width="152" height="129">
|
||||
<img class="faik-mask-ie6" src="../umbraco_client/installer/images/bg-img-ie.png" alt="image description" width="201" height="178">
|
||||
|
||||
<div class="image">
|
||||
<img class="zoom-img" src="<%# ((Skin)Container.DataItem).Thumbnail %>" alt="<%# ((Skin)Container.DataItem).Text %>" width="134" height="103">
|
||||
|
||||
@@ -8,8 +8,18 @@ using umbraco.BusinessLogic;
|
||||
|
||||
namespace umbraco.presentation.install.steps.Skinning
|
||||
{
|
||||
public delegate void StarterKitDesignInstalledEventHandler();
|
||||
|
||||
public partial class loadStarterKitDesigns : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
public event StarterKitDesignInstalledEventHandler StarterKitDesignInstalled;
|
||||
|
||||
protected virtual void OnStarterKitDesignInstalled()
|
||||
{
|
||||
StarterKitDesignInstalled();
|
||||
}
|
||||
|
||||
public Guid StarterKitGuid { get; set; }
|
||||
|
||||
private cms.businesslogic.packager.repositories.Repository repo;
|
||||
@@ -31,16 +41,20 @@ namespace umbraco.presentation.install.steps.Skinning
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
|
||||
if (repo.HasConnection())
|
||||
{
|
||||
try
|
||||
{
|
||||
//clear progress bar cache
|
||||
Helper.clearProgress();
|
||||
//clear progress bar cache
|
||||
Helper.clearProgress();
|
||||
|
||||
rep_starterKitDesigns.DataSource = repo.Webservice.Skins(StarterKitGuid.ToString());
|
||||
rep_starterKitDesigns.DataBind();
|
||||
var skinsCollection = repo.Webservice.Skins(StarterKitGuid.ToString());
|
||||
|
||||
var numberOfSkins = skinsCollection.Length;
|
||||
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "skinCounter", "var numberOfSkins = " + numberOfSkins, true);
|
||||
|
||||
rep_starterKitDesigns.DataSource = skinsCollection;
|
||||
rep_starterKitDesigns.DataBind();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -72,60 +86,72 @@ namespace umbraco.presentation.install.steps.Skinning
|
||||
|
||||
Guid kitGuid = new Guid(((LinkButton)sender).CommandArgument);
|
||||
|
||||
|
||||
Helper.setProgress(5, "Fetching starting kit from the repository", "");
|
||||
|
||||
cms.businesslogic.packager.Installer installer = new cms.businesslogic.packager.Installer();
|
||||
|
||||
if (repo.HasConnection())
|
||||
if (!cms.businesslogic.skinning.Skinning.IsSkinInstalled(kitGuid))
|
||||
{
|
||||
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
|
||||
|
||||
Helper.setProgress(15, "Connected to repository", "");
|
||||
Helper.setProgress(5, "Fetching starting kit from the repository", "");
|
||||
|
||||
string tempFile = p.Import(repo.fetch(kitGuid.ToString()));
|
||||
p.LoadConfig(tempFile);
|
||||
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
|
||||
cms.businesslogic.packager.Installer installer = new cms.businesslogic.packager.Installer();
|
||||
|
||||
Helper.setProgress(30, "Installing starter kit files", "");
|
||||
p.InstallFiles(pID, tempFile);
|
||||
|
||||
Helper.setProgress(50, "Installing starter kit umbraco objects", "");
|
||||
p.InstallBusinessLogic(pID, tempFile);
|
||||
|
||||
Helper.setProgress(60, "Finishing starter kit instatllation", "");
|
||||
p.InstallCleanUp(pID, tempFile);
|
||||
|
||||
library.RefreshContent();
|
||||
|
||||
Helper.setProgress(80, "Retrieving list of skins, compatible with this starter kit", "");
|
||||
if (cms.businesslogic.skinning.Skinning.GetAllSkins().Count > 0)
|
||||
if (repo.HasConnection())
|
||||
{
|
||||
cms.businesslogic.skinning.Skinning.ActivateAsCurrentSkin(cms.businesslogic.skinning.Skinning.GetAllSkins()[0]);
|
||||
}
|
||||
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
|
||||
|
||||
Helper.setProgress(15, "Connected to repository", "");
|
||||
|
||||
Helper.setProgress(100, "Starter kit installation has been completed", "");
|
||||
string tempFile = p.Import(repo.fetch(kitGuid.ToString()));
|
||||
p.LoadConfig(tempFile);
|
||||
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
Helper.setProgress(30, "Installing skin files", "");
|
||||
p.InstallFiles(pID, tempFile);
|
||||
|
||||
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus))
|
||||
Helper.setProgress(50, "Installing skin system objects", "");
|
||||
p.InstallBusinessLogic(pID, tempFile);
|
||||
|
||||
Helper.setProgress(60, "Finishing skin installation", "");
|
||||
p.InstallCleanUp(pID, tempFile);
|
||||
|
||||
library.RefreshContent();
|
||||
|
||||
Helper.setProgress(80, "Activating skin", "");
|
||||
if (cms.businesslogic.skinning.Skinning.GetAllSkins().Count > 0)
|
||||
{
|
||||
GlobalSettings.ConfigurationStatus = GlobalSettings.CurrentVersion;
|
||||
Application["umbracoNeedConfiguration"] = false;
|
||||
cms.businesslogic.skinning.Skinning.ActivateAsCurrentSkin(cms.businesslogic.skinning.Skinning.GetAllSkins()[0]);
|
||||
}
|
||||
|
||||
|
||||
Helper.setProgress(100, "Skin installation has been completed", "");
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus))
|
||||
{
|
||||
GlobalSettings.ConfigurationStatus = GlobalSettings.CurrentVersion;
|
||||
Application["umbracoNeedConfiguration"] = false;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Helper.RedirectToNextStep(Page);
|
||||
}
|
||||
catch
|
||||
{
|
||||
OnStarterKitDesignInstalled();
|
||||
}
|
||||
}
|
||||
catch{
|
||||
Helper.RedirectToNextStep(Page);
|
||||
else
|
||||
{
|
||||
ShowConnectionError();
|
||||
}
|
||||
|
||||
Helper.RedirectToNextStep(Page);
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowConnectionError();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
<li class="add-thanks">
|
||||
<asp:LinkButton runat="server" class="single-tab declineStarterKits" ID="declineStarterKits" OnClientClick="return confirm('Are you sure you do not want to install a starter kit?');" OnClick="NextStep">
|
||||
<img class="zoom-img" src="images/btn-no-thanks.png" alt="image description" width="150" height="204">
|
||||
<img class="zoom-img" src="../umbraco_client/installer/images/btn-no-thanks.png" alt="image description" width="150" height="204">
|
||||
</asp:LinkButton>
|
||||
|
||||
<em> </em>
|
||||
|
||||
@@ -10,8 +10,19 @@ using System.IO;
|
||||
|
||||
namespace umbraco.presentation.install.steps.Skinning
|
||||
{
|
||||
public delegate void StarterKitInstalledEventHandler();
|
||||
|
||||
public partial class loadStarterKits : System.Web.UI.UserControl
|
||||
{
|
||||
|
||||
public event StarterKitInstalledEventHandler StarterKitInstalled;
|
||||
|
||||
protected virtual void OnStarterKitInstalled()
|
||||
{
|
||||
StarterKitInstalled();
|
||||
}
|
||||
|
||||
|
||||
private cms.businesslogic.packager.repositories.Repository repo;
|
||||
private string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66";
|
||||
|
||||
@@ -82,7 +93,7 @@ namespace umbraco.presentation.install.steps.Skinning
|
||||
if (repo.HasConnection())
|
||||
{
|
||||
|
||||
Helper.setProgress(20, "Downloading skin files...", "");
|
||||
Helper.setProgress(20, "Downloading starter kit files...", "");
|
||||
|
||||
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
|
||||
|
||||
@@ -90,10 +101,10 @@ namespace umbraco.presentation.install.steps.Skinning
|
||||
p.LoadConfig(tempFile);
|
||||
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
|
||||
|
||||
Helper.setProgress(40, "Installing skin files", "");
|
||||
Helper.setProgress(40, "Installing starter kit files", "");
|
||||
p.InstallFiles(pID, tempFile);
|
||||
|
||||
Helper.setProgress(60, "Installing skin system objects", "");
|
||||
Helper.setProgress(60, "Installing starter kit system objects", "");
|
||||
p.InstallBusinessLogic(pID, tempFile);
|
||||
|
||||
Helper.setProgress(80, "Cleaning up after installation", "");
|
||||
@@ -101,9 +112,16 @@ namespace umbraco.presentation.install.steps.Skinning
|
||||
|
||||
library.RefreshContent();
|
||||
|
||||
Helper.setProgress(100, "Skin has been installed", "");
|
||||
((skinning)Parent.Parent.Parent.Parent.Parent).showStarterKitDesigns(kitGuid);
|
||||
Helper.setProgress(100, "Starter kit has been installed", "");
|
||||
|
||||
try
|
||||
{
|
||||
((skinning)Parent.Parent.Parent.Parent.Parent).showStarterKitDesigns(kitGuid);
|
||||
}
|
||||
catch
|
||||
{
|
||||
OnStarterKitInstalled();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="boost.ascx.cs" Inherits="umbraco.presentation.install.steps.boost" %>
|
||||
<h1>Step 5/5: Install a foundation?</h1>
|
||||
|
||||
<asp:Panel ID="pl_boost" Runat="server" Visible="True">
|
||||
|
||||
<asp:RadioButton GroupName="mode" ID="rb_install" Checked="true" runat="server" style="float: left; margin: 10px;" />
|
||||
<div class="rbChoice" style="float: left; padding: 0px 10px 10px 10px; width: 80%;">
|
||||
|
||||
<h3 style="margin-top: 10px;">Add 'Runway' - a great foundation for building websites<br />
|
||||
<span style="font-size: 80%; color: #999;">Recommended</span></h3>
|
||||
|
||||
<div style="width: 150px; float: right; margin: 0px 0px 15px 15px; text-align: center;">
|
||||
<a target="_blank" style="color: #666; text-decoration: none;" href="http://umbraco.org/documentation/videos/getting-started/what-is-runway-and-modules">
|
||||
<img src="images/packagesVid1.png" style="border: none;" />
|
||||
<br /><span>Watch: What is Runway</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<p>Runway makes it easy to build sharp websites using the latest modules from the umbraco community. You'll still have full control of design, markup and document models but with Runway you'll be ready for take off right from the beginning. </p>
|
||||
<p>When you click next, you'll get a basic website and then you can choose from the latest and greatest functionality
|
||||
that's offered by our friendly community with the click of your mouse - from Galleries to FAQs, from RSS fetchers to News, from the necessities to the cream on the top.</p>
|
||||
|
||||
</div>
|
||||
<br style="clear: both;"/>
|
||||
|
||||
|
||||
<asp:RadioButton GroupName="mode" ID="rb_noInstall" runat="server" style="float: left; margin: 10px;" />
|
||||
<div class="rbChoice" style="float: left; padding: 0px 10px 10px 10px; width: 80%;">
|
||||
<h3 style="margin-top: 10px;">No foundation, please<br />
|
||||
<span style="font-size: 80%; color: #999;">Only recommended for experienced users</span></h3>
|
||||
If you're an experienced umbraco user and want to setup everything manually this is the right choice. Be aware that
|
||||
you'll be unable to create content until you've setup your Document Types and Templates (<a href="http://umbraco.org/redir/runwayOnYourOwn" target="_blank">Learn how</a>).<br />
|
||||
</div>
|
||||
|
||||
<br style="clear: both;"/>
|
||||
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel ID="pl_nitros" Runat="server" Visible="false">
|
||||
<h2>Runway is installed</h2>
|
||||
<p>
|
||||
Below is our list of recommended modules to get you started. If you fancy some more, toggle the <a href="#" onclick="toggleModules(); return false;" id="toggleModuleList">full list of community modules by clicking here</a>. <br /> <br />
|
||||
To add modules, simply mark the ones you would like to install and click "Install selected modules" button.
|
||||
</p>
|
||||
|
||||
<div id="nitros">
|
||||
<asp:PlaceHolder ID="ph_nitros" runat="server" />
|
||||
</div>
|
||||
|
||||
</asp:Panel>
|
||||
@@ -1,110 +0,0 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using umbraco.IO;
|
||||
|
||||
namespace umbraco.presentation.install.steps {
|
||||
public partial class boost : System.Web.UI.UserControl {
|
||||
|
||||
protected override void OnInit(EventArgs e) {
|
||||
base.OnInit(e);
|
||||
|
||||
//if this is an upgrade, skip this step...
|
||||
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
|
||||
Response.Redirect("default.aspx?installStep=theend");
|
||||
|
||||
|
||||
if (cms.businesslogic.packager.InstalledPackage.isPackageInstalled("ae41aad0-1c30-11dd-bd0b-0800200c9a66")) {
|
||||
pl_nitros.Visible = true;
|
||||
pl_boost.Visible = false;
|
||||
|
||||
ph_nitros.Controls.Add(new UserControl().LoadControl( SystemDirectories.Umbraco + "/developer/packages/LoadNitros.ascx"));
|
||||
|
||||
Button btNext = (Button)Page.FindControl("next");
|
||||
btNext.Text = "Continue without installing";
|
||||
btNext.OnClientClick = "showProgress(this,'loadingBar'); return true;";
|
||||
btNext.Click += btNext_Done;
|
||||
} else {
|
||||
pl_nitros.Visible = false;
|
||||
pl_boost.Visible = true;
|
||||
Button btNext = (Button)Page.FindControl("next");
|
||||
btNext.OnClientClick = "showProgress(this,'loadingBar'); return true;";
|
||||
btNext.Click += new EventHandler(btNext_Click);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override bool OnBubbleEvent(object source, EventArgs args) {
|
||||
pl_nitros.Controls.Clear();
|
||||
|
||||
HtmlGenericControl modulesInstalledHeader = new HtmlGenericControl("h2");
|
||||
modulesInstalledHeader.InnerText = "Runway and modules has been installed";
|
||||
|
||||
uicontrols.Feedback fb = new global::umbraco.uicontrols.Feedback();
|
||||
fb.type = global::umbraco.uicontrols.Feedback.feedbacktype.success;
|
||||
fb.Text = "<strong>Modules installed successfully.</strong> Each module can be uninstalled under the 'installed packages' section in the umbraco backend";
|
||||
|
||||
Button btNext = (Button)Page.FindControl("next");
|
||||
btNext.Text = "Next »";
|
||||
|
||||
pl_nitros.Controls.Add(modulesInstalledHeader);
|
||||
pl_nitros.Controls.Add(fb);
|
||||
|
||||
return base.OnBubbleEvent(source, args);
|
||||
}
|
||||
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e) {}
|
||||
|
||||
void btNext_Done(object sender, EventArgs e) {
|
||||
Response.Redirect("default.aspx?installStep=theend");
|
||||
}
|
||||
|
||||
|
||||
void btNext_Click(object sender, EventArgs e) {
|
||||
if (rb_install.Checked) {
|
||||
string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66";
|
||||
string packageGuid = "ae41aad0-1c30-11dd-bd0b-0800200c9a66";
|
||||
|
||||
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
|
||||
cms.businesslogic.packager.repositories.Repository repo = cms.businesslogic.packager.repositories.Repository.getByGuid(repoGuid);
|
||||
|
||||
if (repo.HasConnection()) {
|
||||
string tempFile = p.Import(repo.fetch(packageGuid));
|
||||
p.LoadConfig(tempFile);
|
||||
int pID = p.CreateManifest(tempFile, packageGuid, repoGuid);
|
||||
|
||||
p.InstallBusinessLogic(pID, tempFile);
|
||||
p.InstallCleanUp(pID, tempFile);
|
||||
|
||||
//pushing the content to the cache..
|
||||
library.RefreshContent();
|
||||
|
||||
|
||||
pl_nitros.Visible = true;
|
||||
pl_boost.Visible = false;
|
||||
ph_nitros.Controls.Add(new UserControl().LoadControl(SystemDirectories.Umbraco + "/developer/packages/LoadNitros.ascx"));
|
||||
|
||||
Button btNext = (Button)Page.FindControl("next");
|
||||
btNext.Text = "Continue without installing";
|
||||
} else {
|
||||
uicontrols.Feedback fb = new global::umbraco.uicontrols.Feedback();
|
||||
fb.type = global::umbraco.uicontrols.Feedback.feedbacktype.error;
|
||||
fb.Text = "<strong>No connection to repository.</strong> Runway could not be installed as there was no connection to: '" + repo.RepositoryUrl + "'";
|
||||
pl_boost.Controls.Clear();
|
||||
pl_boost.Controls.Add(fb);
|
||||
}
|
||||
|
||||
} else {
|
||||
Response.Redirect("default.aspx?installStep=theend");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3053
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.presentation.install.steps {
|
||||
|
||||
|
||||
public partial class boost {
|
||||
|
||||
/// <summary>
|
||||
/// pl_boost control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel pl_boost;
|
||||
|
||||
/// <summary>
|
||||
/// rb_install control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RadioButton rb_install;
|
||||
|
||||
/// <summary>
|
||||
/// rb_noInstall control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RadioButton rb_noInstall;
|
||||
|
||||
/// <summary>
|
||||
/// pl_nitros control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel pl_nitros;
|
||||
|
||||
/// <summary>
|
||||
/// ph_nitros control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_nitros;
|
||||
}
|
||||
}
|
||||
@@ -4,15 +4,13 @@
|
||||
<!-- database box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>
|
||||
Database configuration</h1>
|
||||
<h1>Database configuration</h1>
|
||||
<p>
|
||||
To complete this step, you must know some information regarding your database server
|
||||
(”connection string”). Please contact your ISP if necessary. If you’re installingon
|
||||
a local machine or server you might need information from your system administrator.</p>
|
||||
<p>
|
||||
<strong>If you do not have any database available,</strong> you can choose the embedded
|
||||
database which does not require any information from you ISP or system administrators.</p>
|
||||
<strong>To complete this step you will either need a blank database or if you do not have a blank database available, you can choose the SQL CE 4 embedded
|
||||
database (This is the recommended approach for first time users or if you are unsure).</strong></p>
|
||||
<p>
|
||||
If you are not using the SQL CE 4 embedded database you will need the connection details for your database, such as the
|
||||
"connection string". You may need to contact your system administrator or web host for this information.</p>
|
||||
</div>
|
||||
<!-- database -->
|
||||
<div class="database-hold">
|
||||
@@ -21,7 +19,7 @@
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>1. Do you have a blank database already installed?</strong></p>
|
||||
<strong>1. Do you have a blank database already installed OR do you want to use a SQL CE 4 embedded database?</strong></p>
|
||||
<ul class="mini-tabset">
|
||||
<li class="btn-yes"><a href="#database-step1" class="database-tab"><span>yes</span></a></li>
|
||||
<li class="btn-no"><a href="#database-step2" class="database-tab"><span>no</span></a></li>
|
||||
@@ -34,7 +32,7 @@
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>2. Now choose your database type below.</strong></p>
|
||||
<div class="row select">
|
||||
<div class="select">
|
||||
<asp:DropDownList runat="server" ID="DatabaseType" CssClass="sel">
|
||||
<asp:ListItem Value="" Text="Please choose" Selected="True" />
|
||||
<asp:ListItem Value="SqlServer" Text="Microsoft SQL Server" />
|
||||
@@ -45,30 +43,24 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- step1-2 -->
|
||||
<div id="database-step1-2">
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>3. Instructions:</strong> Please fill out the below fields to connect to
|
||||
your database.</p>
|
||||
<p class="instructionText">
|
||||
<strong>3. Connection details:</strong> Please fill out the connection information for your database.</p>
|
||||
<div class="instruction-hold">
|
||||
<div class="row embeddedError" runat="server" id="embeddedFilesMissing" style="display: none;">
|
||||
<p>
|
||||
<strong>Missing files:</strong> SQL CE 4 requires that you manually add the SQL
|
||||
CE 4 runtime to your Umbraco installation.<br />
|
||||
<a href="http://our.umbraco.org/wiki/install-and-setup/using-sql-ce-4-with-juno"
|
||||
target="_blank">More instructions</a>.
|
||||
You can either follow the instructions above to add SQL CE 4 or choose another database
|
||||
type.
|
||||
You can either use the following <a href="http://our.umbraco.org/wiki/install-and-setup/using-sql-ce-4-with-juno"
|
||||
target="_blank">instructions</a> on how to add SQL CE 4 or select another database type from the dropdown above.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="row embedded" style="display: none;">
|
||||
<p>
|
||||
<strong>Nothing to configure:</strong>SQL CE 4 does not require any configuration
|
||||
so simply click the "install" button below to continue.
|
||||
<strong>Nothing to configure:</strong>SQL CE 4 does not require any configuration,
|
||||
simply click the "install" button to continue.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -79,7 +71,7 @@
|
||||
<asp:Literal ID="lt_dbError" runat="server" /></strong></p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () { showDatabaseSettings(); });
|
||||
jQuery(document).ready(function () { showDatabaseSettings(); });
|
||||
</script>
|
||||
</asp:PlaceHolder>
|
||||
<div class="row sql" runat="server" id="DatabaseServerItem">
|
||||
@@ -130,7 +122,7 @@
|
||||
Alternatively, you can install Microsoft SQL Server, which will require a bit more work to get up and running.<br />
|
||||
We have provided a step-by-step guide in the video instructions below.
|
||||
</p>
|
||||
<span class="btn-link"><a href="http://umbraco.org/redir/InstallerNewDatabase">Open video instructions</a></span>
|
||||
<span class="btn-link"><a href="http://umbraco.org/getting-started">Open video instructions</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -147,6 +139,7 @@
|
||||
});
|
||||
</script>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder ID="installing" runat="server" Visible="false">
|
||||
<!-- installing umbraco -->
|
||||
<div class="tab install-tab" id="datebase-tab">
|
||||
@@ -154,13 +147,12 @@
|
||||
<h1>
|
||||
Installing Umbraco</h1>
|
||||
<p>
|
||||
The Umbraco database tables are being installed. This process will set-up a default
|
||||
blank Umbraco database into your chosen DB Server.</p>
|
||||
The Umbraco database is being configured. This process populates your chosen database with a blank Umbraco instance.</p>
|
||||
<div class="loader">
|
||||
<div class="hold">
|
||||
<div class="progress-bar">
|
||||
</div>
|
||||
<span class="progress-bar-value">56%</span>
|
||||
<span class="progress-bar-value">0%</span>
|
||||
</div>
|
||||
<strong></strong>
|
||||
</div>
|
||||
@@ -169,48 +161,49 @@
|
||||
<footer class="btn-box" style="display: none;">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton class="btn-step btn btn-continue" runat="server" OnClick="gotoNextStep"><span>Continue</span></asp:LinkButton>
|
||||
<asp:LinkButton class="btn-step btn btn-accept" style="display: none;" runat="server" OnClick="gotoSettings"><span>Back</span></asp:LinkButton>
|
||||
<asp:LinkButton class="btn-step btn btn-back" style="display: none;" runat="server" OnClick="gotoSettings"><span>Back</span></asp:LinkButton>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var intervalId = 0;
|
||||
var intervalId = 0;
|
||||
|
||||
jQuery(document).ready(function () {
|
||||
intervalId = setInterval("progressBarCallback()", 1000);
|
||||
jQuery(".btn-box").hide();
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: '{}',
|
||||
dataType: 'json',
|
||||
url: 'utills/p.aspx/installOrUpgrade'
|
||||
});
|
||||
});
|
||||
jQuery(document).ready(function () {
|
||||
intervalId = setInterval("progressBarCallback()", 1000);
|
||||
jQuery(".btn-box").hide();
|
||||
jQuery.ajax({
|
||||
type: 'POST',
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: '{}',
|
||||
dataType: 'json',
|
||||
url: 'utills/p.aspx/installOrUpgrade'
|
||||
});
|
||||
});
|
||||
|
||||
function progressBarCallback() {
|
||||
jQuery.getJSON('utills/p.aspx?feed=progress', function (data) {
|
||||
function progressBarCallback() {
|
||||
jQuery.getJSON('utills/p.aspx?feed=progress', function (data) {
|
||||
|
||||
updateProgressBar(data.percentage);
|
||||
updateStatusMessage(data.message)
|
||||
updateProgressBar(data.percentage);
|
||||
updateStatusMessage(data.message)
|
||||
|
||||
if (data.error != "") {
|
||||
clearInterval(intervalId);
|
||||
updateStatusMessage(data.error);
|
||||
if (data.error != "") {
|
||||
clearInterval(intervalId);
|
||||
updateStatusMessage(data.error);
|
||||
|
||||
jQuery(".loader .hold").hide();
|
||||
jQuery(".loader .hold").hide();
|
||||
|
||||
jQuery(".btn-continue").hide();
|
||||
jQuery(".btn-accept").show();
|
||||
jQuery(".btn-box").show();
|
||||
}
|
||||
jQuery(".btn-continue").hide();
|
||||
jQuery(".btn-back").show();
|
||||
jQuery(".btn-box").show();
|
||||
}
|
||||
|
||||
if (data.percentage == 100) {
|
||||
clearInterval(intervalId);
|
||||
jQuery(".btn-box").show();
|
||||
}
|
||||
});
|
||||
}
|
||||
if (data.percentage == 100) {
|
||||
clearInterval(intervalId);
|
||||
jQuery(".btn-box").show();
|
||||
jQuery('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</asp:PlaceHolder>
|
||||
@@ -231,7 +224,7 @@
|
||||
Database upgraded</h1>
|
||||
<div class="success">
|
||||
<p>
|
||||
Your database has been upgraded to the final version
|
||||
Your database has been upgraded to version:
|
||||
<%=umbraco.GlobalSettings.CurrentVersion%>.<br />
|
||||
Press <b>Continue</b> to proceed.
|
||||
</p>
|
||||
|
||||
@@ -61,7 +61,10 @@ namespace umbraco.presentation.install.steps
|
||||
{
|
||||
get {
|
||||
// check if sql ce is present
|
||||
if (!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "System.Data.SqlServerCe.dll"))))
|
||||
if (
|
||||
!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "System.Data.SqlServerCe.dll"))) ||
|
||||
!File.Exists(IOHelper.MapPath(Path.Combine(IOHelper.ResolveUrl(SystemDirectories.Bin), "SQLCE4Umbraco.dll")))
|
||||
)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
@@ -126,12 +129,11 @@ namespace umbraco.presentation.install.steps
|
||||
DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "password");
|
||||
if (string.IsNullOrEmpty(DatabasePassword.Text)) DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "pwd");
|
||||
|
||||
|
||||
toggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
toggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
|
||||
|
||||
toggleVisible(DatabaseConnectionString, ManualConnectionString);
|
||||
|
||||
// Make sure ASP.Net displays the password text
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
|
||||
<h1>Create User</h1>
|
||||
<div class="create-hold">
|
||||
<p>You can now setup a new user to log into Umbraco. Please make a note of this password.</p>
|
||||
<p>You will be able to change this once you have set the system up and logged in to the admin interface.</p>
|
||||
<p>You can now setup a new admin user to log into Umbraco, we recommend using a stong password for this (a password which is more than 4 characters and contains a mix of letters, numbers and symbols).
|
||||
Please make a note of the chosen password.</p>
|
||||
<p>The password can be changed once you have completed the installation and logged into the admin interface.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -25,41 +26,39 @@
|
||||
<div class="instruction-hold">
|
||||
|
||||
<div class="row">
|
||||
<asp:Label AssociatedControlID="tb_name" runat="server">Name:</asp:label>
|
||||
<asp:label AssociatedControlID="tb_name" runat="server">Name:</asp:label>
|
||||
<span><asp:TextBox ID="tb_name" CssClass="text" type="text" Text="admin" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_name" runat="server" ErrorMessage="Name is a mandatory field" />
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_name" runat="server" ErrorMessage="Name is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:Label AssociatedControlID="tb_email" runat="server">Email:</asp:label>
|
||||
<asp:label AssociatedControlID="tb_email" runat="server">Email:</asp:label>
|
||||
<span><asp:TextBox ID="tb_email" CssClass="text" type="text" Text="admin@domain.com" runat="server" /></span>
|
||||
|
||||
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_email" runat="server" ErrorMessage="Email is a mandatory field" />
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_email" runat="server" ErrorMessage="Email is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:Label AssociatedControlID="tb_login" runat="server">Username:</asp:label>
|
||||
<asp:label AssociatedControlID="tb_login" runat="server">Username:</asp:label>
|
||||
<span><asp:TextBox ID="tb_login" CssClass="text" type="text" Text="admin" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_login" runat="server" ErrorMessage="Username is a mandatory field" />
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_login" runat="server" ErrorMessage="Username is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row" style="height: 35px; overflow: hidden;">
|
||||
<asp:Label AssociatedControlID="tb_password" runat="server">Password:</asp:label>
|
||||
<asp:label AssociatedControlID="tb_password" runat="server">Password:</asp:label>
|
||||
<span><asp:TextBox ID="tb_password" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Username is a mandatory field" />
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Password is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:Label AssociatedControlID="tb_password_confirm" runat="server">Confirm Password:</asp:label>
|
||||
<span><asp:TextBox ID="tb_password_confirm" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
|
||||
|
||||
<asp:CompareValidator CssClass="invalidaing" ControlToCompare="tb_password" ControlToValidate="tb_password_confirm" ErrorMessage="The passwords must be identical" runat="server" />
|
||||
<asp:RequiredFieldValidator CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Username is a mandatory field" />
|
||||
<span><asp:TextBox ID="tb_password_confirm" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password_confirm" runat="server" ErrorMessage="Confirm Password is a mandatory field" />
|
||||
<asp:CompareValidator Display="Dynamic" CssClass="invalidaing" ControlToCompare="tb_password" ControlToValidate="tb_password_confirm" ErrorMessage="The passwords must be identical" runat="server" />
|
||||
</div>
|
||||
|
||||
<div class="check-hold">
|
||||
<asp:CheckBox ID="cb_newsletter" runat="server" Checked="true" />
|
||||
<asp:Label AssociatedControlID="cb_newsletter" runat="server">Sign up for our monthly newsletter</asp:label>
|
||||
<asp:label AssociatedControlID="cb_newsletter" runat="server">Sign up for our monthly newsletter</asp:label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -54,8 +54,6 @@ namespace umbraco.presentation.install.steps
|
||||
MembershipUser user = Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].GetUser(0, true);
|
||||
user.ChangePassword(u.GetPassword(), tb_password.Text.Trim());
|
||||
|
||||
u.LoginName = tb_login.Text;
|
||||
|
||||
// Is it using the default membership provider
|
||||
if (Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is UsersMembershipProvider)
|
||||
{
|
||||
@@ -73,6 +71,9 @@ namespace umbraco.presentation.install.steps
|
||||
if (!(Membership.Providers[UmbracoSettings.DefaultBackofficeProvider] is ActiveDirectoryMembershipProvider)) Membership.Providers[UmbracoSettings.DefaultBackofficeProvider].UpdateUser(user);
|
||||
}
|
||||
|
||||
// we need to update the login name here as it's set to the old name when saving the user via the membership provider!
|
||||
u.LoginName = tb_login.Text;
|
||||
|
||||
u.Save();
|
||||
|
||||
if (cb_newsletter.Checked)
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
<h1>License</h1>
|
||||
<div class="accept-hold">
|
||||
<h2>Accept the license for Umbraco CMS</h2>
|
||||
<p>By clicking the accept button (or modify the Umbraco Configuration Status in web.config), you accept the license for this software as specified in the text below.</p>
|
||||
<p>By clicking the "accept and continue" button (or by modifying the Umbraco Configuration Status in the web.config), you accept the license for this software as specified in the text below.</p>
|
||||
</div>
|
||||
<h3>The License (MIT):</h3>
|
||||
<div class="box-software">
|
||||
<p>Copyright (c) 2002 - <%=DateTime.Now.Year %> Umbraco I/S</p>
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
|
||||
<p>The above copyright and this permisson notice shall be included in all copies or substantial postions of the software.</p>
|
||||
<p><span>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRENTY OF ANY KIND, EPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USER OR OTHER DEALINGS IN THE SOFTWARE.</span></p>
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
|
||||
<p>The above copyright and this permission notice shall be included in all copies or substantial portions of the software.</p>
|
||||
<p><span>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USER OR OTHER DEALINGS IN THE SOFTWARE.</span></p>
|
||||
</div>
|
||||
<p>That’s all. That didn’t hurt did it?</p>
|
||||
</div>
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
if (data.percentage == 100) {
|
||||
clearInterval(intervalId);
|
||||
jQuery(".btn-box").show();
|
||||
jQuery('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -77,8 +78,8 @@
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>Starter kits</h1>
|
||||
<p>To help you get started we have created some basic starter kits each of which has been tailored to meet different requiremejnts.<br />
|
||||
Hover of the thumbnail to find out what each kit contains.</p>
|
||||
<p>To help you get started here are some basic starter kits. They have been tailored to suit common site configurations and install useful functionality such as blogs or image galleries.<br />
|
||||
Mouse over the icons to learn more about what the starter kits will install.</p>
|
||||
</div>
|
||||
<!-- menu -->
|
||||
<asp:PlaceHolder ID="ph_starterKits" runat="server" />
|
||||
@@ -92,7 +93,7 @@
|
||||
<div class="container">
|
||||
<h1>Install a Skin</h1>
|
||||
<div class="accept-hold">
|
||||
<p>You can now choose to skin your starter kit with one of our great designs.</p>
|
||||
<p>You can now further enhance your site by choosing one of these great skins. This will apply a default look and feel to all the pages in your site, considerably reducing development time.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- skins -->
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
$.post("utills/p.aspx?feed=twitter",
|
||||
$.post("utills/p.aspx?feed=sitebuildervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-twitter").html(data);
|
||||
jQuery("#ajax-sitebuildervids").html(data);
|
||||
});
|
||||
|
||||
$.post("utills/p.aspx?feed=blogs",
|
||||
|
||||
$.post("utills/p.aspx?feed=developervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-blogs").html(data);
|
||||
jQuery("#ajax-developervids").html(data);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,12 +23,12 @@ jQuery(document).ready(function () {
|
||||
<h1>
|
||||
You’re done...now what?</h1>
|
||||
<p>
|
||||
Excellent, you are now ready to start using Umbraco, the worlds most popular open
|
||||
Excellent, you are now ready to start using Umbraco, one of the worlds most popular open
|
||||
source .NET CMS.
|
||||
<br />
|
||||
Now why not get configuring your new installed skin?</p>
|
||||
If you installed a starter kit you can start by configuring your new site, just click "Preview your new website" and follow the instructions. Or to start adding content right away click "Set up your new website" </p>
|
||||
<ul class="btn-web">
|
||||
<li class="btn-preview-web"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank"><span>Set up your new website</span></a></li>
|
||||
<li class="btn-preview-web" id="customizeSite" runat="server"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/canvas.aspx?redir=<%= this.ResolveUrl("~/") %>&umbSkinning=true&umbSkinningConfigurator=true" target="_blank"><span>Set up your new website</span></a></li>
|
||||
<li class="btn-set"><a href="<%= umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) %>/umbraco.aspx"><span>Launch umbraco</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -36,10 +36,30 @@ jQuery(document).ready(function () {
|
||||
<div class="t">
|
||||
</div>
|
||||
<div class="hold">
|
||||
<aside class="col1">
|
||||
<h2>Useful links</h2>
|
||||
<p>We’ve put together some useful links to help you get started with Umbraco.</p>
|
||||
<nav class="links">
|
||||
<aside class="col1">
|
||||
<h2>Useful links</h2>
|
||||
<p>We’ve put together some useful links to help you get started with Umbraco.</p>
|
||||
<nav class="links">
|
||||
<ul>
|
||||
<li><a href="http://umbraco.codeplex.com/documentation" target="_blank">Getting Started Guide</a></li>
|
||||
<li><a href="http://our.umbraco.org?ref=ourFromInstaller">our.umbraco.org</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://our.umbraco.org/wiki?ref=LatestDocsFromInstaller">New documentation</a></li>
|
||||
<li><a href="http://our.umbraco.org/projects?ref=LatestProjectsFromInstaller">New Projects</a></li>
|
||||
<li><a href="http://our.umbraco.org/forum?ref=LatesTalkFromInstaller">Forum Talk</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<aside class="col2">
|
||||
<h2>Sitebuilder introduction</h2>
|
||||
<div id="ajax-sitebuildervids"><small>Loading...</small></div>
|
||||
</aside>
|
||||
<aside class="col3">
|
||||
<h2>Developer introduction</h2>
|
||||
<div id="ajax-developervids"><small>Loading...</small></div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,10 +27,8 @@ namespace umbraco.presentation.install.steps
|
||||
//errorLiteral.Text = ex.ToString();
|
||||
}
|
||||
|
||||
if (cms.businesslogic.skinning.Skinning.IsStarterKitInstalled())
|
||||
{
|
||||
///viewSite.Visible = true;
|
||||
}
|
||||
if (!cms.businesslogic.skinning.Skinning.IsStarterKitInstalled())
|
||||
customizeSite.Visible = false;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -11,5 +11,14 @@ namespace umbraco.presentation.install.steps {
|
||||
|
||||
|
||||
public partial class theend {
|
||||
|
||||
/// <summary>
|
||||
/// customizeSite control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl customizeSite;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="upgrade.ascx.cs" Inherits="umbraco.presentation.install.steps.upgrade" %>
|
||||
|
||||
<div style="text-align: center; padding: 55px;">
|
||||
<img src="images/logo.png" align="middle" title="Umbraco logo" alt="Umbraco logo" />
|
||||
<h1>Upgrading Umbraco</h1>
|
||||
|
||||
<p>
|
||||
Welcome to the umbraco upgrade wizard. This will make sure that you upgrade safely from your old version to <strong>Umbraco version <%=umbraco.GlobalSettings.CurrentVersion %></strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As this is an upgrade, <strong>the wizard might skip steps</strong> that are only needed for new umbraco installations. It might also ask you questions you've already answered once. But do not worry,
|
||||
everything is in order. Click <strong>next</strong> below to begin your upgrade.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -1,13 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace umbraco.presentation.install.steps {
|
||||
public partial class upgrade : System.Web.UI.UserControl {
|
||||
protected void Page_Load(object sender, EventArgs e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.3053
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace umbraco.presentation.install.steps {
|
||||
|
||||
|
||||
public partial class upgrade {
|
||||
}
|
||||
}
|
||||
@@ -3,27 +3,42 @@
|
||||
<!-- welcome box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>
|
||||
Welcome to the Umbraco installation</h1>
|
||||
<h2>
|
||||
Thanks a lot for downloading the Umbraco CMS installer.
|
||||
</h2>
|
||||
<p>
|
||||
You are just a few minutes away from getting up and running. The installer will
|
||||
take you through the following process:-</p>
|
||||
<ul class="text-list">
|
||||
<li><strong>1.</strong><span>Accept the easy to read License</span></li>
|
||||
<li><strong>2.</strong><span>Set up a database. There are a number of options available
|
||||
such as MS SQL Server, MS SQL Express Edition and MYSQL or you may wish to use the
|
||||
Microsoft SQL CE 4 database. You may need to consult your ISP or System Admin.</span></li>
|
||||
<li><strong>3.</strong><span>Set an Umbraco Admin password</span></li>
|
||||
<li><strong>4.</strong><span>You can then choose to install one of our great starter
|
||||
kits and a skin</span></li>
|
||||
<li><strong>5.</strong><span>But whatever you do don't forget to become part of the
|
||||
Umbraco community, one of the friendliest developer communites you will find. Its
|
||||
what makes Umbraco such a great product and great much fun to use.</span></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<asp:PlaceHolder ID="ph_install" runat="server">
|
||||
<h1>
|
||||
Welcome to the Umbraco installation</h1>
|
||||
<h2>
|
||||
Thanks for downloading the Umbraco CMS installer.
|
||||
</h2>
|
||||
<p>
|
||||
You are just a few minutes away from getting up and running. The installer will
|
||||
take you through the following process:-</p>
|
||||
<ul class="text-list">
|
||||
<li><strong>1.</strong><span>Accept the easy to read License.</span></li>
|
||||
<li><strong>2.</strong><span>Set up a database. There are a number of options available
|
||||
such as MS SQL Server, MS SQL Express Edition and MYSQL or you may wish to use the
|
||||
Microsoft SQL CE 4 database. You may need to consult your web host or system administrator.</span></li>
|
||||
<li><strong>3.</strong><span>Set an Umbraco Admin password.</span></li>
|
||||
<li><strong>4.</strong><span>You can then choose to install one of our great starter
|
||||
kits and a skin.</span></li>
|
||||
<li><strong>5.</strong><span>But whatever you do don't forget to become part of the Umbraco community, one of the friendliest developer communities you will find. It’s what makes Umbraco such a great product and so much fun to use.</span></li>
|
||||
</ul>
|
||||
<span class="enjoy">Enjoy!</span>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder ID="ph_upgrade" runat="server" Visible="false">
|
||||
<h1>Upgrading Umbraco</h1>
|
||||
<p>
|
||||
Welcome to the umbraco upgrade wizard. This will make sure that you upgrade safely from your old version to <strong>Umbraco version <%=umbraco.GlobalSettings.CurrentVersion %></strong>
|
||||
</p>
|
||||
<p>
|
||||
As this is an upgrade, <strong>the wizard might skip steps</strong> that are only needed for new umbraco installations. It might also ask you questions you've already answered once. But do not worry,
|
||||
everything is in order. Click <strong>Lets get started</strong> below to begin your upgrade.
|
||||
</p>
|
||||
<span class="enjoy">Enjoy!</span>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box">
|
||||
|
||||
@@ -18,15 +18,23 @@ namespace umbraco.presentation.install
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
|
||||
if (!String.IsNullOrEmpty(GlobalSettings.ConfigurationStatus.Trim()))
|
||||
{
|
||||
ph_install.Visible = false;
|
||||
ph_upgrade.Visible = true;
|
||||
}
|
||||
|
||||
// Check for config!
|
||||
if (GlobalSettings.Configured)
|
||||
{
|
||||
Application.Lock();
|
||||
Application["umbracoNeedConfiguration"] = null;
|
||||
Application.UnLock();
|
||||
Response.Redirect(Request.QueryString["url"] ?? "/", true);
|
||||
}
|
||||
|
||||
if (GlobalSettings.Configured)
|
||||
{
|
||||
Application.Lock();
|
||||
Application["umbracoNeedConfiguration"] = null;
|
||||
Application.UnLock();
|
||||
Response.Redirect(Request.QueryString["url"] ?? "/", true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void gotoNextStep(object sender, EventArgs e) {
|
||||
|
||||
@@ -12,6 +12,24 @@ namespace umbraco.presentation.install {
|
||||
|
||||
public partial class welcome {
|
||||
|
||||
/// <summary>
|
||||
/// ph_install control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_install;
|
||||
|
||||
/// <summary>
|
||||
/// ph_upgrade control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_upgrade;
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
|
||||
@@ -14,6 +14,12 @@ namespace umbraco.presentation.install.utills
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
// Stop Caching in IE
|
||||
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
|
||||
|
||||
// Stop Caching in Firefox
|
||||
Response.Cache.SetNoStore();
|
||||
|
||||
string feed = Request.QueryString["feed"];
|
||||
string url = "http://our.umbraco.org/html/twitter";
|
||||
|
||||
@@ -27,6 +33,12 @@ namespace umbraco.presentation.install.utills
|
||||
if (feed == "blogs")
|
||||
url = "http://our.umbraco.org/html/blogs";
|
||||
|
||||
if (feed == "sitebuildervids")
|
||||
url = "http://umbraco.org/feeds/videos/site-builder-foundation-html";
|
||||
|
||||
if (feed == "developervids")
|
||||
url = "http://umbraco.org/feeds/videos/developer-foundation-html";
|
||||
|
||||
Response.Write(library.GetXmlDocumentByUrl(url).Current.OuterXml);
|
||||
}
|
||||
}
|
||||
@@ -67,20 +79,31 @@ namespace umbraco.presentation.install.utills
|
||||
|
||||
if (m_Installer.CanConnect)
|
||||
{
|
||||
if (m_Installer.IsLatestVersion)
|
||||
Helper.setProgress( 100, "Database is up-to-date", "");
|
||||
else
|
||||
{
|
||||
if (m_Installer.IsEmpty)
|
||||
{
|
||||
Helper.setProgress( 35, "Installing tables...", "");
|
||||
//do install
|
||||
m_Installer.Install();
|
||||
if (m_Installer.IsLatestVersion) {
|
||||
|
||||
Helper.setProgress( 100, "Installation completed!", "");
|
||||
Helper.setProgress(90, "Refreshing content cache", "");
|
||||
|
||||
m_Installer = null;
|
||||
library.RefreshContent();
|
||||
|
||||
Helper.setProgress(100, "Database is up-to-date", "");
|
||||
|
||||
} else {
|
||||
if (m_Installer.IsEmpty) {
|
||||
Helper.setProgress(35, "Installing tables...", "");
|
||||
//do install
|
||||
m_Installer.Install();
|
||||
|
||||
Helper.setProgress(100, "Installation completed!", "");
|
||||
|
||||
m_Installer = null;
|
||||
|
||||
library.RefreshContent();
|
||||
return "installed";
|
||||
} else if (m_Installer.CurrentVersion == DatabaseVersion.None || m_Installer.CanUpgrade) {
|
||||
Helper.setProgress(35, "Updating database tables...", "");
|
||||
m_Installer.Install();
|
||||
|
||||
library.RefreshContent();
|
||||
return "installed";
|
||||
}
|
||||
else if (m_Installer.CurrentVersion == DatabaseVersion.None || m_Installer.CanUpgrade)
|
||||
@@ -88,13 +111,17 @@ namespace umbraco.presentation.install.utills
|
||||
Helper.setProgress( 35, "Updating database tables...", "");
|
||||
m_Installer.Install();
|
||||
|
||||
Helper.setProgress( 100, "Upgrade completed!", "");
|
||||
Helper.setProgress(100, "Upgrade completed!", "");
|
||||
|
||||
m_Installer = null;
|
||||
m_Installer = null;
|
||||
|
||||
return "upgraded";
|
||||
}
|
||||
library.RefreshContent();
|
||||
return "upgraded";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
return "no connection;";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user