Error executing template "/Designs/Dwsimple/Paragraph/SavedConfigurations.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_056a68704e0d4efaa9851c6a50fb0cfe.Execute() in C:\inetpub\PagunetteDW\Files\Templates\Designs\Dwsimple\Paragraph\SavedConfigurations.cshtml:line 22
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using System;
3 @using System.Web;
4 @using System.Configuration;
5 @using System.Web.Helpers;
6 @using Pagunette.CustomModules;
7 @using Pagunette.CustomModules.Classes;
8 @using System.Dynamic;
9 @using System.Text.RegularExpressions
10 @using Pagunette.CustomModules.Classes.Perfion;
11 @using Pagunette.CustomModules.Classes.SavedConfiguration;
12 @using Pagunette.CustomModules.Classes.Perfion.XmlAbstractions;
13 @using Pagunette.CustomModules.Utils;
14 @using Pagunette.Models;
15 @using Newtonsoft.Json;
16
17 @{
18 Layout = null;
19
20 bool hasSavedConf = false;
21 List<string> lstSavedConfiguration = new List<string>();
22 if (!string.IsNullOrEmpty(Pageview.User.CustomFieldValues.Find(x => x.CustomField.Name == "ConfSaved").Value.ToString()))
23 {
24 hasSavedConf = true;
25 foreach (string queryString in Pageview.User.CustomFieldValues.Find(x => x.CustomField.Name == "ConfSaved").Value.ToString().Split('~'))
26 {
27 lstSavedConfiguration.Add(queryString);
28 }
29 }
30
31 var currency = Pageview.User != null && !string.IsNullOrEmpty(Pageview.User.Currency) ? Pageview.User.Currency : Pageview.Area.EcomCurrencyId;
32 int savedConfigurationIndex = 0;
33 int currUserId = Pageview.User.ID;
34 var varer = ConfiguratorPerfionTasks.GetConfiguratorVarer(PerfionSettings.PerfionLanguageID);
35
36 }
37 <script>
38 function loader() {
39 //Spinner
40 var opts = {
41 lines: 9, // The number of lines to draw
42 length: 0, // The length of each line
43 width: 10, // The line thickness
44 radius: 18, // The radius of the inner circle
45 corners: 1, // Corner roundness (0..1)
46 rotate: 0, // The rotation offset
47 direction: 1, // 1: clockwise, -1: counterclockwise
48 color: '#000', // #rgb or #rrggbb or array of colors
49 speed: 1, // Rounds per second
50 trail: 35, // Afterglow percentage
51 shadow: false, // Whether to render a shadow
52 hwaccel: false, // Whether to use hardware acceleration
53 className: 'spinner', // The CSS class to assign to the spinner
54 zIndex: 2e9, // The z-index (defaults to 2000000000)
55 top: '50%', // Top position relative to parent
56 left: '50%' // Left position relative to parent
57 };
58
59 var target = document.getElementById('orderlist');
60 var spinner = new Spinner(opts).spin(target);
61
62 document.getElementById('savedConfiguratationList').style.visibility = "hidden";
63 }
64 </script>
65
66 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.0/css/bootstrap-datepicker.min.css" media="screen">
67
68 <section>
69 <form name="ordersubmit" id="ordersubmit" class="form-light form-horizontal">
70 <div class="w-section inverse shop">
71 <div class="saved-config">
72 <br />
73 <h5>@Translate("SavedConfigurations price change warning", "Pris ændringer kan forkomme for de enkelte konfigurationer, ved ændringer af konfigurationen, eller ved pris ændringer på de enkelte elementer.")</h5>
74 <br />
75 <div style="margin-bottom:10px" id="buttonWrapper">
76 <div id="addMarkedToBasket" data-toggle="modal" data-target="#confirmAddToBasket" class="btn btn-dw-cart"><strong>@Translate("AddMarkedToCart", "Flyt markeret til kurv")</strong></div>
77 <div id="deleteMarked" data-toggle="modal" data-target="#confirmDelete" class="btn btn-dw-cart"><strong>@Translate("DeleteMarked", "Slet markeret")</strong></div>
78 </div>
79 <table class="table table-cart table-responsive" id="orderlist">
80 <tbody id="savedConfiguratationList">
81 @if (hasSavedConf)
82 {
83 foreach (string str in lstSavedConfiguration)
84 {
85 try
86 {
87
88
89 string image = string.Empty;
90 string comment = "";
91 string[] commaFix = Regex.Split(str, "&C=");
92 string queryStr = commaFix[0].Replace(',', '.') + "&C=" + HttpUtility.UrlEncode(commaFix[1]);
93
94 Dictionary<string, string> dictConfigurations = new Dictionary<string, string>();
95
96 string[] xCor = str.Split('&');
97 for (int yCor = 0; yCor < xCor.Length; yCor++)
98 {
99 string[] param = xCor[yCor].Split('=');
100
101 if (param.Length == 1)
102 {
103 dictConfigurations.Add(param[0], "");
104 }
105 else
106 {
107 dictConfigurations.Add(param[0], param[1]);
108 }
109 }
110
111 var configData = new ConfigJson() { index = savedConfigurationIndex, configData = queryStr, title = dictConfigurations["CName"] };
112
113 if (dictConfigurations.ContainsKey("C"))
114 {
115 comment = dictConfigurations["C"];
116 }
117
118 if (dictConfigurations.ContainsKey("PIU") && dictConfigurations["PIU"] != "")
119 {
120 image = PIMComUtilities.GetPerfionImageUrl(dictConfigurations["PIU"], "100x100");
121 }
122
123 <tr class="orderline-product-row orderline-product-row--header">
124 <th class="dw-table-title">
125 <strong>
126 @if (!string.IsNullOrEmpty(image))
127 {
128 <img src="@image" class="" width="70" />
129 }
130 </strong>
131 </th>
132 <th colspan="2" class="dw-table-title">
133 <strong>
134 <span class="">
135 @if (dictConfigurations.ContainsKey("V"))
136 {
137 ConfiguratorVareModel vareName = varer.FirstOrDefault(x => x.ID == dictConfigurations["V"]);
138 @vareName.RelProductName
139 }
140 </span>
141 </strong>
142 </th>
143 <th class="dw-table-title">
144 <span class="">
145 @if (dictConfigurations.ContainsKey("CName"))
146 {
147 @dictConfigurations["CName"]
148 <br />
149 }
150 @if (dictConfigurations.ContainsKey("D"))
151 {
152 @dictConfigurations["D"]
153 }
154 </span>
155 </th>
156 <th class="dw-table-title">
157 @Translate("Mark", "Markere")
158 <div><input type="checkbox" value='@JsonConvert.SerializeObject(configData)' data-bind="checked: markedConfigs" /></div>
159 </th>
160 </tr>
161 <tr>
162 <th colspan="3">
163 <button data-konfiguration='@JsonConvert.SerializeObject(configData)' data-bind="click: addToBasket.bind($data, event, '@currUserId'), disable: buttonWorking" class="btn btn-dw-cart pull-left"><strong>@Translate("Add to cart", "Add to cart")</strong></button>
164 </th>
165 <th>
166 <a href="" onclick="loader();" data-bind="click: removeProduct.bind($data, @savedConfigurationIndex, @currUserId, '@(dictConfigurations["SID"] ?? "")') " title=""><i class="fa fa-trash-o"></i></a>
167 </th>
168 </tr>
169 <tr class="orderline-product-row configurator-product-row">
170 <td colspan="3" class="text-left">@Translate("Metervare", "Metervare:")</td>
171 <td class="text-left">@dictConfigurations["P"]</td>
172
173 </tr>
174
175 if (dictConfigurations.ContainsKey("CB"))
176 {
177 <tr class="orderline-product-row configurator-product-row">
178 <td colspan="3" class="text-left">@Translate("IsTurned", "Vendes vandret:")</td>
179
180 @if (dictConfigurations["CB"] == "1")
181 {
182 <td class="text-left">@Translate("Ja", "Ja")</td>
183 }
184 else
185 {
186 <td class="text-left">@Translate("Nej", "Nej")</td>
187 }
188 </tr>
189
190 <tr class="orderline-product-row configurator-product-row">
191 <td colspan="3" class="text-left">@Translate("Bredde", "Bredde:")</td>
192 <td class="text-left">@dictConfigurations["W"] cm</td>
193 </tr>
194
195 }
196
197 if (dictConfigurations.ContainsKey("H"))
198 {
199 <tr class="orderline-product-row configurator-product-row">
200 <td colspan="3" class="text-left">@Translate("Højde", "Højde:")</td>
201 <td class="text-left">@dictConfigurations["H"] cm</td>
202 </tr>
203 }
204
205 if (dictConfigurations["VT"] == "G")
206 {
207 if (dictConfigurations.ContainsKey("QL") || dictConfigurations.ContainsKey("QR"))
208 {
209 <tr class="orderline-product-row configurator-product-row">
210 <td colspan="3" class="text-left">@Translate("QuantityHalvBreddeLeft", "Antal Halv bredde venstre side:")</td>
211 @if (dictConfigurations.ContainsKey("QL"))
212 {
213 <td class="text-left">@(dictConfigurations["QL"])</td>
214 }
215 else
216 {
217 <td class="text-left">0</td>
218 }
219 </tr>
220
221 <tr class="orderline-product-row configurator-product-row">
222 <td colspan="3" class="text-left">@Translate("QuantityHalvBreddeRight", "Antal Halv bredde højre side:")</td>
223 @if (dictConfigurations.ContainsKey("QR"))
224 {
225 <td class="text-left">@(dictConfigurations["QR"])</td>
226 }
227 else
228 {
229 <td class="text-left">0</td>
230 }
231 </tr>
232 }
233 }
234
235 if (dictConfigurations.ContainsKey("FP"))
236 {
237 <tr class="orderline-product-row configurator-product-row">
238 <td colspan="3" class="text-left">@Translate("Foer", "Foer:")</td>
239 <td class="text-left">@dictConfigurations["FP"]</td>
240 </tr>
241
242 <tr class="orderline-product-row configurator-product-row">
243 <td colspan="3" class="text-left">@Translate("IsTurned", "Vendes vandret:")</td>
244 @if (dictConfigurations.ContainsKey("IT"))
245 {
246 <td class="text-left">@dictConfigurations["IT"])</td>
247 // @Translate("Ja", "Ja") ??
248 }
249 else
250 {
251 <td class="text-left">@Translate("Nej", "Nej")</td>
252
253 }
254 </tr>
255 }
256
257 if (dictConfigurations.ContainsKey("TF"))
258 {
259 <tr class="orderline-product-row configurator-product-row">
260 <td colspan="3" class="text-left">@Translate("TopFlap", "Top Flap: ")</td>
261 <td class="text-left">@dictConfigurations["TF"]</td>
262 </tr>
263 }
264
265 if (dictConfigurations.ContainsKey("BF"))
266 {
267 <tr class="orderline-product-row configurator-product-row">
268 <td colspan="3" class="text-left">@Translate("BottomFlap", "Bund Flap: ")</td>
269 <td class="text-left">@dictConfigurations["BF"]</td>
270 </tr>
271 }
272
273 if (dictConfigurations.ContainsKey("S"))
274 {
275 <tr class="orderline-product-row configurator-product-row">
276 <td colspan="3" class="text-left">@Translate("Styring", "Styring: ")</td>
277 <td class="text-left">@dictConfigurations["S"]</td>
278 </tr>
279 }
280
281 if (dictConfigurations.ContainsKey("SL"))
282 {
283 <tr class="orderline-product-row configurator-product-row">
284 <td colspan="3" class="text-left">@Translate("StyringLaengder", "Længde: ")</td>
285 <td class="text-left">@dictConfigurations["SL"] cm</td>
286 </tr>
287 }
288
289 if (dictConfigurations["VT"] == "L")
290 {
291 <tr class="orderline-product-row configurator-product-row">
292 <td colspan="3" class="text-left">@Translate("QuantityStyringLeft", "Antal med venstre styring :")</td>
293 @if (dictConfigurations.ContainsKey("QL"))
294 {
295 <td class="text-left">@(dictConfigurations["QL"])</td>
296 }
297 else
298 {
299 <td class="text-left">0</td>
300 }
301 </tr>
302
303 <tr class="orderline-product-row configurator-product-row">
304 <td colspan="3" class="text-left">@Translate("QuantityStyringRight", "Antal med højre styring :")</td>
305 @if (dictConfigurations.ContainsKey("QR"))
306 {
307 <td class="text-left">@(dictConfigurations["QR"])</td>
308 }
309 else
310 {
311 <td class="text-left">0</td>
312 }
313 </tr>
314 }
315
316 if (dictConfigurations.ContainsKey("Rh"))
317 {
318 <tr class="orderline-product-row configurator-product-row">
319 <td colspan="3" class="text-left">@Translate("Rynkehoved", "Rynkehoved: ")</td>
320 <td class="text-left">@dictConfigurations["Rh"] cm</td>
321 </tr>
322 }
323
324 if (dictConfigurations.ContainsKey("Lg"))
325 {
326 <tr class="orderline-product-row configurator-product-row">
327 <td colspan="3" class="text-left">@Translate("Loebegang", "Løbegang: ")</td>
328 <td class="text-left">@dictConfigurations["Lg"] cm</td>
329 </tr>
330 }
331
332 if (dictConfigurations.ContainsKey("R"))
333 {
334 <tr class="orderline-product-row configurator-product-row">
335 <td colspan="3" class="text-left">@Translate("Rings", "Ring: ")</td>
336 <td class="text-left">@dictConfigurations["R"]</td>
337 </tr>
338 }
339
340 if (dictConfigurations.ContainsKey("BS") && dictConfigurations["VT"] != "Liftgardin")
341 {
342 <tr class="orderline-product-row configurator-product-row">
343 <td colspan="3" class="text-left">@Translate("Bundsoem", "Bundsøm: ")</td>
344 <td class="text-left">@dictConfigurations["BS"]</td>
345 </tr>
346 }
347
348 if (dictConfigurations.ContainsKey("TT"))
349 {
350 <tr class="orderline-product-row configurator-product-row">
351 <td colspan="3" class="text-left">@Translate("TapeTypes", "Tape type: ")</td>
352 <td class="text-left">@dictConfigurations["TT"]</td>
353 </tr>
354 }
355
356 if (dictConfigurations.ContainsKey("HR") && dictConfigurations["HR"] == "Yes")
357 {
358 <tr class="orderline-product-row configurator-product-row">
359 <td colspan="3" class="text-left">@Translate("Rynkning", "Rynkning: ")</td>
360 <td class="text-left">@Translate("Yes", "Ja")</td>
361 </tr>
362
363 if (dictConfigurations.ContainsKey("FBER"))
364 {
365 <tr class="orderline-product-row configurator-product-row">
366 <td colspan="3" class="text-left">@Translate("RynkningValue", "Færdig bredde efter rynkning: ")</td>
367 <td class="text-left">@dictConfigurations["FBER"]</td>
368 </tr>
369 }
370 }
371
372 if (dictConfigurations.ContainsKey("TH"))
373 {
374 <tr class="orderline-product-row configurator-product-row">
375 <td colspan="3" class="text-left">@Translate("TotalHaegter", "Antal hægter: ")</td>
376 <td class="text-left">@dictConfigurations["TH"] @Translate("Pergardin", "Pr. færdig gardin")</td>
377 </tr>
378 }
379
380 if (dictConfigurations.ContainsKey("PIL"))
381 {
382 <tr class="orderline-product-row configurator-product-row">
383 <td colspan="3" class="text-left">@Translate("PlaceringILomme", "Placering i lomme: ")</td>
384 <td class="text-left">@dictConfigurations["PIL"]</td>
385 </tr>
386 }
387
388 if (dictConfigurations.ContainsKey("KA"))
389 {
390 <tr class="orderline-product-row configurator-product-row">
391 <td colspan="3" class="text-left">@Translate("KouserAntal", "Kouser: ")</td>
392 <td class="text-left">@dictConfigurations["KA"]/td>
393 </tr>
394 }
395
396 if (dictConfigurations.ContainsKey("K"))
397 {
398 <tr class="orderline-product-row configurator-product-row">
399 <td colspan="3" class="text-left">@Translate("Kaede", "Kæde: ")</td>
400 <td class="text-left">@dictConfigurations["K"]</td>
401 </tr>
402 }
403
404 if (dictConfigurations.ContainsKey("TL"))
405 {
406 <tr class="orderline-product-row configurator-product-row">
407 <td colspan="3" class="text-left">@Translate("Tvaerlister", "Tværlister monteret: ")</td>
408 <td class="text-left">@dictConfigurations["TL"]</td>
409 </tr>
410 }
411
412 if (dictConfigurations.ContainsKey("STM"))
413 {
414 <tr class="orderline-product-row configurator-product-row">
415 <td colspan="3" class="text-left">@Translate("Typesyning", "Type syning: ")</td>
416 <td class="text-left">@dictConfigurations["STM"]</td>
417 </tr>
418 }
419
420 if (dictConfigurations.ContainsKey("FLA"))
421 {
422 <tr class="orderline-product-row configurator-product-row">
423 <td colspan="3" class="text-left">@Translate("Fastelaegantal", "Antal faste læg: ")</td>
424 <td class="text-left">@dictConfigurations["FLA"]</td>
425 </tr>
426 }
427
428 if (dictConfigurations.ContainsKey("LHN"))
429 {
430 <tr class="orderline-product-row configurator-product-row">
431 <td colspan="3" class="text-left"> @Translate("Fastelaeghøjde", "Højde på læg: ")</td>
432 <td class="text-left">@dictConfigurations["LHN"]</td>
433 </tr>
434 }
435
436 if (dictConfigurations.ContainsKey("FLB"))
437 {
438 <tr class="orderline-product-row configurator-product-row">
439 <td colspan="3" class="text-left"> @Translate("FasteLaegFinishWidthValue", "Færdig bredde med læg: ")</td>
440 <td class="text-left">@dictConfigurations["FLB"] cm</td>
441 </tr>
442 }
443
444 if (dictConfigurations.ContainsKey("PSN"))
445 {
446 <tr class="orderline-product-row configurator-product-row">
447 <td colspan="3" class="text-left">@Translate("PudeSy", "Pudekant syning: ")</td>
448 <td class="text-left">@dictConfigurations["PSN"]</td>
449 </tr>
450 }
451
452 if (dictConfigurations.ContainsKey("PKN"))
453 {
454 <tr class="orderline-product-row configurator-product-row">
455 <td colspan="3" class="text-left">@Translate("PudeKant", "Pudekant bredde: ")</td>
456 <td class="text-left">@dictConfigurations["PKN"]</td>
457 </tr>
458 }
459
460 if (dictConfigurations.ContainsKey("BMN"))
461 {
462 <tr class="orderline-product-row configurator-product-row">
463 <td colspan="3" class="text-left">@Translate("BandorModel", "Bandor model: ")</td>
464 <td class="text-left">@dictConfigurations["BMN"]</td>
465 </tr>
466 }
467
468 if (dictConfigurations.ContainsKey("PRICE"))
469 {
470 var currencyService = new Dynamicweb.Ecommerce.International.CurrencyService();
471 var confPrice = dictConfigurations["PRICE"];
472 double confPriceOut = 0;
473 double.TryParse(confPrice, out confPriceOut);
474
475 //
476
477
478 <tr class="orderline-product-row configurator-product-row">
479 <td colspan="3" class="text-left">@Translate("SavedConfPrice", "Pris: ")</td>
480 <td class="text-left">@currencyService.Format(currencyService.GetCurrencyForCode(currency), (confPriceOut / 100), false)</td>
481 </tr>
482 }
483 <tr class="orderline-product-row">
484 <td colspan="5" class="text-left">
485
486 <textarea class="orderline-comment js-orderfield-auto-store" style="max-width: 1025px"
487 placeholder="@Translate("OrderLineComment", "Evt. kommentar til ")" disabled> @comment
488 </textarea>
489 </td>
490 </tr>
491
492 savedConfigurationIndex++;
493 }
494 catch
495 {
496 try
497 {
498 string[] commaFix = Regex.Split(str, "&C=");
499 string queryStr = commaFix[0].Replace(',', '.') + "&C=" + HttpUtility.UrlEncode(commaFix[1]);
500
501 Dictionary<string, string> dictConfigurations = new Dictionary<string, string>();
502
503 string[] xCor = str.Split('&');
504 for (int yCor = 0; yCor < xCor.Length; yCor++)
505 {
506 string[] param = xCor[yCor].Split('=');
507
508 if (param.Length == 1)
509 {
510 dictConfigurations.Add(param[0], "");
511 }
512 else
513 {
514 dictConfigurations.Add(param[0], param[1]);
515 }
516 }
517 <tr class="orderline-product-row orderline-product-row--header">
518 <th colspan="4" class="dw-table-title">
519 <strong>
520 <span class="col-md-9">
521 @Translate("SavedConfigurationError", "Konfiguration har en fejl")
522 </span>
523 <span class="col-md-2">
524 @if (dictConfigurations.ContainsKey("CName"))
525 {
526 @dictConfigurations["CName"]
527 <br />
528 }
529 </span>
530 </strong>
531 </th>
532 </tr>
533
534 }
535 catch
536 {
537 <tr class="orderline-product-row orderline-product-row--header">
538 <th colspan="4" class="dw-table-title">
539 <strong>
540 @Translate("SavedConfigurationErrorContact", "Konfiguration har en fejl, kontakt Pagunette")
541 </strong>
542 </th>
543 </tr>
544 }
545 }
546 }
547 }
548 </tbody>
549 </table>
550 </div>
551 </div>
552 </form>
553 </section>
554
555 <div class="modal fade" id="confirmDelete" tabindex="-1" role="dialog" aria-labelledby="" aria-hidden="true">
556 <div class="modal-dialog" role="document">
557 <div class="modal-content">
558 <div class="modal-header">
559 <h5 class="modal-title" id="">@Translate("ConfirmDelete", "Bekræft sletning")</h5>
560 </div>
561 <div class="modal-body">
562 <div data-bind="foreach: showMarked()">
563 <div data-bind="text: title"></div>
564 </div>
565 </div>
566 <div class="modal-footer">
567 <button type="button" class="btn btn-secondary" data-dismiss="modal">@Translate("cancel", "Annullere")</button>
568 <button type="button" class="btn btn-primary" data-bind="click: deleteMarked.bind($data, '@currUserId'), disable: buttonWorking">@Translate("DeleteMarked", "Slet markeret")</button>
569 </div>
570 </div>
571 </div>
572 </div>
573
574 <div class="modal fade" id="confirmAddToBasket" tabindex="-1" role="dialog" aria-labelledby="" aria-hidden="true">
575 <div class="modal-dialog" role="document">
576 <div class="modal-content">
577 <div class="modal-header">
578 <h5 class="modal-title" id="">@Translate("ConfirmAddToBasketTitle", "Bekræft flytning til kurven")</h5>
579 </div>
580 <div class="modal-body">
581 @Translate("ConfirmAddToBasket", "Følgende konfigurationer bliver lagt i kurven og slettet fra gemte konfigurationer:")
582 <div data-bind="foreach: showMarked()">
583 <div data-bind="text: title"></div>
584 </div>
585 </div>
586 <div class="modal-footer">
587 <button type="button" class="btn btn-secondary" data-dismiss="modal">@Translate("cancel", "Annullere")</button>
588 <button type="button" class="btn btn-primary" id="confirmAddToBasketButton" data-bind="click: addMarkedToBasket.bind($data, '@currUserId'), disable: buttonWorking">@Translate("AddMarkedToCart", "Flyt markeret til kurv")</button>
589 </div>
590 </div>
591 </div>
592 </div>
593
594
595 <script type="text/javascript">
596
597 ConfiguratorSettings = {
598 PerfionLanguage: '@PerfionSettings.PerfionLanguageID',
599 Currency: '@currency',
600 GetProductUrl: '/Configurator/GetProduct',
601 GetForProductUrl: '/Configurator/GetForProduct',
602 GetVarerUrl: '/Configurator/GetVarer',
603 GetConfiguratorElementsUrl: '/Configurator/GetConfiguratorElements',
604 GetConfiguratorElementsForProductUrl: '/Configurator/GetConfiguratorElementsForProduct',
605 GetPriceDetailsUrl: '/Configurator/GetPriceDetails',
606 AddToBasketUrl: '/Configurator/AddToBasket',
607 RemoveConfigurationUrl: '/Configurator/RemoveConfiguration',
608 BasketUrl: '/Default.aspx?ID=@Pageview.Area.Item["CartPageId"]',
609 AddToBasketError: '@Translate("SavedConfigurationAddToBasketError","Fejl ved Læg i Kurv")'
610 };
611 </script>
612
613 <script src="/Scripts/knockout-3.4.2.js" defer="defer"></script>
614 <script src="/Scripts/knockout.mapping-latest.js" defer="defer"></script>
615
616 <script src="~/Files/Templates/Designs/Dwsimple/js/pages/SavedConfigurations.js?v=2" defer="defer"></script>