├── .gitignore
├── LICENSE
├── appveyor.yml
├── nuget.config
├── readme.md
├── sample
├── back-end
│ ├── Sitecore.Js.Presentation.Sample.TDS.Master
│ │ ├── Sitecore.Js.Presentation.Sample.TDS.Master.scproj
│ │ └── sitecore
│ │ │ ├── content.item
│ │ │ ├── content
│ │ │ ├── Home.item
│ │ │ └── Home
│ │ │ │ ├── Lodash Content.item
│ │ │ │ ├── MVC RichText.item
│ │ │ │ ├── React Content.item
│ │ │ │ ├── Redux Counter.item
│ │ │ │ └── Redux Timer.item
│ │ │ ├── layout.item
│ │ │ ├── layout
│ │ │ ├── Layouts.item
│ │ │ ├── Layouts
│ │ │ │ └── Js Sample Layout.item
│ │ │ ├── Placeholder Settings.item
│ │ │ ├── Placeholder Settings
│ │ │ │ ├── content.item
│ │ │ │ ├── leftColumn.item
│ │ │ │ └── rightColumn.item
│ │ │ ├── Renderings.item
│ │ │ └── Renderings
│ │ │ │ ├── Js Sample.item
│ │ │ │ └── Js Sample
│ │ │ │ ├── Sample Lodash Component.item
│ │ │ │ ├── Sample React Component.item
│ │ │ │ ├── Sample Redux Counter.item
│ │ │ │ ├── Sample Redux Timer.item
│ │ │ │ └── Sample Rich Text.item
│ │ │ ├── media library.item
│ │ │ ├── media library
│ │ │ ├── Js Sample.item
│ │ │ └── Js Sample
│ │ │ │ ├── lodash.item
│ │ │ │ └── react.item
│ │ │ ├── templates.item
│ │ │ └── templates
│ │ │ ├── Js Sample.item
│ │ │ └── Js Sample
│ │ │ ├── Js Sample Item.item
│ │ │ └── Js Sample Item
│ │ │ ├── Data.item
│ │ │ ├── Data
│ │ │ ├── Image.item
│ │ │ ├── Text.item
│ │ │ └── Title.item
│ │ │ └── __Standard Values.item
│ ├── Sitecore.Js.Presentation.Sample
│ │ ├── App_Config
│ │ │ └── Include
│ │ │ │ └── Sitecore.Js.Presentation
│ │ │ │ └── Sitecore.Js.Presentation.config
│ │ ├── App_Start
│ │ │ └── RouteConfig.cs
│ │ ├── Controllers
│ │ │ └── ComponentsController.cs
│ │ ├── Global.asax
│ │ ├── Global.asax.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Sitecore.Js.Presentation.Sample.Web.csproj.DotSettings
│ │ ├── Sitecore.Js.Presentation.Sample.csproj
│ │ ├── Sitecore.Js.Presentation.Sample.csproj.DotSettings
│ │ ├── Views
│ │ │ ├── Components
│ │ │ │ └── RichText.cshtml
│ │ │ ├── Shared
│ │ │ │ └── _MainLayout.cshtml
│ │ │ └── Web.config
│ │ ├── dist
│ │ │ ├── assets
│ │ │ │ ├── 448c34a56d699c29117adc64c43affeb.woff2
│ │ │ │ ├── 89889688147bd7575d6327160d64e760.svg
│ │ │ │ ├── a31b89d40f92dc8bf2c25282d3b3af8c.png
│ │ │ │ ├── bootstrap
│ │ │ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ │ │ └── glyphicons-halflings-regular.woff2
│ │ │ │ ├── common.css
│ │ │ │ ├── common.js
│ │ │ │ ├── fa2772327f55d8198301fdb8bcfc8158.woff
│ │ │ │ ├── shared.js
│ │ │ │ ├── vendor.css
│ │ │ │ └── vendor.js
│ │ │ ├── common
│ │ │ │ └── static
│ │ │ │ │ ├── fonts
│ │ │ │ │ └── readme.md
│ │ │ │ │ └── images
│ │ │ │ │ ├── readme.md
│ │ │ │ │ └── sample.png
│ │ │ ├── favicon-16x16.png
│ │ │ └── favicon-32x32.png
│ │ ├── packages.config
│ │ ├── web.Debug.config
│ │ ├── web.Release.config
│ │ └── web.config
│ ├── Sitecore.Js.Presentation.sln
│ ├── TdsGlobal.config
│ └── readme.md
├── front-end
│ ├── .editorconfig
│ ├── .eslintrc
│ ├── .gitignore
│ ├── api-stub
│ │ ├── db.json
│ │ └── routes.json
│ ├── cfg
│ │ ├── development.js
│ │ ├── production.js
│ │ ├── server.dev.js
│ │ ├── server.prod.js
│ │ └── test.js
│ ├── karma.conf.js
│ ├── package-lock.json
│ ├── package.json
│ ├── src
│ │ ├── Common
│ │ │ ├── Components
│ │ │ │ ├── counter
│ │ │ │ │ ├── counter.actions.js
│ │ │ │ │ ├── counter.component.js
│ │ │ │ │ ├── counter.reducer.js
│ │ │ │ │ └── counter.styles.scss
│ │ │ │ ├── header
│ │ │ │ │ ├── header.component.js
│ │ │ │ │ └── header.styles.sass
│ │ │ │ ├── index.js
│ │ │ │ ├── lodash-content
│ │ │ │ │ ├── lodash-content.component.html
│ │ │ │ │ ├── lodash-content.component.js
│ │ │ │ │ └── lodash-content.styles.scss
│ │ │ │ ├── simple-content
│ │ │ │ │ ├── simple-content.component.js
│ │ │ │ │ └── simple-content.styles.sass
│ │ │ │ ├── store.js
│ │ │ │ └── timer
│ │ │ │ │ ├── timer.actions.js
│ │ │ │ │ ├── timer.component.js
│ │ │ │ │ ├── timer.reducer.js
│ │ │ │ │ └── timer.styles.scss
│ │ │ ├── Pages
│ │ │ │ └── sample
│ │ │ │ │ ├── sample.js
│ │ │ │ │ ├── sample.store.js
│ │ │ │ │ └── sample.styles.sass
│ │ │ ├── constants.js
│ │ │ ├── static
│ │ │ │ ├── fonts
│ │ │ │ │ └── readme.md
│ │ │ │ └── images
│ │ │ │ │ ├── readme.md
│ │ │ │ │ └── sample.png
│ │ │ └── styles
│ │ │ │ └── app.sass
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── index.html.tmpl
│ │ ├── index.jsx
│ │ ├── sample.spec.js
│ │ └── test.index.js
│ ├── utils
│ │ ├── babel-config.js
│ │ ├── babel-loader.js
│ │ ├── constants.js
│ │ ├── defaults.js
│ │ ├── entries.js
│ │ ├── env.js
│ │ ├── get-modules.js
│ │ ├── get-plugins.js
│ │ └── index.js
│ └── webpack.config.js
└── sc-packages
│ └── Sitecore.Js.Presentation.Sample.Master.update
└── src
├── Sitecore.Js.Presentation.Sample.Console
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
├── Resources
│ └── common.js
├── Settings.StyleCop
├── Sitecore.Js.Presentation.Sample.Console.csproj
├── app.config
└── packages.config
├── Sitecore.Js.Presentation.sln
└── Sitecore.Js.Presentation
├── Component.cs
├── Configuration
├── IJsEngineManagerConfiguration.cs
└── JsEngineManagerConfiguration.cs
├── Context
├── IPageContext.cs
└── PageContext.cs
├── Engine.cs
├── Enum
└── RenderingOptions.cs
├── IComponent.cs
├── IEngine.cs
├── Locator.cs
├── Managers
├── IJsEngineManager.cs
└── JsEngineManager.cs
├── Mvc
├── HtmlHelperExtentions.cs
└── Sitecore.Js.PresentationController.cs
├── Pipelines
└── InitializeJsContext.cs
├── Properties
└── AssemblyInfo.cs
├── Resources
└── init.js
├── Settings.StyleCop
├── Sitecore.Js.Presentation.csproj
├── Sitecore.Js.Presentation.nuspec
├── app.config
├── content
├── App_Config
│ └── Include
│ │ └── Sitecore.Js.Presentation
│ │ └── Sitecore.Js.Presentation.config
├── Views
│ └── web.config.transform
└── readme.md
├── packages.config
└── tools
└── readme.md
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # Created by https://www.gitignore.io/api/visualstudio
3 |
4 | ### VisualStudio ###
5 | ## Ignore Visual Studio temporary files, build results, and
6 | ## files generated by popular Visual Studio add-ons.
7 |
8 | # User-specific files
9 | *.suo
10 | *.user
11 | *.userosscache
12 | *.sln.docstates
13 |
14 | # User-specific files (MonoDevelop/Xamarin Studio)
15 | *.userprefs
16 |
17 | # Build results
18 | [Dd]ebug/
19 | [Dd]ebugPublic/
20 | [Rr]elease/
21 | [Rr]eleases/
22 | x64/
23 | x86/
24 | bld/
25 | [Bb]in/
26 | [Oo]bj/
27 | [Ll]og/
28 |
29 | # Visual Studio 2015 cache/options directory
30 | .vs/
31 | # Uncomment if you have tasks that create the project's static files in wwwroot
32 | #wwwroot/
33 |
34 | # MSTest test Results
35 | [Tt]est[Rr]esult*/
36 | [Bb]uild[Ll]og.*
37 |
38 | # NUNIT
39 | *.VisualState.xml
40 | TestResult.xml
41 |
42 | # Build Results of an ATL Project
43 | [Dd]ebugPS/
44 | [Rr]eleasePS/
45 | dlldata.c
46 |
47 | # DNX
48 | project.lock.json
49 | project.fragment.lock.json
50 | artifacts/
51 | Properties/launchSettings.json
52 |
53 | *_i.c
54 | *_p.c
55 | *_i.h
56 | *.ilk
57 | *.meta
58 | *.obj
59 | *.pch
60 | *.pdb
61 | *.pgc
62 | *.pgd
63 | *.rsp
64 | *.sbr
65 | *.tlb
66 | *.tli
67 | *.tlh
68 | *.tmp
69 | *.tmp_proj
70 | *.log
71 | *.vspscc
72 | *.vssscc
73 | .builds
74 | *.pidb
75 | *.svclog
76 | *.scc
77 |
78 | # Chutzpah Test files
79 | _Chutzpah*
80 |
81 | # Visual C++ cache files
82 | ipch/
83 | *.aps
84 | *.ncb
85 | *.opendb
86 | *.opensdf
87 | *.sdf
88 | *.cachefile
89 | *.VC.db
90 | *.VC.VC.opendb
91 |
92 | # Visual Studio profiler
93 | *.psess
94 | *.vsp
95 | *.vspx
96 | *.sap
97 |
98 | # TFS 2012 Local Workspace
99 | $tf/
100 |
101 | # Guidance Automation Toolkit
102 | *.gpState
103 |
104 | # ReSharper is a .NET coding add-in
105 | _ReSharper*/
106 | *.[Rr]e[Ss]harper
107 | *.DotSettings.user
108 |
109 | # JustCode is a .NET coding add-in
110 | .JustCode
111 |
112 | # TeamCity is a build add-in
113 | _TeamCity*
114 |
115 | # DotCover is a Code Coverage Tool
116 | *.dotCover
117 |
118 | # Visual Studio code coverage results
119 | *.coverage
120 | *.coveragexml
121 |
122 | # NCrunch
123 | _NCrunch_*
124 | .*crunch*.local.xml
125 | nCrunchTemp_*
126 |
127 | # MightyMoose
128 | *.mm.*
129 | AutoTest.Net/
130 |
131 | # Web workbench (sass)
132 | .sass-cache/
133 |
134 | # Installshield output folder
135 | [Ee]xpress/
136 |
137 | # DocProject is a documentation generator add-in
138 | DocProject/buildhelp/
139 | DocProject/Help/*.HxT
140 | DocProject/Help/*.HxC
141 | DocProject/Help/*.hhc
142 | DocProject/Help/*.hhk
143 | DocProject/Help/*.hhp
144 | DocProject/Help/Html2
145 | DocProject/Help/html
146 |
147 | # Click-Once directory
148 | publish/
149 |
150 | # Publish Web Output
151 | *.[Pp]ublish.xml
152 | *.azurePubxml
153 | # TODO: Comment the next line if you want to checkin your web deploy settings
154 | # but database connection strings (with potential passwords) will be unencrypted
155 | *.pubxml
156 | *.publishproj
157 |
158 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
159 | # checkin your Azure Web App publish settings, but sensitive information contained
160 | # in these scripts will be unencrypted
161 | PublishScripts/
162 |
163 | # NuGet Packages
164 | *.nupkg
165 | # The packages folder can be ignored because of Package Restore
166 | **/packages/*
167 | # except build/, which is used as an MSBuild target.
168 | !**/packages/build/
169 | # Uncomment if necessary however generally it will be regenerated when needed
170 | #!**/packages/repositories.config
171 | # NuGet v3's project.json files produces more ignoreable files
172 | *.nuget.props
173 | *.nuget.targets
174 |
175 | # Microsoft Azure Build Output
176 | csx/
177 | *.build.csdef
178 |
179 | # Microsoft Azure Emulator
180 | ecf/
181 | rcf/
182 |
183 | # Windows Store app package directories and files
184 | AppPackages/
185 | BundleArtifacts/
186 | Package.StoreAssociation.xml
187 | _pkginfo.txt
188 |
189 | # Visual Studio cache files
190 | # files ending in .cache can be ignored
191 | *.[Cc]ache
192 | # but keep track of directories ending in .cache
193 | !*.[Cc]ache/
194 |
195 | # Others
196 | ClientBin/
197 | ~$*
198 | *~
199 | *.dbmdl
200 | *.dbproj.schemaview
201 | *.jfm
202 | *.pfx
203 | *.publishsettings
204 | node_modules/
205 | orleans.codegen.cs
206 |
207 | # Since there are multiple workflows, uncomment next line to ignore bower_components
208 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
209 | #bower_components/
210 |
211 | # RIA/Silverlight projects
212 | Generated_Code/
213 |
214 | # Backup & report files from converting an old project file
215 | # to a newer Visual Studio version. Backup files are not needed,
216 | # because we have git ;-)
217 | _UpgradeReport_Files/
218 | Backup*/
219 | UpgradeLog*.XML
220 | UpgradeLog*.htm
221 |
222 | # SQL Server files
223 | *.mdf
224 | *.ldf
225 |
226 | # Business Intelligence projects
227 | *.rdl.data
228 | *.bim.layout
229 | *.bim_*.settings
230 |
231 | # Microsoft Fakes
232 | FakesAssemblies/
233 |
234 | # GhostDoc plugin setting file
235 | *.GhostDoc.xml
236 |
237 | # Node.js Tools for Visual Studio
238 | .ntvs_analysis.dat
239 |
240 | # Visual Studio 6 build log
241 | *.plg
242 |
243 | # Visual Studio 6 workspace options file
244 | *.opt
245 |
246 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
247 | *.vbw
248 |
249 | # Visual Studio LightSwitch build output
250 | **/*.HTMLClient/GeneratedArtifacts
251 | **/*.DesktopClient/GeneratedArtifacts
252 | **/*.DesktopClient/ModelManifest.xml
253 | **/*.Server/GeneratedArtifacts
254 | **/*.Server/ModelManifest.xml
255 | _Pvt_Extensions
256 |
257 | # Paket dependency manager
258 | .paket/paket.exe
259 | paket-files/
260 |
261 | # FAKE - F# Make
262 | .fake/
263 |
264 | # JetBrains Rider
265 | .idea/
266 | *.sln.iml
267 |
268 | # CodeRush
269 | .cr/
270 |
271 | # Python Tools for Visual Studio (PTVS)
272 | __pycache__/
273 | *.pyc
274 |
275 | # Cake - Uncomment if you are using it
276 | # tools/
277 |
278 | # Sitecore - prevent license leak
279 | license.xml
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Alex Smagin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: 0.1.{build}
2 | pull_requests:
3 | do_not_increment_build_number: true
4 | skip_tags: true
5 | configuration: Release
6 | assembly_info:
7 | patch: true
8 | file: '**\AssemblyInfo.*'
9 | assembly_version: '{version}'
10 | assembly_file_version: '{version}'
11 | assembly_informational_version: '{version}'
12 | environment:
13 | nodejs_version: 6
14 | install:
15 | - ps: Install-Product node $env:nodejs_version
16 | before_build:
17 | - cmd: nuget restore .\src\Sitecore.Js.Presentation.sln
18 | after_build:
19 | - node --version
20 | - npm --version
21 | - cd .\sample\front-end
22 | - npm i
23 | - npm run server:dev
24 | - 7z a Sitecore.Js.Presentation.Sample.zip %APPVEYOR_BUILD_FOLDER%\sample\front-end\dist\
25 | - cd %APPVEYOR_BUILD_FOLDER%
26 | artifacts:
27 | - path: '**\Sitecore.Js.Presentation.Sample.zip'
28 | name: 'UI Sample Package'
29 | type: zip
30 | - path: 'sample\sc-packages\Sitecore.Js.Presentation.Sample.Master.update'
31 | name: 'Sitecore Update Package'
32 | type: zip
33 | build:
34 | project: .\src\Sitecore.Js.Presentation.sln
35 | publish_nuget: true
36 | verbosity: minimal
37 | deploy:
38 | - provider: Environment
39 | name: NuGet.org
40 | on:
41 | branch: master
42 | - provider: Environment
43 | name: GitHub Releases Sitecore.Js.Presentation
44 | on:
45 | branch: master
46 | cache:
47 | - src\packages -> src\**\packages.config # preserve "packages" directory in the root of build folder but will reset it if packages.config is modified
48 | - sample\front-end\node_modules -> sample\front-end\packages.json # local npm modules
49 | - '%APPDATA%\npm-cache' # npm cache
--------------------------------------------------------------------------------
/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/content/Home/Lodash Content.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {2D98F762-6297-474A-8C57-3B4DE984F0A0}
4 | database: master
5 | path: /sitecore/content/Home/Lodash Content
6 | parent: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
7 | name: Lodash Content
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T060234:636227353541130000
12 |
13 | ----field----
14 | field: {F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}
15 | name: __Renderings
16 | key: __renderings
17 | content-length: 739
18 |
19 |
20 | ----field----
21 | field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
22 | name: __Workflow
23 | key: __workflow
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
29 | name: __Default workflow
30 | key: __default workflow
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: en
36 | version: 1
37 | revision: 0ca6664d-c0a2-46e1-afa5-fd43b7044b20
38 |
39 | ----field----
40 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
41 | name: Title
42 | key: title
43 | content-length: 14
44 |
45 | Lodash Content
46 | ----field----
47 | field: {176ECF1B-2054-44EE-A12D-8127256D690F}
48 | name: Text
49 | key: text
50 | content-length: 84
51 |
52 | A modern JavaScript utility library delivering modularity, performance & extras.
53 | ----field----
54 | field: {F53B94F9-80F3-46F7-99A5-5E93BB8403E1}
55 | name: Image
56 | key: image
57 | content-length: 110
58 |
59 |
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20170215T060234Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 0ca6664d-c0a2-46e1-afa5-fd43b7044b20
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20170215T133737Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----field----
96 | field: {3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}
97 | name: __Workflow state
98 | key: __workflow state
99 | content-length: 0
100 |
101 |
102 | ----field----
103 | field: {001DD393-96C5-490B-924A-B0F25CD9EFD8}
104 | name: __Lock
105 | key: __lock
106 | content-length: 5
107 |
108 |
109 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/content/Home/MVC RichText.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {D2F42254-1A04-4452-894B-93A8A8CA940E}
4 | database: master
5 | path: /sitecore/content/Home/MVC RichText
6 | parent: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
7 | name: MVC RichText
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T133003:636227622037000000
12 |
13 | ----field----
14 | field: {F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}
15 | name: __Renderings
16 | key: __renderings
17 | content-length: 0
18 |
19 |
20 | ----field----
21 | field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
22 | name: __Workflow
23 | key: __workflow
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
29 | name: __Default workflow
30 | key: __default workflow
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: en
36 | version: 1
37 | revision: 7b801ae1-f686-4f1e-b338-3cf6da705aa7
38 |
39 | ----field----
40 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
41 | name: Title
42 | key: title
43 | content-length: 22
44 |
45 | Standard MVC Component
46 | ----field----
47 | field: {176ECF1B-2054-44EE-A12D-8127256D690F}
48 | name: Text
49 | key: text
50 | content-length: 470
51 |
52 |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quo tandem modo? Tria genera bonorum;
53 | Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
54 | Praeteritis, inquit, gaudeo. Quis est tam dissimile homini. Duo Reges: constructio interrete.
55 | ----field----
56 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
57 | name: __Created
58 | key: __created
59 | content-length: 16
60 |
61 | 20170215T060250Z
62 | ----field----
63 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
64 | name: __Created by
65 | key: __created by
66 | content-length: 14
67 |
68 | sitecore\admin
69 | ----field----
70 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
71 | name: __Revision
72 | key: __revision
73 | content-length: 36
74 |
75 | 7b801ae1-f686-4f1e-b338-3cf6da705aa7
76 | ----field----
77 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
78 | name: __Updated
79 | key: __updated
80 | content-length: 16
81 |
82 | 20170215T134234Z
83 | ----field----
84 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
85 | name: __Updated by
86 | key: __updated by
87 | content-length: 14
88 |
89 | sitecore\admin
90 | ----field----
91 | field: {3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}
92 | name: __Workflow state
93 | key: __workflow state
94 | content-length: 0
95 |
96 |
97 | ----field----
98 | field: {001DD393-96C5-490B-924A-B0F25CD9EFD8}
99 | name: __Lock
100 | key: __lock
101 | content-length: 5
102 |
103 |
104 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/content/Home/React Content.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {8AFE0B29-1CAA-44E0-993B-9C9766EF89A3}
4 | database: master
5 | path: /sitecore/content/Home/React Content
6 | parent: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
7 | name: React Content
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T060250:636227353702030000
12 |
13 | ----field----
14 | field: {F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}
15 | name: __Renderings
16 | key: __renderings
17 | content-length: 577
18 |
19 |
20 | ----field----
21 | field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
22 | name: __Workflow
23 | key: __workflow
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
29 | name: __Default workflow
30 | key: __default workflow
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: en
36 | version: 1
37 | revision: ceac6fec-f7df-4dd6-8785-d2152255cb20
38 |
39 | ----field----
40 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
41 | name: Title
42 | key: title
43 | content-length: 13
44 |
45 | React Content
46 | ----field----
47 | field: {176ECF1B-2054-44EE-A12D-8127256D690F}
48 | name: Text
49 | key: text
50 | content-length: 316
51 |
52 | Declarative
53 |
54 | React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.
55 | Declarative views make your code more predictable and easier to debug.
56 | ----field----
57 | field: {F53B94F9-80F3-46F7-99A5-5E93BB8403E1}
58 | name: Image
59 | key: image
60 | content-length: 110
61 |
62 |
63 | ----field----
64 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
65 | name: __Created
66 | key: __created
67 | content-length: 16
68 |
69 | 20170215T060250Z
70 | ----field----
71 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
72 | name: __Created by
73 | key: __created by
74 | content-length: 14
75 |
76 | sitecore\admin
77 | ----field----
78 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
79 | name: __Revision
80 | key: __revision
81 | content-length: 36
82 |
83 | ceac6fec-f7df-4dd6-8785-d2152255cb20
84 | ----field----
85 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
86 | name: __Updated
87 | key: __updated
88 | content-length: 16
89 |
90 | 20170215T132931Z
91 | ----field----
92 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
93 | name: __Updated by
94 | key: __updated by
95 | content-length: 14
96 |
97 | sitecore\admin
98 | ----field----
99 | field: {3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}
100 | name: __Workflow state
101 | key: __workflow state
102 | content-length: 0
103 |
104 |
105 | ----field----
106 | field: {001DD393-96C5-490B-924A-B0F25CD9EFD8}
107 | name: __Lock
108 | key: __lock
109 | content-length: 5
110 |
111 |
112 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/content/Home/Redux Counter.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {DD4ADDAC-31C3-4D3F-9873-43D3E16FA3F8}
4 | database: master
5 | path: /sitecore/content/Home/Redux Counter
6 | parent: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
7 | name: Redux Counter
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T060302:636227353824970000
12 |
13 | ----field----
14 | field: {F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}
15 | name: __Renderings
16 | key: __renderings
17 | content-length: 0
18 |
19 |
20 | ----field----
21 | field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
22 | name: __Workflow
23 | key: __workflow
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
29 | name: __Default workflow
30 | key: __default workflow
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: en
36 | version: 1
37 | revision: 23acd7be-d855-442f-813c-be497bd8b56c
38 |
39 | ----field----
40 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
41 | name: Title
42 | key: title
43 | content-length: 13
44 |
45 | Redux Counter
46 | ----field----
47 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
48 | name: __Created
49 | key: __created
50 | content-length: 16
51 |
52 | 20170215T060250Z
53 | ----field----
54 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
55 | name: __Created by
56 | key: __created by
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
62 | name: __Revision
63 | key: __revision
64 | content-length: 36
65 |
66 | 23acd7be-d855-442f-813c-be497bd8b56c
67 | ----field----
68 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
69 | name: __Updated
70 | key: __updated
71 | content-length: 16
72 |
73 | 20170215T132601Z
74 | ----field----
75 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
76 | name: __Updated by
77 | key: __updated by
78 | content-length: 14
79 |
80 | sitecore\admin
81 | ----field----
82 | field: {3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}
83 | name: __Workflow state
84 | key: __workflow state
85 | content-length: 0
86 |
87 |
88 | ----field----
89 | field: {001DD393-96C5-490B-924A-B0F25CD9EFD8}
90 | name: __Lock
91 | key: __lock
92 | content-length: 5
93 |
94 |
95 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/content/Home/Redux Timer.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {FA32BC34-CBA3-4741-B63B-BAFC045BE217}
4 | database: master
5 | path: /sitecore/content/Home/Redux Timer
6 | parent: {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}
7 | name: Redux Timer
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T060312:636227353929930000
12 |
13 | ----field----
14 | field: {F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}
15 | name: __Renderings
16 | key: __renderings
17 | content-length: 0
18 |
19 |
20 | ----field----
21 | field: {A4F985D9-98B3-4B52-AAAF-4344F6E747C6}
22 | name: __Workflow
23 | key: __workflow
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
29 | name: __Default workflow
30 | key: __default workflow
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: en
36 | version: 1
37 | revision: fa9703e6-4bee-4128-9e44-f6868f8d25e1
38 |
39 | ----field----
40 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
41 | name: Title
42 | key: title
43 | content-length: 11
44 |
45 | Redux Timer
46 | ----field----
47 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
48 | name: __Created
49 | key: __created
50 | content-length: 16
51 |
52 | 20170215T060250Z
53 | ----field----
54 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
55 | name: __Created by
56 | key: __created by
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
62 | name: __Revision
63 | key: __revision
64 | content-length: 36
65 |
66 | fa9703e6-4bee-4128-9e44-f6868f8d25e1
67 | ----field----
68 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
69 | name: __Updated
70 | key: __updated
71 | content-length: 16
72 |
73 | 20170215T132616Z
74 | ----field----
75 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
76 | name: __Updated by
77 | key: __updated by
78 | content-length: 14
79 |
80 | sitecore\admin
81 | ----field----
82 | field: {3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}
83 | name: __Workflow state
84 | key: __workflow state
85 | content-length: 0
86 |
87 |
88 | ----field----
89 | field: {001DD393-96C5-490B-924A-B0F25CD9EFD8}
90 | name: __Lock
91 | key: __lock
92 | content-length: 5
93 |
94 |
95 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Layouts/Js Sample Layout.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {99DED077-FF71-47BC-9FC2-B24F25D6F34D}
4 | database: master
5 | path: /sitecore/layout/Layouts/Js Sample Layout
6 | parent: {75CC5CE4-8979-4008-9D3C-806477D57619}
7 | name: Js Sample Layout
8 | master: {3F0E643C-3B9A-4E3F-961A-75057BA3C4E8}
9 | template: {3A45A723-64EE-4919-9D41-02FD40FD1466}
10 | templatekey: Layout
11 | created: 20170215T072122:636227400824770000
12 |
13 | ----field----
14 | field: {A036B2BC-BA04-44F6-A75F-BAE6CD242ABF}
15 | name: Path
16 | key: path
17 | content-length: 32
18 |
19 | /Views/Shared/_MainLayout.cshtml
20 | ----field----
21 | field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E}
22 | name: __Sortorder
23 | key: __sortorder
24 | content-length: 1
25 |
26 | 0
27 | ----field----
28 | field: {56776EDF-261C-4ABC-9FE7-70C618795239}
29 | name: __Help link
30 | key: __help link
31 | content-length: 0
32 |
33 |
34 | ----field----
35 | field: {DEC8D2D5-E3CF-48B6-A653-8E69E2716641}
36 | name: __Security
37 | key: __security
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: f50191fa-4abc-4098-bc3c-29bc8ed61b1d
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 11
51 |
52 | Prøvelayout
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133408Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | f50191fa-4abc-4098-bc3c-29bc8ed61b1d
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133408Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 3cb60ded-abc4-4603-a521-1beb20d76229
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 15
105 |
106 | Beispiel Layout
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133538Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 3cb60ded-abc4-4603-a521-1beb20d76229
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133538Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: f272e92e-02bc-457d-830d-fbc6644bba64
153 |
154 | ----field----
155 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
156 | name: __Created
157 | key: __created
158 | content-length: 16
159 |
160 | 20170215T055606Z
161 | ----field----
162 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
163 | name: __Created by
164 | key: __created by
165 | content-length: 14
166 |
167 | sitecore\admin
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | f272e92e-02bc-457d-830d-fbc6644bba64
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T133851Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: ff24f1ed-23a5-411b-aab5-ef5283c591bc
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 10
199 |
200 | サンプル レイアウト
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133707Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | ff24f1ed-23a5-411b-aab5-ef5283c591bc
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133707Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Placeholder Settings.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {1CE3B36C-9B0C-4EB5-A996-BFCB4EAA5287}
4 | database: master
5 | path: /sitecore/layout/Placeholder Settings
6 | parent: {EB2E4FFD-2761-4653-B052-26A64D385227}
7 | name: Placeholder Settings
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {A87A00B1-E6DB-45AB-8B54-636FEC3B5523}
10 | templatekey: Folder
11 | created: 20160729T132116:636053952760000000
12 |
13 | ----field----
14 | field: {9C6106EA-7A5A-48E2-8CAD-F0F693B1E2D4}
15 | name: __Read Only
16 | key: __read only
17 | content-length: 1
18 |
19 | 1
20 | ----field----
21 | field: {1172F251-DAD4-4EFB-A329-0C63500E4F1E}
22 | name: __Masters
23 | key: __masters
24 | content-length: 77
25 |
26 | {5C547D4E-7111-4995-95B0-6B561751BF2E}|{C3B037A0-46E5-4B67-AC7A-A144B962A56F}
27 | ----field----
28 | field: {DEC8D2D5-E3CF-48B6-A653-8E69E2716641}
29 | name: __Security
30 | key: __security
31 | content-length: 120
32 |
33 | ar|sitecore\Sitecore Client Developing|pd|+item:delete|+item:create|+item:rename|+item:read|+item:write|pe|+item:create|
34 | ----version----
35 | language: da
36 | version: 1
37 | revision: 5f0c2df9-f2f5-4d05-9076-124b56a92dfd
38 |
39 | ----field----
40 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
41 | name: __Display name
42 | key: __display name
43 | content-length: 29
44 |
45 | Indstillinger for placeholder
46 | ----field----
47 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
48 | name: __Owner
49 | key: __owner
50 | content-length: 14
51 |
52 | sitecore\admin
53 | ----field----
54 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
55 | name: __Created
56 | key: __created
57 | content-length: 16
58 |
59 | 20160729T133409Z
60 | ----field----
61 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
62 | name: __Created by
63 | key: __created by
64 | content-length: 14
65 |
66 | sitecore\admin
67 | ----field----
68 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
69 | name: __Revision
70 | key: __revision
71 | content-length: 36
72 |
73 | 5f0c2df9-f2f5-4d05-9076-124b56a92dfd
74 | ----field----
75 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
76 | name: __Updated
77 | key: __updated
78 | content-length: 16
79 |
80 | 20160729T133409Z
81 | ----field----
82 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
83 | name: __Updated by
84 | key: __updated by
85 | content-length: 14
86 |
87 | sitecore\admin
88 | ----version----
89 | language: de-DE
90 | version: 1
91 | revision: 12d8b695-a9d0-456c-8c2e-70cbe4e4145c
92 |
93 | ----field----
94 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
95 | name: __Display name
96 | key: __display name
97 | content-length: 24
98 |
99 | Platzhaltereinstellungen
100 | ----field----
101 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
102 | name: __Owner
103 | key: __owner
104 | content-length: 14
105 |
106 | sitecore\admin
107 | ----field----
108 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
109 | name: __Created
110 | key: __created
111 | content-length: 16
112 |
113 | 20160729T133538Z
114 | ----field----
115 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
116 | name: __Created by
117 | key: __created by
118 | content-length: 14
119 |
120 | sitecore\admin
121 | ----field----
122 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
123 | name: __Revision
124 | key: __revision
125 | content-length: 36
126 |
127 | 12d8b695-a9d0-456c-8c2e-70cbe4e4145c
128 | ----field----
129 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
130 | name: __Updated
131 | key: __updated
132 | content-length: 16
133 |
134 | 20160729T133538Z
135 | ----field----
136 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
137 | name: __Updated by
138 | key: __updated by
139 | content-length: 14
140 |
141 | sitecore\admin
142 | ----version----
143 | language: en
144 | version: 1
145 | revision: a5533dc9-3e0f-43d9-a91f-3a389bc50574
146 |
147 | ----field----
148 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
149 | name: __Created
150 | key: __created
151 | content-length: 15
152 |
153 | 20080110T095800
154 | ----field----
155 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
156 | name: __Created by
157 | key: __created by
158 | content-length: 14
159 |
160 | sitecore\admin
161 | ----field----
162 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
163 | name: __Revision
164 | key: __revision
165 | content-length: 36
166 |
167 | a5533dc9-3e0f-43d9-a91f-3a389bc50574
168 | ----field----
169 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
170 | name: __Updated
171 | key: __updated
172 | content-length: 34
173 |
174 | 20110928T152142:634528201026463308
175 | ----field----
176 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
177 | name: __Updated by
178 | key: __updated by
179 | content-length: 14
180 |
181 | sitecore\Admin
182 | ----version----
183 | language: ja-JP
184 | version: 1
185 | revision: eb867636-5c5e-49bb-96bd-7276744450f7
186 |
187 | ----field----
188 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
189 | name: __Display name
190 | key: __display name
191 | content-length: 10
192 |
193 | プレースホルダー設定
194 | ----field----
195 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
196 | name: __Owner
197 | key: __owner
198 | content-length: 14
199 |
200 | sitecore\admin
201 | ----field----
202 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
203 | name: __Created
204 | key: __created
205 | content-length: 16
206 |
207 | 20160729T133707Z
208 | ----field----
209 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
210 | name: __Created by
211 | key: __created by
212 | content-length: 14
213 |
214 | sitecore\admin
215 | ----field----
216 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
217 | name: __Revision
218 | key: __revision
219 | content-length: 36
220 |
221 | eb867636-5c5e-49bb-96bd-7276744450f7
222 | ----field----
223 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
224 | name: __Updated
225 | key: __updated
226 | content-length: 16
227 |
228 | 20160729T133707Z
229 | ----field----
230 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
231 | name: __Updated by
232 | key: __updated by
233 | content-length: 14
234 |
235 | sitecore\admin
236 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample
6 | parent: {32566F0E-7686-45F1-A12F-D7260BD78BC3}
7 | name: Js Sample
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {7EE0975B-0698-493E-B3A2-0B2EF33D0522}
10 | templatekey: Rendering Folder
11 | created: 20170215T072151:636227401114670000
12 |
13 | ----version----
14 | language: en
15 | version: 1
16 | revision: 6c048891-b754-409f-af44-3b7a86f7ae6f
17 |
18 | ----field----
19 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
20 | name: __Created
21 | key: __created
22 | content-length: 16
23 |
24 | 20170215T072151Z
25 | ----field----
26 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
27 | name: __Revision
28 | key: __revision
29 | content-length: 36
30 |
31 | 6c048891-b754-409f-af44-3b7a86f7ae6f
32 | ----field----
33 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
34 | name: __Updated
35 | key: __updated
36 | content-length: 16
37 |
38 | 20170215T072151Z
39 | ----field----
40 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
41 | name: __Updated by
42 | key: __updated by
43 | content-length: 14
44 |
45 | sitecore\admin
46 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample/Sample Lodash Component.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {3634E8E4-3198-46A2-89FE-76D78836B505}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample/Sample Lodash Component
6 | parent: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
7 | name: Sample Lodash Component
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}
10 | templatekey: Controller rendering
11 | created: 20170215T060115:636227352758870000
12 |
13 | ----field----
14 | field: {E64AD073-DFCC-4D20-8C0B-FE5AA6226CD7}
15 | name: Controller
16 | key: controller
17 | content-length: 97
18 |
19 | Sitecore.Js.Presentation.Sample.Controllers.ComponentsController, Sitecore.Js.Presentation.Sample
20 | ----field----
21 | field: {DED9E431-3604-4921-A4B3-A6EC7636A5B6}
22 | name: Controller Action
23 | key: controller action
24 | content-length: 13
25 |
26 | LodashContent
27 | ----field----
28 | field: {1C0AF338-70A8-455F-8366-173135E03BE6}
29 | name: Placeholder
30 | key: placeholder
31 | content-length: 7
32 |
33 | content
34 | ----field----
35 | field: {13F89250-AD6B-4548-882E-118A12C18094}
36 | name: Parameters Template
37 | key: parameters template
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: 571431ec-c773-4358-8015-004477ec7fc7
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 14
51 |
52 | Google +1-knap
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133416Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 571431ec-c773-4358-8015-004477ec7fc7
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133416Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 31234a8d-69aa-4f88-a298-d253af46a8ab
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 16
105 |
106 | Google +1 Button
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133546Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 31234a8d-69aa-4f88-a298-d253af46a8ab
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133546Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: 0b917901-c104-444d-8d34-f2c7158c3dff
153 |
154 | ----field----
155 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
156 | name: __Display name
157 | key: __display name
158 | content-length: 0
159 |
160 |
161 | ----field----
162 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
163 | name: __Created
164 | key: __created
165 | content-length: 16
166 |
167 | 20170215T055745Z
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | 0b917901-c104-444d-8d34-f2c7158c3dff
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T072213Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: b3fb8c34-36b3-4996-8632-bef35118615d
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 13
199 |
200 | Google +1 ボタン
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133716Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | b3fb8c34-36b3-4996-8632-bef35118615d
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133716Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample/Sample React Component.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {13A09EED-473F-4205-9F73-81E491E23D39}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample/Sample React Component
6 | parent: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
7 | name: Sample React Component
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}
10 | templatekey: Controller rendering
11 | created: 20170215T060014:636227352149270000
12 |
13 | ----field----
14 | field: {E64AD073-DFCC-4D20-8C0B-FE5AA6226CD7}
15 | name: Controller
16 | key: controller
17 | content-length: 97
18 |
19 | Sitecore.Js.Presentation.Sample.Controllers.ComponentsController, Sitecore.Js.Presentation.Sample
20 | ----field----
21 | field: {DED9E431-3604-4921-A4B3-A6EC7636A5B6}
22 | name: Controller Action
23 | key: controller action
24 | content-length: 13
25 |
26 | SimpleContent
27 | ----field----
28 | field: {1C0AF338-70A8-455F-8366-173135E03BE6}
29 | name: Placeholder
30 | key: placeholder
31 | content-length: 7
32 |
33 | content
34 | ----field----
35 | field: {13F89250-AD6B-4548-882E-118A12C18094}
36 | name: Parameters Template
37 | key: parameters template
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: 571431ec-c773-4358-8015-004477ec7fc7
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 14
51 |
52 | Google +1-knap
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133416Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 571431ec-c773-4358-8015-004477ec7fc7
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133416Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 31234a8d-69aa-4f88-a298-d253af46a8ab
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 16
105 |
106 | Google +1 Button
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133546Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 31234a8d-69aa-4f88-a298-d253af46a8ab
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133546Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: b546b962-ad00-4698-8a85-1f8518ffd45a
153 |
154 | ----field----
155 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
156 | name: __Display name
157 | key: __display name
158 | content-length: 0
159 |
160 |
161 | ----field----
162 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
163 | name: __Created
164 | key: __created
165 | content-length: 16
166 |
167 | 20170215T055745Z
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | b546b962-ad00-4698-8a85-1f8518ffd45a
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T072210Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: b3fb8c34-36b3-4996-8632-bef35118615d
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 13
199 |
200 | Google +1 ボタン
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133716Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | b3fb8c34-36b3-4996-8632-bef35118615d
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133716Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample/Sample Redux Counter.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {2B2FD742-45D8-4E2C-A639-55A75793AACA}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample/Sample Redux Counter
6 | parent: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
7 | name: Sample Redux Counter
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}
10 | templatekey: Controller rendering
11 | created: 20170215T060055:636227352558970000
12 |
13 | ----field----
14 | field: {E64AD073-DFCC-4D20-8C0B-FE5AA6226CD7}
15 | name: Controller
16 | key: controller
17 | content-length: 97
18 |
19 | Sitecore.Js.Presentation.Sample.Controllers.ComponentsController, Sitecore.Js.Presentation.Sample
20 | ----field----
21 | field: {DED9E431-3604-4921-A4B3-A6EC7636A5B6}
22 | name: Controller Action
23 | key: controller action
24 | content-length: 7
25 |
26 | Counter
27 | ----field----
28 | field: {1C0AF338-70A8-455F-8366-173135E03BE6}
29 | name: Placeholder
30 | key: placeholder
31 | content-length: 7
32 |
33 | content
34 | ----field----
35 | field: {13F89250-AD6B-4548-882E-118A12C18094}
36 | name: Parameters Template
37 | key: parameters template
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: 571431ec-c773-4358-8015-004477ec7fc7
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 14
51 |
52 | Google +1-knap
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133416Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 571431ec-c773-4358-8015-004477ec7fc7
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133416Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 31234a8d-69aa-4f88-a298-d253af46a8ab
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 16
105 |
106 | Google +1 Button
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133546Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 31234a8d-69aa-4f88-a298-d253af46a8ab
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133546Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: 0c33f921-b390-46a5-9f64-3a52df00e6b1
153 |
154 | ----field----
155 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
156 | name: __Display name
157 | key: __display name
158 | content-length: 0
159 |
160 |
161 | ----field----
162 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
163 | name: __Created
164 | key: __created
165 | content-length: 16
166 |
167 | 20170215T055745Z
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | 0c33f921-b390-46a5-9f64-3a52df00e6b1
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T072207Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: b3fb8c34-36b3-4996-8632-bef35118615d
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 13
199 |
200 | Google +1 ボタン
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133716Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | b3fb8c34-36b3-4996-8632-bef35118615d
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133716Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample/Sample Redux Timer.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {3A1E62D4-97D7-4221-8AC3-AB78720EA965}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample/Sample Redux Timer
6 | parent: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
7 | name: Sample Redux Timer
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}
10 | templatekey: Controller rendering
11 | created: 20170215T060038:636227352383900000
12 |
13 | ----field----
14 | field: {E64AD073-DFCC-4D20-8C0B-FE5AA6226CD7}
15 | name: Controller
16 | key: controller
17 | content-length: 97
18 |
19 | Sitecore.Js.Presentation.Sample.Controllers.ComponentsController, Sitecore.Js.Presentation.Sample
20 | ----field----
21 | field: {DED9E431-3604-4921-A4B3-A6EC7636A5B6}
22 | name: Controller Action
23 | key: controller action
24 | content-length: 5
25 |
26 | Timer
27 | ----field----
28 | field: {1C0AF338-70A8-455F-8366-173135E03BE6}
29 | name: Placeholder
30 | key: placeholder
31 | content-length: 7
32 |
33 | content
34 | ----field----
35 | field: {13F89250-AD6B-4548-882E-118A12C18094}
36 | name: Parameters Template
37 | key: parameters template
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: 571431ec-c773-4358-8015-004477ec7fc7
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 14
51 |
52 | Google +1-knap
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133416Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 571431ec-c773-4358-8015-004477ec7fc7
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133416Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 31234a8d-69aa-4f88-a298-d253af46a8ab
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 16
105 |
106 | Google +1 Button
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133546Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 31234a8d-69aa-4f88-a298-d253af46a8ab
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133546Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: 84318c12-9236-4774-9163-636b29be49ad
153 |
154 | ----field----
155 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
156 | name: __Display name
157 | key: __display name
158 | content-length: 0
159 |
160 |
161 | ----field----
162 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
163 | name: __Created
164 | key: __created
165 | content-length: 16
166 |
167 | 20170215T055745Z
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | 84318c12-9236-4774-9163-636b29be49ad
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T072204Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: b3fb8c34-36b3-4996-8632-bef35118615d
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 13
199 |
200 | Google +1 ボタン
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133716Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | b3fb8c34-36b3-4996-8632-bef35118615d
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133716Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/layout/Renderings/Js Sample/Sample Rich Text.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {DE328081-87E2-4367-9EF5-F01C83305C45}
4 | database: master
5 | path: /sitecore/layout/Renderings/Js Sample/Sample Rich Text
6 | parent: {F4E688E2-9962-499E-B751-9F9A5D0F74DE}
7 | name: Sample Rich Text
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {2A3E91A0-7987-44B5-AB34-35C2D9DE83B9}
10 | templatekey: Controller rendering
11 | created: 20170215T055656:636227350168030000
12 |
13 | ----field----
14 | field: {E64AD073-DFCC-4D20-8C0B-FE5AA6226CD7}
15 | name: Controller
16 | key: controller
17 | content-length: 97
18 |
19 | Sitecore.Js.Presentation.Sample.Controllers.ComponentsController, Sitecore.Js.Presentation.Sample
20 | ----field----
21 | field: {DED9E431-3604-4921-A4B3-A6EC7636A5B6}
22 | name: Controller Action
23 | key: controller action
24 | content-length: 8
25 |
26 | RichText
27 | ----field----
28 | field: {1C0AF338-70A8-455F-8366-173135E03BE6}
29 | name: Placeholder
30 | key: placeholder
31 | content-length: 7
32 |
33 | content
34 | ----field----
35 | field: {13F89250-AD6B-4548-882E-118A12C18094}
36 | name: Parameters Template
37 | key: parameters template
38 | content-length: 0
39 |
40 |
41 | ----version----
42 | language: da
43 | version: 1
44 | revision: 571431ec-c773-4358-8015-004477ec7fc7
45 |
46 | ----field----
47 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
48 | name: __Display name
49 | key: __display name
50 | content-length: 14
51 |
52 | Google +1-knap
53 | ----field----
54 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
55 | name: __Owner
56 | key: __owner
57 | content-length: 14
58 |
59 | sitecore\admin
60 | ----field----
61 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
62 | name: __Created
63 | key: __created
64 | content-length: 16
65 |
66 | 20160729T133416Z
67 | ----field----
68 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
69 | name: __Created by
70 | key: __created by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----field----
75 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
76 | name: __Revision
77 | key: __revision
78 | content-length: 36
79 |
80 | 571431ec-c773-4358-8015-004477ec7fc7
81 | ----field----
82 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
83 | name: __Updated
84 | key: __updated
85 | content-length: 16
86 |
87 | 20160729T133416Z
88 | ----field----
89 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
90 | name: __Updated by
91 | key: __updated by
92 | content-length: 14
93 |
94 | sitecore\admin
95 | ----version----
96 | language: de-DE
97 | version: 1
98 | revision: 31234a8d-69aa-4f88-a298-d253af46a8ab
99 |
100 | ----field----
101 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
102 | name: __Display name
103 | key: __display name
104 | content-length: 16
105 |
106 | Google +1 Button
107 | ----field----
108 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
109 | name: __Owner
110 | key: __owner
111 | content-length: 14
112 |
113 | sitecore\admin
114 | ----field----
115 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
116 | name: __Created
117 | key: __created
118 | content-length: 16
119 |
120 | 20160729T133546Z
121 | ----field----
122 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
123 | name: __Created by
124 | key: __created by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----field----
129 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
130 | name: __Revision
131 | key: __revision
132 | content-length: 36
133 |
134 | 31234a8d-69aa-4f88-a298-d253af46a8ab
135 | ----field----
136 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
137 | name: __Updated
138 | key: __updated
139 | content-length: 16
140 |
141 | 20160729T133546Z
142 | ----field----
143 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
144 | name: __Updated by
145 | key: __updated by
146 | content-length: 14
147 |
148 | sitecore\admin
149 | ----version----
150 | language: en
151 | version: 1
152 | revision: 0669c621-9584-4b7f-ac10-63b563c0a3b9
153 |
154 | ----field----
155 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
156 | name: __Display name
157 | key: __display name
158 | content-length: 0
159 |
160 |
161 | ----field----
162 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
163 | name: __Created
164 | key: __created
165 | content-length: 16
166 |
167 | 20170215T055745Z
168 | ----field----
169 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
170 | name: __Revision
171 | key: __revision
172 | content-length: 36
173 |
174 | 0669c621-9584-4b7f-ac10-63b563c0a3b9
175 | ----field----
176 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
177 | name: __Updated
178 | key: __updated
179 | content-length: 16
180 |
181 | 20170215T072200Z
182 | ----field----
183 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
184 | name: __Updated by
185 | key: __updated by
186 | content-length: 14
187 |
188 | sitecore\admin
189 | ----version----
190 | language: ja-JP
191 | version: 1
192 | revision: b3fb8c34-36b3-4996-8632-bef35118615d
193 |
194 | ----field----
195 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
196 | name: __Display name
197 | key: __display name
198 | content-length: 13
199 |
200 | Google +1 ボタン
201 | ----field----
202 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
203 | name: __Owner
204 | key: __owner
205 | content-length: 14
206 |
207 | sitecore\admin
208 | ----field----
209 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
210 | name: __Created
211 | key: __created
212 | content-length: 16
213 |
214 | 20160729T133716Z
215 | ----field----
216 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
217 | name: __Created by
218 | key: __created by
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
224 | name: __Revision
225 | key: __revision
226 | content-length: 36
227 |
228 | b3fb8c34-36b3-4996-8632-bef35118615d
229 | ----field----
230 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
231 | name: __Updated
232 | key: __updated
233 | content-length: 16
234 |
235 | 20160729T133716Z
236 | ----field----
237 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
238 | name: __Updated by
239 | key: __updated by
240 | content-length: 14
241 |
242 | sitecore\admin
243 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/media library/Js Sample.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {38282890-FBF4-4E84-BF90-E59FDD150592}
4 | database: master
5 | path: /sitecore/media library/Js Sample
6 | parent: {3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1}
7 | name: Js Sample
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {FE5DD826-48C6-436D-B87A-7C4210C7413B}
10 | templatekey: Media folder
11 | created: 20170215T070907:636227393470230000
12 |
13 | ----version----
14 | language: en
15 | version: 1
16 | revision: 44c9b703-9a82-4acf-9b23-9f0c46c8e40b
17 |
18 | ----field----
19 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
20 | name: __Created
21 | key: __created
22 | content-length: 16
23 |
24 | 20170215T070907Z
25 | ----field----
26 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
27 | name: __Created by
28 | key: __created by
29 | content-length: 14
30 |
31 | sitecore\admin
32 | ----field----
33 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
34 | name: __Revision
35 | key: __revision
36 | content-length: 36
37 |
38 | 44c9b703-9a82-4acf-9b23-9f0c46c8e40b
39 | ----field----
40 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
41 | name: __Updated
42 | key: __updated
43 | content-length: 16
44 |
45 | 20170215T132355Z
46 | ----field----
47 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
48 | name: __Updated by
49 | key: __updated by
50 | content-length: 14
51 |
52 | sitecore\admin
53 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/templates/Js Sample.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {073532DC-FC78-44AE-B426-9891CAF1C35D}
4 | database: master
5 | path: /sitecore/templates/Js Sample
6 | parent: {3C1715FE-6A13-4FCF-845F-DE308BA9741D}
7 | name: Js Sample
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {0437FEE2-44C9-46A6-ABE9-28858D9FEE8C}
10 | templatekey: Template Folder
11 | created: 20170215T132409:636227618499670000
12 |
13 | ----field----
14 | field: {D85DB4EC-FF89-4F9C-9E7C-A9E0654797FC}
15 | name: __Editor
16 | key: __editor
17 | content-length: 0
18 |
19 |
20 | ----field----
21 | field: {9C6106EA-7A5A-48E2-8CAD-F0F693B1E2D4}
22 | name: __Read Only
23 | key: __read only
24 | content-length: 0
25 |
26 |
27 | ----field----
28 | field: {DEC8D2D5-E3CF-48B6-A653-8E69E2716641}
29 | name: __Security
30 | key: __security
31 | content-length: 0
32 |
33 |
34 | ----version----
35 | language: da
36 | version: 1
37 | revision: 5027f84f-0023-4194-af91-d8ee0768b38e
38 |
39 | ----field----
40 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
41 | name: __Display name
42 | key: __display name
43 | content-length: 8
44 |
45 | Eksempel
46 | ----field----
47 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
48 | name: __Owner
49 | key: __owner
50 | content-length: 14
51 |
52 | sitecore\admin
53 | ----field----
54 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
55 | name: __Created
56 | key: __created
57 | content-length: 16
58 |
59 | 20160729T133414Z
60 | ----field----
61 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
62 | name: __Created by
63 | key: __created by
64 | content-length: 14
65 |
66 | sitecore\admin
67 | ----field----
68 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
69 | name: __Revision
70 | key: __revision
71 | content-length: 36
72 |
73 | 5027f84f-0023-4194-af91-d8ee0768b38e
74 | ----field----
75 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
76 | name: __Updated
77 | key: __updated
78 | content-length: 16
79 |
80 | 20160729T133414Z
81 | ----field----
82 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
83 | name: __Updated by
84 | key: __updated by
85 | content-length: 14
86 |
87 | sitecore\admin
88 | ----version----
89 | language: de-DE
90 | version: 1
91 | revision: 5ffd3a49-aee5-433e-95f5-e174b44e7fc4
92 |
93 | ----field----
94 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
95 | name: __Display name
96 | key: __display name
97 | content-length: 8
98 |
99 | Beispiel
100 | ----field----
101 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
102 | name: __Owner
103 | key: __owner
104 | content-length: 14
105 |
106 | sitecore\admin
107 | ----field----
108 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
109 | name: __Created
110 | key: __created
111 | content-length: 16
112 |
113 | 20160729T133544Z
114 | ----field----
115 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
116 | name: __Created by
117 | key: __created by
118 | content-length: 14
119 |
120 | sitecore\admin
121 | ----field----
122 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
123 | name: __Revision
124 | key: __revision
125 | content-length: 36
126 |
127 | 5ffd3a49-aee5-433e-95f5-e174b44e7fc4
128 | ----field----
129 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
130 | name: __Updated
131 | key: __updated
132 | content-length: 16
133 |
134 | 20160729T133544Z
135 | ----field----
136 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
137 | name: __Updated by
138 | key: __updated by
139 | content-length: 14
140 |
141 | sitecore\admin
142 | ----version----
143 | language: en
144 | version: 1
145 | revision: fe39dc83-46ec-46ad-a5f7-aabb9b7415eb
146 |
147 | ----field----
148 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
149 | name: __Created
150 | key: __created
151 | content-length: 15
152 |
153 | 20060531T102844
154 | ----field----
155 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
156 | name: __Created by
157 | key: __created by
158 | content-length: 14
159 |
160 | sitecore\Admin
161 | ----field----
162 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
163 | name: __Revision
164 | key: __revision
165 | content-length: 36
166 |
167 | fe39dc83-46ec-46ad-a5f7-aabb9b7415eb
168 | ----field----
169 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
170 | name: __Updated
171 | key: __updated
172 | content-length: 15
173 |
174 | 20080130T091017
175 | ----field----
176 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
177 | name: __Updated by
178 | key: __updated by
179 | content-length: 14
180 |
181 | sitecore\admin
182 | ----version----
183 | language: ja-JP
184 | version: 1
185 | revision: f8b86931-aca5-4adc-9fe1-aacf6bbaa712
186 |
187 | ----field----
188 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
189 | name: __Display name
190 | key: __display name
191 | content-length: 4
192 |
193 | サンプル
194 | ----field----
195 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
196 | name: __Owner
197 | key: __owner
198 | content-length: 14
199 |
200 | sitecore\admin
201 | ----field----
202 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
203 | name: __Created
204 | key: __created
205 | content-length: 16
206 |
207 | 20160729T133714Z
208 | ----field----
209 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
210 | name: __Created by
211 | key: __created by
212 | content-length: 14
213 |
214 | sitecore\admin
215 | ----field----
216 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
217 | name: __Revision
218 | key: __revision
219 | content-length: 36
220 |
221 | f8b86931-aca5-4adc-9fe1-aacf6bbaa712
222 | ----field----
223 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
224 | name: __Updated
225 | key: __updated
226 | content-length: 16
227 |
228 | 20160729T133714Z
229 | ----field----
230 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
231 | name: __Updated by
232 | key: __updated by
233 | content-length: 14
234 |
235 | sitecore\admin
236 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/templates/Js Sample/Js Sample Item.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
4 | database: master
5 | path: /sitecore/templates/Js Sample/Js Sample Item
6 | parent: {073532DC-FC78-44AE-B426-9891CAF1C35D}
7 | name: Js Sample Item
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {AB86861A-6030-46C5-B394-E8F99E8B87DB}
10 | templatekey: Template
11 | created: 20170215T132409:636227618499830000
12 |
13 | ----field----
14 | field: {12C33F3F-86C5-43A5-AEB4-5598CEC45116}
15 | name: __Base template
16 | key: __base template
17 | content-length: 38
18 |
19 | {1930BBEB-7805-471A-A3BE-4858AC7CF696}
20 | ----field----
21 | field: {F7D48A55-2158-4F02-9356-756654404F73}
22 | name: __Standard values
23 | key: __standard values
24 | content-length: 38
25 |
26 | {4444EABA-D135-437D-B56F-31459B7B309E}
27 | ----field----
28 | field: {06D5295C-ED2F-4A54-9BF2-26228D113318}
29 | name: __Icon
30 | key: __icon
31 | content-length: 31
32 |
33 | Applications/16x16/document.png
34 | ----field----
35 | field: {B03569B1-1534-43F2-8C83-BD064B7D782C}
36 | name: __Renderers
37 | key: __renderers
38 | content-length: 0
39 |
40 |
41 | ----field----
42 | field: {DEC8D2D5-E3CF-48B6-A653-8E69E2716641}
43 | name: __Security
44 | key: __security
45 | content-length: 0
46 |
47 |
48 | ----version----
49 | language: da
50 | version: 1
51 | revision: 7b34320e-6040-47ff-9a61-02b7e52a1535
52 |
53 | ----field----
54 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
55 | name: __Display name
56 | key: __display name
57 | content-length: 19
58 |
59 | Eksempel på element
60 | ----field----
61 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
62 | name: __Owner
63 | key: __owner
64 | content-length: 14
65 |
66 | sitecore\admin
67 | ----field----
68 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
69 | name: __Created
70 | key: __created
71 | content-length: 16
72 |
73 | 20160729T133414Z
74 | ----field----
75 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
76 | name: __Created by
77 | key: __created by
78 | content-length: 14
79 |
80 | sitecore\admin
81 | ----field----
82 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
83 | name: __Revision
84 | key: __revision
85 | content-length: 36
86 |
87 | 7b34320e-6040-47ff-9a61-02b7e52a1535
88 | ----field----
89 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
90 | name: __Updated
91 | key: __updated
92 | content-length: 16
93 |
94 | 20160729T133414Z
95 | ----field----
96 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
97 | name: __Updated by
98 | key: __updated by
99 | content-length: 14
100 |
101 | sitecore\admin
102 | ----version----
103 | language: de-DE
104 | version: 1
105 | revision: d6bd8d77-1131-449b-8adc-884cbb35ed48
106 |
107 | ----field----
108 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
109 | name: __Display name
110 | key: __display name
111 | content-length: 13
112 |
113 | Beispiel Item
114 | ----field----
115 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
116 | name: __Owner
117 | key: __owner
118 | content-length: 14
119 |
120 | sitecore\admin
121 | ----field----
122 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
123 | name: __Created
124 | key: __created
125 | content-length: 16
126 |
127 | 20160729T133544Z
128 | ----field----
129 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
130 | name: __Created by
131 | key: __created by
132 | content-length: 14
133 |
134 | sitecore\admin
135 | ----field----
136 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
137 | name: __Revision
138 | key: __revision
139 | content-length: 36
140 |
141 | d6bd8d77-1131-449b-8adc-884cbb35ed48
142 | ----field----
143 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
144 | name: __Updated
145 | key: __updated
146 | content-length: 16
147 |
148 | 20160729T133544Z
149 | ----field----
150 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
151 | name: __Updated by
152 | key: __updated by
153 | content-length: 14
154 |
155 | sitecore\admin
156 | ----version----
157 | language: en
158 | version: 1
159 | revision: 51ab5dab-526d-4e4c-a52f-c88a8966686c
160 |
161 | ----field----
162 | field: {9541E67D-CE8C-4225-803D-33F7F29F09EF}
163 | name: __Short description
164 | key: __short description
165 | content-length: 0
166 |
167 |
168 | ----field----
169 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
170 | name: __Created
171 | key: __created
172 | content-length: 15
173 |
174 | 20080328T085900
175 | ----field----
176 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
177 | name: __Created by
178 | key: __created by
179 | content-length: 14
180 |
181 | sitecore\admin
182 | ----field----
183 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
184 | name: __Revision
185 | key: __revision
186 | content-length: 36
187 |
188 | 51ab5dab-526d-4e4c-a52f-c88a8966686c
189 | ----field----
190 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
191 | name: __Updated
192 | key: __updated
193 | content-length: 16
194 |
195 | 20170215T132453Z
196 | ----field----
197 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
198 | name: __Updated by
199 | key: __updated by
200 | content-length: 14
201 |
202 | sitecore\admin
203 | ----version----
204 | language: ja-JP
205 | version: 1
206 | revision: 379a2e57-9963-4082-8100-6185b4e96a45
207 |
208 | ----field----
209 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
210 | name: __Display name
211 | key: __display name
212 | content-length: 9
213 |
214 | サンプル アイテム
215 | ----field----
216 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
217 | name: __Owner
218 | key: __owner
219 | content-length: 14
220 |
221 | sitecore\admin
222 | ----field----
223 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
224 | name: __Created
225 | key: __created
226 | content-length: 16
227 |
228 | 20160729T133714Z
229 | ----field----
230 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
231 | name: __Created by
232 | key: __created by
233 | content-length: 14
234 |
235 | sitecore\admin
236 | ----field----
237 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
238 | name: __Revision
239 | key: __revision
240 | content-length: 36
241 |
242 | 379a2e57-9963-4082-8100-6185b4e96a45
243 | ----field----
244 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
245 | name: __Updated
246 | key: __updated
247 | content-length: 16
248 |
249 | 20160729T133714Z
250 | ----field----
251 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
252 | name: __Updated by
253 | key: __updated by
254 | content-length: 14
255 |
256 | sitecore\admin
257 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/templates/Js Sample/Js Sample Item/Data.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {E4C7C712-9D52-4C36-9C22-EEB99FD41376}
4 | database: master
5 | path: /sitecore/templates/Js Sample/Js Sample Item/Data
6 | parent: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
7 | name: Data
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {E269FBB5-3750-427A-9149-7AA950B49301}
10 | templatekey: Template section
11 | created: 20170215T132409:636227618499970000
12 |
13 | ----field----
14 | field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E}
15 | name: __Sortorder
16 | key: __sortorder
17 | content-length: 3
18 |
19 | 100
20 | ----version----
21 | language: da
22 | version: 1
23 | revision: ae231016-9935-4e1d-849d-c92c68ae68fc
24 |
25 | ----field----
26 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
27 | name: __Display name
28 | key: __display name
29 | content-length: 4
30 |
31 | Data
32 | ----field----
33 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
34 | name: __Owner
35 | key: __owner
36 | content-length: 14
37 |
38 | sitecore\admin
39 | ----field----
40 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
41 | name: __Created
42 | key: __created
43 | content-length: 16
44 |
45 | 20160729T133417Z
46 | ----field----
47 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
48 | name: __Created by
49 | key: __created by
50 | content-length: 14
51 |
52 | sitecore\admin
53 | ----field----
54 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
55 | name: __Revision
56 | key: __revision
57 | content-length: 36
58 |
59 | ae231016-9935-4e1d-849d-c92c68ae68fc
60 | ----field----
61 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
62 | name: __Updated
63 | key: __updated
64 | content-length: 16
65 |
66 | 20160729T133417Z
67 | ----field----
68 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
69 | name: __Updated by
70 | key: __updated by
71 | content-length: 14
72 |
73 | sitecore\admin
74 | ----version----
75 | language: de-DE
76 | version: 1
77 | revision: 9ec6ec91-9ec1-4275-b101-b09cb552c3f9
78 |
79 | ----field----
80 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
81 | name: __Display name
82 | key: __display name
83 | content-length: 5
84 |
85 | Daten
86 | ----field----
87 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
88 | name: __Owner
89 | key: __owner
90 | content-length: 14
91 |
92 | sitecore\admin
93 | ----field----
94 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
95 | name: __Created
96 | key: __created
97 | content-length: 16
98 |
99 | 20160729T133548Z
100 | ----field----
101 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
102 | name: __Created by
103 | key: __created by
104 | content-length: 14
105 |
106 | sitecore\admin
107 | ----field----
108 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
109 | name: __Revision
110 | key: __revision
111 | content-length: 36
112 |
113 | 9ec6ec91-9ec1-4275-b101-b09cb552c3f9
114 | ----field----
115 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
116 | name: __Updated
117 | key: __updated
118 | content-length: 16
119 |
120 | 20160729T133548Z
121 | ----field----
122 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
123 | name: __Updated by
124 | key: __updated by
125 | content-length: 14
126 |
127 | sitecore\admin
128 | ----version----
129 | language: en
130 | version: 1
131 | revision: 75403163-8752-4861-910e-8c9bafdc7254
132 |
133 | ----field----
134 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
135 | name: __Created
136 | key: __created
137 | content-length: 34
138 |
139 | 20080307T201110:633405174700676461
140 | ----field----
141 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
142 | name: __Created by
143 | key: __created by
144 | content-length: 14
145 |
146 | sitecore\admin
147 | ----field----
148 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
149 | name: __Revision
150 | key: __revision
151 | content-length: 36
152 |
153 | 75403163-8752-4861-910e-8c9bafdc7254
154 | ----field----
155 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
156 | name: __Updated
157 | key: __updated
158 | content-length: 16
159 |
160 | 20170215T070737Z
161 | ----field----
162 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
163 | name: __Updated by
164 | key: __updated by
165 | content-length: 14
166 |
167 | sitecore\admin
168 | ----version----
169 | language: ja-JP
170 | version: 1
171 | revision: ec3a6d01-d686-4898-a04b-e192e5e17982
172 |
173 | ----field----
174 | field: {B5E02AD9-D56F-4C41-A065-A133DB87BDEB}
175 | name: __Display name
176 | key: __display name
177 | content-length: 3
178 |
179 | データ
180 | ----field----
181 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
182 | name: __Owner
183 | key: __owner
184 | content-length: 14
185 |
186 | sitecore\admin
187 | ----field----
188 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
189 | name: __Created
190 | key: __created
191 | content-length: 16
192 |
193 | 20160729T133718Z
194 | ----field----
195 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
196 | name: __Created by
197 | key: __created by
198 | content-length: 14
199 |
200 | sitecore\admin
201 | ----field----
202 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
203 | name: __Revision
204 | key: __revision
205 | content-length: 36
206 |
207 | ec3a6d01-d686-4898-a04b-e192e5e17982
208 | ----field----
209 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
210 | name: __Updated
211 | key: __updated
212 | content-length: 16
213 |
214 | 20160729T133718Z
215 | ----field----
216 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
217 | name: __Updated by
218 | key: __updated by
219 | content-length: 14
220 |
221 | sitecore\admin
222 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/templates/Js Sample/Js Sample Item/Data/Image.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {F53B94F9-80F3-46F7-99A5-5E93BB8403E1}
4 | database: master
5 | path: /sitecore/templates/Js Sample/Js Sample Item/Data/Image
6 | parent: {E4C7C712-9D52-4C36-9C22-EEB99FD41376}
7 | name: Image
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {455A3E98-A627-4B40-8035-E683A0331AC7}
10 | templatekey: Template field
11 | created: 20170215T132410:636227618500230000
12 |
13 | ----field----
14 | field: {AB162CC0-DC80-4ABF-8871-998EE5D7BA32}
15 | name: Type
16 | key: type
17 | content-length: 5
18 |
19 | Image
20 | ----field----
21 | field: {BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E}
22 | name: __Sortorder
23 | key: __sortorder
24 | content-length: 3
25 |
26 | 300
27 | ----version----
28 | language: en
29 | version: 1
30 | revision: ea8210fa-5fb0-4890-91f7-fc71c1294f75
31 |
32 | ----field----
33 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
34 | name: __Created
35 | key: __created
36 | content-length: 16
37 |
38 | 20170215T070732Z
39 | ----field----
40 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
41 | name: __Revision
42 | key: __revision
43 | content-length: 36
44 |
45 | ea8210fa-5fb0-4890-91f7-fc71c1294f75
46 | ----field----
47 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
48 | name: __Updated
49 | key: __updated
50 | content-length: 16
51 |
52 | 20170215T070737Z
53 | ----field----
54 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
55 | name: __Updated by
56 | key: __updated by
57 | content-length: 14
58 |
59 | sitecore\admin
60 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample.TDS.Master/sitecore/templates/Js Sample/Js Sample Item/__Standard Values.item:
--------------------------------------------------------------------------------
1 | ----item----
2 | version: 1
3 | id: {4444EABA-D135-437D-B56F-31459B7B309E}
4 | database: master
5 | path: /sitecore/templates/Js Sample/Js Sample Item/__Standard Values
6 | parent: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
7 | name: __Standard Values
8 | master: {00000000-0000-0000-0000-000000000000}
9 | template: {951E938B-FE24-42EC-BCFC-2630B2AE124F}
10 | templatekey: Js Sample Item
11 | created: 20170215T132410:636227618500270000
12 |
13 | ----field----
14 | field: {1172F251-DAD4-4EFB-A329-0C63500E4F1E}
15 | name: __Masters
16 | key: __masters
17 | content-length: 77
18 |
19 | {76036F5E-CBCE-46D1-AF0A-4143F9B557AA}|{A87A00B1-E6DB-45AB-8B54-636FEC3B5523}
20 | ----field----
21 | field: {CA9B9F52-4FB0-4F87-A79F-24DEA62CDA65}
22 | name: __Default workflow
23 | key: __default workflow
24 | content-length: 0
25 |
26 |
27 | ----version----
28 | language: en
29 | version: 1
30 | revision: 6ff9a247-6bc7-4e66-8672-5745448e9660
31 |
32 | ----field----
33 | field: {81E49E48-2C71-456C-A53D-FC4CB18D85D8}
34 | name: Title
35 | key: title
36 | content-length: 5
37 |
38 | $name
39 | ----field----
40 | field: {52807595-0F8F-4B20-8D2A-CB71D28C6103}
41 | name: __Owner
42 | key: __owner
43 | content-length: 14
44 |
45 | sitecore\admin
46 | ----field----
47 | field: {25BED78C-4957-4165-998A-CA1B52F67497}
48 | name: __Created
49 | key: __created
50 | content-length: 16
51 |
52 | 20061024T144300Z
53 | ----field----
54 | field: {5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}
55 | name: __Created by
56 | key: __created by
57 | content-length: 14
58 |
59 | sitecore\Admin
60 | ----field----
61 | field: {8CDC337E-A112-42FB-BBB4-4143751E123F}
62 | name: __Revision
63 | key: __revision
64 | content-length: 36
65 |
66 | 6ff9a247-6bc7-4e66-8672-5745448e9660
67 | ----field----
68 | field: {D9CF14B1-FA16-4BA6-9288-E8A174D4D522}
69 | name: __Updated
70 | key: __updated
71 | content-length: 16
72 |
73 | 20170215T132643Z
74 | ----field----
75 | field: {BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}
76 | name: __Updated by
77 | key: __updated by
78 | content-length: 14
79 |
80 | sitecore\admin
81 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/App_Config/Include/Sitecore.Js.Presentation/Sitecore.Js.Presentation.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 10
8 | 25
9 | 1000000
10 |
11 | /dist/assets/shared.js
12 | /dist/assets/vendor.js
13 | /dist/assets/common.js
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/App_Start/RouteConfig.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Sample
2 | {
3 | using System.Web.Mvc;
4 | using System.Web.Routing;
5 |
6 | public class RouteConfig
7 | {
8 | public static void RegisterRoutes(RouteCollection routes)
9 | {
10 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
11 |
12 | /*
13 | routes.MapRoute(
14 | name: "Default",
15 | url: "{controller}/{action}/{id}",
16 | defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
17 | );
18 | */
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Controllers/ComponentsController.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Sample.Controllers
2 | {
3 | using System.Web.Mvc;
4 |
5 | using Sitecore.Data;
6 | using Sitecore.Data.Items;
7 | using Sitecore.Js.Presentation.Enum;
8 | using Sitecore.Js.Presentation.Mvc;
9 | using Sitecore.Mvc.Presentation;
10 | using Sitecore.Web.UI.WebControls;
11 |
12 | using Context = Sitecore.Context;
13 |
14 | public class ComponentsController : JsController
15 | {
16 | public ActionResult Counter()
17 | {
18 | var dataSource = this.DataSource();
19 |
20 | var model = new { title = FieldRenderer.Render(dataSource, "Title"), };
21 |
22 | return this.JsComponent("common__ext.counter", model, RenderingOptions.ClientAndServer);
23 | }
24 |
25 | public Item DataSource()
26 | {
27 | var datasourceId = RenderingContext.Current.Rendering.DataSource;
28 |
29 | if (ID.IsID(datasourceId))
30 | {
31 | return Context.Database.GetItem(new ID(datasourceId));
32 | }
33 |
34 | return Context.Item;
35 | }
36 |
37 | public ActionResult LodashContent()
38 | {
39 | var dataSource = this.DataSource();
40 |
41 | var model =
42 | new
43 | {
44 | title = FieldRenderer.Render(dataSource, "Title"),
45 | text = FieldRenderer.Render(dataSource, "Text"),
46 | image = FieldRenderer.Render(dataSource, "Image")
47 | };
48 |
49 | return this.JsComponent("common__ext.lodashContent", model, RenderingOptions.ServerOnly);
50 | }
51 |
52 | public ActionResult RichText()
53 | {
54 | return this.View(this.DataSource());
55 | }
56 |
57 | public ActionResult SimpleContent()
58 | {
59 | var dataSource = this.DataSource();
60 |
61 | var model =
62 | new
63 | {
64 | title = FieldRenderer.Render(dataSource, "Title"),
65 | text = FieldRenderer.Render(dataSource, "Text"),
66 | image = FieldRenderer.Render(dataSource, "Image")
67 | };
68 |
69 | return this.JsComponent("common__ext.simpleContent", model, RenderingOptions.ServerOnly);
70 | }
71 |
72 | public ActionResult Timer()
73 | {
74 | var dataSource = this.DataSource();
75 |
76 | var model = new { title = FieldRenderer.Render(dataSource, "Title"), };
77 |
78 | return this.JsComponent("common__ext.timer", model, RenderingOptions.ClientAndServer);
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Global.asax:
--------------------------------------------------------------------------------
1 | <%@ Application Codebehind="Global.asax.cs" Inherits="Sitecore.Js.Presentation.Sample.MvcApplication" Language="C#" %>
2 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Global.asax.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Sample
2 | {
3 | using System.Web;
4 | using System.Web.Mvc;
5 | using System.Web.Routing;
6 |
7 | public class MvcApplication : HttpApplication
8 | {
9 | protected void Application_Start()
10 | {
11 | AreaRegistration.RegisterAllAreas();
12 | RouteConfig.RegisterRoutes(RouteTable.Routes);
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/Properties/AssemblyInfo.cs
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Sitecore.Js.Presentation.Sample.Web.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
3 |
4 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Sitecore.Js.Presentation.Sample.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Views/Components/RichText.cshtml:
--------------------------------------------------------------------------------
1 |
2 |
This is an MVC component
3 |
@Html.Sitecore().Field("Title")
4 |
@Html.Sitecore().Field("Text")
5 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Views/Shared/_MainLayout.cshtml:
--------------------------------------------------------------------------------
1 | @using Sitecore.Js.Presentation.Mvc
2 | @{
3 | Layout = null;
4 | }
5 |
6 |
7 |
8 |
9 |
10 | @Html.Sitecore().Field("Title")
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | @Html.RenderComponent("common__ext.header", new { })
24 |
25 |
26 | @Html.Sitecore().Placeholder("content")
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | @Html.RenderScripts()
35 |
36 |
37 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/Views/Web.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/448c34a56d699c29117adc64c43affeb.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/448c34a56d699c29117adc64c43affeb.woff2
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/a31b89d40f92dc8bf2c25282d3b3af8c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/a31b89d40f92dc8bf2c25282d3b3af8c.png
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.svg:
--------------------------------------------------------------------------------
1 | module.exports = __webpack_public_path__ + "89889688147bd7575d6327160d64e760.svg";
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
1 | module.exports = __webpack_public_path__ + "fa2772327f55d8198301fdb8bcfc8158.woff";
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/bootstrap/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
1 | module.exports = __webpack_public_path__ + "448c34a56d699c29117adc64c43affeb.woff2";
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/common.css:
--------------------------------------------------------------------------------
1 | .route-active {
2 | font-weight: bold;
3 | text-decoration: underline;
4 | }
5 |
6 | .header {
7 | border: 0;
8 | border-radius: 0;
9 | background-color: #39C2D7;
10 | }
11 |
12 | .header > .container .navbar-brand,
13 | .header > .container-fluid .navbar-brand {
14 | color: #fff;
15 | font-weight: bold;
16 | }
17 |
18 | .header .navbar-nav > .active > a {
19 | background-color: #1A9CB0;
20 | }
21 |
22 | .header .navbar-nav > li > a {
23 | color: #fff;
24 | }
25 |
26 | .header .navbar-nav > li > a:hover {
27 | color: #464547;
28 | }
29 | .simple-content {
30 | border: 1px dashed #1A9CB0;
31 | background-color: rgba(57, 194, 215, 0.15);
32 | }
33 |
34 | .simple-content .placeholder {
35 | margin: 5px;
36 | padding: 5px;
37 | border: 3px dotted red;
38 | background-color: rgba(57, 194, 215, 0.15);
39 | }
40 | .counter {
41 | border: 1px dashed #7F993A;
42 | background-color: rgba(163, 198, 68, 0.15);
43 | }
44 |
45 | .placeholder .container.counter {
46 | width: 100%;
47 | }
48 | .timer {
49 | border: 1px dashed #7F993A;
50 | background-color: rgba(178, 39, 70, 0.15);
51 | }
52 |
53 | .placeholder .container.timer {
54 | width: 100%;
55 | }
56 | .lodash-content {
57 | border: 1px dashed #1A9CB0;
58 | background-color: rgba(57, 194, 215, 0.15);
59 | }
60 |
61 | .lodash-content .placeholder {
62 | margin: 5px;
63 | padding: 5px;
64 | border: 3px dotted red;
65 | background-color: rgba(57, 194, 215, 0.15);
66 | }
67 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/fa2772327f55d8198301fdb8bcfc8158.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/fa2772327f55d8198301fdb8bcfc8158.woff
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/assets/shared.js:
--------------------------------------------------------------------------------
1 | /******/ (function(modules) { // webpackBootstrap
2 | /******/ // install a JSONP callback for chunk loading
3 | /******/ var parentJsonpFunction = window["webpackJsonp_name___ext"];
4 | /******/ window["webpackJsonp_name___ext"] = function webpackJsonpCallback(chunkIds, moreModules) {
5 | /******/ // add "moreModules" to the modules object,
6 | /******/ // then flag all "chunkIds" as loaded and fire callback
7 | /******/ var moduleId, chunkId, i = 0, callbacks = [];
8 | /******/ for(;i < chunkIds.length; i++) {
9 | /******/ chunkId = chunkIds[i];
10 | /******/ if(installedChunks[chunkId])
11 | /******/ callbacks.push.apply(callbacks, installedChunks[chunkId]);
12 | /******/ installedChunks[chunkId] = 0;
13 | /******/ }
14 | /******/ for(moduleId in moreModules) {
15 | /******/ modules[moduleId] = moreModules[moduleId];
16 | /******/ }
17 | /******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);
18 | /******/ while(callbacks.length)
19 | /******/ callbacks.shift().call(null, __webpack_require__);
20 | /******/ if(moreModules[0]) {
21 | /******/ installedModules[0] = 0;
22 | /******/ return __webpack_require__(0);
23 | /******/ }
24 | /******/ };
25 |
26 | /******/ // The module cache
27 | /******/ var installedModules = {};
28 |
29 | /******/ // object to store loaded and loading chunks
30 | /******/ // "0" means "already loaded"
31 | /******/ // Array means "loading", array contains callbacks
32 | /******/ var installedChunks = {
33 | /******/ 2:0
34 | /******/ };
35 |
36 | /******/ // The require function
37 | /******/ function __webpack_require__(moduleId) {
38 |
39 | /******/ // Check if module is in cache
40 | /******/ if(installedModules[moduleId])
41 | /******/ return installedModules[moduleId].exports;
42 |
43 | /******/ // Create a new module (and put it into the cache)
44 | /******/ var module = installedModules[moduleId] = {
45 | /******/ exports: {},
46 | /******/ id: moduleId,
47 | /******/ loaded: false
48 | /******/ };
49 |
50 | /******/ // Execute the module function
51 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
52 |
53 | /******/ // Flag the module as loaded
54 | /******/ module.loaded = true;
55 |
56 | /******/ // Return the exports of the module
57 | /******/ return module.exports;
58 | /******/ }
59 |
60 | /******/ // This file contains only the entry chunk.
61 | /******/ // The chunk loading function for additional chunks
62 | /******/ __webpack_require__.e = function requireEnsure(chunkId, callback) {
63 | /******/ // "0" is the signal for "already loaded"
64 | /******/ if(installedChunks[chunkId] === 0)
65 | /******/ return callback.call(null, __webpack_require__);
66 |
67 | /******/ // an array means "currently loading".
68 | /******/ if(installedChunks[chunkId] !== undefined) {
69 | /******/ installedChunks[chunkId].push(callback);
70 | /******/ } else {
71 | /******/ // start chunk loading
72 | /******/ installedChunks[chunkId] = [callback];
73 | /******/ var head = document.getElementsByTagName('head')[0];
74 | /******/ var script = document.createElement('script');
75 | /******/ script.type = 'text/javascript';
76 | /******/ script.charset = 'utf-8';
77 | /******/ script.async = true;
78 |
79 | /******/ script.src = __webpack_require__.p + "" + chunkId + "." + ({"0":"common","1":"vendor"}[chunkId]||chunkId) + ".js";
80 | /******/ head.appendChild(script);
81 | /******/ }
82 | /******/ };
83 |
84 | /******/ // expose the modules object (__webpack_modules__)
85 | /******/ __webpack_require__.m = modules;
86 |
87 | /******/ // expose the module cache
88 | /******/ __webpack_require__.c = installedModules;
89 |
90 | /******/ // __webpack_public_path__
91 | /******/ __webpack_require__.p = "/assets/";
92 | /******/ })
93 | /************************************************************************/
94 | /******/ ([]);
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/common/static/fonts/readme.md:
--------------------------------------------------------------------------------
1 | # About this folder
2 | This folder will hold all of your **fonts**
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/common/static/images/readme.md:
--------------------------------------------------------------------------------
1 | # About this folder
2 | This folder will hold all of your **images**
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/common/static/images/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/common/static/images/sample.png
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/favicon-16x16.png
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/dist/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/Sitecore.Js.Presentation.Sample/dist/favicon-32x32.png
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/web.Debug.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
17 |
18 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.Sample/web.Release.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
17 |
18 |
19 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/sample/back-end/Sitecore.Js.Presentation.sln:
--------------------------------------------------------------------------------
1 | Microsoft Visual Studio Solution File, Format Version 12.00
2 | # Visual Studio 14
3 | VisualStudioVersion = 14.0.25420.1
4 | MinimumVisualStudioVersion = 10.0.40219.1
5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.Js.Presentation.Sample", "Sitecore.Js.Presentation.Sample\Sitecore.Js.Presentation.Sample.csproj", "{D9D50A5C-26FE-4CB2-94FE-E15DD3A8A4C7}"
6 | EndProject
7 | Project("{CAA73BB0-EF22-4D79-A57E-DF67B3BA9C80}") = "Sitecore.Js.Presentation.Sample.TDS.Master", "Sitecore.Js.Presentation.Sample.TDS.Master\Sitecore.Js.Presentation.Sample.TDS.Master.scproj", "{EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}"
8 | EndProject
9 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".tds", ".tds", "{1C942B4F-FE34-48B9-BA5A-474262586FD2}"
10 | ProjectSection(SolutionItems) = preProject
11 | TdsGlobal.config = TdsGlobal.config
12 | EndProjectSection
13 | EndProject
14 | Global
15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 | Debug|Any CPU = Debug|Any CPU
17 | Release|Any CPU = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {D9D50A5C-26FE-4CB2-94FE-E15DD3A8A4C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {D9D50A5C-26FE-4CB2-94FE-E15DD3A8A4C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {D9D50A5C-26FE-4CB2-94FE-E15DD3A8A4C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {D9D50A5C-26FE-4CB2-94FE-E15DD3A8A4C7}.Release|Any CPU.Build.0 = Release|Any CPU
24 | {EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
25 | {EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
26 | {EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
27 | {EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
28 | {EE59E117-2C3B-4A9B-941F-A46AC7BAC4EC}.Release|Any CPU.Build.0 = Release|Any CPU
29 | EndGlobalSection
30 | GlobalSection(SolutionProperties) = preSolution
31 | HideSolutionNode = FALSE
32 | EndGlobalSection
33 | EndGlobal
34 |
--------------------------------------------------------------------------------
/sample/back-end/TdsGlobal.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 | Alex Smagin
22 | Alex Smagin
23 |
24 | True
25 | False
26 | True
27 | False
28 |
36 |
37 |
45 | False
46 | Alex Smagin
47 | Alex Smagin
48 | Copyright 2016 Alex Smagin. All Rights Reserved.
49 |
69 |
70 |
74 |
75 |
76 | http://Sitecore.Js.local
77 | ..\..\..\sandbox\Website
78 | .\bin\Debug\
79 |
80 |
81 |
82 |
83 | .\bin\Release\
84 |
85 |
86 |
--------------------------------------------------------------------------------
/sample/back-end/readme.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/back-end/readme.md
--------------------------------------------------------------------------------
/sample/front-end/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 |
--------------------------------------------------------------------------------
/sample/front-end/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "globals": {
3 | "HMR": false
4 | },
5 | "parser": "babel-eslint",
6 | "plugins": [
7 | "react"
8 | ],
9 | "parserOptions": {
10 | "ecmaVersion": 6,
11 | "sourceType": "module",
12 | "ecmaFeatures": {
13 | "jsx": true
14 | }
15 | },
16 | "env": {
17 | "browser": true,
18 | "amd": true,
19 | "es6": true,
20 | "node": true,
21 | "mocha": true
22 | },
23 | "rules": {
24 | "comma-dangle": 1,
25 | "quotes": [ 1, "single" ],
26 | "no-undef": 1,
27 | "strict": 0,
28 | "global-strict": 0,
29 | "no-extra-semi": 1,
30 | "no-underscore-dangle": 0,
31 | "no-console": 1,
32 | "no-unused-vars": 1,
33 | "no-trailing-spaces": [1, { "skipBlankLines": true }],
34 | "no-unreachable": 1,
35 | "no-alert": 0,
36 | "react/jsx-uses-react": 1,
37 | "react/jsx-uses-vars": 1
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/sample/front-end/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 |
5 | # Runtime data
6 | pids
7 | *.pid
8 | *.seed
9 |
10 | # Directory for instrumented libs generated by jscoverage/JSCover
11 | lib-cov
12 |
13 | # Coverage directory used by tools like istanbul
14 | coverage
15 |
16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17 | .grunt
18 |
19 | # node-waf configuration
20 | .lock-wscript
21 |
22 | # Compiled binary addons (http://nodejs.org/api/addons.html)
23 | build/Release
24 | cache/
25 | dist/
26 |
27 | # Dependency directory
28 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
29 | node_modules
30 |
31 | # Bower
32 | bower_components/
33 |
--------------------------------------------------------------------------------
/sample/front-end/api-stub/db.json:
--------------------------------------------------------------------------------
1 | {
2 | "products": [
3 | {
4 | "id": "580e2d7b74bce595476c68a2",
5 | "price": 689.98,
6 | "currency": "USD",
7 | "amount": 12,
8 | "name": "Soprano",
9 | "brand": "Exotechno",
10 | "status": "In Stock",
11 | "image": " "
12 | },
13 | {
14 | "id": "580e2d7b87ff15dd0afe17dc",
15 | "price": 134.82,
16 | "currency": "USD",
17 | "amount": 9,
18 | "name": "Coriander",
19 | "brand": "Zilphur",
20 | "status": "Sold Out",
21 | "image": " "
22 | },
23 | {
24 | "id": "580e2d7b26e3f92972379b26",
25 | "price": 647.78,
26 | "currency": "BYN",
27 | "amount": 8,
28 | "name": "Centrexin",
29 | "brand": "Accruex",
30 | "status": "Sold Out",
31 | "image": " "
32 | },
33 | {
34 | "id": "580e2d7b8875c663bfe058f6",
35 | "price": 713.96,
36 | "currency": "BYN",
37 | "amount": 13,
38 | "name": "Infotrips",
39 | "brand": "Earthmark",
40 | "status": "Leaves warehouse in a week",
41 | "image": " "
42 | },
43 | {
44 | "id": "580e2d7b3dfa8ce3e067896e",
45 | "price": 522.4,
46 | "currency": "EUR",
47 | "amount": 12,
48 | "name": "Bolax",
49 | "brand": "Pulze",
50 | "status": "In Stock",
51 | "image": " "
52 | },
53 | {
54 | "id": "580e2d7b236774f9603f41b0",
55 | "price": 36.37,
56 | "currency": "BYN",
57 | "amount": 6,
58 | "name": "Zytrax",
59 | "brand": "Overplex",
60 | "status": "In Stock",
61 | "image": " "
62 | },
63 | {
64 | "id": "580e2d7b14b7ed6181d71510",
65 | "price": 651.82,
66 | "currency": "EUR",
67 | "amount": 10,
68 | "name": "Dadabase",
69 | "brand": "Billmed",
70 | "status": "Last call",
71 | "image": " "
72 | },
73 | {
74 | "id": "580e2d7b3be70e9adf3f8c2f",
75 | "price": 705.13,
76 | "currency": "RUB",
77 | "amount": 6,
78 | "name": "Imant",
79 | "brand": "Eplode",
80 | "status": "Leaves warehouse in a week",
81 | "image": " "
82 | },
83 | {
84 | "id": "580e2d7b842138cabab029b5",
85 | "price": 644.89,
86 | "currency": "USD",
87 | "amount": 6,
88 | "name": "Aquafire",
89 | "brand": "Rodeocean",
90 | "status": "Leaves warehouse in a week",
91 | "image": " "
92 | },
93 | {
94 | "id": "580e2d7b53e69bdee2afaada",
95 | "price": 985.61,
96 | "currency": "EUR",
97 | "amount": 10,
98 | "name": "Keeg",
99 | "brand": "Quotezart",
100 | "status": "In Stock",
101 | "image": " "
102 | }
103 | ]
104 | }
105 |
--------------------------------------------------------------------------------
/sample/front-end/api-stub/routes.json:
--------------------------------------------------------------------------------
1 | {
2 | "/api/": "/"
3 | }
4 |
--------------------------------------------------------------------------------
/sample/front-end/cfg/development.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const webpack = require('webpack');
4 | const BowerWebpackPlugin = require('bower-webpack-plugin');
5 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
6 | var HtmlWebpackPlugin = require('html-webpack-plugin');
7 |
8 | const defaults = require('./../utils/defaults');
9 | const utils = require('../utils');
10 |
11 | let chunks = {
12 | name: ['vendor', 'shared'],
13 | minChunks: 2
14 | };
15 |
16 | const config = {
17 | port: defaults.port,
18 | debug: true,
19 | devtool: 'source-map',
20 | entry: utils.entries,
21 | module: utils.getModules(utils.babelLoader),
22 | output: {
23 | path: defaults.assetsPath,
24 | library: '[name]__ext',
25 | filename: '[name].js?[hash]',
26 | chunkFilename: '[id].js?[chunkhash]',
27 | publicPath: defaults.publicPath
28 | },
29 | devServer: {
30 | contentBase: defaults.distPath,
31 | historyApiFallback: true,
32 | hot: true,
33 | port: defaults.port,
34 | publicPath: defaults.publicPath,
35 | noInfo: false,
36 | proxy: {
37 | '/api': {
38 | target: `http://localhost:3000`, //${defaults.port}`,
39 | secure: false
40 | }
41 | }
42 | },
43 | resolve: {
44 | extensions: ['', '.js', '.jsx']
45 | },
46 | plugins: utils.getPlugins([
47 | new HtmlWebpackPlugin({
48 | filename: `${defaults.distPath}/index.html`,
49 | template: `${defaults.srcPath}/index.html.tmpl`
50 | }),
51 | new ExtractTextPlugin('[name].css?[hash]', {
52 | allChunks: true,
53 | disable: utils.isDevServerMode
54 | }),
55 | new webpack.optimize.CommonsChunkPlugin(chunks),
56 | new BowerWebpackPlugin({
57 | searchResolveModulesDirectories: false
58 | })
59 | ])
60 | };
61 |
62 | if (utils.isDevServerMode) {
63 | config.entry.app.unshift(
64 | 'react-hot-loader/patch',
65 | `webpack-dev-server/client?http://localhost:${defaults.port}`,
66 | 'webpack/hot/only-dev-server'
67 | );
68 | config.plugins.push(new webpack.HotModuleReplacementPlugin());
69 | }
70 |
71 | module.exports = config;
72 |
--------------------------------------------------------------------------------
/sample/front-end/cfg/production.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const webpack = require('webpack');
4 | const BowerWebpackPlugin = require('bower-webpack-plugin');
5 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
6 |
7 | const defaults = require('./../utils/defaults');
8 | const utils = require('../utils');
9 |
10 | let chunks = {
11 | name: ['vendor', 'shared'],
12 | minChunks: 2
13 | };
14 |
15 | const config = {
16 | port: defaults.port,
17 | debug: true,
18 | devtool: 'source-map',
19 | entry: utils.entries,
20 | module: utils.getModules(utils.babelLoader),
21 | output: {
22 | path: defaults.assetsPath,
23 | library: '[name]__ext',
24 | filename: '[name].[hash].js',
25 | chunkFilename: '[id].[chunkhash].js',
26 | publicPath: defaults.publicPath
27 | },
28 | resolve: {
29 | extensions: ['', '.js', '.jsx']
30 | },
31 | plugins: utils.getPlugins([
32 | new ExtractTextPlugin('[name].[hash].css', {
33 | allChunks: true,
34 | disable: utils.isDevServerMode
35 | }),
36 | new webpack.optimize.DedupePlugin(),
37 | new webpack.DefinePlugin({
38 | 'process.env.NODE_ENV': JSON.stringify('production')
39 | }),
40 | new BowerWebpackPlugin({
41 | searchResolveModulesDirectories: false
42 | }),
43 | new webpack.optimize.UglifyJsPlugin(),
44 | new webpack.optimize.OccurenceOrderPlugin(),
45 | new webpack.optimize.AggressiveMergingPlugin(),
46 | new webpack.NoErrorsPlugin(),
47 | new webpack.optimize.CommonsChunkPlugin(chunks),
48 | new BowerWebpackPlugin({
49 | searchResolveModulesDirectories: false
50 | })
51 | ])
52 | };
53 |
54 |
55 | module.exports = config;
56 |
--------------------------------------------------------------------------------
/sample/front-end/cfg/server.dev.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const BowerWebpackPlugin = require('bower-webpack-plugin');
3 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
4 |
5 | const omit = require('lodash/omit');
6 | const defaults = require('./../utils/defaults');
7 | const utils = require('../utils');
8 |
9 | let chunks = {
10 | name: ['vendor', 'shared'],
11 | minChunks: 2
12 | };
13 |
14 | const config = {
15 | port: defaults.port,
16 | debug: true,
17 | entry: omit(utils.entries, 'app'),
18 | module: utils.getModules(utils.babelLoader),
19 | output: {
20 | path: defaults.assetsPath,
21 | library: '[name]__ext',
22 | filename: '[name].js',
23 | publicPath: defaults.publicPath
24 | },
25 | resolve: {
26 | extensions: ['', '.js', '.jsx']
27 | },
28 | plugins: utils.getPlugins([
29 | new ExtractTextPlugin('[name].css?[hash]', {
30 | allChunks: true
31 | }),
32 | new webpack.optimize.CommonsChunkPlugin(chunks),
33 | new BowerWebpackPlugin({
34 | searchResolveModulesDirectories: false
35 | })
36 | ])
37 | };
38 |
39 | module.exports = config;
40 |
--------------------------------------------------------------------------------
/sample/front-end/cfg/server.prod.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack');
2 | const BowerWebpackPlugin = require('bower-webpack-plugin');
3 |
4 | const omit = require('lodash/omit');
5 | const defaults = require('./../utils/defaults');
6 | const utils = require('../utils');
7 |
8 | const config = {
9 | port: defaults.port,
10 | debug: true,
11 | entry: omit(utils.entries, 'app'),
12 | module: utils.getModules(utils.babelLoader, false),
13 | output: {
14 | path: defaults.assetsPath,
15 | library: '[name]__ext',
16 | filename: '[name].js',
17 | publicPath: defaults.publicPath
18 | },
19 | resolve: {
20 | extensions: ['', '.js', '.jsx']
21 | },
22 | plugins: utils.getPlugins([
23 | new webpack.optimize.CommonsChunkPlugin({
24 | name: ['vendor', 'shared'],
25 | minChunks: 2
26 | }),
27 | new BowerWebpackPlugin({
28 | searchResolveModulesDirectories: false
29 | })
30 | ])
31 | };
32 |
33 | module.exports = config;
34 |
--------------------------------------------------------------------------------
/sample/front-end/cfg/test.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const BowerWebpackPlugin = require('bower-webpack-plugin');
3 |
4 | const defaults = require('../utils/defaults');
5 |
6 | const config = {
7 | devtool: 'inline-source-map',
8 | module: {
9 | preLoaders: [
10 | {
11 | test: /\.(js|jsx)$/,
12 | include: defaults.srcPath,
13 | loader: 'eslint-loader'
14 | }
15 | ],
16 | loaders: [
17 | {
18 | // normalize.css and bootstrap css
19 | test: /\.css$/,
20 | include: [
21 | path.join(__dirname, '../node_modules/bootstrap'),
22 | path.join(__dirname, '../node_modules/normalize.css')
23 | ],
24 | loader: 'style!css?minimize'
25 | },
26 | {
27 | // bootstrap fonts
28 | test: /\.(svg|ttf|eot|woff|woff2)$/,
29 | include: [
30 | path.join(__dirname, '../node_modules/bootstrap')
31 | ],
32 | loader: 'file?name=bootstrap/[name].[ext]'
33 | },
34 | {
35 | test: /\.sass$/,
36 | loader: 'style!css!sass?outputStyle=expanded&indentedSyntax'
37 | },
38 | {
39 | test: /\.scss$/,
40 | loader: 'style!css!sass?outputStyle=expanded&indentedSyntax'
41 | },
42 | {
43 | test: /\.less$/,
44 | loader: 'style!css!less'
45 | },
46 | {
47 | test: /\.(svg|png|jpg|gif|woff|woff2)$/,
48 | loader: 'url-loader?limit=8192'
49 | }
50 | ].concat(require('../utils/babel-loader'))
51 | },
52 | resolve: {
53 | extensions: ['', '.js', '.jsx']
54 | },
55 | plugins: [
56 | new BowerWebpackPlugin({
57 | searchResolveModulesDirectories: false
58 | })
59 | ]
60 | };
61 |
62 | module.exports = config;
63 |
--------------------------------------------------------------------------------
/sample/front-end/karma.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = function (config) {
2 | config.set({
3 |
4 | browsers: [
5 | 'PhantomJS'
6 | // 'Firefox',
7 | // 'Chrome'
8 | // for IE @see https://www.npmjs.com/package/karma-ievms
9 | // 'IE8 - WinXP',
10 | // 'IE9 - Win7',
11 | // 'IE10 - Win7'
12 | ],
13 |
14 | singleRun: false,
15 |
16 | frameworks: ['mocha', 'sinon-chai'],
17 |
18 | plugins: [
19 | 'karma-mocha',
20 | 'karma-sinon-chai',
21 | 'karma-webpack',
22 | 'karma-phantomjs-launcher',
23 | 'karma-firefox-launcher',
24 | 'karma-chrome-launcher',
25 | 'karma-ievms',
26 | 'karma-sourcemap-loader',
27 | 'karma-mocha-reporter'
28 | ],
29 |
30 | files: [
31 | 'node_modules/babel-polyfill/browser.js',
32 | 'node_modules/whatwg-fetch/fetch.js',
33 | './src/test.index.js'
34 | ],
35 |
36 | preprocessors: {
37 | './src/test.index.js': ['webpack', 'sourcemap']
38 | },
39 |
40 | reporters: [
41 | 'mocha'
42 | ],
43 |
44 | autoWatch: true,
45 |
46 | webpack: require('./webpack.config'),
47 |
48 | webpackServer: {
49 | noInfo: true,
50 | quiet: false
51 | }
52 | });
53 | };
54 |
--------------------------------------------------------------------------------
/sample/front-end/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sitecore.js.presenation.sample",
3 | "private": true,
4 | "version": "0.0.1",
5 | "description": "Sitecore project demo",
6 | "main": "",
7 | "repository": "",
8 | "keywords": [],
9 | "author": "Alex Smagin",
10 | "scripts": {
11 | "dev": "npm run build:dev && concurrently --kill-others \"webpack-dev-server\" \"json-server --watch ./api-stub/db.json --routes ./api-stub/routes.json\"",
12 | "build:prod": "cross-env NODE_ENV=production webpack --progress",
13 | "build:dev": "cross-env NODE_ENV=development webpack --progress",
14 | "server:dev": "cross-env NODE_ENV=server.dev webpack",
15 | "server:prod": "cross-env NODE_ENV=server.prod webpack",
16 | "start": "npm run dev",
17 | "test:dev": "cross-env NODE_ENV=test karma start",
18 | "test:ci": "cross-env NODE_ENV=test karma start --no-auto-watch --single-run"
19 | },
20 | "devDependencies": {
21 | "babel-core": "~6.17.0",
22 | "babel-eslint": "~7.0.0",
23 | "babel-loader": "~6.2.5",
24 | "babel-plugin-react-hot": "^1.0.4",
25 | "babel-polyfill": "~6.16.0",
26 | "babel-preset-es2015": "~6.16.0",
27 | "babel-preset-react": "~6.16.0",
28 | "babel-preset-stage-0": "~6.16.0",
29 | "bower-webpack-plugin": "~0.1.9",
30 | "chai": "~3.2.0",
31 | "clean-webpack-plugin": "^0.1.13",
32 | "concurrently": "~3.1.0",
33 | "copy-webpack-plugin": "~3.0.1",
34 | "copyfiles": "~1.0.0",
35 | "cross-env": "^3.1.3",
36 | "css-loader": "~0.25.0",
37 | "eslint": "~3.8.0",
38 | "eslint-loader": "~1.5.0",
39 | "eslint-plugin-react": "~6.4.1",
40 | "expose-loader": "~0.7.1",
41 | "extract-text-webpack-plugin": "^1.0.1",
42 | "file-loader": "^0.9.0",
43 | "glob": "~7.0.0",
44 | "html-loader": "^0.4.4",
45 | "html-webpack-plugin": "^2.26.0",
46 | "isomorphic-style-loader": "~1.0.0",
47 | "isparta-instrumenter-loader": "~1.0.1",
48 | "json-server": "~0.8.22",
49 | "karma": "~1.3.0",
50 | "karma-chai": "~0.1.0",
51 | "karma-chrome-launcher": "^2.0.0",
52 | "karma-coverage": "~1.0.0",
53 | "karma-firefox-launcher": "^1.0.0",
54 | "karma-ievms": "^0.1.0",
55 | "karma-mocha": "~1.2.0",
56 | "karma-mocha-reporter": "~2.2.0",
57 | "karma-phantomjs-launcher": "~1.0.2",
58 | "karma-sinon-chai": "~1.2.4",
59 | "karma-sourcemap-loader": "~0.3.7",
60 | "karma-webpack": "~1.8.0",
61 | "less": "~2.7.1",
62 | "less-loader": "~2.2.3",
63 | "lolex": "^1.5.1",
64 | "minimist": "~1.2.0",
65 | "mocha": "~3.0.0",
66 | "node-sass": "^4.5.3",
67 | "null-loader": "~0.1.1",
68 | "open": "0.0.5",
69 | "phantomjs-prebuilt": "~2.1.13",
70 | "react-addons-test-utils": "~15.3.2",
71 | "react-hot-loader": "~3.0.0-beta.6",
72 | "rimraf": "~2.4.3",
73 | "sass-loader": "~4.0.2",
74 | "sinon": "~1.17.6",
75 | "sinon-chai": "~2.8.0",
76 | "style-loader": "~0.13.1",
77 | "url-loader": "~0.5.6",
78 | "webpack": "~1.13.2",
79 | "webpack-clean": "~1.0.0",
80 | "webpack-dev-server": "~1.16.2"
81 | },
82 | "dependencies": {
83 | "bootstrap": "~3.3.7",
84 | "core-js": "~2.4.1",
85 | "lodash": "~4.16.4",
86 | "node-gyp": "^3.6.2",
87 | "normalize.css": "~5.0.0",
88 | "react": "~15.3.2",
89 | "react-bootstrap": "~0.30.5",
90 | "react-dom": "~15.3.2",
91 | "react-redux": "~4.4.5",
92 | "redux": "~3.6.0",
93 | "redux-logger": "~2.7.0",
94 | "redux-saga": "~0.12.0",
95 | "redux-ui": "0.0.15",
96 | "whatwg-fetch": "~1.0.0"
97 | },
98 | "babel": {
99 | "presets": [
100 | "es2015",
101 | "stage-0",
102 | "react"
103 | ],
104 | "plugins": []
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/counter/counter.actions.js:
--------------------------------------------------------------------------------
1 | export function onIncrement() {
2 | return {
3 | type: 'INCREMENT'
4 | };
5 | }
6 |
7 | export function onDecrement() {
8 | return {
9 | type: 'DECREMENT'
10 | };
11 | }
12 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/counter/counter.component.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { connect } from 'react-redux'
3 | import { Grid, Row, Col } from 'react-bootstrap'
4 | import { bindActionCreators } from 'redux'
5 | import * as actionCreators from './counter.actions';
6 |
7 | require('./counter.styles.scss');
8 |
9 | class Counter extends React.Component {
10 | render() {
11 | return (
12 |
13 |
14 |
15 |
16 | -
17 | { this.props.counter }
18 | +
19 |
20 |
21 |
22 | )
23 | }
24 | }
25 |
26 | Counter.defaultProps = {
27 | 'title': 'This is counter'
28 | }
29 |
30 | function mapStateToProps(state) {
31 | return { counter: state.counter }
32 | }
33 |
34 | function mapDispatchToProps(dispatch) {
35 | return bindActionCreators(actionCreators, dispatch)
36 | }
37 |
38 | export default connect(mapStateToProps, mapDispatchToProps)(Counter);
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/counter/counter.reducer.js:
--------------------------------------------------------------------------------
1 | const counter = (state = 0, action) => {
2 | switch (action.type) {
3 | case 'INCREMENT':
4 | return state + 1
5 | case 'DECREMENT':
6 | return state - 1
7 | default:
8 | return state
9 | }
10 | }
11 |
12 | export default counter;
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/counter/counter.styles.scss:
--------------------------------------------------------------------------------
1 | .counter {
2 | border: 1px dashed #7F993A;
3 | background-color: rgba(163, 198, 68, 0.15);
4 | }
5 |
6 | .placeholder .container.counter {
7 | width: 100%;
8 | }
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/header/header.component.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Navbar, Nav, NavItem } from 'react-bootstrap';
3 |
4 | require('./header.styles.sass');
5 |
6 | const Header = (props) => (
7 |
8 |
9 |
10 | Sample Header Component
11 |
12 |
13 |
14 |
15 |
16 | Home
17 | Counter
18 |
19 | {props.children}
20 |
21 |
22 | );
23 |
24 | export default Header;
25 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/header/header.styles.sass:
--------------------------------------------------------------------------------
1 | .route-active
2 | font-weight: bold
3 | text-decoration: underline
4 |
5 | .header
6 | border: 0
7 | border-radius: 0
8 | background-color: #39C2D7
9 | &>.container .navbar-brand,
10 | &>.container-fluid .navbar-brand
11 | color: #fff
12 | font-weight: bold
13 |
14 | & .navbar-nav
15 | &>.active>a
16 | background-color: #1A9CB0
17 |
18 | &>li>a
19 | color: #fff
20 | &:hover
21 | color: #464547
22 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom'
3 | import ReactDOMServer from 'react-dom/server'
4 | import { Provider } from 'react-redux'
5 |
6 | import { Store } from './store';
7 |
8 | import headerComp from './header/header.component';
9 | import simpleContentComp from './simple-content/simple-content.component';
10 | import counterComp from './counter/counter.component';
11 | import timerComp from './timer/timer.component';
12 |
13 | import lodashContentComp from './lodash-content/lodash-content.component';
14 |
15 | const decorate = (element, isContainer) => (
16 | {
17 | element,
18 | renderToDOM(props, node) {
19 | var el = React.createElement(element, { data: props.data, placeholders: props.placeholders });
20 | if (isContainer) {
21 | el = React.createElement(Provider, { store: Store }, el);
22 | }
23 | ReactDOM.render(el, document.getElementById(node))
24 | },
25 | renderToString(props) {
26 | var el = React.createElement(element, { data: props.data, placeholders: props.placeholders });
27 | if (isContainer) {
28 | el = React.createElement(Provider, { store: Store }, el);
29 | }
30 | return ReactDOMServer.renderToString(el)
31 | },
32 | renderToStaticMarkup(props) {
33 | var el = React.createElement(element, { data: props.data, placeholders: props.placeholders });
34 | if (isContainer) {
35 | el = React.createElement(Provider, { store: Store }, el);
36 | }
37 | return ReactDOMServer.renderToStaticMarkup(el)
38 | },
39 | getPlaceholders(){
40 | if(typeof(element) === 'undefined'
41 | || typeof(element.placeholders) === 'undefined') {
42 | return '';
43 | }
44 |
45 | return JSON.stringify(element.placeholders)
46 | }
47 | }
48 | )
49 |
50 | // exports
51 | export const header = decorate(headerComp);
52 | export const simpleContent = decorate(simpleContentComp);
53 |
54 | export const counter = decorate(counterComp, true);
55 | export const timer = decorate(timerComp, true);
56 |
57 | const decorateLodash = (element) => (
58 | {
59 | element,
60 | renderToDOM(props, node) {
61 | var div = document.createElement('div');
62 | div.innerHTML = new element(props).render();
63 | document.getElementById(node).appendChild(div)
64 | },
65 | renderToString(props) {
66 | return new element(props).render();
67 | },
68 | renderToStaticMarkup(props) {
69 | return new element(props).render();
70 | },
71 | getPlaceholders(){
72 | if(typeof(element) === 'undefined'
73 | || typeof(element.placeholders) === 'undefined') {
74 | return '';
75 | }
76 |
77 | return JSON.stringify(element.placeholders)
78 | }
79 | }
80 | )
81 |
82 | export const lodashContent = decorateLodash(lodashContentComp);
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/lodash-content/lodash-content.component.html:
--------------------------------------------------------------------------------
1 |
2 |
** lodash component **
3 |
4 |
5 | <%= image %>
6 |
7 |
8 |
9 | <%= title %>
10 |
11 |
12 | <%= text %>
13 |
14 |
15 |
16 |
17 |
18 |
19 | <%= placeholders.leftColumn %>
20 |
21 |
22 |
23 |
24 | <%= placeholders.rightColumn %>
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/lodash-content/lodash-content.component.js:
--------------------------------------------------------------------------------
1 | require('./lodash-content.styles.scss');
2 |
3 | import templateContent from './lodash-content.component.html';
4 | import logo from '../../static/images/sample.png';
5 |
6 | import _ from 'lodash';
7 |
8 | class LodashContent {
9 |
10 | constructor(props) {
11 |
12 | this.defaultProps = {
13 | title: 'TITLE ',
14 | text: 'TEXT ',
15 | image: ' ',
16 | placeholders: {
17 | leftColumn: 'LEFT COLUMNT CONTENT
',
18 | rightColumn: 'RIGHT COLUMNT CONTENT
'
19 | }
20 | }
21 |
22 | this.props = Object.assign({}, props || this.defaultProps);
23 | }
24 |
25 | render() {
26 | return _.template(templateContent)(this.props);
27 | }
28 | }
29 |
30 | // this function would be called by ReactJS.NET to identify placeholders avaliable in a component.
31 | LodashContent.placeholders = [
32 | 'leftColumn',
33 | 'rightColumn'
34 | ];
35 |
36 | // this function would be called by ReactJS.NET to identify placeholders
37 | // avaliable in a component.
38 | export default LodashContent;
39 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/lodash-content/lodash-content.styles.scss:
--------------------------------------------------------------------------------
1 | .lodash-content {
2 | border: 1px dashed #1A9CB0;
3 | background-color: rgba( 57, 194, 215, 0.15);
4 |
5 | .placeholder {
6 | margin: 5px;
7 | padding: 5px;
8 | border: 3px dotted red;
9 | background-color: rgba( 57, 194, 215, 0.15);
10 | }
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/simple-content/simple-content.component.js:
--------------------------------------------------------------------------------
1 | require('./simple-content.styles.sass');
2 |
3 | import React from 'react';
4 | import { Grid, Row, Col } from 'react-bootstrap'
5 |
6 | import logo from '../../static/images/sample.png';
7 |
8 | class SimpleContent extends React.Component {
9 | render() {
10 | return (
11 |
12 | ** react component **
13 |
14 |
15 |
16 |
17 |
18 |
21 |
22 |
23 |
24 |
25 | {
26 | React.isValidElement(this.props.placeholders.leftColumn)
27 | ? { this.props.placeholders.leftColumn }
28 | :
29 | }
30 |
31 |
32 | {
33 | React.isValidElement(this.props.placeholders.rightColumn)
34 | ? { this.props.placeholders.rightColumn }
35 | :
36 | }
37 |
38 |
39 |
40 | )
41 | }
42 | }
43 |
44 | SimpleContent.propTypes = {
45 | image: React.PropTypes.string,
46 | title: React.PropTypes.string,
47 | text: React.PropTypes.string
48 | };
49 |
50 | SimpleContent.defaultProps = {
51 | 'title': 'HTML Ipsum Presents',
52 | 'text': 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae
, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.
',
53 | 'image': ' ',
54 | placeholders: {
55 | leftColumn: 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
',
56 | rightColumn: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam tincidunt mauris eu risus. Vestibulum auctor dapibus neque. '
57 | }
58 | };
59 |
60 | // this function would be called by ReactJS.NET to identify placeholders avaliable in a component.
61 | SimpleContent.placeholders = [
62 | 'leftColumn',
63 | 'rightColumn'
64 | ];
65 |
66 | export default SimpleContent;
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/simple-content/simple-content.styles.sass:
--------------------------------------------------------------------------------
1 | .simple-content
2 | border: 1px dashed #1A9CB0
3 | background-color: rgba( 57, 194, 215, 0.15)
4 |
5 | .placeholder
6 | margin: 5px
7 | padding: 5px
8 | border: 3px dotted red
9 | background-color: rgba( 57, 194, 215, 0.15)
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/store.js:
--------------------------------------------------------------------------------
1 | import { createStore } from 'redux';
2 | import { combineReducers } from 'redux';
3 |
4 | import counter from './counter/counter.reducer'
5 | import timer from './timer/timer.reducer'
6 |
7 | const reducer = combineReducers ( { counter, timer } )
8 |
9 | // exports
10 | export const Store = (typeof(window) !== 'undefined')
11 | ? createStore(reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__())
12 | : createStore(reducer);
13 |
14 | export const InitialState = JSON.stringify(Store.getState());
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/timer/timer.actions.js:
--------------------------------------------------------------------------------
1 | export function onTick() {
2 | return {
3 | type: 'TICK'
4 | };
5 | }
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/timer/timer.component.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { connect } from 'react-redux'
3 | import { Grid, Row, Col } from 'react-bootstrap'
4 | import { bindActionCreators } from 'redux'
5 | import * as actionCreators from './timer.actions';
6 |
7 | require('./timer.styles.scss');
8 |
9 | class Timer extends React.Component {
10 |
11 | componentDidMount() {
12 | this.interval = setInterval(this.props.onTick, 1000);
13 | }
14 |
15 | componentWillUnmount() {
16 | clearInterval(this.interval);
17 | }
18 |
19 | render() {
20 | return (
21 |
22 |
23 |
24 |
{ this.props.timer }s
25 |
26 |
27 |
28 | )
29 | }
30 | }
31 |
32 | Timer.defaultProps = {
33 | 'title': 'This is timer'
34 | }
35 |
36 | function mapStateToProps(state) {
37 | return { timer: state.timer }
38 | }
39 |
40 | function mapDispatchToProps(dispatch) {
41 | return bindActionCreators(actionCreators, dispatch)
42 | }
43 |
44 | export default connect(mapStateToProps, mapDispatchToProps)(Timer);
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/timer/timer.reducer.js:
--------------------------------------------------------------------------------
1 | const timer = (state = 0, action) => {
2 | switch (action.type) {
3 | case 'TICK':
4 | return state + 1
5 | default:
6 | return state
7 | }
8 | }
9 |
10 | export default timer;
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Components/timer/timer.styles.scss:
--------------------------------------------------------------------------------
1 | .timer {
2 | border: 1px dashed #7F993A;
3 | background-color: rgba( 178, 39, 70, 0.15)
4 | }
5 |
6 | .placeholder .container.timer {
7 | width: 100%;
8 | }
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Pages/sample/sample.js:
--------------------------------------------------------------------------------
1 | require('normalize.css');
2 | require('./sample.styles.sass');
3 |
4 | import React from 'react';
5 | import ReactDOMServer from 'react-dom/server'
6 | import { Provider } from 'react-redux';
7 |
8 | import Header from '../../components/header/header.component';
9 | import SimpleContent from '../../components/simple-content/simple-content.component';
10 | import Counter from '../../components/counter/counter.component';
11 | import Timer from '../../components/timer/timer.component';
12 |
13 | import { store } from './sample.store';
14 |
15 | const nestedElement =
16 | const someText = Some JSX component Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
17 |
18 | const App = () => (
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | )
28 |
29 | export default App;
30 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Pages/sample/sample.store.js:
--------------------------------------------------------------------------------
1 | import { createStore, combineReducers } from 'redux';
2 |
3 | import counter from '../../components/counter/counter.reducer';
4 | import timer from '../../components/timer/timer.reducer';
5 |
6 | const reducer = combineReducers({ counter, timer });
7 |
8 | export const store = createStore(reducer);
9 |
10 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/Pages/sample/sample.styles.sass:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/front-end/src/Common/Pages/sample/sample.styles.sass
--------------------------------------------------------------------------------
/sample/front-end/src/Common/constants.js:
--------------------------------------------------------------------------------
1 | // @todo: generate or provide a hook to this file ?
2 | const constants = {
3 | api: {
4 | serverPath: '/api'
5 | }
6 | };
7 |
8 | export default constants;
9 |
--------------------------------------------------------------------------------
/sample/front-end/src/Common/static/fonts/readme.md:
--------------------------------------------------------------------------------
1 | # About this folder
2 | This folder will hold all of your **fonts**
--------------------------------------------------------------------------------
/sample/front-end/src/Common/static/images/readme.md:
--------------------------------------------------------------------------------
1 | # About this folder
2 | This folder will hold all of your **images**
--------------------------------------------------------------------------------
/sample/front-end/src/Common/static/images/sample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/front-end/src/Common/static/images/sample.png
--------------------------------------------------------------------------------
/sample/front-end/src/Common/styles/app.sass:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/front-end/src/Common/styles/app.sass
--------------------------------------------------------------------------------
/sample/front-end/src/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/front-end/src/favicon-16x16.png
--------------------------------------------------------------------------------
/sample/front-end/src/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/front-end/src/favicon-32x32.png
--------------------------------------------------------------------------------
/sample/front-end/src/index.html.tmpl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | React Webpack Template Title
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/sample/front-end/src/index.jsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import {AppContainer} from 'react-hot-loader';
4 | import App from './common/pages/sample/sample';
5 |
6 | require('whatwg-fetch');
7 | require('babel-polyfill');
8 |
9 | function render(node) {
10 | if (typeof document === 'undefined') {
11 | return null;
12 | } else if (module.hot) {
13 | ReactDOM.render(
14 | , node);
15 |
16 | module
17 | .hot
18 | .accept('./common/pages/sample/sample', () => {
19 | const App = require('./common/pages/sample/sample').default;
20 |
21 | ReactDOM.render(
22 |
23 |
24 | , document.getElementById('app'));
25 | });
26 | }
27 | ReactDOM.render(
28 | , node);
29 | }
30 |
31 | render(document.getElementById('app'));
--------------------------------------------------------------------------------
/sample/front-end/src/sample.spec.js:
--------------------------------------------------------------------------------
1 | /* global describe, it */
2 |
3 | import * as chai from 'chai';
4 |
5 | const {expect} = chai;
6 |
7 | const lolex = require('lolex');
8 | const fakedMethods = ['setTimeout', 'clearTimeout', 'setImmediate', 'clearImmediate', 'setInterval',
9 | 'clearInterval', 'Date'];
10 |
11 | describe('Sample tests scaffolding', () => {
12 | describe('Verify simple case', () => {
13 | it('1 should be equals to 1', () => {
14 | expect(1).to.equal(1);
15 | });
16 | });
17 |
18 | describe('Simple async case with setTimeout', () => {
19 | let clock;
20 |
21 | beforeEach(() => {
22 | clock = lolex.install((new Date()).getTime(), fakedMethods);
23 | });
24 |
25 | afterEach(() => {
26 | clock.uninstall();
27 | });
28 |
29 | it('timestamp before timer should be less than before', done => {
30 | let d = Date.now();
31 | setTimeout(() => {
32 | expect(Date.now()).to.greaterThan(d + 1000);
33 | done();
34 | }, 1005);
35 | clock.tick(1010);
36 | });
37 | });
38 | });
39 |
--------------------------------------------------------------------------------
/sample/front-end/src/test.index.js:
--------------------------------------------------------------------------------
1 | var context = require.context('.', true, /spec\.(js|jsx)$/);
2 | context.keys().forEach(context);
3 |
--------------------------------------------------------------------------------
/sample/front-end/utils/babel-config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const env = require('./env');
3 | const defaults = require('./defaults');
4 | const assign = require('lodash/assign');
5 |
6 | const cacheDirectory = path.join(defaults.srcPath, '..', 'cache');
7 |
8 | const babelConfig = assign({}, require('../package.json').babel, {
9 | babelrc: false,
10 | cacheDirectory
11 | });
12 |
13 | if (env.isDevServerMode) {
14 | babelConfig.plugins.unshift('react-hot-loader/babel');
15 | }
16 |
17 | module.exports = babelConfig;
18 |
--------------------------------------------------------------------------------
/sample/front-end/utils/babel-loader.js:
--------------------------------------------------------------------------------
1 | const babelConfig = require('./babel-config');
2 | const defaults = require('./defaults');
3 |
4 | module.exports = {
5 | test: /\.(js|jsx)$/,
6 | loader: `babel-loader?${JSON.stringify(babelConfig)}`,
7 | include: [].concat(defaults.additionalPaths, defaults.srcPath)
8 | };
9 |
--------------------------------------------------------------------------------
/sample/front-end/utils/constants.js:
--------------------------------------------------------------------------------
1 | const DEV = 'development';
2 | const SERVER_DEV = 'server.dev';
3 | const SERVER_PROD = 'server.prod';
4 | const PROD = 'production';
5 | const TEST = 'test';
6 |
7 | module.exports = {DEV, PROD, TEST, SERVER_DEV, SERVER_PROD};
8 |
--------------------------------------------------------------------------------
/sample/front-end/utils/defaults.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const assets = 'assets';
3 |
4 | const additionalPaths = [];
5 | const srcPath = path.join(__dirname, '..', 'src');
6 | const distPath = path.join(__dirname, '..', 'dist');
7 | const assetsPath = path.join(distPath, assets);
8 |
9 | module.exports = {
10 | srcPath,
11 | distPath,
12 | assetsPath,
13 | additionalPaths,
14 | publicPath: `/${assets}/`,
15 | port: 8000
16 | };
17 |
--------------------------------------------------------------------------------
/sample/front-end/utils/entries.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | vendor: [
3 | 'normalize.css/normalize.css',
4 | 'bootstrap/dist/css/bootstrap.min.css',
5 | 'babel-polyfill',
6 | 'whatwg-fetch',
7 | 'react',
8 | 'react-dom',
9 | 'lodash',
10 | 'redux',
11 | 'react-redux',
12 | 'redux-logger',
13 | 'redux-saga'
14 | ],
15 | common: ['./src/common/components'],
16 | app: ['./src/index.jsx']
17 | };
18 |
--------------------------------------------------------------------------------
/sample/front-end/utils/env.js:
--------------------------------------------------------------------------------
1 | const C = require('./constants');
2 | const env = process.env.NODE_ENV;
3 | const isDevServerMode = process.argv[1].indexOf('webpack-dev-server') !== -1;
4 |
5 | module.exports = {
6 | isDevServerMode: isDevServerMode,
7 |
8 | environment: env,
9 |
10 | isBrowser: env === C.PROD || env === C.DEV,
11 |
12 | isServer: env === C.SERVER_DEV || env === C.SERVER_PROD
13 | };
14 |
--------------------------------------------------------------------------------
/sample/front-end/utils/get-modules.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
3 | const srcPath = path.join(__dirname, '../src');
4 |
5 | function getCssLoader(loader, isExtractCssMode) {
6 | return isExtractCssMode ? ExtractTextPlugin.extract('isomorphic-style', loader) : `isomorphic-style!${loader}`;
7 | }
8 |
9 | /**
10 | *
11 | * @param {Array|Object} [loaders]
12 | * @param {Boolean} [isExtractCssMode]
13 | * @returns {{preLoaders: *[], loaders: *[]}}
14 | */
15 | module.exports = function getDefaultModules(loaders, isExtractCssMode) {
16 | const cssMode = (typeof isExtractCssMode === 'boolean') ? isExtractCssMode : true;
17 | return {
18 | preLoaders: [
19 | {
20 | test: /\.(js|jsx)$/,
21 | include: srcPath,
22 | loader: 'eslint-loader'
23 | }
24 | ],
25 | loaders: [
26 | {
27 | // normalize.css and bootstrap css
28 | test: /\.css$/,
29 | include: [
30 | path.join(__dirname, '../node_modules/bootstrap'),
31 | path.join(__dirname, '../node_modules/normalize.css')
32 | ],
33 | loader: getCssLoader('css?minimize', cssMode)
34 | },
35 | {
36 | // bootstrap fonts
37 | test: /\.(svg|ttf|eot|woff|woff2)$/,
38 | include: [
39 | path.join(__dirname, '../node_modules/bootstrap')
40 | ],
41 | loader: 'file?name=bootstrap/[name].[ext]'
42 | },
43 | {
44 | test: /\.sass$/,
45 | loader: getCssLoader('css!sass?outputStyle=expanded&indentedSyntax', cssMode)
46 | },
47 | {
48 | test: /\.scss$/,
49 | loader: getCssLoader('css!sass?outputStyle=expanded', cssMode)
50 | },
51 | {
52 | test: /\.less$/,
53 | loader: getCssLoader('css!less', cssMode)
54 | },
55 | {
56 | test: /\.(png|jpg|gif|woff|woff2)$/,
57 | loader: 'url-loader?limit=8192'
58 | },
59 | {
60 | test: /\.(mp4|ogg|svg)$/,
61 | loader: 'file-loader'
62 | },
63 | {
64 | test: /\.html$/,
65 | loader: "html"
66 | }
67 | ].concat(loaders || [])
68 | };
69 | };
70 |
--------------------------------------------------------------------------------
/sample/front-end/utils/get-plugins.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const CopyWebpackPlugin = require('copy-webpack-plugin');
3 | const CleanWebpackPlugin = require('clean-webpack-plugin');
4 |
5 | const env = require('./env');
6 | const isDevServerMode = env.isDevServerMode;
7 | const defaults = require('./defaults');
8 |
9 | /**
10 | * @param {Array} plugins
11 | * @returns {Array}
12 | */
13 | module.exports = function getPlugins(plugins) {
14 | return (isDevServerMode ? [] : [new CleanWebpackPlugin([defaults.distPath], {root: process.cwd()})])
15 | .concat([
16 | new CopyWebpackPlugin([
17 | {
18 | from: path.join(defaults.srcPath, './favicon-32x32.png'),
19 | to: defaults.distPath
20 | },
21 | {
22 | from: path.join(defaults.srcPath, './favicon-16x16.png'),
23 | to: defaults.distPath
24 | },
25 | {
26 | from: path.join(defaults.srcPath, './common/static'),
27 | to: path.join(defaults.distPath, './common/static')
28 | }
29 | ])
30 | ])
31 | .concat(plugins || []);
32 | };
33 |
--------------------------------------------------------------------------------
/sample/front-end/utils/index.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: require('./env'),
3 | entries: require('./entries'),
4 | constants: require('./constants'),
5 | getPlugins: require('./get-plugins'),
6 | getModules: require('./get-modules'),
7 | babelConfig: require('./babel-config'),
8 | babelLoader: require('./babel-loader')
9 | };
10 |
--------------------------------------------------------------------------------
/sample/front-end/webpack.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const path = require('path');
4 | const C = require('./utils/constants');
5 | const allowedEnvs = Object.keys(C);
6 |
7 | const env = process.env.NODE_ENV || C.DEV;
8 |
9 | if (allowedEnvs.indexOf(env) !== -1) {
10 | process.env.NODE_ENV = env;
11 | } else {
12 | process.env.NODE_ENV = C.DEV;
13 | }
14 |
15 | module.exports = require(path.join(__dirname, 'cfg/' + env));
16 |
--------------------------------------------------------------------------------
/sample/sc-packages/Sitecore.Js.Presentation.Sample.Master.update:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/sample/sc-packages/Sitecore.Js.Presentation.Sample.Master.update
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.Sample.Console/Program.cs:
--------------------------------------------------------------------------------
1 | namespace Sparrow.Sample.Console
2 | {
3 | using System;
4 |
5 | using Sitecore.Js.Presentation.Configuration;
6 | using Sitecore.Js.Presentation.Managers;
7 |
8 | internal class Program
9 | {
10 | private static void Main(string[] args)
11 | {
12 | try
13 | {
14 | // System.Console.WriteLine("Test #\t\tInit time, s\t\tExec time, s");
15 |
16 | // for (var j = 0; j < 1; j++)
17 | // {
18 |
19 | // var start = DateTime.Now;
20 | // using (var engine = new Engine())
21 | // {
22 | // var inittime = (DateTime.Now - start).TotalSeconds;
23 |
24 | // var command = @"common__ext.header.renderToString({})";
25 | // start = DateTime.Now;
26 |
27 | // for (var i = 0; i < 1; i++)
28 | // {
29 | // var result = engine.Execute(command);
30 | // // System.Console.WriteLine(i);
31 | // }
32 |
33 | // var time = (DateTime.Now - start).TotalSeconds;
34 | // System.Console.WriteLine($"{j}\t\t{inittime}\t\t{time}");
35 | // }
36 | // }
37 | using (
38 | var manager =
39 | new JsEngineManager(
40 | new JsEngineManagerConfiguration
41 | {
42 | Modules =
43 | {
44 | @"d:\.projects\Asmagin\src\client\dist\assets\shared.js",
45 | @"d:\.projects\Asmagin\src\client\dist\assets\vendor.js",
46 | @"d:\.projects\Asmagin\src\client\dist\assets\common.js"
47 | }
48 | }))
49 | {
50 | using (var engine = manager.GetEngine())
51 | {
52 | var command = @"ContentComponents__ext.components.Welcome.renderToString({ })";
53 | try
54 | {
55 | var result = engine.Execute(command);
56 | System.Console.WriteLine(result);
57 | }
58 | catch (Exception ex)
59 | {
60 | System.Console.WriteLine(ex.Message);
61 | }
62 | System.Console.WriteLine(engine.Execute("console.getCalls()"));
63 | }
64 |
65 | using (var engine = manager.GetEngine())
66 | {
67 | var command = @"main__ext.components.Welcome.renderToString({ })";
68 | try
69 | {
70 | var result = engine.Execute(command);
71 | System.Console.WriteLine(result);
72 | }
73 | catch (Exception ex)
74 | {
75 | System.Console.WriteLine(ex.Message);
76 | }
77 | System.Console.WriteLine(engine.Execute("console.getCalls()"));
78 | }
79 |
80 |
81 | while (true)
82 | {
83 | using (var engine = manager.GetEngine())
84 | {
85 | System.Console.WriteLine("> ");
86 | var command = System.Console.ReadLine();
87 | try
88 | {
89 | var result = engine.Execute(command);
90 | System.Console.WriteLine(result);
91 | }
92 | catch (Exception ex)
93 | {
94 | System.Console.WriteLine(ex.Message);
95 | }
96 |
97 | System.Console.WriteLine(engine.Execute("console.getCalls()"));
98 | }
99 | }
100 | }
101 | }
102 | catch (Exception ex)
103 | {
104 | System.Console.WriteLine(ex.Message);
105 |
106 | if (ex.InnerException != null)
107 | {
108 | Console.WriteLine(ex.InnerException.Message);
109 | }
110 | }
111 | }
112 | }
113 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.Sample.Console/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("Sitecore.Js.Presentation.Sample.Console")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("Sitecore.Js.Presentation.Sample.Console")]
12 | [assembly: AssemblyCopyright("Alexander Smagin © 2016")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("c11bf1e5-bee3-4551-bb37-ad93238fa983")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | // Major Version
26 | // Minor Version
27 | // Build Number
28 | // Revision
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.Sample.Console/Sitecore.Js.Presentation.Sample.Console.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Debug
7 | AnyCPU
8 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983}
9 | Exe
10 | Properties
11 | Sparrow.Sample.Console
12 | Sparrow.Sample.Console
13 | v4.5.2
14 | 512
15 | true
16 |
17 |
18 |
19 |
20 | AnyCPU
21 | true
22 | full
23 | false
24 | bin\Debug\
25 | DEBUG;TRACE
26 | prompt
27 | 4
28 |
29 |
30 | AnyCPU
31 | pdbonly
32 | true
33 | bin\Release\
34 | TRACE
35 | prompt
36 | 4
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | {44a5ab5b-7329-4146-b3d8-3f78cd5d9ef2}
59 | Sitecore.Js.Presentation
60 |
61 |
62 |
63 |
64 |
65 | 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}.
66 |
67 |
68 |
69 |
76 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.Sample.Console/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.Sample.Console/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.Js.Presentation", "Sitecore.Js.Presentation\Sitecore.Js.Presentation.csproj", "{44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "source", "source", "{70A5FFA5-20C9-4F11-94D2-DD9DC6158F0A}"
9 | EndProject
10 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D85477BD-187E-44FB-BD09-88745DEE96D8}"
11 | EndProject
12 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sample", "sample", "{5A9D46D4-436E-4774-9145-46877232F18E}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sitecore.Js.Presentation.Sample.Console", "Sitecore.Js.Presentation.Sample.Console\Sitecore.Js.Presentation.Sample.Console.csproj", "{C11BF1E5-BEE3-4551-BB37-AD93238FA983}"
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|Any CPU = Debug|Any CPU
19 | Release|Any CPU = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2}.Release|Any CPU.Build.0 = Release|Any CPU
26 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983}.Debug|Any CPU.Build.0 = Debug|Any CPU
28 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983}.Release|Any CPU.ActiveCfg = Release|Any CPU
29 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983}.Release|Any CPU.Build.0 = Release|Any CPU
30 | EndGlobalSection
31 | GlobalSection(SolutionProperties) = preSolution
32 | HideSolutionNode = FALSE
33 | EndGlobalSection
34 | GlobalSection(NestedProjects) = preSolution
35 | {44A5AB5B-7329-4146-B3D8-3F78CD5D9EF2} = {70A5FFA5-20C9-4F11-94D2-DD9DC6158F0A}
36 | {C11BF1E5-BEE3-4551-BB37-AD93238FA983} = {5A9D46D4-436E-4774-9145-46877232F18E}
37 | EndGlobalSection
38 | EndGlobal
39 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Configuration/IJsEngineManagerConfiguration.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Configuration
2 | {
3 | using System.Collections.Generic;
4 |
5 | public interface IJsEngineManagerConfiguration
6 | {
7 | ///
8 | /// Gets or sets the maximum number of engines that will be created in the pool.
9 | /// Defaults to 25 .
10 | ///
11 | int? MaxEngines { get; set; }
12 |
13 | int? MaxUsagesPerEngine { get; set; }
14 |
15 | IList Modules { get; set; }
16 |
17 | ///
18 | /// Gets or sets the number of engines to initially start when a pool is created.
19 | /// Defaults to 10 .
20 | ///
21 | int? StartEngines { get; set; }
22 |
23 | void AddModule(string module);
24 | }
25 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Configuration/JsEngineManagerConfiguration.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Configuration
2 | {
3 | using System.Collections.Generic;
4 |
5 | using Sitecore.Diagnostics;
6 |
7 | public class JsEngineManagerConfiguration : IJsEngineManagerConfiguration
8 | {
9 | public JsEngineManagerConfiguration()
10 | {
11 | this.Modules = new List();
12 | }
13 |
14 | public int? MaxEngines { get; set; }
15 |
16 | public int? MaxUsagesPerEngine { get; set; }
17 |
18 | public IList Modules { get; set; }
19 |
20 | public int? StartEngines { get; set; }
21 |
22 | public void AddModule(string module)
23 | {
24 | Assert.ArgumentNotNull(module, "module");
25 | this.Modules.Add(module);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Context/IPageContext.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Context
2 | {
3 | using System.Collections.Generic;
4 |
5 | public interface IPageContext
6 | {
7 | List InitScripts { get; }
8 |
9 | void Add(string client);
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Context/PageContext.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Context
2 | {
3 | using System.Collections.Generic;
4 | using System.Web;
5 |
6 | public class PageContext : IPageContext
7 | {
8 | private const string ComponentsStorageNameInHttpContext = "300C5ADADC894A128C4A59A9BB530117";
9 |
10 | public List InitScripts
11 | {
12 | get
13 | {
14 | var obj = HttpContext.Current.Items[ComponentsStorageNameInHttpContext];
15 |
16 | if (obj != null)
17 | {
18 | return (List)obj;
19 | }
20 |
21 | var list = new List();
22 | HttpContext.Current.Items[ComponentsStorageNameInHttpContext] = list;
23 | return list;
24 | }
25 | }
26 |
27 | public void Add(string script)
28 | {
29 | this.InitScripts.Insert(0, script);
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Engine.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014-Present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | namespace Sitecore.Js.Presentation
11 | {
12 | using System;
13 |
14 | using JavaScriptEngineSwitcher.Core;
15 |
16 | ///
17 | /// Request-specific ReactJS.NET environment. This is unique to the individual request and is
18 | /// not shared.
19 | ///
20 | public class Engine : IEngine
21 | {
22 | ///
23 | /// Contains an engine acquired from a pool of engines.
24 | ///
25 | protected Lazy EngineFromPool;
26 |
27 | private readonly Func _areScriptsLoaded;
28 |
29 | private bool _disposed = false;
30 |
31 | public Engine(
32 | Func getEngineAction,
33 | Func areScriptsLoaded)
34 | {
35 | this._areScriptsLoaded = areScriptsLoaded;
36 |
37 | this.EngineFromPool = new Lazy(getEngineAction);
38 | }
39 |
40 | protected IJsEngine JsEngine => this.EngineFromPool.Value;
41 |
42 | public virtual bool CheckScriptsReadiness()
43 | {
44 | if (!this._areScriptsLoaded(this.JsEngine))
45 | {
46 | throw new InvalidOperationException("Scripts are not ready for further execution");
47 | }
48 |
49 | return true;
50 | }
51 |
52 | ///
53 | /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
54 | ///
55 | ///
56 | public void Dispose()
57 | {
58 | // Dispose of unmanaged resources.
59 | Dispose(true);
60 | // Suppress finalization.
61 | GC.SuppressFinalize(this);
62 | }
63 |
64 | // Protected implementation of Dispose pattern.
65 | protected virtual void Dispose(bool disposing)
66 | {
67 | if (_disposed)
68 | return;
69 |
70 | if (disposing)
71 | {
72 | // Free any other managed objects here.
73 | EngineFromPool?.Value?.Dispose();
74 | this.EngineFromPool = null;
75 | }
76 |
77 | // Free any unmanaged objects here.
78 | _disposed = true;
79 | }
80 |
81 | ///
82 | /// Executes the provided JavaScript code.
83 | ///
84 | /// JavaScript to execute
85 | public virtual void Execute(string code)
86 | {
87 | try
88 | {
89 | this.JsEngine.Execute(code);
90 | }
91 | catch (JsRuntimeException ex)
92 | {
93 | throw this.WrapJavaScriptRuntimeException(ex);
94 | }
95 | }
96 |
97 | ///
98 | /// Executes the provided JavaScript code, returning a result of the specified type.
99 | ///
100 | /// Type to return
101 | /// Code to execute
102 | /// Result of the JavaScript code
103 | public virtual T Execute(string code)
104 | {
105 | try
106 | {
107 | return this.JsEngine.Evaluate(code);
108 | }
109 | catch (JsRuntimeException ex)
110 | {
111 | throw this.WrapJavaScriptRuntimeException(ex);
112 | }
113 | }
114 |
115 | ///
116 | /// Executes the provided JavaScript function, returning a result of the specified type.
117 | ///
118 | /// Type to return
119 | /// JavaScript function to execute
120 | /// Arguments to pass to function
121 | /// Result of the JavaScript code
122 | public virtual T Execute(string function, params object[] args)
123 | {
124 | try
125 | {
126 | return this.JsEngine.CallFunction(function, args);
127 | }
128 | catch (JsRuntimeException ex)
129 | {
130 | throw this.WrapJavaScriptRuntimeException(ex);
131 | }
132 | }
133 |
134 | ///
135 | /// Determines if the specified variable exists in the JavaScript engine
136 | ///
137 | /// Name of the variable
138 | /// true if the variable exists; false otherwise
139 | public virtual bool HasVariable(string name)
140 | {
141 | try
142 | {
143 | return this.JsEngine.HasVariable(name);
144 | }
145 | catch (JsRuntimeException ex)
146 | {
147 | throw this.WrapJavaScriptRuntimeException(ex);
148 | }
149 | }
150 |
151 | ///
152 | /// Updates the Message of a to be more useful, containing
153 | /// the line and column numbers.
154 | ///
155 | /// Original exception
156 | /// New exception
157 | protected virtual JsRuntimeException WrapJavaScriptRuntimeException(JsRuntimeException ex)
158 | {
159 | return
160 | new JsRuntimeException(
161 | string.Format("{0}\r\nLine: {1}\r\nColumn:{2}", ex.Message, ex.LineNumber, ex.ColumnNumber),
162 | ex.EngineName,
163 | ex.EngineVersion)
164 | {
165 | ErrorCode = ex.ErrorCode,
166 | Category = ex.Category,
167 | LineNumber = ex.LineNumber,
168 | ColumnNumber = ex.ColumnNumber,
169 | SourceFragment = ex.SourceFragment,
170 | Source = ex.Source
171 | };
172 | }
173 | }
174 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Enum/RenderingOptions.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Enum
2 | {
3 | public enum RenderingOptions
4 | {
5 | ServerOnly,
6 |
7 | ClientOnly,
8 |
9 | ClientAndServer
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/IComponent.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014-Present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | namespace Sitecore.Js.Presentation
11 | {
12 | using Sitecore.Js.Presentation.Enum;
13 |
14 | ///
15 | /// Represents a React JavaScript component.
16 | ///
17 | public interface IComponent
18 | {
19 | ///
20 | /// Gets or sets the name of the component
21 | ///
22 | string ComponentName { get; }
23 |
24 | ///
25 | /// Gets or sets the HTML class for the container of this component
26 | ///
27 | string ContainerClass { get; set; }
28 |
29 | ///
30 | /// Gets or sets the unique ID for the container of this component
31 | ///
32 | string ContainerId { get; }
33 |
34 | ///
35 | /// Gets or sets the HTML tag the component is wrapped in
36 | ///
37 | string ContainerTag { get; set; }
38 |
39 | ///
40 | /// Gets or sets the props for this component
41 | ///
42 | object Model { get; set; }
43 |
44 | ///
45 | /// Renders the HTML for this component. This will execute the component server-side and
46 | /// return the rendered HTML.
47 | ///
48 | /// HTML
49 | string Render(RenderingOptions options);
50 | }
51 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/IEngine.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014-Present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | namespace Sitecore.Js.Presentation
11 | {
12 | using System;
13 |
14 | ///
15 | /// Request-specific ReactJS.NET environment. This is unique to the individual request and is
16 | /// not shared.
17 | ///
18 | public interface IEngine : IDisposable
19 | {
20 | ///
21 | /// Executes the provided JavaScript code.
22 | ///
23 | /// JavaScript to execute
24 | void Execute(string code);
25 |
26 | ///
27 | /// Executes the provided JavaScript code, returning a result of the specified type.
28 | ///
29 | /// Type to return
30 | /// Code to execute
31 | /// Result of the JavaScript code
32 | T Execute(string code);
33 |
34 | ///
35 | /// Executes the provided JavaScript function, returning a result of the specified type.
36 | ///
37 | /// Type to return
38 | /// JavaScript function to execute
39 | /// Arguments to pass to function
40 | /// Result of the JavaScript code
41 | T Execute(string function, params object[] args);
42 | }
43 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Locator.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation
2 | {
3 | using System;
4 |
5 | using Sitecore.Js.Presentation.Configuration;
6 | using Sitecore.Js.Presentation.Context;
7 | using Sitecore.Js.Presentation.Managers;
8 |
9 | public class Locator
10 | {
11 | private static readonly object SyncObject = new object();
12 |
13 | private static Locator _current;
14 |
15 | protected Locator(IJsEngineManagerConfiguration config)
16 | {
17 | this.Page = new PageContext();
18 | this.Manager = new JsEngineManager(config);
19 | }
20 |
21 | public static Locator Current
22 | {
23 | get
24 | {
25 | if (_current == null)
26 | {
27 | throw new Exception("JsEngine is not initialized yet");
28 | }
29 |
30 | return _current;
31 | }
32 | }
33 |
34 | // ReSharper disable once ConvertToAutoProperty
35 | public IJsEngineManager Manager { get; }
36 |
37 | public IPageContext Page { get; }
38 |
39 | public static void Initialize(IJsEngineManagerConfiguration config)
40 | {
41 | if (_current != null)
42 | {
43 | throw new Exception("JsEngine is already initialized");
44 | }
45 |
46 | lock (SyncObject)
47 | {
48 | if (_current == null)
49 | {
50 | _current = new Locator(config);
51 | }
52 | }
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Managers/IJsEngineManager.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Managers
2 | {
3 | using System;
4 |
5 | public interface IJsEngineManager : IDisposable
6 | {
7 | string CombineInitializationScripts();
8 |
9 | IEngine GetEngine();
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Mvc/HtmlHelperExtentions.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Mvc
2 | {
3 | using System.Text;
4 | using System.Web;
5 | using System.Web.Mvc;
6 |
7 | using Sitecore.Js.Presentation.Enum;
8 | using Sitecore.Mvc.Presentation;
9 |
10 | public static class HtmlHelperExtentions
11 | {
12 | public static IHtmlString RenderComponent(this HtmlHelper htmlHelper, string componentName, object model)
13 | {
14 | // Render ReactJS component
15 | return RenderComponent(htmlHelper, componentName, model, RenderingOptions.ClientAndServer);
16 | }
17 |
18 | public static IHtmlString RenderComponent(
19 | this HtmlHelper htmlHelper,
20 | string componentName,
21 | object model,
22 | RenderingOptions renderOptions)
23 | {
24 | var server = Locator.Current.Manager;
25 | var page = Locator.Current.Page;
26 | var rendering = RenderingContext.Current.Rendering;
27 |
28 | var component = new Component(server, page, componentName, model, rendering);
29 |
30 | // Render ReactJS component
31 | return new HtmlString(component.Render(renderOptions));
32 | }
33 |
34 | public static IHtmlString RenderScripts(this HtmlHelper htmlHelper)
35 | {
36 | var sb = new StringBuilder();
37 |
38 | foreach (var str in Locator.Current.Page.InitScripts)
39 | {
40 | sb.AppendLine(str);
41 | }
42 |
43 | var tag = new TagBuilder("script") { InnerHtml = sb.ToString() };
44 | return new HtmlString(tag.ToString());
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Mvc/Sitecore.Js.PresentationController.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Mvc
2 | {
3 | using System.IO;
4 | using System.Web.Mvc;
5 |
6 | using Sitecore.Diagnostics;
7 | using Sitecore.Js.Presentation.Enum;
8 | using Sitecore.Mvc.Controllers;
9 | using Sitecore.Mvc.Pipelines;
10 | using Sitecore.Mvc.Pipelines.Response.RenderPlaceholder;
11 | using Sitecore.Mvc.Presentation;
12 |
13 | public class JsController : SitecoreController
14 | {
15 | ///
16 | /// Generate component ReactJS action results
17 | ///
18 | /// Name of a component exposed from a js package
19 | /// Data to be passed into a component
20 | ///
21 | /// ActionResult object
22 | public virtual ActionResult JsComponent(string componentName, object model, RenderingOptions renderOptions)
23 | {
24 | return this.JsComponent(componentName, model, renderOptions, RenderingContext.Current.Rendering);
25 | }
26 |
27 | ///
28 | /// Generate component ReactJS action results
29 | ///
30 | /// Name of a component exposed from a js package
31 | /// Data to be passed into a component
32 | /// Rendering definition object
33 | ///
34 | /// ActionResult object
35 | public virtual ActionResult JsComponent(
36 | string componentName,
37 | object model,
38 | RenderingOptions renderOptions,
39 | Rendering rendering)
40 | {
41 | var currentManager = Locator.Current.Manager;
42 | var page = Locator.Current.Page;
43 |
44 | var component = new Component(currentManager, page, componentName, model, rendering);
45 |
46 | // Render ReactJS component
47 | return this.Content(component.Render(renderOptions));
48 | }
49 |
50 | ///
51 | /// Generate a content of a placeholder into a string
52 | ///
53 | /// Name of a placeholder
54 | /// Rendering definition object
55 | /// Returns string with a rendered placeholder content
56 | protected virtual string Placeholder(string placeholderName, Rendering rendering)
57 | {
58 | Assert.ArgumentNotNull(placeholderName, "placeholderName");
59 |
60 | var stringWriter = new StringWriter();
61 | PipelineService.Get()
62 | .RunPipeline(
63 | "mvc.renderPlaceholder",
64 | new RenderPlaceholderArgs(placeholderName, stringWriter, rendering));
65 | return stringWriter.ToString();
66 | }
67 | }
68 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Pipelines/InitializeJsContext.cs:
--------------------------------------------------------------------------------
1 | namespace Sitecore.Js.Presentation.Pipelines
2 | {
3 | using Sitecore.Js.Presentation.Configuration;
4 | using Sitecore.Pipelines;
5 |
6 | public class InitializeJsContext
7 | {
8 | public IJsEngineManagerConfiguration Config { get; set; }
9 |
10 | public void Process(PipelineArgs args)
11 | {
12 | Locator.Initialize(this.Config);
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("Sitecore.Js.Presentation")]
8 | [assembly: AssemblyDescription("Embedded JavaScript Engine for Sitecore")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("Alexander Smagin")]
11 | [assembly: AssemblyProduct("Sitecore.Js.Presentation")]
12 | [assembly: AssemblyCopyright("Alexander Smagin © 2016")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("91743228-c61a-466f-9a7f-7b6a0b6f773d")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | // Major Version
26 | // Minor Version
27 | // Build Number
28 | // Revision
29 | // You can specify all the values or you can default the Build and Revision Numbers
30 | // by using the '*' as shown below:
31 | // [assembly: AssemblyVersion("1.0.*")]
32 | [assembly: AssemblyVersion("1.0.0.0")]
33 | [assembly: AssemblyFileVersion("1.0.0.0")]
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Resources/init.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014-Present, Facebook, Inc.
3 | * All rights reserved.
4 | *
5 | * This source code is licensed under the BSD-style license found in the
6 | * LICENSE file in the root directory of this source tree. An additional grant
7 | * of patent rights can be found in the PATENTS file in the same directory.
8 | */
9 |
10 | // Basic console shim. Caches all calls to console methods.
11 | function MockConsole() {
12 | this._calls = [];
13 | ['log', 'error', 'warn', 'debug', 'info', 'dir', 'group', 'groupEnd', 'groupCollapsed'].forEach(function (methodName) {
14 | this[methodName] = this._handleCall.bind(this, methodName);
15 | }, this);
16 | }
17 | MockConsole.prototype = {
18 | _handleCall: function (methodName/*, ...args*/) {
19 | var serializedArgs = [];
20 | for (var i = 1; i < arguments.length; i++) {
21 | serializedArgs.push(JSON.stringify(arguments[i]));
22 | }
23 | this._calls.push({
24 | method: methodName,
25 | args: serializedArgs
26 | });
27 | },
28 | _formatCall: function (call) {
29 | return 'console.' + call.method + '("[server]", ' + call.args.join(', ') + ');';
30 | },
31 | getCalls: function () {
32 | var output = this._calls.map(this._formatCall).join('\n');
33 | this._calls = [];
34 | return output;
35 | }
36 | };
37 |
38 | var console = new MockConsole();
39 |
40 | var window = this || {};
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/Sitecore.Js.Presentation.nuspec:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Sitecore.Js.Presentation
5 | $version$
6 | Sitecore JavaScript Presentation Module
7 | Alex Smagin
8 | Alex Smagin
9 | https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/master/LICENSE
10 | https://github.com/asmagin/sitecore-js-presentation
11 | false
12 | A module for creating Sitecore components using embedded JavaScript engine
13 | https://github.com/asmagin/sitecore-js-presentation
14 | Alex Smagin (c) 2016
15 |
16 | Sitecore, JavaScript, React, ReactJS
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/content/App_Config/Include/Sitecore.Js.Presentation/Sitecore.Js.Presentation.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 10
8 | 25
9 | 1000000
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/content/Views/web.config.transform:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/content/readme.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/src/Sitecore.Js.Presentation/content/readme.md
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/Sitecore.Js.Presentation/tools/readme.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asmagin/sitecore-js-presentation/a9ac20e3bad8d72ddf3fcb866d2cbc317baa7256/src/Sitecore.Js.Presentation/tools/readme.md
--------------------------------------------------------------------------------