Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.65 KB | None | 0 0
  1. @using System.Security.Policy
  2. @using Growzer.Common.Enums
  3. @using Growzer.Web.Classes
  4. @using Growzer.Web.Views.Shared.Helpers
  5. <!DOCTYPE html>
  6. <html>
  7. <head>
  8. <meta charset="utf-8" />
  9. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  10. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  11. <link rel="icon" type="image/png" href="@Url.Content("~/Resources/Images/favicon.ico")">
  12. @RenderSection("scriptsHeader", required: false)
  13. <!-- Font Awesome -->
  14. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
  15. @*<link rel="stylesheet" href="~/Resources/Styles/font-proxima.css">*@
  16. @Styles.Render("~/Resources/Content/css")
  17. @Styles.Render("~/Resources/Content/css-theme")
  18. @*@Scripts.Render("~/bundles/modernizr")*@
  19. <style>
  20. body {
  21. background-color: rgb(239, 242, 245) !important;
  22. }
  23.  
  24. .content-wrapper {
  25. min-height: calc(100vh - 75px) !important;
  26. }
  27.  
  28. .main-footer {
  29. background-color: rgb(239, 242, 245) !important;
  30. position: fixed;
  31. bottom: 0;
  32. width: calc(100vw - 74px);
  33. }
  34. </style>
  35. </head>
  36. <body class="hold-transition skin-blue sidebar-mini">
  37. @*@Html.Hidden("urlTranslationsApi", Url.RouteUrl("DefaultApiAction", new { httproute = "", controller = "TranslationsApi", action = "TranslationsByClassKey" }))*@
  38. @Html.Hidden("urlGetLocalIdentity", Url.Action("GetLocalIdentity", "Customers", new { area = "Crm" }))
  39. @Html.Hidden("urlLogout", Url.Action("LogOff", "Account", new { area = "" }))
  40. @Html.Hidden("urlPosNotification", Url.Action("DailyNotification", "DailySales", new { area = "Management" }))
  41. <div class="wrapper">
  42. <header class="main-header">
  43. <nav class="navbar navbar-static-top" role="navigation">
  44. <div class="col-xs-2" style="text-align: left; padding-left: 10px">
  45. <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
  46. <span class="toggle-menu-icon toggle-menu1">
  47. <img src="@Url.Content("~/Resources/Images/menu_active.png")" style="width: 40px; height: 29px; margin: -10px" />
  48. </span>
  49. <span class="toggle-menu-icon toggle-menu2">
  50. <img src="@Url.Content("~/Resources/Images/menu_inactive.png")" style="width: 40px; height: 29px; margin: -10px" />
  51. </span>
  52. <span class="sr-only">Toggle navigation</span>
  53. </a>
  54. </div>
  55. <div class="col-xs-8">
  56. <a href="#" class="logo">
  57. <img src="@Url.Content("~/Resources/Images/growzer_logo.png")" />
  58. </a>
  59. </div>
  60. <div class="col-xs-2 navbar-custom-menu" style="height: 100%">
  61. <a id="plusOrderButton2">
  62. <img class="pull-right" style="width: 35px; height: 35px; margin-top: 8px" src="@Url.Content("~/Resources/Images/add.png")" />
  63. </a>
  64. </div>
  65. </nav>
  66. </header>
  67.  
  68. <aside class="main-sidebar">
  69. <!-- sidebar: style can be found in sidebar.less -->
  70. <section class="sidebar" style="margin-top: -5px">
  71. <!-- Sidebar user panel -->
  72. <div>
  73. <ul class="sidebar-menu">
  74. <li style="position: relative">
  75. @if (!string.IsNullOrEmpty(GrowzerIdentity.Current.LogoSmall))
  76. {
  77. <a href="javascript:;" onclick="showChangeLogoModal()" id="anchorLogo" style="background-color: #043643" title="@Localizer.GetWebTranslation("Menu", "Change your logo")">
  78. <img src="@GrowzerIdentity.Current.LogoSmall" id="logoTopLeft2" style="position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; max-width: 100%; max-height: 100%" />
  79. </a>
  80. }
  81. else
  82. {
  83. <a href="javascript:;" onclick="showChangeLogoModal()" id="anchorLogo" style="background-color: #043643; display: none" title="@Localizer.GetWebTranslation("Menu", "Change your logo")">
  84. <img src="@GrowzerIdentity.Current.LogoSmall" id="logoTopLeft2" style="position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; max-width: 100%; max-height: 100%" />
  85. </a>
  86. <a href="javascript:;" id="anchorNoLogo" onclick="showChangeLogoModal()" style="background-color: #043643;" title="@Localizer.GetWebTranslation("Menu", "Change your logo")">
  87. <i alt="Logo" class="menu-icon fa fa-plus-circle" style="font-size: 25px"></i><br>
  88. @Localizer.GetWebTranslation("Menu", "Your logo")
  89. </a>
  90. }
  91. </li>
  92. </ul>
  93. </div>
  94. <!-- sidebar menu: : style can be found in sidebar.less -->
  95. <ul class="sidebar-menu">
  96. @Html.Action("MainMenu", "Menu", new { Area = "" })
  97. </ul>
  98. </section>
  99. <!-- /.sidebar -->
  100. </aside>
  101. <div class="clearfix"></div>
  102. <div class="content-wrapper pre-scrollable">
  103. @RenderBody()
  104. @Html.Hidden("urlTemplates", @Url.Action("Templates", "Orders", new { Area = "Crm" }))
  105. @Html.Hidden("urlStartOrder", @Url.Action("Edit", "Orders", new { Area = "Crm", id = "" }))
  106. @Html.Hidden("urlGetTranslations", @Url.Action("GetTranslations", "Translations", new { Area = "" }))
  107. @Html.Hidden("urlSaveTranslations", @Url.Action("SaveTranslations", "Translations", new { Area = "" }))
  108. <input type="hidden" id="dayNames" value="@Localizer.GetWebTranslation("MainMenu", "Sun, Mon, Tue, Wed, Thus, Fri, Sat")" />
  109. <input type="hidden" id="messageRequestSent" value="@Localizer.GetWebTranslation("Onboarding", "<span>Request sent!</span><br/> Thank you, an account manager will contact you in 24h")" />
  110. <input type="hidden" id="messageOk" value="@Localizer.Ok" />
  111.  
  112. <div class="modal theme-modal fade" role="dialog" id="modalTemplates">
  113. </div>
  114. <div class="modal fade theme-modal" id=" " tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  115. <div class="modal-dialog" style="width: 450px" role="document">
  116. <div class="modal-content" id="LayoutModalContent" style="margin: auto">
  117. <div class="modal-header">
  118. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  119. <h4 class="modal-title"><i class="fa fa-user"></i> @Localizer.GetWebTranslation("PartnersViewModel", "All Notifications")</h4>
  120. </div>
  121. <div class="modal-body pre-scrollable">
  122. <div id="LayoutModalContainer"></div>
  123. @*<div id="listEnd" style="height: 5px; background: red"></div>*@
  124. </div>
  125. <div class="modal-footer">
  126. <button type="button" class="btn btn-secondary " data-dismiss="modal" aria-label="Close">@Localizer.Cancel</button>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. <div id="changeLogoContainer" class="modal fade" role="dialog">
  132. @Html.Action("GetChangeLogoModal", "Customers", new { Area = "Crm" })
  133. </div>
  134. </div>
  135. <div class="modal fade in theme-modal" tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false" id="modalAssistedOnboardingProcess">
  136. <div class="modal-dialog modal-sm" role="document">
  137. <div class="modal-content" style="width:550px">
  138. <div class="modal-body">
  139. <span style="text-align: center;">The Assisted Onboarding Process</span><br />
  140. <div style="line-height: 1.9;">
  141. <span style="display: inline-block; width: 100%;">
  142. &bull; We take your 3 months of invoices, scan and digitalize them.
  143. </span>
  144. <span style="display: inline-block; width: 100%;">
  145. &bull; We setup your account, users and parteners for you.
  146. </span>
  147. <span style="display: inline-block; width: 100%;">
  148. &bull; We provide training to you and your staff (2h)
  149. </span>
  150. </div>
  151. <span style="font-weight: normal; margin-top: 5px; font-weight: 400;">
  152. Pricing
  153. <span style="vertical-align: super; font-size: 16px; font-weight: 500">€</span>
  154. <span style="font-weight: 500">495</span>
  155. </span>
  156. </div>
  157. <div class="modal-footer" style="border-top: 1px solid #eef0f5; padding-top: 5px;">
  158. <div class="footer-half left">
  159. <button type="button" data-dismiss="modal" class="btn-link">Cancel</button>
  160. </div>
  161. <div class="footer-half right">
  162. <button type="button" class="btn-primary">I want them</button>
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. <!-- Footer-->
  169. <footer class="main-footer">
  170. <input id="urlGetLogo" type="hidden" value="@Url.Action("GetLogo", "Customers", new {Area = "Crm"})" />
  171. <input id="urlUploadLogo" type="hidden" value="@Url.Action("UploadLogo", "Customers", new {Area = "Crm"})" />
  172. <input id="urlSaveLogo" type="hidden" value="@Url.Action("SaveLogo", "Customers", new {Area = "Crm"})" />
  173. <input type="hidden" id="currentLanguageCode" value="@GrowzerIdentity.Current.LanguageCode" />
  174. <input id="notificationURL" type="hidden" value="@Url.Action("NotificationArea", "Menu", new {area = ""})" />
  175. <input id="notificationPullURL" type="hidden" value="@Url.Action("NotificationPull", "Menu", new {area = ""})" />
  176. <input id="notificationSeenURL" type="hidden" value="@Url.Action("MarkNotificationAsSeen", "Menu", new {area = ""})" />
  177. <input id="notificationAllSeenURL" type="hidden" value="@Url.Action("MarkAllNotificationsSeen", "Menu", new {area = ""})" />
  178. <input id="notificationGetAll" type="hidden" value="@Url.Action("GetAllNotifications", "Menu", new {area = ""})" />
  179. <input id="goOffline" type="hidden" value="@Url.Action("Offline", "Orders", new {area = "Crm"})" />
  180. <div id="notificationArea" style="width: 400px; position: absolute; bottom: 100px; display: none"> </div>
  181. <a class="bottom-link" id="notificationsGen" data-expanded="false">
  182. <span id="lnkNotifications" class="notificationsText" style="display: none">@Localizer.GetWebTranslation("Notifications", "Notifications")</span>
  183. <img src="~/Resources/Images/Svg/Footer/01_general notifications.svg" />
  184. <span id="counterGeneralNotifications" class="counter" style="display: none">
  185.  
  186. </span>
  187. </a>
  188. @{
  189. if (GrowzerIdentity.Current.CustomerType == CustomerType.Outlet && GrowzerIdentity.Current.OnboardingStatus==Growzer.Domain.Enums.OnboardingStatus.Completed)
  190. {
  191. <a class="bottom-link sales-footer" style="margin-left: -5px; display: none" href="@Url.Action("Index","DailySales", new {area = "Management"})">
  192. <img src="~/Resources/Images/dashboard/Outlet/03_pos.svg" />
  193. <span id="dailySalesRequiredNotification" class="counter" style="display: none">!</span>
  194. </a>
  195. }
  196. }
  197.  
  198. <div class="pull-right hidden-xs" style="width: 150px; padding-top: 15px; text-align: center">
  199. <img src="~/Resources/Images/growzer-powered.png" style="border: 0px" class="powered" />
  200. </div>
  201. <div class="pull-right hidden-xs bottom-login">
  202. @Html.Action("UserInfo", "Home", new { Area = "" })
  203. </div>
  204. @Html.Hidden("setUTCoffset", Url.Action("GetTimezoneOffset", "Dashboard", new { area = "Crm" }))
  205. </footer>
  206. </div>
  207. <script type="text/javascript">
  208. //var appInsights = window.appInsights || function (config) {
  209. // function r(config) { t[config] = function () { var i = arguments; t.queue.push(function () { t[config].apply(t, i) }) } } var t = { config: config }, u = document, e = window, o = "script", s = u.createElement(o), i, f; for (s.src = config.url || "//az416426.vo.msecnd.net/scripts/a/ai.0.js", u.getElementsByTagName(o)[0].parentNode.appendChild(s), t.cookie = u.cookie, t.queue = [], i = ["Event", "Exception", "Metric", "PageView", "Trace"]; i.length;) r("track" + i.pop()); return r("setAuthenticatedUserContext"), r("clearAuthenticatedUserContext"), config.disableExceptionTracking || (i = "onerror", r("_" + i), f = e[i], e[i] = function (config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t["_" + i](config, r, u, e, o), s }), t
  210. //}({
  211. // instrumentationKey: "8a24b875-13b0-4a90-aaed-f1167637e84c"
  212. //});
  213.  
  214. //window.appInsights = appInsights;
  215. //appInsights.trackPageView();
  216.  
  217.  
  218. var appInsights = window.appInsights || function (config) {
  219. function r(config) { t[config] = function () { var i = arguments; t.queue.push(function () { t[config].apply(t, i) }) } } var t = { config: config }, u = document, e = window, o = "script", s = u.createElement(o), i, f; s.src = config.url || "https://az416426.vo.msecnd.net/scripts/a/ai.0.js"; u.getElementsByTagName(o)[0].parentNode.appendChild(s); try { t.cookie = u.cookie } catch (h) { } for (t.queue = [], i = ["Event", "Exception", "Metric", "PageView", "Trace", "Dependency"]; i.length;) r("track" + i.pop()); return r("setAuthenticatedUserContext"), r("clearAuthenticatedUserContext"), config.disableExceptionTracking || (i = "onerror", r("_" + i), f = e[i], e[i] = function (config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t["_" + i](config, r, u, e, o), s }), t
  220. }({
  221. instrumentationKey: "@Growzer.Common.Infrastructure.ConfigurationHelper.GetSettingAsString("APPINSIGHTS_INSTRUMENTATIONKEY")"
  222. });
  223.  
  224. window.appInsights = appInsights;
  225. appInsights.trackPageView();
  226.  
  227.  
  228. (function (i, s, o, g, r, a, m) {
  229. i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
  230. (i[r].q = i[r].q || []).push(arguments)
  231. },
  232. i[r].l = 1 * new Date(); a = s.createElement(o),
  233. m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
  234. })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
  235.  
  236. /*UA-85709115-2*/
  237. ga('create', '@Growzer.Common.Infrastructure.ConfigurationHelper.GetSettingAsString("GoogleAnalyticsKey")', 'auto');
  238. ga('send', 'pageview');
  239.  
  240. function Resolve(relative) {
  241. var relativeRoot = '@Url.Content("~/")';
  242. var resolved = relative;
  243. if (relative.charAt(0) == '~')
  244. resolved = relativeRoot + relative.substring(2);
  245. if (relative.charAt(0) == '/')
  246. resolved = relativeRoot + relative.substring(1);
  247. return resolved;
  248. }
  249.  
  250. function HideDivOnBlur(selector) {
  251. $(document).on('mouseup touchend', function (e) {
  252. var container = $(selector);
  253. (!container.is(e.target) && container.has(e.target).length === 0
  254. && !$(e.target).is(".display-toggler") && !$(e.target).parent().is(".display-toggler"))
  255. && container.parent().removeClass('active');
  256.  
  257. setTimeout(function () {
  258. $('.display-toggler').not($(e.target)).not($(e.target).parent()).removeClass('active');
  259. }, 50);
  260. });
  261. };
  262. </script>
  263.  
  264. @Scripts.Render("~/bundles/jquery")
  265. @Scripts.Render("~/bundles/jqueryval")
  266. @Scripts.Render("~/bundles/bootstrap")
  267. @*@Scripts.Render("~/bundles/adminlte")*@
  268. @Scripts.Render("~/bundles/knockout")
  269. @Scripts.Render("~/bundles/inputmask")
  270. @Scripts.Render("~/bundles/appgen")
  271. <script id="inputValidationMessage" type="text/html">
  272. <div class="popover fade bottom in" style="top: 24px; left: 20px; display: none">
  273. <div class="arrow" style="left: 30px;"></div>
  274. <div class="popover-content text-danger">
  275. <span class="field-validation-error" data-bind="text: field.error">
  276. </span>
  277. </div>
  278. </div>
  279. </script>
  280. @*<script src="~/Resources/Scripts/OfflineJS/offline.js"></script>*@
  281. @*<script src="~/Resources/Scripts/OfflineJS/offlineJs-simulateUI.js"></script>*@
  282. @*<link href="~/Resources/Scripts/OfflineJS/styles.css" rel="stylesheet" />*@
  283. <script>
  284. function ToggleSimulateUI() {
  285. $(".offline-simulate-ui").toggle();
  286. }
  287.  
  288. function CheckForSalesDataEntry() {
  289. var isBetweenHours = true; //no strategy atm
  290. if (moment().date() == 1 || isBetweenHours) {
  291. $.get($("#urlPosNotification").val(), {
  292. year: moment().year(),
  293. month: moment().month() + 1,
  294. day: moment().date()
  295. }, function (data) {
  296. if (!data) {
  297. $("#dailySalesRequiredNotification").show();
  298. }
  299. }).fail(function (data) {
  300. console.log(data);
  301. });
  302. }
  303. }
  304.  
  305. function SetupDropdowns() {
  306.  
  307. $(".dropgrz").click(function (elem) {
  308. var maxH = $(window).height();
  309. var dropElem = elem.currentTarget;
  310. if ((maxH - elem.clientY) > maxH / 3) {
  311. $(dropElem).removeClass("dropup").addClass("dropdown");
  312. } else {
  313. $(dropElem).removeClass("dropdown").addClass("dropup");
  314. }
  315. });
  316. }
  317.  
  318. $(document).ready(function () {
  319. //show pos item in the notification bar if he has No Pos connected
  320. //if (!Identity.HasPos() && Identity.CustomerType() == 1) {
  321. //show for all outlets, regardless of pos connection Type
  322. if (Identity.CustomerType() == 1) {
  323. $(".sales-footer").show();
  324. CheckForSalesDataEntry();
  325. }
  326. //get notification for dailySales
  327.  
  328.  
  329. //setup moment.js locale
  330. var langCode = $("#hidUserLanguageCode").val();
  331. //default en is US (which is bad). so make it UK
  332. if (langCode == 'en')
  333. langCode = "en-gb";
  334. moment.locale(langCode);
  335. //setChatraData();
  336. SetupDropdowns();
  337. $(".main-footer").show();
  338.  
  339. var width_screen = $(window).width();
  340. if (width_screen < 768) {
  341. $('.submenu').css('width', width_screen);
  342. $('.sidebar-menu > li').addClass('col-xs-4');
  343. $('.submenu').children('li').addClass('col-xs-4');
  344. }
  345.  
  346. $('.sidebar-menu').on('click', 'li', function () {
  347. $(".sidebar-menu li").removeClass("active");
  348. $(this).addClass("active");
  349. });
  350.  
  351. $(window).resize(function () {
  352. ht = $('#btnChangeImage').outerHeight();
  353. $('#profilePicture').css('height', ht);
  354. });
  355.  
  356. $('.treeview').click(function () {
  357. check = $(this).has('.submenu');
  358.  
  359. if (width_screen < 768 && check.length >= 1) {
  360. var count = $(this).find('.submenu li').length;
  361.  
  362. if (count >= 1) {
  363. divide = (count / 3);
  364. roundedpx = Math.ceil(divide);
  365. if (roundedpx >= 1) {
  366. pixels = (roundedpx * 100);
  367. $('.sidebar-menu .submenu').css('height', pixels);
  368. }
  369.  
  370. } //end of couunt if
  371. } //end of check if
  372.  
  373. });
  374. });
  375.  
  376. // Utility methods
  377. // ---------------------------------------------
  378. function isNumeric(n) {
  379. return !isNaN(parseFloat(n)) && isFinite(n);
  380. }
  381.  
  382. function defaultComparison(a, b) {
  383. if (isNumeric(a) && isNumeric(b)) return a - b;
  384.  
  385. a = a.toString();
  386. b = b.toString();
  387.  
  388. return a == b ? 0 : (a < b ? -1 : 1);
  389. }
  390. // ---------------------------------------------
  391. </script>
  392. @RenderSection("scripts", required: false)
  393. </body>
  394. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement