diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d08b67e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +; Top-most EditorConfig file +root = true + +; 4-column space indentation +[*] +indent_style = space +indent_size = 4 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7ff0529 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,17 @@ +*.cs text=auto diff=csharp +*.html text=auto +*.htm text=auto +*.css text=auto +*.scss text=auto +*.sass text=auto +*.less text=auto +*.js text=auto +*.sql text=auto +*.ttf -text diff +*.eot -text diff +*.woff -text diff +*.woff2 -text diff +*.csproj text=auto merge=union +*.sln text=auto eol=crlf merge=union + +*.item -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f6244b2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +JointCommissionEnterprise-no-vanilla.sln +[Oo]bj/ +src/**/[Bb]in/ +specs/**/[Bb]in/ +.nuget/ +Deploy/ +_ReSharper.* +packages/ +artifacts/ +*.user +*.cache +*.suo +*.userprefs +*DS_Store +*.sln.ide +lib/System/* +!lib/System/readme.MD +!lib/Sitecore.Common/* +!lib/Sitecore.Support/* +!lib/Sitecore.XA/* +!lib/Sitecore.EXM/* +!lib/Coveo/* +!lib/S4S/* +!vendor/* +!vendor/sitecore_modules/** +!vendor/sitecore_patches/** +!scripts/Unicorn/MicroCHAP.dll +!src/Foundation/Installer/code/App_Data/** +.sonar +vars.user.cmd +/.vs +/target +/node_modules +temp/ +*.ncrunchproject +*.ncrunchsolution +.vscode +nCrunchTemp*.* +optimized-min.yml +/src/feature/IdevProductImport/IdevProductImport +$tf/ +/reference/References.txt +/src/feature/ContentImport/code/FixSummaries.aspx.designer.cs +/src/feature/ContentImport/code/FixSummaries.aspx.cs +/src/feature/ContentImport/code/FixSummaries.aspx +/src/Project/Common/code/CreateCountries.aspx.designer.cs +/src/Project/Common/code/CreateCountries.aspx.cs +/src/Project/Common/code/CreateCountries.aspx +/src/Foundation/DesignBot/code/.vs/Community.Foundation.DesignBot/v15/Server/sqlite3 diff --git a/Community.Foundation.DesignBot.sln b/Community.Foundation.DesignBot.sln new file mode 100644 index 0000000..329fb0c --- /dev/null +++ b/Community.Foundation.DesignBot.sln @@ -0,0 +1,30 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.102 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Community.Foundation.DesignBot", "src\Foundation\DesignBot\code\Community.Foundation.DesignBot.csproj", "{3DA98685-0E06-489F-87DC-A941021DB009}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ReadMe", "ReadMe", "{88DB2195-6B03-45AB-B2DC-92A075D5C825}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3DA98685-0E06-489F-87DC-A941021DB009}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DA98685-0E06-489F-87DC-A941021DB009}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DA98685-0E06-489F-87DC-A941021DB009}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DA98685-0E06-489F-87DC-A941021DB009}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E439BEAA-4949-4E71-A9DB-EEF030434729} + EndGlobalSection +EndGlobal diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 1b753ef..fa9c3c4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,31 @@ -# Community.Foundation.DesignBot -Automate bulk design changes to Sitecore presentation details +Sitecore - DesignBot +============== + +Summary +-------------- +Automate bulk design changes to Sitecore presentation details. This leverages Sitecore's rule editor field for savvy users to define design changes with pre-loaded Sitecore rule editor. These user programs can be applied to a single item or include any number of child levels, available in the Context menu of a selected item. + +Dependencies +-------------- +This module requires previous installation of Sitecore Powershell Extension (SPE) Module. SPE is used for the simplicity of adding a context menu option and dialogs. + +Usage +-------------- +1. Define Design Program +![alt text](https://github.com/digitalParkour/Community.Foundation.DesignBot/raw/master/screenshots/Define.png "Define Design Program") + +2. Apply Program to select items +![alt text](https://github.com/digitalParkour/Community.Foundation.DesignBot/raw/master/screenshots/Apply.png "Apply Design Program") + +Installation +-------------- +Either: +* Install Sitecore package. [See Releases](https://github.com/digitalParkour/Community.Foundation.DesignBot/releases). + > For CM or Standalone instances only. + +Or: +1. Include this project in your Helix style solution +2. Update NuGet references to match target sitecore version +3. Sync unicorn data or install sitecore package + > Expects Unicorn 4+ in your solution. + > If not using Unicorn, disable Foundation.RemoteCacheKick.Serialization.config \ No newline at end of file diff --git a/publishsettings.targets b/publishsettings.targets new file mode 100644 index 0000000..c415bd9 --- /dev/null +++ b/publishsettings.targets @@ -0,0 +1,5 @@ + + + http://community.local + + \ No newline at end of file diff --git a/releases/Community-Foundation-DesignBot-1.0.0.zip b/releases/Community-Foundation-DesignBot-1.0.0.zip new file mode 100644 index 0000000..784b2b1 Binary files /dev/null and b/releases/Community-Foundation-DesignBot-1.0.0.zip differ diff --git a/releases/Community-Foundation-DesignBot.xml b/releases/Community-Foundation-DesignBot.xml new file mode 100644 index 0000000..2c34a90 --- /dev/null +++ b/releases/Community-Foundation-DesignBot.xml @@ -0,0 +1,192 @@ + + + + Community-Foundation-DesignBot + james.gregory@americaneagle.com + 1.0.0 + + + + + Community.Foundation.DesignBot 1.0 + +** Requires Sitecore Powershell Extension (SPE) Module to be installed first. + +For CM or Standalone instances only. + +After installing you will create bot scripts by adding items and editing rules field under /sitecore/system/Settings/Rules/DesignBot/ + +Remember to clear selections consistently; either always first or always last on each rule set. + +Run your bot script on any item in the content tree (and optionally N levels under it) but right clicking the item in Content editor and selecting the DesignBot context option. + +To customize rule and action options further, download source code from GitHub. + +=============================================== +This package installs the following files: +=============================================== +\App_Config\Include\Foundation\Foundation.DesignBot.config +\bin\Community.Foundation.DesignBot.dll +\bin\Community.Foundation.DesignBot.pdb + +=============================================== +This package installs the following data items: +=============================================== +/sitecore/Templates/Foundation/DesignBot/* +/sitecore/system/Settings/Rules/Definitions/Tags/DesignBot/* +/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/* +/sitecore/system/Settings/Rules/DesignBot +/sitecore/system/Modules/PowerShell/Script Library/DesignBot/* + + + + + + True + + + + /master/sitecore/templates/Foundation/DesignBot/{562609B4-311F-4D1F-AC86-60FFD699732A}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/DesignBot Program/__Standard Values/{55742B6E-33DF-4598-A09D-D90A89B84837}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/DesignBot Program/{341B47CA-10DE-471E-B82D-D7FBB5C48877}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/Program Rule/__Standard Values/{809C0ECE-2D8F-4230-858A-983927436822}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/Program Rule/{14F9A24A-5697-40AD-A429-6558A90D5F5B}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/Program Rule/Data/{12D9D41D-06E7-4CA1-B985-D6CE6F0DBA16}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/Program Rule/Data/Name/{406FEF24-0886-49C5-86D2-FBABF9CEB860}/invariant/0 + /master/sitecore/templates/Foundation/DesignBot/Program Rule/Data/Rule/{709404DE-B4A9-46DC-A0EF-D1C7734454AD}/invariant/0 + + False + + + + + + + + Templates + + + + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/{42D05B0F-1F29-4E64-9AA1-C65D6DF7CF9E}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Clear Descendants Field/{1F2F1418-BE5F-44C3-8568-B0842F43CCA7}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Clear Field/{100EF220-FD5A-4B44-80CD-2102CAE5DE3B}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Set Descendants Field/{21D10AC5-387B-44E2-8751-45421E505CDF}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Set Field/{A187D372-48A9-43A6-8320-952BAC707829}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Swap Field Values/{A73D754F-7881-48C9-96C9-CE0656B4E85B}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Placeholder match/{37411546-0E80-461E-906C-99B68954C044}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Placeholder/{FE2BE19F-00AD-477B-BDE8-1BD11A93E49B}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering in Placeholder with Param/{E7788FB8-D0EE-4706-9A76-FE758F2593B3}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering in Placeholder/{ACF62966-1540-4796-87AA-D9E241F36111}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering with Placeholder/{62E3ACAE-744D-4E25-9E5F-58772741219E}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering/{4689B214-864A-42D3-B54E-99BB0FEEFE54}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Append Term/{CC76D5FA-8E31-4783-B7F5-50FC4EAFF891}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Clear/{9945789E-2BAC-4E02-8A61-CCCA46177599}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Remove Term/{CF689289-9E4B-4C59-BBD9-BDA5CA412AD0}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Set/{90DB2B4B-3E5C-4F9D-8EB3-F386347F4F6A}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - All in Placeholder/{BFFEC3F4-9F8A-470E-A454-D8FC52531E9C}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - All/{B0C976E8-B99F-437C-9DFE-3E67A17A3BC4}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Clear/{CD96BA64-565D-4584-B35B-EADEA1FAEEA0}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Device/{3A2C8EBB-0327-4126-AC5F-768D7F6849EB}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First in Placeholder/{E6FFFCB3-835D-48B3-926C-271C2E6949FF}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering by Placeholder and Param/{917B87C4-B6E9-46E6-9DEE-B92A5BC12FC9}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering by Placeholder/{63B97D48-8E7A-489E-86BF-FF9444CD5206}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering/{5EC49499-AD66-4A5F-AAAA-146B9537FDD2}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Inverse/{08EDC6BB-8731-46B3-AC60-DFA3CD4D27E7}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last in Placeholder/{3AFEF4D3-3FAF-414A-BF78-242D0600A50D}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last Rendering by Placeholder/{C82515EC-2DE3-4D3B-A580-6474084EE311}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last Rendering/{40FBEF4A-CB7C-499C-8F5D-6DB5989E8606}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Placeholder match/{1B345278-CC26-4891-B4AD-807FDAC06BAE}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Placeholder with Range/{5D1EFFD9-6F2E-48BA-A5EA-E168E8913854}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Param/{3AF43C06-B6CB-437B-B48A-20B8911EBAF4}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Placeholder and Param/{34F53FDD-0C99-4DA0-A46B-7D60B3F21FD8}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Placeholder match/{50291657-5B6E-4E5C-9193-81373D44801D}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Datasource Field/{2F8DE26B-717F-41F8-825A-8E5924F7D8F5}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Placeholder with Range/{082B6ED4-980B-47F5-BF40-92DFD8D9553A}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Placeholder/{BE6DC7B3-27DF-4358-BB0E-B8C7381407C2}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings/{0331ED24-FA79-4B6D-B6D6-C17915BC3671}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - move to/{AB0A78CD-7161-4863-B642-0FE15EEE923F}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - remove segment/{47E77A7D-30AB-46F7-B595-E14C59F826E4}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - set/{B67F50CC-C697-43CC-B93F-3A6CC5F78FF2}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - swap/{0A7F150B-9493-43AD-96C7-9E3384861B2E}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move before/{E42E1445-9ACE-4723-9758-16D5C08B0899}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move to front/{686DF7A5-B696-4A9C-9A12-7A85CD98063A}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move/{9A0C8D71-BDC8-4BBB-9CB3-79DFC0A50100}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - remove all selected/{64C1A868-174E-4E51-8B52-439A03B34C12}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - remove certain selected/{D4A104D7-5444-46F4-AA50-40B66DC2EF98}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - sort by placeholder paths/{BCBB6A02-3BF9-419A-9E4F-97297D20DFB6}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Tags/{949A9512-86AF-4022-94F3-42F1F4DCBAA8}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Tags/Default/{6882785B-6821-4702-9093-9BB28FD59436}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Visibility/{9419E4CF-F545-49C2-82C5-C3AF5A1A50FD}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Tags/DesignBot/{CA29398A-ED15-4723-B025-05D4EC12E629}/invariant/0 + /master/sitecore/system/Settings/Rules/Definitions/Tags/DesignBot/Visibility/{5FD62B6E-B08A-4A6A-945D-599734965444}/invariant/0 + /master/sitecore/system/Settings/Rules/DesignBot/{AEBC97C1-8E3C-4073-A849-83569CDEDD6F}/invariant/0 + /master/sitecore/system/Settings/Rules/DesignBot/Rules/{A6FC9765-0343-4F2A-A20D-3C9FA895996D}/invariant/0 + /master/sitecore/system/Settings/Rules/DesignBot/Tags/{61C64655-9D11-4894-8E8C-4121A7C4C1E8}/invariant/0 + /master/sitecore/system/Settings/Rules/DesignBot/Tags/Default/{BBE87145-474A-438A-BE6D-A4D797A71D34}/invariant/0 + + False + + + + + + + + Rules + + + + /master/sitecore/system/Modules/PowerShell/Script Library/DesignBot/{09EB22CA-E0A4-47AB-A293-E9EA537E9F99}/invariant/0 + /master/sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor/{34982275-72AB-40F8-8029-B0D2DF906438}/invariant/0 + /master/sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor/Context Menu/{86317DF1-C537-4C03-8F19-53A3786E19F2}/invariant/0 + /master/sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor/Context Menu/DesignBot/{957AE84F-A008-476B-B3A1-E34DE543A950}/invariant/0 + + False + + + + + + + + Context Menu + + + + /bin/Community.Foundation.DesignBot.dll + /bin/Community.Foundation.DesignBot.pdb + + + + / + + + + + + dlls + + + + /App_Config/Include/Foundation/Foundation.DesignBot.config + + + + / + + + + + + Config + + + + + + + + + + + diff --git a/screenshots/Apply.png b/screenshots/Apply.png new file mode 100644 index 0000000..111b783 Binary files /dev/null and b/screenshots/Apply.png differ diff --git a/screenshots/Define.png b/screenshots/Define.png new file mode 100644 index 0000000..48835fa Binary files /dev/null and b/screenshots/Define.png differ diff --git a/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.Serialization.config b/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.Serialization.config new file mode 100644 index 0000000..c650882 --- /dev/null +++ b/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.Serialization.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.config b/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.config new file mode 100644 index 0000000..de51f77 --- /dev/null +++ b/src/Foundation/DesignBot/code/App_Config/Include/Foundation/Foundation.DesignBot.config @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Community.Foundation.DesignBot.csproj b/src/Foundation/DesignBot/code/Community.Foundation.DesignBot.csproj new file mode 100644 index 0000000..2f3902f --- /dev/null +++ b/src/Foundation/DesignBot/code/Community.Foundation.DesignBot.csproj @@ -0,0 +1,175 @@ + + + + + + Debug + AnyCPU + + + 2.0 + {3DA98685-0E06-489F-87DC-A941021DB009} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + Community.Foundation.DesignBot + Community.Foundation.DesignBot + v4.6.2 + true + + + + + + + + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + true + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\..\..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.5\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + + + + ..\..\..\..\packages\Sitecore.ContentTesting.NoReferences.8.2.171121\lib\NET452\Sitecore.ContentTesting.dll + + + ..\..\..\..\packages\Sitecore.Kernel.NoReferences.8.2.171121\lib\NET452\Sitecore.Kernel.dll + + + ..\..\..\..\packages\Sitecore.Logging.NoReferences.8.2.171121\lib\NET452\Sitecore.Logging.dll + + + + + + + + + + + + + + + + + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Web.config + + + Web.config + + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + False + True + 50713 + / + http://localhost:50713/ + False + True + http://tjc.local + False + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Comparer/RenderingComparer.cs b/src/Foundation/DesignBot/code/Comparer/RenderingComparer.cs new file mode 100644 index 0000000..f9f80f1 --- /dev/null +++ b/src/Foundation/DesignBot/code/Comparer/RenderingComparer.cs @@ -0,0 +1,25 @@ +using Sitecore; +using Sitecore.Layouts; +using System.Collections; + +namespace Community.Foundation.DesignBot.Comparer +{ + public class RenderingComparer : IComparer + { + public int Compare(RenderingDefinition x, RenderingDefinition y) + { + if (x == null || y == null) + return 0; + + return string.Compare( + StringUtil.EnsurePrefix('/', x.Placeholder), + StringUtil.EnsurePrefix('/', y.Placeholder) + ); + } + + public int Compare(object x, object y) + { + return Compare(x as RenderingDefinition, y as RenderingDefinition); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Constants/Items.cs b/src/Foundation/DesignBot/code/Constants/Items.cs new file mode 100644 index 0000000..4a2fe43 --- /dev/null +++ b/src/Foundation/DesignBot/code/Constants/Items.cs @@ -0,0 +1,10 @@ +namespace Community.Foundation.DesignBot.Constants +{ + public struct Items + { + public struct Device + { + public const string DefaultId = "{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}"; + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Extensions/ItemExtensions.cs b/src/Foundation/DesignBot/code/Extensions/ItemExtensions.cs new file mode 100644 index 0000000..2941113 --- /dev/null +++ b/src/Foundation/DesignBot/code/Extensions/ItemExtensions.cs @@ -0,0 +1,36 @@ +using Sitecore; +using Sitecore.Data.Items; + +namespace Community.Foundation.DesignBot.Extensions +{ + public static class ItemExtensions + { + /// + /// Add version, select and return that new version, match workflow state + /// + /// + /// + public static Item AsNewVersion(this Item item, bool matchWorkflowState = false) { + // save current workflow state + var workflowState = item[FieldIDs.WorkflowState]; + var workflow = item[FieldIDs.Workflow]; + + item.Versions.AddVersion(); + // Now get new Version + item = item.Database.GetItem(item.ID); + + // Match workflow + if (matchWorkflowState && item[FieldIDs.WorkflowState] != workflowState) + { + item.Editing.BeginEdit(); + { + item[FieldIDs.Workflow] = workflow; + item[FieldIDs.WorkflowState] = workflowState; + } + item.Editing.EndEdit(); + } + + return item; + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Extensions/RenderingExtensions.cs b/src/Foundation/DesignBot/code/Extensions/RenderingExtensions.cs new file mode 100644 index 0000000..8626f19 --- /dev/null +++ b/src/Foundation/DesignBot/code/Extensions/RenderingExtensions.cs @@ -0,0 +1,27 @@ +using Sitecore.Data; +using Sitecore.Data.Items; +using Sitecore.Layouts; + +namespace Community.Foundation.DesignBot.Extensions +{ + public static class RenderingExtensions + { + + public static Item GetDatasourceItem(this RenderingDefinition rendering, Item page) { + + var db = page?.Database; + + // Handle SXA style datasources + if (page != null && rendering.Datasource.StartsWith("local:")) + { + // Build absolute path from relative path + return db?.GetItem($"{page.Paths.FullPath}{rendering.Datasource.Remove(0, "local:".Length)}"); + } + + ID dataId; + return ID.TryParse(rendering.Datasource, out dataId) + ? db?.GetItem(dataId) // by ID + : db?.GetItem(rendering.Datasource); // by Path + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Logging/BotLog.cs b/src/Foundation/DesignBot/code/Logging/BotLog.cs new file mode 100644 index 0000000..f0651c0 --- /dev/null +++ b/src/Foundation/DesignBot/code/Logging/BotLog.cs @@ -0,0 +1,16 @@ +using log4net; + +namespace Community.Foundation.DesignBot +{ + public static class BotLog + { + private static ILog log; + public static ILog Log + { + get + { + return log ?? (log = Sitecore.Diagnostics.LoggerFactory.GetLogger(typeof(BotLog))); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Properties/AssemblyInfo.cs b/src/Foundation/DesignBot/code/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4b39e2a --- /dev/null +++ b/src/Foundation/DesignBot/code/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Community.Foundation.DesignBot")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Community.Foundation.DesignBot")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3da98685-0e06-489f-87dc-a941021db009")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Foundation/DesignBot/code/Properties/PublishProfiles/Local.pubxml b/src/Foundation/DesignBot/code/Properties/PublishProfiles/Local.pubxml new file mode 100644 index 0000000..2739d01 --- /dev/null +++ b/src/Foundation/DesignBot/code/Properties/PublishProfiles/Local.pubxml @@ -0,0 +1,18 @@ + + + + + + + FileSystem + Debug + Any CPU + + True + False + False + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/ClearPicks.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/ClearPicks.cs new file mode 100644 index 0000000..dff8eb7 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/ClearPicks.cs @@ -0,0 +1,22 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class ClearPicks : RuleAction + where T : DesignBotRuleContext + { + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"PICK - cleared picks"); + Log.Info($"DESIGNBOT:: PICK - cleared picks", this); + ruleContext.SelectedRenderings.Clear(); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/InvertSelection.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/InvertSelection.cs new file mode 100644 index 0000000..71e7ad9 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/InvertSelection.cs @@ -0,0 +1,25 @@ +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class InvertSelection : RuleAction + where T : DesignBotRuleContext + { + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"PICK - inverted picks"); + Log.Info($"DESIGNBOT:: PICK - inverted picks", this); + + ruleContext.SelectedRenderings = ruleContext.SelectedDevice.Renderings.Cast() + .Where(x => !ruleContext.SelectedRenderings.Any(i => i.UniqueId == x.UniqueId)).ToList(); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickAll.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickAll.cs new file mode 100644 index 0000000..9d55808 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickAll.cs @@ -0,0 +1,24 @@ +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class PickAll : RuleAction + where T : DesignBotRuleContext + { + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"PICK - picked all renderings"); + Log.Info($"DESIGNBOT:: PICK - picked all renderings", this); + + ruleContext.SelectedRenderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickDevice.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickDevice.cs new file mode 100644 index 0000000..ce0a516 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickDevice.cs @@ -0,0 +1,23 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + public class PickDevice : RuleAction where T : DesignBotRuleContext + { + public string DeviceId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, nameof(ruleContext)); + + if (string.IsNullOrWhiteSpace(DeviceId)) + return; + + BotLog.Log.Info($"PICK - picked device"); + Log.Info($"DESIGNBOT:: PICK - picked device", this); + ruleContext.SelectedDevice = ruleContext.FinalLayout.GetDevice(DeviceId); + } + } +} + diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickFirstRendering.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickFirstRendering.cs new file mode 100644 index 0000000..14f13d5 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickFirstRendering.cs @@ -0,0 +1,14 @@ +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class PickFirstRendering : PickRenderings + where T : DesignBotRuleContext + { + public PickFirstRendering() + { + First = true; + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickLastRendering.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickLastRendering.cs new file mode 100644 index 0000000..ac8085a --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickLastRendering.cs @@ -0,0 +1,14 @@ +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class PickLastRendering : PickRenderings + where T : DesignBotRuleContext + { + public PickLastRendering() + { + Last = true; + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderings.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderings.cs new file mode 100644 index 0000000..178dbb5 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderings.cs @@ -0,0 +1,142 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using Sitecore.Rules.Conditions; +using Sitecore.Text; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class PickRenderings : RuleAction + where T : DesignBotRuleContext + { + public string PlaceholderPath { get; set; } + public string RenderingId { get; set; } + + public bool First { get; set; } + public bool Last { get; set; } + public int Skip { get; set; } + public int Take { get; set; } + + public string Param { get; set; } + public ID DsFieldId { get; set; } + public string Value { get; set; } + public string OperatorId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + var renderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + if (!string.IsNullOrWhiteSpace(PlaceholderPath)) + { + renderings = renderings.Where(x => x.Placeholder.Equals(PlaceholderPath, StringComparison.OrdinalIgnoreCase)).ToList(); + } + if (!string.IsNullOrWhiteSpace(RenderingId)) + { + renderings = renderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).ToList(); + } + if (!string.IsNullOrWhiteSpace(Param)) + { + renderings = renderings.Where(MatchesParamCriteria).ToList(); + } + if (DsFieldId != (ID)null) + { + var qIds = new List(); + foreach(var r in renderings) + { + var dsItem = r.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + // Special Empty case (shortcut) + if (Value.Equals("EMPTY", StringComparison.OrdinalIgnoreCase)) + { + if (string.IsNullOrWhiteSpace(dsItem[DsFieldId])) + { + qIds.Add(r.UniqueId); + } + } + else if (dsItem[DsFieldId] != null && Compare(dsItem[DsFieldId], Value)) + { + qIds.Add(r.UniqueId); + } + } + renderings = renderings.Where(x => qIds.Contains(x.UniqueId)).ToList(); + } + + if (renderings.Any()) + { + if (First) + { + var r = renderings.First(); + if (!ruleContext.SelectedRenderings.Any(x=>x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + else if (Last) + { + var r = renderings.Last(); + if (!ruleContext.SelectedRenderings.Any(x => x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + else if (Take > 0) + { + foreach(var r in renderings.Skip(Skip).Take(Take) ) + { + if (!ruleContext.SelectedRenderings.Any(x => x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + } + else + { + foreach (var r in renderings) + { + if (!ruleContext.SelectedRenderings.Any(x => x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + } + } + + BotLog.Log.Info($"PICK - Attempted Add... Current Selection({ruleContext.SelectedRenderings.Count}): {string.Join(",",ruleContext.SelectedRenderings.Select(x=>x.UniqueId))}"); + Log.Info($"DESIGNBOT:: PICK - Attempted Add... Current Selection({ruleContext.SelectedRenderings.Count}): {string.Join(",", ruleContext.SelectedRenderings.Select(x => x.UniqueId))}", this); + } + + + protected bool MatchesParamCriteria(RenderingDefinition r) + { + var urlString = new UrlString(r.Parameters); + if (string.IsNullOrWhiteSpace(urlString[Param])) + return false; + return Compare(HttpUtility.UrlDecode(urlString[Param]), HttpUtility.UrlDecode(Value)); + } + + /// + /// Compares the specified value0. + /// + /// The value0. + /// The value1. + /// The boolean. + protected bool Compare(string value0, string value1) + { + Assert.ArgumentNotNull(value0, "value0"); + Assert.ArgumentNotNull(value1, "value1"); + return ConditionsUtility.CompareStrings(value0, value1, this.OperatorId); + } + + /// + /// Gets the operator. + /// + /// Returns the condition operator. + protected StringConditionOperator GetOperator() + { + return ConditionsUtility.GetStringConditionOperatorById(this.OperatorId); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderingsByPlaceholder.cs b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderingsByPlaceholder.cs new file mode 100644 index 0000000..e72de19 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Choose/PickRenderingsByPlaceholder.cs @@ -0,0 +1,95 @@ +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using Sitecore.Rules.Conditions; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class PickRenderingsByPlaceholder : RuleAction + where T : DesignBotRuleContext + { + public string RenderingId { get; set; } + + public int Skip { get; set; } + public int Take { get; set; } + + public string Value { get; set; } + public string OperatorId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + var renderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + if (!string.IsNullOrWhiteSpace(RenderingId)) + { + renderings = renderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + var qIds = new List(); + foreach (var r in renderings) + { + if (Compare(StringUtil.EnsurePrefix('/', r.Placeholder),Value)) + { + qIds.Add(r.UniqueId); + } + } + renderings = renderings.Where(x => qIds.Contains(x.UniqueId)).ToList(); + + + if (renderings.Any()) + { + if (Take > 0) + { + foreach(var r in renderings.Skip(Skip).Take(Take) ) + { + if (!ruleContext.SelectedRenderings.Any(x => x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + } + else + { + foreach (var r in renderings) + { + if (!ruleContext.SelectedRenderings.Any(x => x.UniqueId.Equals(r.UniqueId))) + ruleContext.SelectedRenderings.Add(r); + } + } + } + + BotLog.Log.Info($"PICK - Attempted Add... Current Selection({ruleContext.SelectedRenderings.Count}): {string.Join(",",ruleContext.SelectedRenderings.Select(x=>x.UniqueId))}"); + Log.Info($"DESIGNBOT:: PICK - Attempted Add... Current Selection({ruleContext.SelectedRenderings.Count}): {string.Join(",", ruleContext.SelectedRenderings.Select(x => x.UniqueId))}", this); + } + + + + /// + /// Compares the specified value0. + /// + /// The value0. + /// The value1. + /// The boolean. + protected bool Compare(string value0, string value1) + { + Assert.ArgumentNotNull(value0, "value0"); + Assert.ArgumentNotNull(value1, "value1"); + return ConditionsUtility.CompareStrings(value0, value1, this.OperatorId); + } + + /// + /// Gets the operator. + /// + /// Returns the condition operator. + protected StringConditionOperator GetOperator() + { + return ConditionsUtility.GetStringConditionOperatorById(this.OperatorId); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceDescendantsField.cs b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceDescendantsField.cs new file mode 100644 index 0000000..d601f67 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceDescendantsField.cs @@ -0,0 +1,62 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using System; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Datasource +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class ClearDatasourceDescendantsField : RuleAction + where T : DesignBotRuleContext + { + public ID TemplateId { get; set; } + public ID FieldId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(TemplateId, "TemplateId"); + Assert.ArgumentNotNullOrEmpty(FieldId, "FieldId"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + var dsItem = rendering.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + + var subItems = dsItem.Axes.GetDescendants().Where(x => x.TemplateID.Equals(TemplateId)).ToList(); + foreach(var subItem in subItems) + { + if (!string.IsNullOrEmpty(subItem[FieldId])) + { + try + { + var sItem2 = subItem.AsNewVersion(matchWorkflowState:true); + sItem2.Editing.BeginEdit(); + sItem2[FieldId] = null; + sItem2.Editing.EndEdit(); + BotLog.Log.Info($"UPDATED datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId}"); + Log.Info($"DESIGNBOT:: UPDATED datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId}", this); + } + catch (Exception ex) + { + BotLog.Log.Error($"UPDATE FAILED on datasource descendant item {subItem.DisplayName}, {subItem.ID}, attempting to clear field id {FieldId}", ex); + Log.Error($"DESIGNBOT:: UPDATE FAILED on datasource descendant item {subItem.DisplayName}, {subItem.ID}, attempting to clear field id {FieldId}", ex, this); + throw; + } + } + else + { + BotLog.Log.Info($"Skipped datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} already empty"); + Log.Info($"DESIGNBOT:: Skipped datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} already empty", this); + } + } + + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceField.cs b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceField.cs new file mode 100644 index 0000000..e734cd5 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/ClearDatasourceField.cs @@ -0,0 +1,56 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using System; + +namespace Community.Foundation.DesignBot.Rules.Actions.Datasource +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class ClearDatasourceField : RuleAction + where T : DesignBotRuleContext + { + public ID FieldId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(FieldId, "FieldId"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + var dsItem = rendering.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + + if (!string.IsNullOrEmpty(dsItem[FieldId])) + { + try + { + dsItem = dsItem.AsNewVersion(matchWorkflowState: true); + dsItem.Editing.BeginEdit(); + dsItem[FieldId] = null; + dsItem.Editing.EndEdit(); + BotLog.Log.Info($"UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, cleared field id {FieldId}"); + Log.Info($"DESIGNBOT:: UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, cleared field id {FieldId}",this); + } + catch (Exception ex) + { + BotLog.Log.Error($"UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, attempting to clear field id {FieldId}", ex); + Log.Error($"DESIGNBOT:: UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, attempting to clear field id {FieldId}", ex, this); + throw; + } + } + else + { + BotLog.Log.Info($"Skipped datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} already empty"); + Log.Info($"DESIGNBOT:: Skipped datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} already empty", this); + } + + + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceDescendantsField.cs b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceDescendantsField.cs new file mode 100644 index 0000000..c98399c --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceDescendantsField.cs @@ -0,0 +1,61 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using System; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Datasource +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class SetDatasourceDescendantsField : RuleAction + where T : DesignBotRuleContext + { + public ID TemplateId { get; set; } + public ID FieldId { get; set; } + public string Value { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(TemplateId, "TemplateId"); + Assert.ArgumentNotNullOrEmpty(FieldId, "FieldId"); + Assert.ArgumentNotNullOrEmpty(Value, "Value"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + var dsItem = rendering.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + + var subItems = dsItem.Axes.GetDescendants().Where(x => x.TemplateID.Equals(TemplateId)).ToList(); + foreach(var subItem in subItems) + { + if(subItem[FieldId] != Value) + { + try + { + var sItem2 = subItem.AsNewVersion(matchWorkflowState: true); + sItem2.Editing.BeginEdit(); + sItem2[FieldId] = Value; + sItem2.Editing.EndEdit(); + BotLog.Log.Info($"UPDATED datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} to value '{Value}'"); + Log.Info($"DESIGNBOT:: UPDATED datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} to value '{Value}'", this); + } + catch(Exception ex) + { + BotLog.Log.Error($"UPDATE FAILED on datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} attempting value '{Value}'", ex); + Log.Error($"DESIGNBOT:: UPDATE FAILED on datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} attempting value '{Value}'", ex, this); + throw; + } + } else + BotLog.Log.Info($"Skipped datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} already matches value '{Value}'"); + Log.Info($"DESIGNBOT:: Skipped datasource descendant item {subItem.DisplayName}, {subItem.ID}, field id {FieldId} already matches value '{Value}'", this); + } + + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceField.cs b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceField.cs new file mode 100644 index 0000000..e92d4a5 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SetDatasourceField.cs @@ -0,0 +1,55 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using System; + +namespace Community.Foundation.DesignBot.Rules.Actions.Datasource +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class SetDatasourceField : RuleAction + where T : DesignBotRuleContext + { + public ID FieldId { get; set; } + public string Value { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(FieldId, "FieldId"); + Assert.ArgumentNotNullOrEmpty(Value, "Value"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + var dsItem = rendering.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + + if(dsItem[FieldId] != Value) + { + try + { + dsItem = dsItem.AsNewVersion(matchWorkflowState: true); + dsItem.Editing.BeginEdit(); + dsItem[FieldId] = Value; + dsItem.Editing.EndEdit(); + BotLog.Log.Info($"UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} to value '{Value}'"); + Log.Info($"DESIGNBOT:: UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} to value '{Value}'", this); + } + catch(Exception ex) + { + BotLog.Log.Error($"UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} attempting value '{Value}'", ex); + Log.Error($"DESIGNBOT:: UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} attempting value '{Value}'", ex, this); + throw; + } + } else + BotLog.Log.Info($"Skipped datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} already matches value '{Value}'"); + Log.Info($"DESIGNBOT:: Skipped datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldId} already matches value '{Value}'", this); + + + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SwapDatasourceFields.cs b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SwapDatasourceFields.cs new file mode 100644 index 0000000..a57ee98 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Datasource/SwapDatasourceFields.cs @@ -0,0 +1,54 @@ +using Community.Foundation.DesignBot.Extensions; +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using System; + +namespace Community.Foundation.DesignBot.Rules.Actions.Datasource +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class SwapDatasourceFields : RuleAction + where T : DesignBotRuleContext + { + public ID FieldIdA { get; set; } + public ID FieldIdB { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(FieldIdA, "FieldIdA"); + Assert.ArgumentNotNullOrEmpty(FieldIdB, "FieldIdB"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + var dsItem = rendering.GetDatasourceItem(ruleContext.Item); + if (dsItem == null) + continue; + + try + { + dsItem = dsItem.AsNewVersion(matchWorkflowState: true); + dsItem.Editing.BeginEdit(); + { + var swap = dsItem[FieldIdA]; + dsItem[FieldIdA] = dsItem[FieldIdB]; + dsItem[FieldIdB] = swap; + } + dsItem.Editing.EndEdit(); + BotLog.Log.Info($"UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, swapped field id {FieldIdA} value with field id {FieldIdB}"); + Log.Info($"DESIGNBOT:: UPDATED datasource item {dsItem.DisplayName}, {dsItem.ID}, swapped field id {FieldIdA} value with field id {FieldIdB}", this); + } + catch(Exception ex) + { + dsItem.Editing.CancelEdit(); + BotLog.Log.Error($"UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldIdA} attempting swap with field id {FieldIdB}", ex); + Log.Error($"DESIGNBOT:: UPDATE FAILED on datasource item {dsItem.DisplayName}, {dsItem.ID}, field id {FieldIdA} attempting swap with field id {FieldIdB}", ex, this); + throw; + } + + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Layout/SetLayout.cs b/src/Foundation/DesignBot/code/Rules/Actions/Layout/SetLayout.cs new file mode 100644 index 0000000..b2eea70 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Layout/SetLayout.cs @@ -0,0 +1,25 @@ +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Choose +{ + /// + /// Set Layout of selected device + /// + public class SetLayout : RuleAction + where T : DesignBotRuleContext + { + public ID LayoutId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"LAYOUT - set to {LayoutId}"); + Log.Info($"DESIGNBOT:: LAYOUT - set to {LayoutId}", this); + + ruleContext.SelectedDevice.Layout = LayoutId.ToString(); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/AppendParameterTermAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/AppendParameterTermAction.cs new file mode 100644 index 0000000..4b7b991 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/AppendParameterTermAction.cs @@ -0,0 +1,70 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using Sitecore.Text; +using System.Web; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// "set multilist [parameter], append [term]" + /// Add (if not already exists) one term of a delimited parameter value + /// Example: add one ID to a multilist + /// + /// + public class AppendParameterTermAction : RuleAction + where T : DesignBotRuleContext + { + public string Name { get; set; } // Name of rendering param + public string Term { get; set; } // Term of rendering param value to remove + public string Delimiter { get; set; } // Example "|" ... originally tried adding this as input to rule, but, oddly a single pipe as a value breaks the UI + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(Name, "Name"); + Assert.ArgumentNotNullOrEmpty(Term, "Term"); + // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter"); + Delimiter = "|"; // hard code for now + + foreach (var rendering in ruleContext.SelectedRenderings) + { + // Simple case, no parameters, set our name-value directly (no conflicts) + if (string.IsNullOrWhiteSpace(rendering.Parameters)) + { + rendering.Parameters = $"{Name}={Term ?? string.Empty}"; + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this); + continue; + } + + var urlString = new UrlString(rendering.Parameters); + var rawValue = urlString.Parameters[Name]; + + // Missing parameter case, add our name-value to list + if (string.IsNullOrWhiteSpace(rawValue)) + { + urlString.Append(Name, Term ?? string.Empty); + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this); + continue; + } + + if (!rawValue.EndsWith(Delimiter)) + rawValue += Delimiter; + + // Case already exists + if (string.Concat(Delimiter, HttpUtility.UrlDecode(rawValue)).Contains(string.Concat(Delimiter, HttpUtility.UrlDecode(Term), Delimiter))) + continue; + + rawValue += Term; + urlString.Append(Name, rawValue); + rendering.Parameters = urlString.GetUrl(); + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} added term '{Term}'", this); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearFriendlyParameterAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearFriendlyParameterAction.cs new file mode 100644 index 0000000..71b4dde --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearFriendlyParameterAction.cs @@ -0,0 +1,31 @@ +using Sitecore.Data; +using Sitecore.Diagnostics; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class ClearFriendlyParameterAction : ClearParameterAction + where T : DesignBotRuleContext + { + public string ParameterId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + // Map Parameter option + ID paramID; + if (ID.TryParse(ParameterId, out paramID)) + { + Name = Sitecore.Context.Database?.GetItem(paramID)?.Name; + } + + if (string.IsNullOrWhiteSpace(Name)) + return; + + base.Apply(ruleContext); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearParameterAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearParameterAction.cs new file mode 100644 index 0000000..c814f39 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/ClearParameterAction.cs @@ -0,0 +1,43 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using Sitecore.Text; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class ClearParameterAction : RuleAction + where T : DesignBotRuleContext + { + public string Name { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(Name, "Name"); + + foreach (var rendering in ruleContext.SelectedRenderings) + { + // Simple case, no parameters, nothing to remove + if (string.IsNullOrWhiteSpace(rendering.Parameters)) + { + continue; + } + + // Parse case + var urlString = new UrlString(rendering.Parameters); + if (string.IsNullOrEmpty(urlString.Parameters[Name])) + { + continue; // does not exist, nothing to remove + } + + urlString.Remove(Name); + rendering.Parameters = urlString.GetUrl(); + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) cleared parameter {Name}"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) cleared parameter {Name}", this); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/RemoveParameterTermAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/RemoveParameterTermAction.cs new file mode 100644 index 0000000..a26fa5f --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/RemoveParameterTermAction.cs @@ -0,0 +1,61 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using Sitecore.Text; +using System; +using System.Linq; +using System.Web; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// "set multilist [parameter], remove [term] (if exists)" + /// Remove (if exists) one term of a delimited parameter value + /// Example: remove one ID from a multilist + /// + public class RemoveParameterTermAction : RuleAction + where T : DesignBotRuleContext + { + public string Name { get; set; } // Name of rendering param + public string Term { get; set; } // Term of rendering param value to remove + public string Delimiter { get; set; } // Example "|" ... ugh this breaks the UI + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(Name, "Name"); + Assert.ArgumentNotNullOrEmpty(Term, "Term"); + // Assert.ArgumentNotNullOrEmpty(Delimiter, "Delimiter"); + Delimiter = "|"; + + foreach (var rendering in ruleContext.SelectedRenderings) + { + // Simple case, no value, nothing to clear + if (string.IsNullOrWhiteSpace(rendering.Parameters)) + { + continue; + } + + // Missing parameter case, nothing to clear + var urlString = new UrlString(rendering.Parameters); + var rawValue = urlString.Parameters[Name]; + if (string.IsNullOrWhiteSpace(rawValue)) + continue; + + // Missing value case, nothing to clear + var valueList = rawValue.Split(new string[] { Delimiter }, StringSplitOptions.RemoveEmptyEntries); + if (!valueList.Any(x => x != null && HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term)))) + continue; + + // Remove term + var newList = string.Join(Delimiter, + valueList.Where(x => x != null && !HttpUtility.UrlDecode(x).Equals(HttpUtility.UrlDecode(Term), StringComparison.OrdinalIgnoreCase)) + ); + urlString.Append(Name, newList ?? string.Empty); + rendering.Parameters = urlString.GetUrl(); + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} removed term '{Term}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} removed term '{Term}'", this); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetFriendlyParameterAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetFriendlyParameterAction.cs new file mode 100644 index 0000000..e9bf43f --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetFriendlyParameterAction.cs @@ -0,0 +1,31 @@ +using Sitecore.Data; +using Sitecore.Diagnostics; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class SetFriendlyParameterAction : SetParameterAction + where T : DesignBotRuleContext + { + public string ParameterId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + // Map Parameter option + ID paramID; + if (ID.TryParse(ParameterId, out paramID)) + { + Name = Sitecore.Context.Database?.GetItem(paramID)?.Name; + } + + if (string.IsNullOrWhiteSpace(Name)) + return; + + base.Apply(ruleContext); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetParameterAction.cs b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetParameterAction.cs new file mode 100644 index 0000000..b69079c --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Parameters/SetParameterAction.cs @@ -0,0 +1,50 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using Sitecore.Text; +using System.Web; + +namespace Community.Foundation.DesignBot.Rules.Actions.Parameters +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class SetParameterAction : RuleAction + where T : DesignBotRuleContext + { + public string Name { get; set; } + public string Value { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNullOrEmpty(Name, "Name"); + + foreach(var rendering in ruleContext.SelectedRenderings) + { + // Simple case, no existing parameters + if (string.IsNullOrWhiteSpace(rendering.Parameters)) + { + rendering.Parameters = $"{Name}={Value ?? string.Empty}}}"; + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this); + continue; + } + + // Parse case, set new value keeping other name-value pairs + + // Value matches case, exit + var urlString = new UrlString(rendering.Parameters); + if (!string.IsNullOrWhiteSpace(urlString[Name]) + && HttpUtility.UrlDecode(urlString[Name]).Equals(HttpUtility.UrlDecode(Value))) + continue; + + urlString.Append(Name,Value ?? string.Empty); + rendering.Parameters = urlString.GetUrl(); + ruleContext.HasLayoutChange = true; + BotLog.Log.Info($"UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'"); + Log.Info($"DESIGNBOT:: UPDATED rendering {rendering.ItemID} ({rendering.Placeholder}{rendering.UniqueId}) parameter {Name} to value '{Value}'", this); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexes.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexes.cs new file mode 100644 index 0000000..5f86a61 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexes.cs @@ -0,0 +1,90 @@ +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Move selected renderings to index of first location of provided rendering ID + /// + public class MoveRenderingIndexes : RuleAction + where T : DesignBotRuleContext + { + public string RenderingId { get; set; } + public bool IsBefore { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + Assert.ArgumentNotNull(RenderingId, "RenderingId"); + + if (!ruleContext.SelectedRenderings.Any()) + return; + + var targetIndex = -1; + var isMatch = false; + foreach (RenderingDefinition r in ruleContext.SelectedDevice.Renderings) + { + targetIndex++; + if (r.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)) { + isMatch = true; + break; + } + } + if (!isMatch) + { + BotLog.Log.Info($"MOVE - skipped, no target renderingId {RenderingId}"); + Log.Info($"DESIGNBOT:: MOVE - skipped, no target renderingId {RenderingId}", this); + return; + } + + // Handle case of placing after target vs before + if (!IsBefore) + targetIndex++; + + BotLog.Log.Info($"MOVE - renderings to index {targetIndex} the first occurence of {RenderingId}"); + Log.Info($"DESIGNBOT:: MOVE - renderings to index {targetIndex} the first occurence of {RenderingId}", this); + + var indexes = new List(); + var queueFront = new List(); + var queueBehind = new List(); + var uids = ruleContext.SelectedRenderings.Select(x => x.UniqueId).ToArray(); + + // Build list of indexes from current selection (backwards) + for (var i = ruleContext.SelectedDevice.Renderings.Count - 1; i >= 0 ; i--) + { + var r = ruleContext.SelectedDevice.Renderings[i] as RenderingDefinition; + if (uids.Contains(r.UniqueId)) + { + indexes.Add(i); + // Isolate renderings that when removed will affect the target position index number + if (i < targetIndex) + queueFront.Add(r); + else + queueBehind.Add(r); + } + } + + // Remove (backwards - so index is descending to keep indexes accurate while deleting) + foreach (var index in indexes) + { + ruleContext.SelectedDevice.Renderings.RemoveAt(index); + ruleContext.HasLayoutChange = true; + } + + targetIndex = Math.Max(0,targetIndex - queueFront.Count()); + // Add to target (backwards so items maintain same order) + foreach (var p in queueBehind) + { + ruleContext.SelectedDevice.Insert(targetIndex, p); + } + foreach (var p in queueFront) + { + ruleContext.SelectedDevice.Insert(targetIndex, p); + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexesBefore.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexesBefore.cs new file mode 100644 index 0000000..c74376e --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingIndexesBefore.cs @@ -0,0 +1,13 @@ +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Move selected renderings to index of first location of provided rendering ID + /// + public class MoveRenderingIndexesBefore : MoveRenderingIndexes + where T : DesignBotRuleContext + { + public MoveRenderingIndexesBefore(){ + IsBefore = true; + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingsToFront.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingsToFront.cs new file mode 100644 index 0000000..6e6cd7a --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveRenderingsToFront.cs @@ -0,0 +1,54 @@ +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System.Collections.Generic; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Move selected renderings to front of all listed renderings + /// + public class MoveRenderingsToFront : RuleAction + where T : DesignBotRuleContext + { + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + if (!ruleContext.SelectedRenderings.Any()) + return; + + BotLog.Log.Info($"MOVE - renderings to front"); + Log.Info($"DESIGNBOT:: MOVE - renderings to front", this); + + var indexes = new List(); + var queue = new List(); + var uids = ruleContext.SelectedRenderings.Select(x => x.UniqueId).ToArray(); + + // Build list of indexes from current selection (backwards) + for (var i = ruleContext.SelectedDevice.Renderings.Count - 1; i >= 0 ; i--) + { + var r = ruleContext.SelectedDevice.Renderings[i] as RenderingDefinition; + if (uids.Contains(r.UniqueId)) + { + indexes.Add(i); + queue.Add(r); + } + } + + // Remove (backwards - so index is descending to keep indexes accurate while deleting) + foreach (var index in indexes) + { + ruleContext.SelectedDevice.Renderings.RemoveAt(index); + } + + // Add to front (backwards so items maintain same order) + foreach (var p in queue) + { + ruleContext.SelectedDevice.Insert(0, p); + ruleContext.HasLayoutChange = true; + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveToPlaceholder.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveToPlaceholder.cs new file mode 100644 index 0000000..c1b87ca --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/MoveToPlaceholder.cs @@ -0,0 +1,108 @@ +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Moves selected renderings within "FromPath" to live within "ToPath" honoring nested sub-structure. + /// Uses selected device (defaults to default device, but can be overriden with a previous SetDevice action) + /// NOTE: Sets ruleContext.HasLayoutChange to TRUE if change was made to any renderings + /// + /// + public class MoveToPlaceholder : RuleAction where T : DesignBotRuleContext + { + public string FromPath { get; set; } + public string ToPath { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, nameof(ruleContext)); + + if (string.IsNullOrWhiteSpace(FromPath) || string.IsNullOrWhiteSpace(ToPath)) + return; + if (FromPath.Equals(ToPath)) + return; + + // normalize input, no trailing slash + FromPath = StringUtil.EnsurePrefix('/',FromPath.TrimEnd('/')); + ToPath = StringUtil.EnsurePrefix('/', ToPath.TrimEnd('/')); + + // Use all renderings of selected device + var renderings = ruleContext.SelectedRenderings; + + // Handle Special case (target lives inside broader source) + // Solution: flatten in-between problem paths to be FromPath + if (ToPath.TrimStart('/').StartsWith(FromPath.TrimStart('/'))) + { + var segments = ToPath.Split(new[] { '/' }, System.StringSplitOptions.RemoveEmptyEntries); + // For each problem path, backwards, between FROM and TO.. (ie given /A/B/C/D => /A/B/C, /A/B) + for (var s = segments.Length - 1; s > 1; s--) // 3 .. 2 => 3, 2 + { + string problemPath = string.Empty; + for (var i = 0; i < s; i++) // 0, 1, 2; 0, 1; + { + problemPath = string.Concat(problemPath, "/", segments[i]); + } + // Set to FROM path + foreach (var r in renderings) + { + if (r.Placeholder.Equals(problemPath)) + r.Placeholder = FromPath; + } + } + } + + // Move to new placeholder (maintaining nested structure) + foreach (var r in renderings) + { + if(TryReplacePath(r, FromPath, ToPath)) + ruleContext.HasLayoutChange = true; + } + + } + + /// + /// Moves rendering to new placeholder path honoring nested structure + /// + /// + /// segment(s) to disgard + /// segment(s) to use as new root path (in place of from path) + /// True if change occurred else false + protected bool TryReplacePath(RenderingDefinition r, string from, string to) + { + // Ignore renderings not within "from" path + // Compare carefully as "main" or first placeholder often does not have the initial '/' + if (!r.Placeholder.TrimStart('/').StartsWith(from.TrimStart('/'))) + return false; + + // Ignore renderings already within "to" path + // Compare carefully as "main" or first placeholder often does not have the initial '/' + if (r.Placeholder.TrimStart('/').StartsWith(to.TrimStart('/'))) + return false; + + if ( + r.Placeholder.Equals(from) // simple case + || r.Placeholder.Equals(from.TrimStart('/')) // single segment case + ) + { + r.Placeholder = to; + BotLog.Log.Info($"MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{to}'"); + Log.Info($"DESIGNBOT:: MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{to}'", this); + return true; + } + else if (r.Placeholder.StartsWith(from + "/")) // nested case + { + var target = r.Placeholder.Replace(from + "/", to + "/"); + BotLog.Log.Info($"MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{target}'"); + Log.Info($"DESIGNBOT:: MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{target}'", this); + r.Placeholder = target; + return true; + } + + return false; + } + } +} + diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/RemoveSegment.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/RemoveSegment.cs new file mode 100644 index 0000000..57b145f --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/RemoveSegment.cs @@ -0,0 +1,72 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; +using Sitecore.Rules.Conditions; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Add or update one specific parameter, maintain the rest of the parameters as is + /// + public class RemoveSegment : RuleAction + where T : DesignBotRuleContext + { + public string Value { get; set; } + public string OperatorId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"PLACEHOLDER - removing segment compared to '{Value}'"); + Log.Info($"DESIGNBOT:: PLACEHOLDER - removing segment compared to '{Value}'", this); + + // Use selected renderings only + var renderings = ruleContext.SelectedRenderings; + + foreach (var r in renderings) + { + var segments = r.Placeholder.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); + var keep = new List(); + foreach(var segment in segments) + { + if (!Compare(segment, Value)) { + keep.Add(segment); + } + } + var newPath = keep.Count > 1 ? string.Concat("/", string.Join("/", keep)) : keep.FirstOrDefault(); + + if (r.Placeholder != newPath) + { + r.Placeholder = newPath; + ruleContext.HasLayoutChange = true; + } + } + } + + + /// + /// Compares the specified value0. + /// + /// The value0. + /// The value1. + /// The boolean. + protected bool Compare(string value0, string value1) + { + Assert.ArgumentNotNull(value0, "value0"); + Assert.ArgumentNotNull(value1, "value1"); + return ConditionsUtility.CompareStrings(value0, value1, this.OperatorId); + } + + /// + /// Gets the operator. + /// + /// Returns the condition operator. + protected StringConditionOperator GetOperator() + { + return ConditionsUtility.GetStringConditionOperatorById(this.OperatorId); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SetPlaceholder.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SetPlaceholder.cs new file mode 100644 index 0000000..26c1da6 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SetPlaceholder.cs @@ -0,0 +1,34 @@ +using Sitecore.Diagnostics; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Set placeholder path of selected renderings + /// + public class SetPlaceholders : RuleAction + where T : DesignBotRuleContext + { + public string Path { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"PLACEHOLDER - set all selected to {Path}"); + Log.Info($"DESIGNBOT:: PLACEHOLDER - set all selected to {Path}", this); + + // Use selected renderings only + var renderings = ruleContext.SelectedRenderings; + + foreach (var r in renderings) + { + if (!r.Placeholder.Equals(Path)) + { + r.Placeholder = Path; + ruleContext.HasLayoutChange = true; + } + } + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SortRenderings.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SortRenderings.cs new file mode 100644 index 0000000..c91ba2e --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SortRenderings.cs @@ -0,0 +1,48 @@ +using Community.Foundation.DesignBot.Comparer; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System.Text; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Order all rendering by placeholder path + /// + public class SortRenderings : RuleAction + where T : DesignBotRuleContext + { + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + BotLog.Log.Info($"SORTING - all renderings by placeholder paths"); + Log.Info($"DESIGNBOT:: SORTING - all renderings by placeholder paths", this); + + var stamp1 = GenerateStamp(ruleContext.SelectedDevice); + + var comparer = new RenderingComparer(); + ruleContext.SelectedDevice.Renderings.Sort(comparer); + + var stamp2 = GenerateStamp(ruleContext.SelectedDevice); + if(stamp1 != stamp2) + { + ruleContext.HasLayoutChange = true; + } + } + + /// + /// Purpose: Make a string that will change if the sort order of the renderings change + /// Implementation: sequential string of renderings' unique ID + /// + /// + /// + public string GenerateStamp(DeviceDefinition defn) { + var hash = new StringBuilder(); + foreach (RenderingDefinition rendering in defn.Renderings) { + hash.Append(rendering.UniqueId); + } + return hash.ToString(); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SwapPlaceholderContent.cs b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SwapPlaceholderContent.cs new file mode 100644 index 0000000..7a23f91 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Placeholders/SwapPlaceholderContent.cs @@ -0,0 +1,92 @@ +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; + +namespace Community.Foundation.DesignBot.Rules.Actions.Placeholders +{ + /// + /// Swaps placeholder path strings, effectively swapping components in placeholder A and placeholder B. + /// Uses selected device (defaults to default device, but can be overriden with a previous SetDevice action) + /// NOTE: Sets ruleContext.HasLayoutChange to TRUE if change was made to any renderings + /// + /// + public class SwapPlaceholderContent : RuleAction where T : DesignBotRuleContext + { + public string PathA { get; set; } + public string PathB { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, nameof(ruleContext)); + + if (string.IsNullOrWhiteSpace(PathA) || string.IsNullOrWhiteSpace(PathB)) + return; + + // normalize input, ensure initial slash, avoid trailing slash + PathA = StringUtil.EnsurePrefix('/', PathA.TrimEnd('/')); + PathB = StringUtil.EnsurePrefix('/', PathB.TrimEnd('/')); + + // Ensure Path A is the longer path (most specific in case of matching nested placeholder paths) + if (PathB.Length > PathA.Length) { + var x = PathA; + PathA = PathB; + PathB = x; + } + + // Use all renderings of selected device + var renderings = ruleContext.SelectedRenderings; + + // Set PathA to temporary PathX + var pathX = "XXXSWAPXXX"; + foreach(var r in renderings) + { + if ( + TrySwapPath(r, PathA, pathX) + ) + ruleContext.HasLayoutChange = true; + } + + // Set PathB to PathA, PathX to PathB + foreach (var r in renderings) + { + if ( + TrySwapPath(r, PathB, PathA) + ) + ruleContext.HasLayoutChange = true; + else + TrySwapPath(r, pathX, PathB); + } + + } + + /// + /// Swaps partial placeholder path x to use partial path y (where applicable) on rendering r + /// + /// + /// + /// + /// True if change occurred else false + protected bool TrySwapPath(RenderingDefinition r, string x, string y) + { + if (r.Placeholder.Equals(x)) + { + BotLog.Log.Info($"MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{y}'"); + Log.Info($"DESIGNBOT:: MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{y}'", this); + r.Placeholder = y; + return true; + } + else if (r.Placeholder.StartsWith(x + "/")) + { + var target = r.Placeholder.Replace(x + "/", y + "/"); + BotLog.Log.Info($"MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{target}'"); + Log.Info($"DESIGNBOT:: MOVED rendering {r.ItemID} ({r.Placeholder}{r.UniqueId}) from {r.Placeholder} to '{target}'", this); + r.Placeholder = target; + return true; + } + + return false; + } + } +} + diff --git a/src/Foundation/DesignBot/code/Rules/Actions/Remove/DeleteRendering.cs b/src/Foundation/DesignBot/code/Rules/Actions/Remove/DeleteRendering.cs new file mode 100644 index 0000000..f69d30f --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Actions/Remove/DeleteRendering.cs @@ -0,0 +1,66 @@ +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Actions; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Actions.Remove +{ + /// + /// Move selected renderings to index of first location of provided rendering ID + /// + public class DeleteRendering : RuleAction + where T : DesignBotRuleContext + { + public string RenderingId { get; set; } + + public override void Apply(T ruleContext) + { + Assert.ArgumentNotNull(ruleContext, "ruleContext"); + + if (!ruleContext.SelectedRenderings.Any()) + { + BotLog.Log.Info($"DELETE - skipped, no selected renderings"); + Log.Info($"DESIGNBOT:: DELETE - skipped, no selected renderings", this); + return; + } + + // Assume remove all selected + var uids = ruleContext.SelectedRenderings.Select(x => x.UniqueId).ToArray(); + + // Case to filter by type + if(!string.IsNullOrWhiteSpace(RenderingId)) + { + uids = ruleContext.SelectedRenderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).Select(x => x.UniqueId).ToArray(); + if (!uids.Any()) + { + BotLog.Log.Info($"DELETE - skipped, no target renderingId {RenderingId}"); + Log.Info($"DESIGNBOT:: DELETE - skipped, no target renderingId {RenderingId}", this); + return; + } + } + + // Build list of indexes from current selection (backwards) + var indexes = new List(); + for (var i = ruleContext.SelectedDevice.Renderings.Count - 1; i >= 0 ; i--) + { + var r = ruleContext.SelectedDevice.Renderings[i] as RenderingDefinition; + if (uids.Contains(r.UniqueId)) + { + indexes.Add(i); + } + } + + // Remove (backwards - so index is descending to keep indexes accurate while deleting) + foreach (var index in indexes) + { + ruleContext.SelectedDevice.Renderings.RemoveAt(index); + ruleContext.HasLayoutChange = true; + } + + BotLog.Log.Info($"DELETE - removed all selected occurences of {RenderingId}"); + Log.Info($"DESIGNBOT:: DELETE - removed all selected occurences of {RenderingId}", this); + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Conditions/HasDatasourceWithFieldValue.cs b/src/Foundation/DesignBot/code/Rules/Conditions/HasDatasourceWithFieldValue.cs new file mode 100644 index 0000000..45c3313 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Conditions/HasDatasourceWithFieldValue.cs @@ -0,0 +1,40 @@ +using System; +using System.Linq; +using System.Web; +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Conditions; +using Sitecore.Text; +using Sitecore.Web; + +namespace Community.Foundation.DesignBot.Rules.Conditions +{ + public class HasDatasourceWithFieldValue : StringOperatorCondition where T : DesignBotRuleContext + { + public string Value { get; set; } + public string Field { get; set; } + public string PlaceholderPath { get; set; } + public string RenderingId { get; set; } + + protected override bool Execute(T ruleContext) + { + Assert.ArgumentNotNull((object) ruleContext, "ruleContext"); + + var renderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + if (!string.IsNullOrWhiteSpace(PlaceholderPath)) + { + renderings = renderings.Where(x => x.Placeholder.Equals(PlaceholderPath, StringComparison.OrdinalIgnoreCase)).ToList(); + } + if (!string.IsNullOrWhiteSpace(RenderingId)) + { + renderings = renderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + // ... + + return false; + } + + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Conditions/HasLayout.cs b/src/Foundation/DesignBot/code/Rules/Conditions/HasLayout.cs new file mode 100644 index 0000000..112c737 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Conditions/HasLayout.cs @@ -0,0 +1,20 @@ +using Sitecore.Data; +using Sitecore.Diagnostics; +using Sitecore.Rules.Conditions; +using System; + +namespace Community.Foundation.DesignBot.Rules.Conditions +{ + public class HasLayout : WhenCondition where T : DesignBotRuleContext + { + public ID LayoutId { get; set; } + + protected override bool Execute(T ruleContext) + { + Assert.ArgumentNotNull((object) ruleContext, "ruleContext"); + + return ruleContext.SelectedDevice.Layout.Equals(LayoutId.ToString(), StringComparison.OrdinalIgnoreCase); + } + + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithParamValue.cs b/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithParamValue.cs new file mode 100644 index 0000000..43f828d --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithParamValue.cs @@ -0,0 +1,55 @@ +using System; +using System.Linq; +using System.Web; +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Conditions; +using Sitecore.Text; +using Sitecore.Web; + +namespace Community.Foundation.DesignBot.Rules.Conditions +{ + public class HasRenderingWithParamValue : StringOperatorCondition where T : DesignBotRuleContext + { + public string Value { get; set; } + public string Param { get; set; } + public string PlaceholderPath { get; set; } + public string RenderingId { get; set; } + + protected override bool Execute(T ruleContext) + { + Assert.ArgumentNotNull((object) ruleContext, "ruleContext"); + + var renderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + if (!string.IsNullOrWhiteSpace(PlaceholderPath)) + { + renderings = renderings.Where(x => x.Placeholder.Equals(PlaceholderPath, StringComparison.OrdinalIgnoreCase)).ToList(); + } + if (!string.IsNullOrWhiteSpace(RenderingId)) + { + renderings = renderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + // Simple case, not checking parameter + if (string.IsNullOrWhiteSpace(Param)) { + return renderings.Any(); + } + + // Param value case + foreach (var rendering in renderings) { + + var urlString = new UrlString(rendering.Parameters); + var rawValue = urlString.Parameters[Param]; + if (!string.IsNullOrWhiteSpace(rawValue)) + rawValue = HttpUtility.UrlDecode(rawValue); + + if (Compare(rawValue, Value)) + return true; + } + + return false; + } + + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithPlaceholder.cs b/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithPlaceholder.cs new file mode 100644 index 0000000..ebe688b --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/Conditions/HasRenderingWithPlaceholder.cs @@ -0,0 +1,42 @@ +using Sitecore; +using Sitecore.Diagnostics; +using Sitecore.Layouts; +using Sitecore.Rules.Conditions; +using System; +using System.Linq; + +namespace Community.Foundation.DesignBot.Rules.Conditions +{ + public class HasRenderingWithPlaceholder : StringOperatorCondition where T : DesignBotRuleContext + { + public string Value { get; set; } + public string RenderingId { get; set; } + + protected override bool Execute(T ruleContext) + { + Assert.ArgumentNotNull((object) ruleContext, "ruleContext"); + + var renderings = ruleContext.SelectedDevice.Renderings.Cast().ToList(); + if (!string.IsNullOrWhiteSpace(RenderingId)) + { + renderings = renderings.Where(x => x.ItemID.Equals(RenderingId, StringComparison.OrdinalIgnoreCase)).ToList(); + } + + // Simple case, nothing left to check + if (!renderings.Any()) { + return false; + } + + foreach (var r in renderings) + { + if (Compare(StringUtil.EnsurePrefix('/', r.Placeholder), Value)) + { + return true; + } + } + + return false; + } + + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Rules/DesignBotRuleContext.cs b/src/Foundation/DesignBot/code/Rules/DesignBotRuleContext.cs new file mode 100644 index 0000000..6705e05 --- /dev/null +++ b/src/Foundation/DesignBot/code/Rules/DesignBotRuleContext.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Linq; +using Sitecore; +using Sitecore.Data; +using Sitecore.Data.Fields; +using Sitecore.Data.Items; +using Sitecore.Layouts; +using Sitecore.Rules; + +namespace Community.Foundation.DesignBot.Rules +{ + public class DesignBotRuleContext : RuleContext + { + public DesignBotRuleContext(Item item) { + Item = item; + + var sharedLayoutField = item.Fields[FieldIDs.LayoutField]; + var finalLayoutField = item.Fields[FieldIDs.FinalLayoutField]; + + SharedLayout = LayoutDefinition.Parse(LayoutField.GetFieldValue(sharedLayoutField)); + FinalLayout = LayoutDefinition.Parse(LayoutField.GetFieldValue(finalLayoutField)); + + // These can be filled with rule actions + // SelectedDatasources = new List(); + + // This can be overrided with the rule action SetDevice + SelectedDevice = FinalLayout.GetDevice(Constants.Items.Device.DefaultId); + SelectedRenderings = new List(); // SelectedDevice.Renderings.Cast().ToList(); + } + // public List AllowedRenderingItems { get; set; } + // public ID DeviceId { get; set; } + // public string PlaceholderKey { get; set; } + // public Database ContentDatabase { get; set; } + // public string LayoutDefinition { get; set; } + + // Outputs + public bool HasLayoutChange { get; set; } + public LayoutDefinition SharedLayout { get; set; } + public LayoutDefinition FinalLayout { get; set; } + + // Internal + // public List SelectedDatasources { get; set; } + public List SelectedRenderings { get; set; } + public DeviceDefinition SelectedDevice { get; set; } + + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Services/DesignBotService.cs b/src/Foundation/DesignBot/code/Services/DesignBotService.cs new file mode 100644 index 0000000..33468bf --- /dev/null +++ b/src/Foundation/DesignBot/code/Services/DesignBotService.cs @@ -0,0 +1,98 @@ +using Community.Foundation.DesignBot.Extensions; +using Community.Foundation.DesignBot.Rules; +using Sitecore; +using Sitecore.ContentTesting.Configuration; +using Sitecore.Data; +using Sitecore.Data.Fields; +using Sitecore.Data.Items; +using Sitecore.Diagnostics; +using Sitecore.Rules; +using Sitecore.SecurityModel; +using System; + +namespace Community.Foundation.DesignBot.Services +{ + public interface IDesignBotService { + string ApplyDesign(Item ruleProgram, Item page); + } + + + public class DesignBotService + { + private readonly ID SxaDataTemplateId = new ID("{1C82E550-EBCD-4E5D-8ABD-D50D0809541E}"); + + public string ApplyDesign(Item ruleProgram, Item page, string crawlDepth = null) { + BotLog.Log.Info($"::START:: program {ruleProgram?.DisplayName} on page {page.DisplayName}, {page.ID}, crawl depth {crawlDepth}"); + Log.Info($"DESIGNBOT::START:: program {ruleProgram?.DisplayName} on page {page.DisplayName}, {page.ID}, crawl depth {crawlDepth}", this); + + // Get design rules + RuleList rules = RuleFactory.GetRules(ruleProgram, "Rule"); + if (rules != null) + { + // Apply design program + int depth; + if (!int.TryParse(crawlDepth ?? "0", out depth)) + depth = 0; + depth = Math.Max(0, depth); + + using (new SecurityDisabler()) + { + using (new ScreenshotGenerationDisabler()) + { + RunProgram_r(rules, page, depth); + } + } + } + + BotLog.Log.Info($"::END:: program {ruleProgram?.DisplayName} on page {page.DisplayName}, {page.ID}, crawl depth {crawlDepth}"); + Log.Info($"DESIGNBOT::END:: program {ruleProgram?.DisplayName} on page {page.DisplayName}, {page.ID}, crawl depth {crawlDepth}", this); + return "Success"; + // item.Editing.BeginEdit(); + // item.Editing.EndEdit(updateStatistics: true, silent: false); + // item.Editing.CancelEdit(); + } + + public void RunProgram_r(RuleList rules, Item page, int depth) + { + if (depth < 0 || page == null) + return; + + // skip datasource items + if (page.TemplateID.Equals(SxaDataTemplateId)) + return; + + BotLog.Log.Info($"Processing item {page.DisplayName}, {page.ID}..."); + Log.Info($"DESIGNBOT:: Processing item {page.DisplayName}, {page.ID}...", this); + + try + { + var ruleContext = new DesignBotRuleContext(page); + + // Run conditions and actions + rules.Run(ruleContext); + + if (ruleContext.HasLayoutChange) + { + // Create new version for easy undo (delete version) + page = page.AsNewVersion(matchWorkflowState: true); + ItemUtil.SetLayoutDetails(page, ruleContext.SharedLayout.ToXml(), ruleContext.FinalLayout.ToXml()); + } + } + catch (Exception ex) + { + BotLog.Log.Error($"Error applying program to item {page?.ID}", ex); + Log.Error($"DESIGNBOT:: Error applying program to item {page?.ID}", ex, this); + } + + // Recursion + depth--; + if (depth < 0 || !page.HasChildren) + return; + var children = page.GetChildren(); + foreach (Item child in children) { + RunProgram_r(rules, child, depth); + } + + } + } +} \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Web.Debug.config b/src/Foundation/DesignBot/code/Web.Debug.config new file mode 100644 index 0000000..fae9cfe --- /dev/null +++ b/src/Foundation/DesignBot/code/Web.Debug.config @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Web.Release.config b/src/Foundation/DesignBot/code/Web.Release.config new file mode 100644 index 0000000..da6e960 --- /dev/null +++ b/src/Foundation/DesignBot/code/Web.Release.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/code/Web.config b/src/Foundation/DesignBot/code/Web.config new file mode 100644 index 0000000..ff79484 --- /dev/null +++ b/src/Foundation/DesignBot/code/Web.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git a/src/Foundation/DesignBot/code/packages.config b/src/Foundation/DesignBot/code/packages.config new file mode 100644 index 0000000..34da431 --- /dev/null +++ b/src/Foundation/DesignBot/code/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot.yml new file mode 100644 index 0000000..a9c8ea6 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot.yml @@ -0,0 +1,26 @@ +--- +ID: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Parent: "e7cbefe8-9112-4b95-a978-4e470d94c54a" +Template: "54dae7cd-bfd8-4e69-9679-75f2ae9f9034" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot +DB: master +BranchID: "9a72c539-dbf8-4dad-96d3-a298fc04add6" +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: office/32x32/robot.png +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: "{8D1DB71C-9ACF-4192-8384-5F9B6D533F95}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T220325Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Descendants Field.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Descendants Field.yml new file mode 100644 index 0000000..49019c1 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Descendants Field.yml @@ -0,0 +1,82 @@ +--- +ID: "1f2f1418-be5f-44c3-8568-b0842f43cca7" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Clear Descendants Field" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Datasource.ClearDatasourceDescendantsField,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Datasource - descendants of [TemplateId,Tree,root=/sitecore/Templates,specific] template, clear [FieldId,Tree,root=/sitecore/Templates,specific] field" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Field.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Field.yml new file mode 100644 index 0000000..a946cb6 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Clear Field.yml @@ -0,0 +1,82 @@ +--- +ID: "100ef220-fd5a-4b44-80cd-2102cae5de3b" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Clear Field" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Datasource.ClearDatasourceField,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Datasource - clear [FieldId,Tree,root=/sitecore/Templates,specific] field" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Descendants Field.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Descendants Field.yml new file mode 100644 index 0000000..df9627d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Descendants Field.yml @@ -0,0 +1,82 @@ +--- +ID: "21d10ac5-387b-44e2-8751-45421e505cdf" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Set Descendants Field" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Datasource.SetDatasourceDescendantsField,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Datasource - descendants of [TemplateId,Tree,root=/sitecore/Templates,specific] template, set [FieldId,Tree,root=/sitecore/Templates,specific] field to [Value,,,value]" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Field.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Field.yml new file mode 100644 index 0000000..f653c1e --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Set Field.yml @@ -0,0 +1,82 @@ +--- +ID: "a187d372-48a9-43a6-8320-952bac707829" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Set Field" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Datasource.SetDatasourceField,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Datasource - set [FieldId,Tree,root=/sitecore/Templates,specific] field to [Value,,,value]" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Swap Field Values.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Swap Field Values.yml new file mode 100644 index 0000000..c65340c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Datasource - Swap Field Values.yml @@ -0,0 +1,82 @@ +--- +ID: "a73d754f-7881-48c9-96c9-ce0656b4e85b" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Datasource - Swap Field Values" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Datasource.SwapDatasourceFields,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Datasource - swap values of field [FieldIdA,Tree,root=/sitecore/Templates,A] and [FieldIdB,Tree,root=/sitecore/Templates,B]" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder match.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder match.yml new file mode 100644 index 0000000..e9507a8 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder match.yml @@ -0,0 +1,28 @@ +--- +ID: "37411546-0e80-461e-906c-99b68954c044" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Placeholder match +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithPlaceholder, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has placeholder path [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder.yml new file mode 100644 index 0000000..311016b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "fe2be19f-00ad-477b-bde8-1bd11a93e49b" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Placeholder +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithParamValue, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has [PlaceholderPath,,,specific] placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder with Param.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder with Param.yml new file mode 100644 index 0000000..d90f99d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder with Param.yml @@ -0,0 +1,28 @@ +--- +ID: "e7788fb8-d0ee-4706-9a76-fe758f2593b3" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering in Placeholder with Param +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithParamValue, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path with [Param,,,specific] parameter [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder.yml new file mode 100644 index 0000000..e20997b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering in Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "acf62966-1540-4796-87aa-d9e241f36111" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering in Placeholder +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithParamValue, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering with Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering with Placeholder.yml new file mode 100644 index 0000000..e37c0b6 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering with Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "62e3acae-744d-4e25-9e5f-58772741219e" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering with Placeholder +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithPlaceholder, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering with placeholder path [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering.yml new file mode 100644 index 0000000..d279dfc --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Has Rendering.yml @@ -0,0 +1,28 @@ +--- +ID: "4689b214-864a-42d3-b54e-99bb0feefe54" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f0d16eee-3a05-4e43-a082-795a32b873c0" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Has Rendering +DB: master +SharedFields: +- ID: "ab51c8b2-f0e1-4471-9aae-cc080d774923" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Conditions.HasRenderingWithParamValue, Community.Foundation.DesignBot +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T223106Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "af321234-4eb9-4ef5-9197-65903351939c" + Hint: Text + Value: "page has [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Append Term.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Append Term.yml new file mode 100644 index 0000000..a914fee --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Append Term.yml @@ -0,0 +1,86 @@ +--- +ID: "cc76d5fa-8e31-4783-b7f5-50fc4eaff891" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Append Term" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Parameters.AppendParameterTermAction,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Fields: + - ID: "9541e67d-ce8c-4225-803d-33f7f29f09ef" + Hint: __Short description + Value: Add partial value + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter - set [Name,,,specific] multilist parameter, append [Term,,,term]" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Clear.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Clear.yml new file mode 100644 index 0000000..e8dda40 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Clear.yml @@ -0,0 +1,82 @@ +--- +ID: "9945789e-2bac-4e02-8a61-ccca46177599" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Clear" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Parameters.ClearParameterAction,Community.Foundation.DesignBot.Rules +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter - clear [Name,,,specific] parameter" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Remove Term.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Remove Term.yml new file mode 100644 index 0000000..8ac3c29 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Remove Term.yml @@ -0,0 +1,86 @@ +--- +ID: "cf689289-9e4b-4c59-bbd9-bda5ca412ad0" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Remove Term" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Parameters.RemoveParameterTermAction,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Fields: + - ID: "9541e67d-ce8c-4225-803d-33f7f29f09ef" + Hint: __Short description + Value: Remove partial value + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter - set [Name,,,specific] multilist parameter, remove [Term,,,term] (if exists)" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Set.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Set.yml new file mode 100644 index 0000000..93fa359 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Parameter - Set.yml @@ -0,0 +1,82 @@ +--- +ID: "90db2b4b-3e5c-4f9d-8eb3-f386347f4f6a" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Parameter - Set" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Parameters.SetParameterAction,Community.Foundation.DesignBot +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Angiv parametre + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104333Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "angiv parametre til [Parameters,Text,,value]" +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Parameters einstellen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T104809Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter einstellen auf [Parameter,Text,,value]" +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20080925T143242 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Parameter - set [Name,,,specific] parameter to [Value,,,value]" +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: パラメーターを設定 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20161221T105214Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "パラメーターを [Parameters,Text,,特定の値] に設定する" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All in Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All in Placeholder.yml new file mode 100644 index 0000000..7274064 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All in Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "bffec3f4-9f8a-470e-a454-d8fc52531e9c" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - All in Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [PlaceholderPath,,,specific] placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All.yml new file mode 100644 index 0000000..2682e89 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - All.yml @@ -0,0 +1,28 @@ +--- +ID: "b0c976e8-b99f-437c-9dfe-3e67a17a3bc4" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - All" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickAll, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - all renderings (of selected device)" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Clear.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Clear.yml new file mode 100644 index 0000000..b7f72c5 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Clear.yml @@ -0,0 +1,28 @@ +--- +ID: "cd96ba64-565d-4584-b35b-eadea1faeea0" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Clear" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.ClearPicks, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - none, clear all selections" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Device.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Device.yml new file mode 100644 index 0000000..f76cdc1 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Device.yml @@ -0,0 +1,28 @@ +--- +ID: "3a2c8ebb-0327-4126-ac5f-768d7f6849eb" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Device" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickDevice, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - [DeviceId,Tree,root=/sitecore/layout/Devices,specific] device" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder an.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder an.yml new file mode 100644 index 0000000..570ed5f --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder an.yml @@ -0,0 +1,28 @@ +--- +ID: "917b87c4-b6e9-46e6-9dee-b92a5bc12fc9" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering by Placeholder and Param" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickFirstRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path with [Param,,,specific] parameter [operatorid,StringOperator,,compares to] [Value,,,value], take first" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder.yml new file mode 100644 index 0000000..96de313 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering by Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "63b97d48-8e7a-489e-86bf-ff9444cd5206" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering by Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickFirstRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path, take first" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering.yml new file mode 100644 index 0000000..3d2ccda --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First Rendering.yml @@ -0,0 +1,28 @@ +--- +ID: "5ec49499-ad66-4a5f-aaaa-146b9537fdd2" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First Rendering" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickFirstRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering, take first" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First in Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First in Placeholder.yml new file mode 100644 index 0000000..a72ce61 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - First in Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "e6fffcb3-835d-48b3-926c-271c2e6949ff" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - First in Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickFirstRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [PlaceholderPath,,,specific] placeholder path, take first" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Inverse.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Inverse.yml new file mode 100644 index 0000000..40c265e --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Inverse.yml @@ -0,0 +1,28 @@ +--- +ID: "08edc6bb-8731-46b3-ac60-dfa3cd4d27e7" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Inverse" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.InvertSelection, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - opposite, invert selections" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering by Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering by Placeholder.yml new file mode 100644 index 0000000..e2ac14b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering by Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "c82515ec-2de3-4d3b-a580-6474084ee311" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last Rendering by Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickLastRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path, take last" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering.yml new file mode 100644 index 0000000..e59efc2 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last Rendering.yml @@ -0,0 +1,28 @@ +--- +ID: "40fbef4a-cb7c-499c-8f5d-6db5989e8606" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last Rendering" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickLastRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering, take last" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last in Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last in Placeholder.yml new file mode 100644 index 0000000..b5ffbe2 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Last in Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "3afef4d3-3faf-414a-bf78-242d0600a50d" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Last in Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickLastRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [PlaceholderPath,,,specific] placeholder path, take last" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder match.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder match.yml new file mode 100644 index 0000000..e1e055a --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder match.yml @@ -0,0 +1,28 @@ +--- +ID: "1b345278-cc26-4891-b4ad-807fdac06bae" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Placeholder match" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderingsByPlaceholder, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings with placeholder path [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder with Range.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder with Range.yml new file mode 100644 index 0000000..a58b8b5 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Placeholder with Range.yml @@ -0,0 +1,28 @@ +--- +ID: "5d1effd9-6f2e-48ba-a5ea-e168e8913854" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Placeholder with Range" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [PlaceholderPath,,,specific] placeholder path, skip [Skip,PositiveInteger,,number] take [Take,PositiveInteger,,number]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Param.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Param.yml new file mode 100644 index 0000000..de31287 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Param.yml @@ -0,0 +1,28 @@ +--- +ID: "3af43c06-b6cb-437b-b48a-20b8911ebaf4" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Param" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering with [Param,,,specific] parameter [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder and Para.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder and Para.yml new file mode 100644 index 0000000..6735d12 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder and Para.yml @@ -0,0 +1,28 @@ +--- +ID: "34f53fdd-0c99-4da0-a46b-7d60b3f21fd8" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Placeholder and Param" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path with [Param,,,specific] parameter [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder match.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder match.yml new file mode 100644 index 0000000..88488a7 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Rendering by Placeholder match.yml @@ -0,0 +1,28 @@ +--- +ID: "50291657-5b6e-4e5c-9193-81373d44801d" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Rendering by Placeholder match" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderingsByPlaceholder, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - rendering by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering with placeholder path [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Datasource Field.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Datasource Field.yml new file mode 100644 index 0000000..d094adf --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Datasource Field.yml @@ -0,0 +1,28 @@ +--- +ID: "2f8de26b-717f-41f8-825a-8e5924f7d8f5" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Datasource Field" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering whose datasource has [DsFieldId,Tree,root=/sitecore/Templates,specific] field [operatorid,StringOperator,,compares to] [Value,,,value]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder with Ra.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder with Ra.yml new file mode 100644 index 0000000..edbc330 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder with Ra.yml @@ -0,0 +1,28 @@ +--- +ID: "082b6ed4-980b-47f5-bf40-92dfd8d9553a" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Placeholder with Range" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path, skip [Skip,PositiveInteger,,number] take [Take,PositiveInteger,,number]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder.yml new file mode 100644 index 0000000..5f045c7 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings by Placeholder.yml @@ -0,0 +1,28 @@ +--- +ID: "be6dc7b3-27df-4358-bb0e-b8c7381407c2" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings by Placeholder" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering in [PlaceholderPath,,,specific] placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings.yml new file mode 100644 index 0000000..6a61d65 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Pick - Renderings.yml @@ -0,0 +1,28 @@ +--- +ID: "0331ed24-fa79-4b6d-b6d6-c17915bc3671" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Pick - Renderings" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Choose.PickRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Pick - renderings by [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - move to.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - move to.yml new file mode 100644 index 0000000..2d8e72b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - move to.yml @@ -0,0 +1,28 @@ +--- +ID: "ab0a78cd-7161-4863-b642-0fe15eee923f" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - move to" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.MoveToPlaceholder, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Placeholders - move components within placeholder path [FromPath,,,A] to [ToPath,,,B] (honoring substructure)" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - remove segment.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - remove segment.yml new file mode 100644 index 0000000..89333a0 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - remove segment.yml @@ -0,0 +1,28 @@ +--- +ID: "47e77a7d-30ab-46f7-b595-e14c59f826e4" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - remove segment" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.RemoveSegment, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Placeholders - remove placeholder segment that [operatorid,StringOperator,,compares to] [Value,,,text] from selected renderings" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - set.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - set.yml new file mode 100644 index 0000000..079561d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - set.yml @@ -0,0 +1,28 @@ +--- +ID: "b67f50cc-c697-43cc-b93f-3a6cc5f78ff2" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - set" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.SetPlaceholders, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Placeholders - set selected renderings to [Path,,,specific] placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - swap.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - swap.yml new file mode 100644 index 0000000..305830c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Placeholders - swap.yml @@ -0,0 +1,28 @@ +--- +ID: "0a7f150b-9493-43ad-96c7-9e3384861b2e" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Placeholders - swap" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.SwapPlaceholderContent, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Placeholders - swap content between placeholder paths [PathA,,,A] and [PathB,,,B]" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move before.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move before.yml new file mode 100644 index 0000000..232aaa2 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move before.yml @@ -0,0 +1,28 @@ +--- +ID: "e42e1445-9ace-4723-9758-16d5c08b0899" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move before" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.MoveRenderingIndexesBefore, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - move selected to before [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move to front.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move to front.yml new file mode 100644 index 0000000..51a36cf --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move to front.yml @@ -0,0 +1,28 @@ +--- +ID: "686df7a5-b696-4a9c-9a12-7a85cd98063a" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move to front" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.MoveRenderingsToFront, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - move selected to front" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move.yml new file mode 100644 index 0000000..9e19e54 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - move.yml @@ -0,0 +1,28 @@ +--- +ID: "9a0c8d71-bdc8-4bbb-9cb3-79dfc0a50100" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - move" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.MoveRenderingIndexes, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - move selected to after [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] rendering" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove all selected.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove all selected.yml new file mode 100644 index 0000000..77d923c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove all selected.yml @@ -0,0 +1,28 @@ +--- +ID: "64c1a868-174e-4e51-8b52-439a03b34c12" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - remove all selected" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Remove.DeleteRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - remove from page all selected renderings" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove certain selected.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove certain selected.yml new file mode 100644 index 0000000..4e03075 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - remove certain selected.yml @@ -0,0 +1,28 @@ +--- +ID: "d4a104d7-5444-46f4-aa50-40b66dc2ef98" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - remove certain selected" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Remove.DeleteRendering, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - remove from page all selected [RenderingId,Tree,root=/sitecore/layout/Renderings,specific] renderings" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - sort by placeholder paths.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - sort by placeholder paths.yml new file mode 100644 index 0000000..6d7ab81 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Renderings - sort by placeholder paths.yml @@ -0,0 +1,28 @@ +--- +ID: "bcbb6a02-3bf9-419a-9e4f-97297d20dfb6" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "f90052a5-b4e6-4e6d-9812-1e1b88a6fcea" +Path: "/sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Renderings - sort by placeholder paths" +DB: master +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "ff55d5a7-6d4b-4cd1-83e0-bac268073f66" + Hint: Type + Value: Community.Foundation.DesignBot.Rules.Actions.Placeholders.SortRenderings, Community.Foundation.DesignBot +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181027T224128Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory + - ID: "eeb36a3b-40d9-4af5-862a-de257b84dca3" + Hint: Text + Value: "Renderings - sort all renderings by placeholder path" diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags.yml new file mode 100644 index 0000000..d7eb00d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags.yml @@ -0,0 +1,26 @@ +--- +ID: "949a9512-86af-4022-94f3-42f1f4dcbaa8" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "96c8e5dd-63c3-496b-a97c-a3e37e1dacba" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Tags +DB: master +BranchID: "9a72c539-dbf8-4dad-96d3-a298fc04add6" +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: "{FD4268C6-E588-4C19-B141-B1AAD488887D}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T220326Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags/Default.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags/Default.yml new file mode 100644 index 0000000..365c5d1 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Tags/Default.yml @@ -0,0 +1,27 @@ +--- +ID: "6882785b-6821-4702-9093-9bb28fd59436" +Parent: "949a9512-86af-4022-94f3-42f1f4dcbaa8" +Template: "854ba861-63ea-4a0c-8c7b-541e9a7ec4c1" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Tags/Default +DB: master +BranchID: "9a72c539-dbf8-4dad-96d3-a298fc04add6" +SharedFields: +- ID: "42f77151-098f-496a-94cf-590b7edeeabe" + Hint: Tags + Type: Multilist + Value: "{CA29398A-ED15-4723-B025-05D4EC12E629}" +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: "{6F0688E4-7B16-482F-845B-35836FD15D14}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T220326Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Visibility.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Visibility.yml new file mode 100644 index 0000000..ee95061 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Definitions/DesignBot/Visibility.yml @@ -0,0 +1,26 @@ +--- +ID: "9419e4cf-f545-49c2-82c5-c3af5a1a50fd" +Parent: "42d05b0f-1f29-4e64-9aa1-c65d6df7cf9e" +Template: "aa91a868-02f2-41d3-8b78-1cad91b4dcae" +Path: /sitecore/system/Settings/Rules/Definitions/Elements/DesignBot/Visibility +DB: master +BranchID: "9a72c539-dbf8-4dad-96d3-a298fc04add6" +SharedFields: +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: "{283F6CD6-EFB8-47AC-946A-ABB17FA45ECB}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T220327Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot.yml new file mode 100644 index 0000000..52569a7 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot.yml @@ -0,0 +1,28 @@ +--- +ID: "09eb22ca-e0a4-47ab-a293-e9ea537e9f99" +Parent: "a3572733-5062-43e9-a447-54698bc1c637" +Template: "6d82fcd8-c379-443c-97a9-c6423c71e7d5" +Path: /sitecore/system/Modules/PowerShell/Script Library/DesignBot +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: Software/32x32/jar_bean.png +- ID: "218ca464-cb77-4c97-b141-34871ecae00b" + Hint: Enabled + Type: Checkbox + Value: 1 +- ID: "6d22bcce-2799-4324-b0d9-c44df5effaf3" + Hint: Description + Value: DesignBot Context Menu Option +- ID: "9911a28e-2120-4ab0-9113-5bae386769c1" + Hint: Module Version + Value: 1.0 +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20141129T222657Z diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor.yml new file mode 100644 index 0000000..0038a11 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor.yml @@ -0,0 +1,14 @@ +--- +ID: "34982275-72ab-40f8-8029-b0d2df906438" +Parent: "09eb22ca-e0a4-47ab-a293-e9ea537e9f99" +Template: "ab154d3d-1126-4ab4-ac21-8b86e6bd70ea" +Path: /sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor +DB: master +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20141129T162713 diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu.yml new file mode 100644 index 0000000..3b5648b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu.yml @@ -0,0 +1,14 @@ +--- +ID: "86317df1-c537-4c03-8f19-53a3786e19f2" +Parent: "34982275-72ab-40f8-8029-b0d2df906438" +Template: "ab154d3d-1126-4ab4-ac21-8b86e6bd70ea" +Path: /sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor/Context Menu +DB: master +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20141129T162723 diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu/DesignBot.yml new file mode 100644 index 0000000..768eb25 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.PowerShell/DesignBot/Content Editor/Context Menu/DesignBot.yml @@ -0,0 +1,54 @@ +--- +ID: "957ae84f-a008-476b-b3a1-e34de543a950" +Parent: "86317df1-c537-4c03-8f19-53a3786e19f2" +Template: "dd22f1b3-bd87-4db2-9e7d-f7a496888d43" +Path: /sitecore/system/Modules/PowerShell/Script Library/DesignBot/Content Editor/Context Menu/DesignBot +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: office/32x32/robot.png +- ID: "b1a94ff0-6897-47c0-9c51-aa6acb80b1f0" + Hint: Script + Value: | + $page = Get-Item . + $programItem = Get-Item "master:/sitecore/system/Settings/Rules/DesignBot/Rules" + + $props = @{ + Parameters = @( + @{ Name = "programItem"; Title = "Choose Program"; Root = "/sitecore/system/Settings/Rules/DesignBot/Rules/"; Tab = "General" }, + @{ Name = "crawlDepth"; Title = "Crawl Depth (0=this item only)"; Tab = "General" } + ) + Title = ("DesignBot - for " + $page.DisplayName ) + OkButtonName = "Proceed" + CancelButtonName = "Abort" + Width = 600 + Height = 700 + } + + $result = Read-Variable @props + + if ($result -ne "ok") { + Exit + } + + $bot = New-Object Community.Foundation.DesignBot.Services.DesignBotService + $response = $bot.ApplyDesign($programItem, $page, $crawlDepth) + + # Show-ModalDialog -Control "OutputResult" -Parameters @{btn_0="Ok"; te="Design Program Complete. $response"; cp="Important Questions"} -Height 120 -Width 400 +Languages: +- Language: en + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: DesignBot... + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181026T220925Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot.yml new file mode 100644 index 0000000..1b564d3 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot.yml @@ -0,0 +1,29 @@ +--- +ID: "aebc97c1-8e3c-4073-a849-83569cdedd6f" +Parent: "1057c235-c5c0-4eb7-8f77-ea51eb9e20ee" +Template: "dda66314-03f3-4c89-84a9-39dffb235b06" +Path: /sitecore/system/Settings/Rules/DesignBot +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: office/32x32/robot.png +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: en + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20150119T164126 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\ameagle diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Rules.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Rules.yml new file mode 100644 index 0000000..75d3a65 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Rules.yml @@ -0,0 +1,26 @@ +--- +ID: "a6fc9765-0343-4f2a-a20d-3c9fa895996d" +Parent: "aebc97c1-8e3c-4073-a849-83569cdedd6f" +Template: "8ea2cf67-4250-47a2-aeca-4f70fd200dc7" +Path: /sitecore/system/Settings/Rules/DesignBot/Rules +DB: master +SharedFields: +- ID: "1172f251-dad4-4efb-a329-0c63500e4f1e" + Hint: __Masters + Type: TreelistEx + Value: "{341B47CA-10DE-471E-B82D-D7FBB5C48877}" +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20150119T164127 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\ameagle diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags.yml new file mode 100644 index 0000000..ea14b59 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags.yml @@ -0,0 +1,22 @@ +--- +ID: "61c64655-9d11-4894-8e8c-4121a7c4c1e8" +Parent: "aebc97c1-8e3c-4073-a849-83569cdedd6f" +Template: "96c8e5dd-63c3-496b-a97c-a3e37e1dacba" +Path: /sitecore/system/Settings/Rules/DesignBot/Tags +DB: master +SharedFields: +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20150119T164127 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\ameagle diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags/Default.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags/Default.yml new file mode 100644 index 0000000..aa0d675 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Rules/DesignBot/Tags/Default.yml @@ -0,0 +1,32 @@ +--- +ID: "bbe87145-474a-438a-be6d-a4d797a71d34" +Parent: "61c64655-9d11-4894-8e8c-4121a7c4c1e8" +Template: "854ba861-63ea-4a0c-8c7b-541e9a7ec4c1" +Path: /sitecore/system/Settings/Rules/DesignBot/Tags/Default +DB: master +SharedFields: +- ID: "42f77151-098f-496a-94cf-590b7edeeabe" + Hint: Tags + Type: Multilist + Value: | + {CA29398A-ED15-4723-B025-05D4EC12E629} + {09340671-13CF-4181-A706-BE150B00D735} + {D8933FCB-48F3-468E-8FB6-8F2B5CFAF404} + {CCDEDBA3-3677-433E-BA09-64A3094808C9} + {83E58187-D1E5-4FB8-953E-EE89816EC0B5} + {5A355A23-0148-48CB-9017-90A696EAF155} +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20150119T164127 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\ameagle diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot.yml new file mode 100644 index 0000000..c2ebe6b --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot.yml @@ -0,0 +1,70 @@ +--- +ID: "ca29398a-ed15-4723-b025-05d4ec12e629" +Parent: "dadb4f93-477f-491f-a905-c4005c452e67" +Template: "1a9b6300-4652-477c-a4b5-b2a64e86b29f" +Path: /sitecore/system/Settings/Rules/Definitions/Tags/DesignBot +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: office/32x32/robot.png +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Indstillinger for indsætning + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T180416:635367242567748611" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Einfügeoptionen + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T181523:635367249239889994" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20120906T165355 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: 挿入オプション + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T182651:635367256117966569" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot/Visibility.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot/Visibility.yml new file mode 100644 index 0000000..271b40d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Tags/DesignBot/Visibility.yml @@ -0,0 +1,67 @@ +--- +ID: "5fd62b6e-b08a-4a6a-945d-599734965444" +Parent: "ca29398a-ed15-4723-b025-05d4ec12e629" +Template: "aa91a868-02f2-41d3-8b78-1cad91b4dcae" +Path: /sitecore/system/Settings/Rules/Definitions/Tags/DesignBot/Visibility +DB: master +SharedFields: +- ID: "f6d8a61c-2f84-4401-bd24-52d2068172bc" + Hint: __Originator + Value: +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Synlighed + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T181003:635367246039275716" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Sichtbarkeit + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T182032:635367252323773901" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20120906T165356 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: 表示/非表示 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T183329:635367260095432888" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot.yml new file mode 100644 index 0000000..5ecbb6d --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot.yml @@ -0,0 +1,18 @@ +--- +ID: "562609b4-311f-4d1f-ac86-60ffd699732a" +Parent: "b26bd035-8d0a-4df3-8f67-2de3c7fdd74a" +Template: "0437fee2-44c9-46a6-abe9-28858d9fee8c" +Path: /sitecore/templates/Foundation/DesignBot +DB: master +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T220857Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program.yml new file mode 100644 index 0000000..28c5f7c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program.yml @@ -0,0 +1,29 @@ +--- +ID: "341b47ca-10de-471e-b82d-d7fbb5c48877" +Parent: "562609b4-311f-4d1f-ac86-60ffd699732a" +Template: "ab86861a-6030-46c5-b394-e8f99e8b87db" +Path: /sitecore/templates/Foundation/DesignBot/DesignBot Program +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: office/32x32/pci_card.png +- ID: "12c33f3f-86c5-43a5-aeb4-5598cec45116" + Hint: __Base template + Type: tree list + Value: "{1930BBEB-7805-471A-A3BE-4858AC7CF696}" +- ID: "f7d48a55-2158-4f02-9356-756654404f73" + Hint: __Standard values + Value: "{55742B6E-33DF-4598-A09D-D90A89B84837}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T221109Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program/__Standard Values.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program/__Standard Values.yml new file mode 100644 index 0000000..352ba81 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/DesignBot Program/__Standard Values.yml @@ -0,0 +1,23 @@ +--- +ID: "55742b6e-33df-4598-a09d-d90a89b84837" +Parent: "341b47ca-10de-471e-b82d-d7fbb5c48877" +Template: "341b47ca-10de-471e-b82d-d7fbb5c48877" +Path: /sitecore/templates/Foundation/DesignBot/DesignBot Program/__Standard Values +DB: master +SharedFields: +- ID: "1172f251-dad4-4efb-a329-0c63500e4f1e" + Hint: __Masters + Type: TreelistEx + Value: "{14F9A24A-5697-40AD-A429-6558A90D5F5B}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T221324Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule.yml new file mode 100644 index 0000000..2f8f6f1 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule.yml @@ -0,0 +1,29 @@ +--- +ID: "14f9a24a-5697-40ad-a429-6558a90d5f5b" +Parent: "562609b4-311f-4d1f-ac86-60ffd699732a" +Template: "ab86861a-6030-46c5-b394-e8f99e8b87db" +Path: /sitecore/templates/Foundation/DesignBot/Program Rule +DB: master +SharedFields: +- ID: "06d5295c-ed2f-4a54-9bf2-26228d113318" + Hint: __Icon + Value: Software/32x32/shape_ellipse.png +- ID: "12c33f3f-86c5-43a5-aeb4-5598cec45116" + Hint: __Base template + Type: tree list + Value: "{34E1F0D9-CCFF-4F03-A38D-933437AA3A2A}" +- ID: "f7d48a55-2158-4f02-9356-756654404f73" + Hint: __Standard values + Value: "{809C0ECE-2D8F-4230-858A-983927436822}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T221000Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data.yml new file mode 100644 index 0000000..1168449 --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data.yml @@ -0,0 +1,63 @@ +--- +ID: "12d9d41d-06e7-4ca1-b985-d6ce6f0dba16" +Parent: "14f9a24a-5697-40ad-a429-6558a90d5f5b" +Template: "e269fbb5-3750-427a-9149-7aa950b49301" +Path: /sitecore/templates/Foundation/DesignBot/Program Rule/Data +DB: master +Languages: +- Language: da + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Data + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T180144:635367241049018120" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "de-DE" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Daten + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T181335:635367248151147401" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20081103T155013 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "ja-JP" + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: データ + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T182425:635367254657976688" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Name.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Name.yml new file mode 100644 index 0000000..baa8b1c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Name.yml @@ -0,0 +1,79 @@ +--- +ID: "406fef24-0886-49c5-86d2-fbabf9ceb860" +Parent: "12d9d41d-06e7-4ca1-b985-d6ce6f0dba16" +Template: "455a3e98-a627-4b40-8035-e683a0331ac7" +Path: /sitecore/templates/Foundation/DesignBot/Program Rule/Data/Name +DB: master +SharedFields: +- ID: "ab162cc0-dc80-4abf-8871-998ee5d7ba32" + Hint: Type + Value: "Single-Line Text" +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 100 +Languages: +- Language: da + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: Navn + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Navn + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T180539:635367243390241647" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "de-DE" + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: Name + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Name + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T181625:635367249859893962" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20081103T155013 + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "ja-JP" + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: 名前 + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: 名前 + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T182810:635367256907801552" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Rule.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Rule.yml new file mode 100644 index 0000000..646396e --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/Data/Rule.yml @@ -0,0 +1,86 @@ +--- +ID: "709404de-b4a9-46dc-a0ef-d1c7734454ad" +Parent: "12d9d41d-06e7-4ca1-b985-d6ce6f0dba16" +Template: "455a3e98-a627-4b40-8035-e683a0331ac7" +Path: /sitecore/templates/Foundation/DesignBot/Program Rule/Data/Rule +DB: master +SharedFields: +- ID: "1eb8ae32-e190-44a6-968d-ed904c794ebf" + Hint: Source + Value: /sitecore/system/settings/Rules/DesignBot +- ID: "ab162cc0-dc80-4abf-8871-998ee5d7ba32" + Hint: Type + Value: Rules +- ID: "ba3f86a2-4a1c-4d78-b63d-91c2779c1b5e" + Hint: __Sortorder + Value: 200 +- ID: "be351a73-fcb0-4213-93fa-c302d8ab4f51" + Hint: Shared + Type: Checkbox + Value: 1 +Languages: +- Language: da + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: Regel + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Regel + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T180709:635367244290238059" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "de-DE" + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: Regel + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Regel + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T181753:635367250739729590" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20081103T215013Z + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin +- Language: "ja-JP" + Fields: + - ID: "19a69332-a23e-4e70-8d16-b2640cb24cc8" + Hint: Title + Value: ルール + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: ルール + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: "20140526T183016:635367258162474783" + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\admin diff --git a/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/__Standard Values.yml b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/__Standard Values.yml new file mode 100644 index 0000000..d78fc4c --- /dev/null +++ b/src/Foundation/DesignBot/serialization/Foundation.DesignBot.Templates/DesignBot/Program Rule/__Standard Values.yml @@ -0,0 +1,21 @@ +--- +ID: "809c0ece-2d8f-4230-858a-983927436822" +Parent: "14f9a24a-5697-40ad-a429-6558a90d5f5b" +Template: "14f9a24a-5697-40ad-a429-6558a90d5f5b" +Path: /sitecore/templates/Foundation/DesignBot/Program Rule/__Standard Values +DB: master +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20181024T222053Z + - ID: "406fef24-0886-49c5-86d2-fbabf9ceb860" + Hint: Name + Value: $name + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\jgregory