| Topic | Presenter | Summary | Duration | Tags | Quiz | Captions |
| --------------------------- | ---------- | --------------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -------- |
| Adding Functionality to CEF | James Gray | Part III in the Adding Functionality to CEF series. | 58:25 | #DevTraining, #FridayTraining, #Custom, #Functionality, #CEF, | N/A | |00:00:01.240 --> 00:00:04.460 - And Will you explain what what you're going over James 00:00:04.460 --> 00:00:07.680 - and just give everyone like a on the previous episode? 00:00:08.970 --> 00:00:13.686 - It's the we were adding that feature and if the feature is 00:00:13.686 --> 00:00:19.320 - product downloads. So one of the things that I figured out that 00:00:19.320 --> 00:00:23.830 - we needed to add was data for the product download types. 00:00:26.420 --> 00:00:28.084 - So that we have it in C data. 00:00:28.830 --> 00:00:32.310 - So I was going to come in here and grab one of 00:00:32.310 --> 00:00:33.760 - the grab one of these. 00:00:36.280 --> 00:00:37.240 - In Clone it. 00:00:38.430 --> 00:00:40.440 - And said park download types. 00:00:42.220 --> 00:00:43.914 - I'm going to add two types in. 00:00:45.910 --> 00:00:47.416 - So we're going to say, like. 00:00:48.430 --> 00:00:49.860 - A brochure. 00:00:51.640 --> 00:00:56.280 - And a. Disc ISO. 00:00:57.890 --> 00:01:00.034 - So just be two types that we can 00:01:00.034 --> 00:01:01.760 - have. On here. 00:01:11.780 --> 00:01:14.398 - And then I'm gonna know other display names so that people 00:01:14.398 --> 00:01:16.778 - can use their overrides on that stuff however they want. 00:01:21.130 --> 00:01:22.398 - And I'll add another. 00:01:25.500 --> 00:01:27.750 - So that people already have something to work with this 00:01:27.750 --> 00:01:28.200 - you know. 00:01:29.480 --> 00:01:30.500 - Something else. 00:01:34.900 --> 00:01:37.630 - And then visually like I could line these up if I really wanted 00:01:37.630 --> 00:01:39.688 - to, but. I might have to. 00:01:43.860 --> 00:01:46.830 - And then we add this to the main seed method up at the top for 00:01:46.830 --> 00:01:49.510 - the populate. In alphabetical order. 00:01:53.310 --> 00:01:55.560 - And now the CD that will include this automatically. 00:01:58.260 --> 00:02:01.228 - So that was one of the things that we want to make sure it 00:02:01.228 --> 00:02:03.348 - gets in there, 'cause otherwise you'll go try to add 00:02:03.348 --> 00:02:05.892 - them and then it'll be no types there. You have to type 00:02:05.892 --> 00:02:07.800 - manually on everything and it gets really annoying. So 00:02:07.800 --> 00:02:09.072 - having into the data is better. 00:02:10.340 --> 00:02:12.296 - OK, I'm going to build that. 00:02:14.370 --> 00:02:18.504 - I believe we had run the services. T4 was like one of the 00:02:18.504 --> 00:02:20.412 - last things we did last time. 00:02:22.350 --> 00:02:25.133 - Yeah, so these two were in there, so we had our. 00:02:25.840 --> 00:02:28.840 - Our standard chord endpoints, or extended 00:02:28.840 --> 00:02:30.840 - credit endpoints for everything. 00:02:32.130 --> 00:02:35.353 - It's like there's this connects the as listing cash as listing. 00:02:36.270 --> 00:02:39.603 - Although one from this generates all these endpoints and it also 00:02:39.603 --> 00:02:43.752 - generates default handlers. For all of them, and then you can 00:02:43.752 --> 00:02:46.642 - append into this partial class overrides for these if you 00:02:46.642 --> 00:02:47.798 - needed to do something. 00:02:48.850 --> 00:02:51.347 - Different on any particular thing you can make it do your 00:02:51.347 --> 00:02:52.709 - different thing and I went over 00:02:52.709 --> 00:02:55.200 - all of that stuff. Last time. 00:02:57.560 --> 00:02:59.460 - So once this finishes building. 00:03:00.420 --> 00:03:01.988 - Will be good too. 00:03:03.830 --> 00:03:07.934 - Runner at API reference and one of the things as I went 00:03:07.934 --> 00:03:11.696 - ahead and pulled latest master where I have included a new 00:03:11.696 --> 00:03:15.458 - app settings thing into the Abbey Reference T4 I want to 00:03:15.458 --> 00:03:17.168 - show that to you guys. 00:03:18.560 --> 00:03:19.220 - What is it? 00:03:20.460 --> 00:03:25.153 - It's it's reading. It reads out what the app settings are in our 00:03:25.153 --> 00:03:26.236 - our thing here. 00:03:28.140 --> 00:03:30.058 - In the British reloader the GS Configs. 00:03:32.140 --> 00:03:34.160 - It reads out this information. 00:03:35.010 --> 00:03:38.310 - Into a T4 file that gives you documentation automatically. Oh, 00:03:38.310 --> 00:03:42.270 - that's so sick you put in the summer racing with that, that's. 00:03:43.240 --> 00:03:43.870 - That's awesome. 00:03:48.290 --> 00:03:51.436 - And I'll go over what these attributes and stuff are real 00:03:51.436 --> 00:03:54.010 - quick. If it's well, bring that into every single 00:03:54.010 --> 00:03:56.870 - project that without it being a giant headache that would 00:03:56.870 --> 00:03:57.728 - be so amazing. 00:04:00.120 --> 00:04:03.175 - It will be a giant headache if I try to do it manually. 00:04:03.970 --> 00:04:07.974 - If I just do like a merge and pull everything in, that would 00:04:07.974 --> 00:04:11.978 - be fine and not a headache, but I can't do that unless they 00:04:11.978 --> 00:04:13.210 - approve that per project. 00:04:16.420 --> 00:04:19.522 - But generally speaking, if you have a core copy and your 00:04:19.522 --> 00:04:23.470 - website a core SEF master that you can run under local or go to 00:04:23.470 --> 00:04:25.444 - the master site and look at that 00:04:25.444 --> 00:04:28.238 - one. Then you'll be able to use it as the main reference 00:04:28.238 --> 00:04:29.186 - and you won't have to go. 00:04:31.710 --> 00:04:34.662 - There should only be minor differences between them. At 00:04:34.662 --> 00:04:39.254 - that point, the file did get so large that I was at like 8000 00:04:39.254 --> 00:04:43.190 - lines, broke up into four files of like 2000 ish lines each. 00:04:44.620 --> 00:04:46.180 - Based on their regions. 00:04:46.760 --> 00:04:50.850 - So that Resharper and Visual Studio can process the files 00:04:50.850 --> 00:04:52.077 - individually more easily. 00:04:53.230 --> 00:04:55.400 - That may adjust overtime, but. 00:04:56.070 --> 00:05:00.562 - Uh, yeah. Just 'cause the file got too big. When you 00:05:00.562 --> 00:05:03.242 - Add all this other data onto all these other attributes. 00:05:04.420 --> 00:05:08.980 - I'm properties and like try to find good one here. 00:05:10.500 --> 00:05:11.820 - Let's try like. 00:05:13.030 --> 00:05:16.020 - Pricing so like here login for pricing enabled. Requires that 00:05:16.020 --> 00:05:19.309 - logins enabled and pricing is enabled so it adds this depend 00:05:19.309 --> 00:05:22.598 - on which is basically just picking out like I picked out 00:05:22.598 --> 00:05:26.784 - these two pieces and put him in there and then you have like a 00:05:26.784 --> 00:05:30.671 - depends on South so it's depend on that wait it's clear in the. 00:05:31.310 --> 00:05:33.101 - Documentation like you have to do this other thing 00:05:33.101 --> 00:05:34.096 - before you can do this. 00:05:35.380 --> 00:05:37.305 - There are also a few that are. 00:05:38.010 --> 00:05:42.106 - I not this file. Let's try this one. 00:05:43.540 --> 00:05:47.577 - Like mutually exclusive. So like the allow the address book to 00:05:47.577 --> 00:05:51.247 - make this my dude default shipping and check out doesn't 00:05:51.247 --> 00:05:53.449 - work if you have split shipping 00:05:53.449 --> 00:05:57.028 - enabled. Because that check box would be working against a 00:05:57.028 --> 00:05:59.648 - single address, but you've got multiple there and none of 00:05:59.648 --> 00:06:02.268 - them can be have an individual flag that does that. 00:06:03.950 --> 00:06:06.638 - So I went through and reviewed a lot of that stuff and try to 00:06:06.638 --> 00:06:08.558 - make sure that these settings like reflected that. So if 00:06:08.558 --> 00:06:10.670 - this setting is turned on, you can have this one on. 00:06:16.940 --> 00:06:20.000 - Like a user approval token like they can't be 00:06:20.000 --> 00:06:21.700 - automatically newly approved if you're 00:06:21.700 --> 00:06:25.100 - requiring a new user to get a token in there. 00:06:25.100 --> 00:06:26.120 - That's another example. 00:06:30.980 --> 00:06:34.270 - If you're using the separated category landing pages that CB 00:06:34.270 --> 00:06:38.218 - built instead of the one that's built that's built into the UI 00:06:38.218 --> 00:06:41.837 - router for the catalog, you can't use the. You can't use 00:06:41.837 --> 00:06:46.114 - this feature for show categories up to X 'cause this one is for 00:06:46.114 --> 00:06:49.733 - the one that's built into the catalog router, and it's not 00:06:49.733 --> 00:06:53.352 - based upon a particular setting name, it just has a string 00:06:53.352 --> 00:06:56.642 - there. Because this is a programs of strings, right? I 00:06:56.642 --> 00:06:58.940 - can't do that. Hockey. 00:07:00.290 --> 00:07:02.039 - Because of that. 00:07:05.210 --> 00:07:05.938 - That won't go away. 00:07:09.110 --> 00:07:09.668 - There we go. 00:07:11.460 --> 00:07:14.652 - This is the depends on an the music schools with just a 00:07:14.652 --> 00:07:17.312 - parameter strings, so you could put whatever strings in whatever 00:07:17.312 --> 00:07:20.504 - comments you need inside there. So if this is like a feature 00:07:20.504 --> 00:07:23.962 - that you need to specify or like, it's going to be a complex 00:07:23.962 --> 00:07:27.154 - thing. I could specify them by hand or like it depends on. 00:07:29.560 --> 00:07:33.826 - Some. Other thing that I need to type in like you can type them 00:07:33.826 --> 00:07:35.282 - in one at a time and it will 00:07:35.282 --> 00:07:38.748 - just individually right the bin. And that's why this is also a 00:07:38.748 --> 00:07:42.050 - name of that. So this results in a string that goes in there. 00:07:44.730 --> 00:07:50.125 - But as I get that I need to so we have all those. 00:07:52.190 --> 00:07:53.940 - Those are just examples of what that's going to do. 00:07:55.740 --> 00:07:57.120 - I want to run. 00:07:58.030 --> 00:07:59.120 - This T4. 00:08:03.680 --> 00:08:07.056 - And then I'm going to load inmylocal.clearinghouse.com. I'm 00:08:07.056 --> 00:08:09.166 - going to do it directly. 00:08:10.550 --> 00:08:12.584 - You would normally go through this, go to this 00:08:12.584 --> 00:08:13.488 - inside this self admin. 00:08:15.360 --> 00:08:17.568 - But I'm gonna load it directly right now, so we've been to 00:08:17.568 --> 00:08:18.488 - load and all that stuff. 00:08:21.070 --> 00:08:23.985 - The notice that this change some stuff as I ran it. 00:08:30.990 --> 00:08:33.210 - Oh, it's gotta rewrite error because. 00:08:34.260 --> 00:08:36.519 - This thing isn't building correctly and I have to 00:08:36.519 --> 00:08:37.272 - figure out why. 00:08:38.650 --> 00:08:39.518 - But not that one. 00:08:41.060 --> 00:08:42.710 - Rumpler I want this one. 00:08:48.380 --> 00:08:51.476 - I have a build error in the TypeScript somewhere. 00:08:54.650 --> 00:08:56.260 - Old admin. 00:08:57.800 --> 00:08:59.650 - As if it's in here, it's probably where it is. 00:09:13.290 --> 00:09:14.010 - Oh Yep. 00:09:17.820 --> 00:09:20.768 - Ah, OK, so that's failing because with the merge I took 00:09:20.768 --> 00:09:23.984 - the original on one of these I need to run this T4. 00:09:25.370 --> 00:09:29.678 - So this is the admin folders API and this creates all the 00:09:29.678 --> 00:09:32.909 - TypeScript for the describing all the endpoints that admin 00:09:32.909 --> 00:09:33.986 - has access to. 00:09:37.860 --> 00:09:41.088 - And when I hit merge, I had taken the original on video 00:09:41.088 --> 00:09:44.585 - classes. We didn't have my my new stuff in it, so running this 00:09:44.585 --> 00:09:47.544 - I gotta check mark there. It says it's tough stuff changed. 00:09:48.220 --> 00:09:50.245 - And now it should be able to find it. 00:09:51.280 --> 00:09:52.828 - If I open this file again. 00:09:55.430 --> 00:09:57.020 - Should automatically pick that back up. 00:09:58.540 --> 00:10:00.040 - OK, so now. 00:10:00.120 --> 00:10:03.116 - So that's there. I can go build. 00:10:04.680 --> 00:10:07.240 - Abbey men again, and that's the part should be happy. 00:10:09.170 --> 00:10:10.109 - We're happy UR. 00:10:22.300 --> 00:10:25.693 - Yep, that was happy. And now if I build this it should work. 00:11:08.340 --> 00:11:09.810 - I saw something go wrong in there. 00:11:14.520 --> 00:11:17.130 - Oh, OK. So here's one of the 00:11:17.130 --> 00:11:19.065 - problems. You sometimes run 00:11:19.065 --> 00:11:24.098 - into. When a T4 fails or a T4 runs, sometimes a process gets 00:11:24.098 --> 00:11:28.634 - stuck and it doesn't let it go on a particular DLL that it was 00:11:28.634 --> 00:11:32.972 - reading. Which means that I need to build. I need to cancel. I 00:11:32.972 --> 00:11:34.096 - did close Visual Studio. 00:11:35.850 --> 00:11:37.240 - 'cause it's locking that DLL. 00:11:38.110 --> 00:11:41.820 - I need to go to my task manager and then just check for a 00:11:41.820 --> 00:11:43.940 - particular process that starts with T4V as host. 00:11:45.750 --> 00:11:46.860 - And see if it's still running. 00:11:48.360 --> 00:11:50.118 - So it's gone. OK, that's good. 00:11:51.420 --> 00:11:54.401 - I've had that exact thing happened before and I I just 00:11:54.401 --> 00:11:57.653 - assumed that was the one that killed it in the task manager 00:11:57.653 --> 00:12:00.905 - like that. Think this thing I can do as well. Yeah, that's 00:12:00.905 --> 00:12:04.699 - right Jesse, the same thing I can do is well is go into the 00:12:04.699 --> 00:12:07.138 - scheduler, go into the bin and physically clear it. 00:12:08.420 --> 00:12:11.402 - To make sure that those files do get deleted so that they can get 00:12:11.402 --> 00:12:14.650 - rebuilt. So now that I've done that, I can do that. I 00:12:14.650 --> 00:12:15.450 - can reopen Visual Studio. 00:12:22.130 --> 00:12:23.818 - Turn watch on there. 00:12:25.070 --> 00:12:28.499 - Go back to the solution. I want that one. 00:12:32.830 --> 00:12:35.782 - And then now do a rebuild to make sure that everything is 00:12:35.782 --> 00:12:36.766 - rebuilt correctly and safe. 00:12:44.670 --> 00:12:45.050 - OK. 00:12:46.890 --> 00:12:47.460 - Camera. 00:12:57.080 --> 00:13:00.464 - OK, so let's try to stop that and then in a moment 00:13:00.464 --> 00:13:03.848 - here it will let it go and I can start it again. 00:13:06.460 --> 00:13:07.610 - That goes. 00:13:09.210 --> 00:13:11.650 - K so now I should be able to refresh this 00:13:11.650 --> 00:13:12.870 - and it should load it. 00:13:13.970 --> 00:13:16.913 - OK, so the app settings reference loads 1st and 00:13:16.913 --> 00:13:19.529 - some changes to what I was doing before. 00:13:21.740 --> 00:13:25.029 - Before it would like it would load this accounts API reference 00:13:25.029 --> 00:13:28.916 - all of this content for all of these pages all the way down. 00:13:29.980 --> 00:13:34.127 - Is static HTML that gets loaded? There's some angular there that 00:13:34.127 --> 00:13:39.028 - is basically just to make it so that these panels work and then 00:13:39.028 --> 00:13:42.421 - also some like syntax highlighting that it does and 00:13:42.421 --> 00:13:46.945 - these things with a couple of things that I have. This however 00:13:46.945 --> 00:13:51.469 - is not static HTML. It's loading all the data out to A. 00:13:53.270 --> 00:13:56.208 - Sure, let me get out of the workspace when I add the API 00:13:56.208 --> 00:13:58.200 - reference to the. Workspace. 00:13:59.730 --> 00:14:03.976 - Um, I'm loading all of that data as properties in a 00:14:03.976 --> 00:14:07.450 - constant here. Currently we do have stuff configures a 00:14:07.450 --> 00:14:11.310 - constant for angular module, so all that stuff about the 00:14:11.310 --> 00:14:15.942 - info for the endpoints gets loaded in his data, and then I 00:14:15.942 --> 00:14:17.872 - have it on angular directive. 00:14:19.520 --> 00:14:22.010 - Spitting this stuff out to the screen using that instead. 00:14:22.010 --> 00:14:25.496 - What that allows us to do is I can have a quick filter here 00:14:25.496 --> 00:14:28.982 - at the top, so if I want to look for something that has to 00:14:28.982 --> 00:14:31.721 - do with like catalog I could type in catalog and here's 00:14:31.721 --> 00:14:33.713 - everything that has to do with catalog stuff. 00:14:35.890 --> 00:14:38.522 - And some things that are tangentially related that 00:14:38.522 --> 00:14:42.141 - something about this log in bracing key is the word catalog. 00:14:42.141 --> 00:14:45.760 - It somewhere I don't know where, but it's finding the word 00:14:45.760 --> 00:14:49.050 - catalog with it, so it's pulling it in for stuff. 00:14:50.040 --> 00:14:53.932 - Um? So here this ones got cataloging descriptions. That's 00:14:53.932 --> 00:14:58.328 - why this ones got it in here. So it's using the like the angular 00:14:58.328 --> 00:15:01.154 - felt like dollar filter option. If you inspect this. 00:15:01.910 --> 00:15:02.650 - Um? 00:15:04.050 --> 00:15:06.888 - Which, if you're not familiar with that, what that does is. 00:15:07.530 --> 00:15:08.430 - Uh. 00:15:09.970 --> 00:15:12.951 - So this filter right here it's got a dollar sign. It 00:15:12.951 --> 00:15:15.119 - basically says anywhere inside the content of the 00:15:15.119 --> 00:15:18.371 - object as like as if the object was a string, if it 00:15:18.371 --> 00:15:21.081 - has what you're typing in, then it will consider it 00:15:21.081 --> 00:15:22.165 - positive and load it. 00:15:23.280 --> 00:15:26.210 - It's not like checking the server or do anything else 00:15:26.210 --> 00:15:28.847 - like that, it's just filtering the data raw with 00:15:28.847 --> 00:15:32.070 - that stuff. Now if I wanted to look for particular like 00:15:32.070 --> 00:15:33.535 - Appsettings key like API name. 00:15:34.680 --> 00:15:36.336 - Is a particular app settings key. 00:15:37.850 --> 00:15:41.660 - I have that and it would bring up just this one key. If I have 00:15:41.660 --> 00:15:45.216 - a key that I know from somewhere else, like if I clear the filter 00:15:45.216 --> 00:15:48.518 - here and I like a key that's like Plugins path like I can 00:15:48.518 --> 00:15:50.804 - grab that clarity about providers up plugins, path and 00:15:50.804 --> 00:15:54.106 - paste it there and it will give me that setting 'cause I have 00:15:54.106 --> 00:15:57.154 - that settings key if I'm looking for something like I want that 00:15:57.154 --> 00:16:00.202 - set root path which might be used in a couple of different 00:16:00.202 --> 00:16:03.250 - keys. Let's also using clients path like. I know that this part 00:16:03.250 --> 00:16:06.806 - of my default value I can grab some of that stuff. I want to 00:16:06.806 --> 00:16:08.076 - find everything that's a boolean 00:16:08.076 --> 00:16:12.160 - flag. I can say Boolean and here's all the boot like 00:16:12.160 --> 00:16:14.416 - things are just true false. Generally speaking, there 00:16:14.416 --> 00:16:17.518 - could be some other stuff that shows up inside there, but 00:16:17.518 --> 00:16:20.056 - generally all everything that's got a boolean type on 00:16:20.056 --> 00:16:22.312 - it is going to show up inside there. 00:16:24.400 --> 00:16:27.937 - If I click enabled or disabled versus stuff like 00:16:27.937 --> 00:16:29.509 - that that lists of. 00:16:30.810 --> 00:16:31.758 - Providers or whatever. 00:16:33.290 --> 00:16:36.282 - The providers list isn't. I don't believe is 00:16:36.282 --> 00:16:37.404 - actually in here. 00:16:38.450 --> 00:16:41.522 - So give the plugins path, but you don't have like the enable 00:16:41.522 --> 00:16:44.594 - providers isn't in this because it doesn't get loaded by the 2nd 00:16:44.594 --> 00:16:46.898 - fix dictionary that gets loaded by the providers themselves. 00:16:46.898 --> 00:16:49.458 - It's one of the things that eventually migrate into this, 00:16:49.458 --> 00:16:52.786 - but I don't have it there right now, like the email settings on 00:16:52.786 --> 00:16:55.346 - most of the email settings to get loaded into this. 00:16:56.880 --> 00:16:59.688 - For that stuff, but like if I want to find my country. 00:17:01.500 --> 00:17:03.634 - Here stuff that has to do with countries like here's the 00:17:03.634 --> 00:17:07.032 - default country code. Includes that stuff in there and that I 00:17:07.032 --> 00:17:08.466 - have like basic stuff on here. 00:17:09.330 --> 00:17:09.960 - Uh. 00:17:13.380 --> 00:17:16.966 - For comments and things, and some of the comments, like they 00:17:16.966 --> 00:17:19.900 - don't necessarily translate super well with like they were 00:17:19.900 --> 00:17:23.160 - in one format inside the file. Here. They don't necessarily 00:17:23.160 --> 00:17:27.072 - translate to HTML super well, so I am working on cleaning and 00:17:27.072 --> 00:17:28.376 - some cleaning that up. 00:17:29.390 --> 00:17:32.558 - So like this ones got the country name and it has a 00:17:32.558 --> 00:17:33.350 - comment on it. 00:17:35.180 --> 00:17:38.846 - So like this one should have had a period right here, so that's 00:17:38.846 --> 00:17:43.076 - something I would go in and fix, and then I might do like you can 00:17:43.076 --> 00:17:46.460 - do XML comments with like a break tag like this that would 00:17:46.460 --> 00:17:49.280 - end up translating that brake tag over here correctly and 00:17:49.280 --> 00:17:52.946 - making a new line on this stuff. There's also like I'm trying to 00:17:52.946 --> 00:17:56.330 - make it so that some of these things have like a separated 00:17:56.330 --> 00:18:02.304 - like remarks tag. Which is common in XML, the XML docs. So 00:18:02.304 --> 00:18:03.702 - like this piece. 00:18:04.300 --> 00:18:07.120 - Would actually P instead of going there. I would want to put 00:18:07.120 --> 00:18:11.146 - that inside my remarks. Here like that so I would build that 00:18:11.146 --> 00:18:15.094 - and I would re run that and then they would now be a separate 00:18:15.094 --> 00:18:17.914 - remarks block that would have this part separated onto that. 00:18:19.230 --> 00:18:19.848 - Kind of stuff. 00:18:21.340 --> 00:18:23.595 - But generally speaking like the 00:18:23.595 --> 00:18:26.298 - mutual. I should be able to be mutual. 00:18:28.600 --> 00:18:30.824 - So, like, here's things that have mutually excluded 00:18:30.824 --> 00:18:31.658 - stuff on it. 00:18:34.810 --> 00:18:37.835 - So like like you can't use split shipping with guest check 00:18:37.835 --> 00:18:41.135 - out right now, so that's that's one that would. I would say 00:18:41.135 --> 00:18:43.885 - this mutually exclusive. I'm going to build that stuff that 00:18:43.885 --> 00:18:46.635 - data out more overtime and extend expand these options and 00:18:46.635 --> 00:18:50.210 - make sure that more that stuff goes in there and as you find 00:18:50.210 --> 00:18:53.235 - problems like you can go add this up yourself with these 00:18:53.235 --> 00:18:56.260 - attributes on the code and then this stuff will get regenerated 00:18:56.260 --> 00:18:56.535 - correctly. 00:19:00.240 --> 00:19:02.198 - With all that stuff and it works like you know really 00:19:02.198 --> 00:19:03.444 - well with a lot of these things. 00:19:04.810 --> 00:19:06.966 - I think is that the right text, 00:19:06.966 --> 00:19:10.974 - yeah? It depends on like forgot username email form 00:19:10.974 --> 00:19:14.857 - where you can't do forgot username if we don't have the 00:19:14.857 --> 00:19:16.975 - site able to be logged in. 00:19:18.310 --> 00:19:19.738 - On stuff so. 00:19:20.610 --> 00:19:23.562 - And then a default value for this would be no reply at 00:19:23.562 --> 00:19:26.022 - claritydemos.com, because that's what it's going to load. If the 00:19:26.022 --> 00:19:28.974 - option isn't there in the app settings file. So there you go, 00:19:28.974 --> 00:19:32.740 - that's good. Example right there or add to cart models enabled is 00:19:32.740 --> 00:19:35.622 - depends on, you know carts being enabled and the default value 00:19:35.622 --> 00:19:39.028 - for that one would be false and it says that it's a boolean 00:19:39.028 --> 00:19:40.600 - false. It's not like a string. 00:19:41.200 --> 00:19:44.398 - It's going to go in as a false as a boolean value on 00:19:44.398 --> 00:19:47.350 - stuff so that I just wanted to make sure I covered that 00:19:47.350 --> 00:19:50.056 - and let you guys know that that is now inside master. 00:19:51.860 --> 00:19:54.860 - On these things, so you get to go in and you get to play with 00:19:54.860 --> 00:19:58.060 - it and it's got a quick filter on it so you can go and find all 00:19:58.060 --> 00:19:59.460 - the stuff. And if the filter is 00:19:59.460 --> 00:20:02.060 - off you'll see. There are over 700 settings. 00:20:03.370 --> 00:20:06.814 - And that's only going to keep growing, so there's a lot of 00:20:06.814 --> 00:20:09.971 - things to consider in there with this stuff, and eventually will 00:20:09.971 --> 00:20:13.702 - get to a point where I can have this stuff. Excuse me, instead 00:20:13.702 --> 00:20:17.720 - of loaded from the app settings, a lot of stuff will come out of 00:20:17.720 --> 00:20:20.590 - the settings table instead, will start loading him that way. 00:20:21.360 --> 00:20:24.040 - But I gotta get everything migrated into this class first 00:20:24.040 --> 00:20:25.380 - before I can do that. 00:20:26.440 --> 00:20:29.600 - So this is the problem, just the documentation 00:20:29.600 --> 00:20:32.760 - alone. But also the reference for it. It's 00:20:32.760 --> 00:20:33.945 - just the bomb. 00:20:38.100 --> 00:20:38.810 - Sure. 00:20:41.570 --> 00:20:42.980 - Looks like your payment process 00:20:42.980 --> 00:20:45.594 - mode 0. Integer value that goes 00:20:45.594 --> 00:20:49.583 - into that. So whatever 0 is that actually be, which I believe is 00:20:49.583 --> 00:20:52.953 - just authorize. And you have to have payment SIM on, so 00:20:52.953 --> 00:20:55.230 - there's another example. OK, so I got that up. That was 00:20:55.230 --> 00:20:57.714 - kind of the thing I wanted to show you guys with that. 00:21:00.000 --> 00:21:04.656 - Now back here we have everything builds correctly now so I can 00:21:04.656 --> 00:21:10.088 - get that down. I can get that back down. We are in our admin. 00:21:11.670 --> 00:21:17.137 - Our admin, we have the updated detail classes that fixes that, 00:21:17.137 --> 00:21:23.598 - so I want to commit that change that fixes reran T Fours after 00:21:23.598 --> 00:21:25.380 - merge. Uh. 00:21:26.530 --> 00:21:26.970 - 2 00:21:28.390 --> 00:21:30.150 - You fix build error. 00:21:33.010 --> 00:21:36.663 - So that clears all that up and then the product one got like 00:21:36.663 --> 00:21:38.911 - redone a bit. If we look at it, 00:21:38.911 --> 00:21:42.742 - it's. You know it's the other fault lines that it has to add 00:21:42.742 --> 00:21:45.448 - because it's adding in stuff that has to deal with the 00:21:45.448 --> 00:21:47.908 - product downloads themselves in the tables of the interact with. 00:21:47.908 --> 00:21:50.860 - And now they talked to a product model and stuff like that. 00:21:51.740 --> 00:21:55.640 - On there I'm going to exclude that one for right now that 00:21:55.640 --> 00:21:59.540 - one got updated with extra stuff and a lot of these got 00:21:59.540 --> 00:22:02.790 - like like the product model has these two extra properties 00:22:02.790 --> 00:22:06.365 - on it that it didn't have before like this. Looks like 00:22:06.365 --> 00:22:08.315 - it came in from something else. 00:22:09.630 --> 00:22:12.546 - So that's just, you know, adding that to all these files now. 00:22:12.546 --> 00:22:15.462 - Another piece that I want to eventually get to is with these 00:22:15.462 --> 00:22:18.378 - things I wanted to do the same thing where instead of having 00:22:18.378 --> 00:22:22.023 - all this static HTML, I want to have it go and write it into a 00:22:22.023 --> 00:22:24.939 - bunch of JavaScript files that then get build a UI better so 00:22:24.939 --> 00:22:28.098 - you can do filtering on an like we don't have much repeat data. 00:22:29.610 --> 00:22:32.490 - Things because as you can see, it edited all these 00:22:32.490 --> 00:22:35.658 - files for those two lines over and over again, but I 00:22:35.658 --> 00:22:38.826 - would rather just have that all in one file that gets 00:22:38.826 --> 00:22:42.570 - edited and then it loads it like loads it in as a little 00:22:42.570 --> 00:22:45.738 - mini templates that drops them in all over the place to 00:22:45.738 --> 00:22:48.330 - build that API reference UI. That will also drastically 00:22:48.330 --> 00:22:51.210 - reduce how much hard drive space this section uses for 00:22:51.210 --> 00:22:52.650 - stuff. I think it's now. 00:22:54.640 --> 00:22:59.428 - OK, I mean that got that in next. I need to run. I would 00:22:59.428 --> 00:23:03.532 - continue running the T fours in the other ones, but for the 00:23:03.532 --> 00:23:08.320 - moment I just want to work on the admin 'cause I want to get 00:23:08.320 --> 00:23:12.082 - my admin UI built to start working on the getting the 00:23:12.082 --> 00:23:16.186 - downloads into the UI. Well, I'm not going to do that inside 00:23:16.186 --> 00:23:18.238 - Visual Studio, I'm going to that 00:23:18.238 --> 00:23:21.130 - video code. So let's collapse this. Let's go over 00:23:21.130 --> 00:23:23.330 - the controls. I need to go to my product editor. 00:23:25.040 --> 00:23:28.511 - Suck my product detail here and I'm going to press control J to 00:23:28.511 --> 00:23:29.846 - hide that that terminal window. 00:23:31.390 --> 00:23:32.629 - And product detail. 00:23:34.210 --> 00:23:37.072 - Currently it has all of this 00:23:37.072 --> 00:23:40.218 - garbage. Like 3000 lines worth of HTML in here. 00:23:40.218 --> 00:23:42.528 - Because of all this stuff, I'm going to collapse this 00:23:42.528 --> 00:23:45.069 - down and we're going to figure out where I want to 00:23:45.069 --> 00:23:47.841 - put my new tab and what content I'm going to put into 00:23:47.841 --> 00:23:48.303 - that tab. 00:23:49.810 --> 00:23:53.254 - OK, so we collapse with these products, has a lot of tabs 00:23:53.254 --> 00:23:55.837 - and it's one of those complex objects we've got. 00:23:59.830 --> 00:24:01.080 - Do too. 00:24:04.170 --> 00:24:09.857 - OK, so where are the other files add? So their stores, 00:24:09.857 --> 00:24:12.959 - manufacturers, brands inventory sociation's category stored 00:24:12.959 --> 00:24:17.072 - files. Images shipping returning purchasing pricing details. So I 00:24:17.072 --> 00:24:21.500 - probably want to put this next to my short files stored files. 00:24:21.500 --> 00:24:26.297 - Excuse you. Not sure to files so I'm going to copy my stored 00:24:26.297 --> 00:24:27.773 - files one and then. 00:24:29.320 --> 00:24:32.950 - To say that downloads enabled would be the required setting. 00:24:33.640 --> 00:24:35.796 - The form is going to be downloads. 00:24:38.880 --> 00:24:41.520 - Again, it's going to be downloads. 00:24:43.070 --> 00:24:44.298 - You spelt downloads wrong. 00:24:45.840 --> 00:24:46.040 - Yes. 00:24:51.570 --> 00:24:56.201 - Carmen is download plural the record or it's going to say 00:24:56.201 --> 00:24:57.464 - stored file product's. 00:24:58.710 --> 00:25:02.298 - Uh, so that it stores it in the correct folder type key will00:25:02.298 --> 00:25:03.678 - leave it as a general. 00:25:04.680 --> 00:25:05.490 - Uh. 00:25:08.800 --> 00:25:15.673 - Other first. Allow multiple true and then the list is going to is 00:25:15.673 --> 00:25:16.942 - into product downloads. 00:25:18.540 --> 00:25:20.600 - You're right that it's going to populate for this F 00:25:20.600 --> 00:25:21.218 - upload file widget. 00:25:22.970 --> 00:25:25.874 - OK, so then we have our table that will display that 00:25:25.874 --> 00:25:28.250 - information. Have a name. We have a file name. 00:25:28.970 --> 00:25:32.106 - I want to add type column to it. 00:25:34.380 --> 00:25:35.520 - And that type columns going to 00:25:35.520 --> 00:25:40.344 - drop down in it. And then this is going to be product 00:25:40.344 --> 00:25:45.131 - downloads. And then OK, what else we got here? We got this 00:25:45.131 --> 00:25:48.863 - guy. I'm going to say wanna make some more common thing here. 00:25:49.780 --> 00:25:51.110 - I'm gonna say no downloads. 00:25:54.980 --> 00:25:57.160 - So if I get there adding downloads or something else, 00:25:57.160 --> 00:25:58.250 - it's not as like repetitive. 00:25:59.180 --> 00:26:01.720 - OK, so then we have sex instead of stored filename. 00:26:01.720 --> 00:26:02.736 - I want to say. 00:26:03.900 --> 00:26:06.108 - Download file name. 00:26:07.260 --> 00:26:11.726 - On those two spots Max Link 128, it is required to have the name 00:26:11.726 --> 00:26:15.235 - the repeating. Here I want to download instead of sort file. 00:26:16.490 --> 00:26:19.080 - So it goes that and there and there and there. 00:26:20.590 --> 00:26:23.350 - Stored files link. That's probably going to be wrong, but 00:26:23.350 --> 00:26:24.730 - I'm going to leave, right? 00:26:25.410 --> 00:26:27.830 - I'm going to leave it like that for the moment I'm 00:26:27.830 --> 00:26:28.490 - going to select. 00:26:31.860 --> 00:26:35.790 - I'm going to add an empty option here that says. 00:26:36.400 --> 00:26:40.950 - Um? Value equal to that I'm gonna do data just translate. 00:26:41.970 --> 00:26:44.472 - I'm gonna say you are the 00:26:44.472 --> 00:26:50.236 - admin.com. Common dot download dot select a. 00:26:50.910 --> 00:26:51.729 - How to type? 00:26:52.850 --> 00:26:54.158 - Type that's like day. 00:26:55.580 --> 00:27:00.424 - K so we will have our null option there and we have a class 00:27:00.424 --> 00:27:01.462 - to form control. 00:27:02.030 --> 00:27:04.150 - I'm going to have Ng. 00:27:05.730 --> 00:27:09.466 - G options and we have an energy model. 00:27:11.980 --> 00:27:15.250 - Our model is going to be download dot type ID. 00:27:15.860 --> 00:27:16.826 - And then it's going to be. 00:27:18.090 --> 00:27:22.808 - Oh dot ID as ode dot name. 00:27:23.820 --> 00:27:26.718 - Or rather, we need to wrap this into A. 00:27:29.490 --> 00:27:32.626 - Hold up display name Oro dot name. 00:27:34.940 --> 00:27:36.560 - And then we'll wrap that. 00:27:37.350 --> 00:27:38.940 - And add a. 00:27:39.830 --> 00:27:46.470 - Plus wrapped if odot custom key exists. 00:27:48.750 --> 00:27:51.900 - Not MG we're going to do this 00:27:51.900 --> 00:27:57.774 - plus. A closing tag plus load custom key so we do have a 00:27:57.774 --> 00:28:01.976 - custom key on the thing then will will display that custom 00:28:01.976 --> 00:28:03.504 - key in the value. 00:28:04.430 --> 00:28:06.160 - And then we'll say 4. 00:28:06.870 --> 00:28:08.270 - Oh in. 00:28:09.510 --> 00:28:11.409 - Product detail control. 00:28:13.410 --> 00:28:15.300 - Start download types. 00:28:17.850 --> 00:28:20.100 - OK, and then will order by. 00:28:23.170 --> 00:28:25.370 - What's the standard order? Normally with the stuff we want 00:28:25.370 --> 00:28:26.470 - order by sort order first. 00:28:28.070 --> 00:28:30.215 - And if there isn't the sort order, then we need to do it 00:28:30.215 --> 00:28:30.710 - by display name. 00:28:33.440 --> 00:28:34.140 - Or name? 00:28:36.130 --> 00:28:37.058 - And then my name. 00:28:39.880 --> 00:28:40.890 - And then by custom key. 00:28:43.360 --> 00:28:45.040 - Teams extensive about able, eventually, like basically 00:28:45.040 --> 00:28:47.440 - cover all the different scenarios and we've had to deal 00:28:47.440 --> 00:28:50.320 - with that a lot. Overtime we're going to say this one is 00:28:50.320 --> 00:28:50.560 - required. 00:28:54.320 --> 00:28:57.309 - I'm going to give it some IDs. 00:28:59.000 --> 00:29:01.068 - Names for the form. 00:29:03.420 --> 00:29:05.010 - And it's gonna be DDL. 00:29:05.650 --> 00:29:10.006 - 'cause the drop down list and then download type. 00:29:10.700 --> 00:29:13.300 - And it's got the index so that we know that we can maintain 00:29:13.300 --> 00:29:17.106 - what index value it is. So we've model we have gumption 00:29:17.106 --> 00:29:20.116 - so we have all that stuff. Looks like all that's 00:29:20.116 --> 00:29:21.621 - probably going to be OK. 00:29:26.130 --> 00:29:29.574 - If you've ever seen Fraser an you know how Eddie like the 00:29:29.574 --> 00:29:32.731 - dog like rubs his back by scratched by lying upside down 00:29:32.731 --> 00:29:35.601 - and wiggling back and forth. Gagement was just doing that 00:29:35.601 --> 00:29:37.897 - and it was hilarious to watch. It's adorable. 00:29:42.360 --> 00:29:44.288 - OK, so we have that we have that. 00:29:45.920 --> 00:29:48.533 - It kind of makes sense that that would be the last as a 00:29:48.533 --> 00:29:50.945 - thing that has like a control column, so I'm going to move 00:29:50.945 --> 00:29:51.548 - that column down. 00:29:52.890 --> 00:29:54.600 - And there. 00:29:57.580 --> 00:30:00.180 - Ansi input is the name. 00:30:00.780 --> 00:30:03.700 - The final name, it sounded inputs to label. Yeah, OK. 00:30:04.810 --> 00:30:06.868 - Uh, so we have that going there. 00:30:09.450 --> 00:30:11.970 - OK, that's a good start. Assuming we have there, I'm 00:30:11.970 --> 00:30:14.742 - going to go into my my TypeScript file. I'm going to 00:30:14.742 --> 00:30:16.002 - add download types on here. 00:30:16.760 --> 00:30:18.496 - Which is just going to list type models. 00:30:20.100 --> 00:30:23.466 - And just like image types, I gotta find where I'm loading 00:30:23.466 --> 00:30:26.888 - that collection. To make sure that I get that for here. 00:30:28.000 --> 00:30:28.988 - We can do that. 00:30:30.060 --> 00:30:30.730 - Say. 00:30:31.800 --> 00:30:33.020 - Which type of a first? 00:30:35.890 --> 00:30:38.376 - To that, OK, so that will load in our download types 00:30:38.376 --> 00:30:39.054 - to this UI. 00:30:40.190 --> 00:30:42.984 - Now, one thing I just noticed because of this this should 00:30:42.984 --> 00:30:45.778 - technically be waiting for all of these other things to get 00:30:45.778 --> 00:30:50.230 - done. But that's kind of problematic to change this right 00:30:50.230 --> 00:30:56.150 - now, I want to make it actually do that, but if I want to do it, 00:30:56.150 --> 00:31:00.590 - what I could do is, say, return this dollar Q Dot all. 00:31:03.060 --> 00:31:04.070 - And. 00:31:05.120 --> 00:31:07.860 - Do it where it's rar. 00:31:10.350 --> 00:31:11.160 - That 00:31:14.270 --> 00:31:17.152 - All that in there. And then I also want it all. 00:31:18.710 --> 00:31:19.630 - In here. 00:31:21.270 --> 00:31:26.187 - This and get rid of all these dens that are here. 00:31:26.980 --> 00:31:28.588 - Using a regex. 00:31:30.710 --> 00:31:33.999 - So I'm gonna do that I'm like oh select that again and say 00:31:33.999 --> 00:31:36.529 - control H because then when you have vertex started from 00:31:36.529 --> 00:31:38.553 - beginning, it automatically escapes characters that are in 00:31:38.553 --> 00:31:41.589 - what you're doing, which is nice, so I'm going to do that 00:31:41.589 --> 00:31:44.878 - and I'm going to say what was the key for that control H 00:31:44.878 --> 00:31:48.420 - Control H. But if you have this on 1st then then when you open 00:31:48.420 --> 00:31:50.950 - this dialogue it automatically escapes what you have nice. So 00:31:50.950 --> 00:31:54.492 - like the period that I had there in this case so that it knows 00:31:54.492 --> 00:31:57.275 - that it was supposed to be an intentional period character in 00:31:57.275 --> 00:31:59.552 - the same thing with the parentheses. So the regex 00:31:59.552 --> 00:32:02.588 - doesn't think that is supposed to be the period that regex has, 00:32:02.588 --> 00:32:07.919 - which is. Any character this I want to do a dizzy. 00:32:09.100 --> 00:32:11.080 - Plus there we go that highlights 00:32:11.080 --> 00:32:14.225 - all this garbage. And I want to place all those with commas. 00:32:23.710 --> 00:32:24.830 - Whoops, I want you very. 00:32:25.690 --> 00:32:27.130 - Want to keep those? 00:32:27.830 --> 00:32:30.287 - And kill that. OK, so that one can go. 00:32:31.670 --> 00:32:33.540 - And that one can go. 00:32:38.540 --> 00:32:40.164 - So there's the end of my array. 00:32:47.100 --> 00:32:51.364 - And actually cute are all here is not going to work too well 00:32:51.364 --> 00:32:55.628 - for it, so I need to go ahead and wrap it. And wrapping 00:32:55.628 --> 00:32:58.908 - promise stop dollar Q Dot dot dot it's resolve reject. 00:32:59.820 --> 00:33:01.935 - And that has to be in its own thing. 00:33:03.590 --> 00:33:04.850 - Would you all that? 00:33:05.910 --> 00:33:11.202 - And then we'll move all this garbage up, kill that, got that 00:33:11.202 --> 00:33:13.848 - dare do that, pull that back. 00:33:14.770 --> 00:33:15.950 - Pull that back one. 00:33:17.050 --> 00:33:19.038 - And kind of see where we are. 00:33:20.480 --> 00:33:23.898 - Uh. Set an all there. 00:33:26.320 --> 00:33:28.068 - Is this complaining here? 00:33:28.820 --> 00:33:30.346 - Up because I need a comma there. 00:33:32.050 --> 00:33:33.100 - For one thing. 00:33:34.390 --> 00:33:37.380 - Japanese others messing up with that sort of thing there. 00:33:38.100 --> 00:33:40.989 - Is this isn't supposed to be here for that? 00:33:43.310 --> 00:33:45.609 - OK, so now it's complaining in this part, which is fine. 00:33:48.600 --> 00:33:50.640 - Expected one arguments, but got too. 00:33:53.220 --> 00:33:55.140 - Oh OK then. 00:33:55.880 --> 00:33:56.320 - Star. 00:33:59.280 --> 00:34:02.130 - OK, and then at the end we would say resolve. 00:34:06.880 --> 00:34:09.300 - And then we have a catch here that can do this. 00:34:09.300 --> 00:34:10.180 - Handle or reject scenario. 00:34:13.900 --> 00:34:15.391 - OK, and then the front part of 00:34:15.391 --> 00:34:17.730 - this stuff. Is basically. 00:34:18.760 --> 00:34:20.860 - I need to grab these. 00:34:22.490 --> 00:34:24.970 - I wonder if I can do this slightly differently and 00:34:24.970 --> 00:34:26.210 - have it still be happy. 00:34:27.300 --> 00:34:29.230 - Grab from here to here. 00:34:29.860 --> 00:34:33.760 - The control shift, right click and get all of them like that. 00:34:36.700 --> 00:34:37.790 - Well it kinda got it. 00:34:38.920 --> 00:34:39.820 - Additionally, one more 00:34:39.820 --> 00:34:43.180 - character. So we've all heard ends together and then this guy 00:34:43.180 --> 00:34:46.880 - was really long. Soccer clear him off. This guy was 00:34:46.880 --> 00:34:47.540 - apparently short. 00:34:48.820 --> 00:34:49.610 - OK. 00:34:51.680 --> 00:34:55.164 - They they got any call lessons or just just kill a semi colons. 00:34:55.164 --> 00:34:57.040 - So then it's going to be this. 00:34:58.680 --> 00:35:01.627 - And then it's going to be R. 00:35:02.520 --> 00:35:05.264 - And I have a 0 here to start 00:35:05.264 --> 00:35:09.038 - with. And then I need to go to the end of every line. So what 00:35:09.038 --> 00:35:11.469 - I'm going to do is slide to beginning of line, go to the 00:35:11.469 --> 00:35:12.591 - end in one and then delete. 00:35:14.980 --> 00:35:18.276 - And then I can go back a little bit more until I get to the rar. 00:35:19.930 --> 00:35:23.936 - Or RARR. Now, it doesn't actually know what these 00:35:23.936 --> 00:35:24.392 - things are. 00:35:25.520 --> 00:35:30.280 - Because they're weird. What I can do is add that 00:35:30.280 --> 00:35:35.992 - parentheses and said that this is an array of Ng dot I 00:35:35.992 --> 00:35:37.896 - HTTP promise Callback Ark. 00:35:40.460 --> 00:35:44.360 - Have uh? Various types going 00:35:44.360 --> 00:35:47.920 - on here. So we have a couple here that need cleaned up 00:35:47.920 --> 00:35:48.529 - here and there. 00:35:52.250 --> 00:35:55.134 - OK, and then basically I need to do this with all of them in 00:35:55.134 --> 00:35:58.142 - order. But to do that, I want to line this up a little 00:35:58.142 --> 00:36:00.374 - better, so I'm going to do lunch tabs to get this stuff 00:36:00.374 --> 00:36:00.560 - out. 00:36:03.870 --> 00:36:06.494 - And then line these all up like this. 00:36:10.690 --> 00:36:11.629 - That was convenient. 00:36:13.750 --> 00:36:15.170 - Now I can do. 00:36:17.330 --> 00:36:21.373 - Uh, like this so it doesn't like it when I do that I 00:36:21.373 --> 00:36:24.794 - forgot I want to space the beginning and then I started 00:36:24.794 --> 00:36:26.349 - my press my insert key. 00:36:27.480 --> 00:36:28.920 - So function. 00:36:33.950 --> 00:36:37.016 - One doesn't work OK, so one. 00:36:37.800 --> 00:36:41.860 - 2345678901234567 select list. From here to here that's now 10s 00:36:41.860 --> 00:36:47.950 - OK so now I have all my results in the same order and doing all 00:36:47.950 --> 00:36:53.228 - the mall. It's going to wait for all of these promises to finish. 00:36:53.228 --> 00:36:58.506 - Then assign all of this data and then it's going to resolve the 00:36:58.506 --> 00:37:03.378 - main one that goes back to the load collections and say that 00:37:03.378 --> 00:37:04.596 - everything is done. 00:37:07.430 --> 00:37:09.006 - I really don't understand why I did that. 00:37:14.550 --> 00:37:18.006 - Absolutely, I'm not super hip on the spacing, but. 00:37:19.580 --> 00:37:20.150 - Do you? 00:37:22.630 --> 00:37:26.130 - I mean now that it's all lined up, I could go back and clear. 00:37:26.810 --> 00:37:27.650 - This. 00:37:28.690 --> 00:37:31.930 - And this and then do this to hear to hear, and then 00:37:31.930 --> 00:37:34.630 - that like that and in the release with single space. 00:37:37.810 --> 00:37:41.502 - But now that I mean just to be visually all like, yeah sure, 00:37:41.502 --> 00:37:45.478 - like this is easy enough to read when you've got a bunch of data, 00:37:45.478 --> 00:37:48.318 - it's doing the same thing over and over again versus. 00:37:49.490 --> 00:37:53.023 - Not that. Oh, it doesn't. Predicates and inventories both 00:37:53.023 --> 00:37:56.371 - need results on the end as well. No, because those endpoints are 00:37:56.371 --> 00:37:58.882 - not doing that. They're calling a different endpoint that 00:37:58.882 --> 00:38:01.951 - doesn't do that. OK, so the inventories one is calling. Just 00:38:01.951 --> 00:38:04.462 - get all inventory location sections, which isn't a page 00:38:04.462 --> 00:38:07.810 - result in. Same thing with this other one is getting all active 00:38:07.810 --> 00:38:10.879 - product specialist, so it's not a page result since it's a 00:38:10.879 --> 00:38:13.390 - special endpoint. It's doing that. Otherwise yes, you would 00:38:13.390 --> 00:38:17.296 - be correct in that we would want that. But in this case we don't. 00:38:18.170 --> 00:38:21.390 - OK, so now we have a promising to do all that stuff for playing 00:38:21.390 --> 00:38:24.380 - with all those things and get 'em all in there and they're all 00:38:24.380 --> 00:38:27.140 - in this order. Now. The problem with this moving forward is if 00:38:27.140 --> 00:38:30.590 - you need to add more stuff and you try to do it in the middle. 00:38:30.590 --> 00:38:33.580 - It throws these things off so you want to make sure that you 00:38:33.580 --> 00:38:37.030 - always add to the end of these so that if I have to add some 00:38:37.030 --> 00:38:39.790 - extra promise I'm always going to come back out down here and 00:38:39.790 --> 00:38:42.780 - do my dot results with this one and that it will be #18. 00:38:42.780 --> 00:38:45.770 - Otherwise if you do it in the middle you then have to renumber 00:38:45.770 --> 00:38:48.530 - all of these which gets annoying now. A way around that would 00:38:48.530 --> 00:38:52.454 - really. Try and use like an index value and say like let 00:38:52.454 --> 00:38:56.342 - index equal to 0 or actually hit. Next thing you negative one 00:38:56.342 --> 00:38:58.610 - and then across the way here I 00:38:58.610 --> 00:39:01.650 - could say. Plus plus index. 00:39:02.330 --> 00:39:04.360 - And then I never have to worry about numbering 'cause 00:39:04.360 --> 00:39:05.984 - the plus plus index will always number them. 00:39:08.610 --> 00:39:10.140 - That would be another way of getting around that. 00:39:14.010 --> 00:39:17.835 - And then I could also do like if I started wanted to start at 0 00:39:17.835 --> 00:39:20.640 - instead of negative, one could use more less people. I could 00:39:20.640 --> 00:39:22.170 - take the pluses and moving with 00:39:22.170 --> 00:39:24.720 - side. Does anyone know the difference between putting 00:39:24.720 --> 00:39:26.400 - the plus plus first plus plus last is? 00:39:29.080 --> 00:39:32.770 - Yeah, I will add it at. It will include. 00:39:34.690 --> 00:39:35.230 - Check. 00:39:40.270 --> 00:39:44.602 - Before changes the number, it it adds one to the number and 00:39:44.602 --> 00:39:48.212 - then returns the added number plus plus. After returns the 00:39:48.212 --> 00:39:52.544 - added number as in what it would be before adding it and 00:39:52.544 --> 00:39:56.515 - then adds it. It's just the timing of that. Yeah, that's 00:39:56.515 --> 00:39:57.237 - exactly right. 00:40:00.070 --> 00:40:02.652 - So. That would be a way of getting around that. OK, so 00:40:02.652 --> 00:40:05.408 - now we have all that and I'm going to leave it like this 00:40:05.408 --> 00:40:06.468 - because I think it's pretty. 00:40:09.990 --> 00:40:13.542 - OK, this is all that there. We now have our product download 00:40:13.542 --> 00:40:17.390 - types to kind of just go over really quick. James as I think 00:40:17.390 --> 00:40:18.574 - so. The reason that. 00:40:20.080 --> 00:40:23.811 - You know we we can kind of get away with calling all those 00:40:23.811 --> 00:40:26.107 - endpoints since we all know that JavaScript is 00:40:26.107 --> 00:40:28.977 - asynchronous and all that good stuff. There's this docu to 00:40:28.977 --> 00:40:32.421 - all actually accepts an array. Kind of how we see it there. 00:40:32.421 --> 00:40:34.430 - So that then is not going to. 00:40:35.780 --> 00:40:38.822 - Return anything until all of those API endpoints actually 00:40:38.822 --> 00:40:41.864 - return a result, so that's what's interesting. You know, 00:40:41.864 --> 00:40:45.920 - kind of interesting about this doc you always. You can run all 00:40:45.920 --> 00:40:49.638 - of those different asynchronous calls and then the you know the 00:40:49.638 --> 00:40:52.680 - promise. Whenever it resolves, will finally run our resolution 00:40:52.680 --> 00:40:56.736 - function in. I believe if any one of them gets rejection, that 00:40:56.736 --> 00:41:01.130 - should just run our catch off of it instead of going into the 00:41:01.130 --> 00:41:05.186 - resolution. Yeah, so if any one of these fails, it's going to 00:41:05.186 --> 00:41:07.890 - end up in this cash and it's not 00:41:07.890 --> 00:41:10.822 - going to. Any of these assignments, which is good 00:41:10.822 --> 00:41:13.582 - because you don't want the product patient load. With bad 00:41:13.582 --> 00:41:16.342 - stuff you want to resolve whatever the problem is before 00:41:16.342 --> 00:41:19.930 - you go in and try to assault, resolve individual or I have to 00:41:19.930 --> 00:41:23.242 - feel feel with broken data that will then that could then break 00:41:23.242 --> 00:41:24.622 - how you save the product. 00:41:25.460 --> 00:41:29.759 - After the fact. But the good thing here is that with this 00:41:29.759 --> 00:41:32.669 - change by waiting for all these promises to resolve, we 00:41:32.669 --> 00:41:36.452 - don't move on with loading the rest of the UI with this after 00:41:36.452 --> 00:41:39.071 - from the load collection. Until this stuff is done, 00:41:39.071 --> 00:41:42.272 - whereas before we did this change just now it was just 00:41:42.272 --> 00:41:44.891 - firing them asynchronously and then moving on with loading 00:41:44.891 --> 00:41:48.383 - the rest of the product UI, which can kind of causes like 00:41:48.383 --> 00:41:51.293 - your UI to jump because things are still loading and 00:41:51.293 --> 00:41:53.621 - dropdowns might be empty. Guest services are still 00:41:53.621 --> 00:41:56.531 - running, it just forces you to wait for everything to 00:41:56.531 --> 00:41:59.441 - actually be done before you start working on the page. 00:42:00.870 --> 00:42:03.108 - Which I might also add in. 00:42:03.820 --> 00:42:08.156 - I would also add in that you know this is a way to do it on 00:42:08.156 --> 00:42:11.950 - the front end so you don't have to. You know build out just some 00:42:11.950 --> 00:42:14.931 - you know completely unnecessary workflow or API N point on the 00:42:14.931 --> 00:42:18.454 - back end and just, you know have a super cumbersome you know back 00:42:18.454 --> 00:42:22.248 - and so if you need just to display a bunch of data on the 00:42:22.248 --> 00:42:25.229 - front end where even if you know the API endpoints aren't 00:42:25.229 --> 00:42:27.939 - necessarily you know relevant to each other, something like a 00:42:27.939 --> 00:42:31.191 - dashboard, you would want to do something like this just so you 00:42:31.191 --> 00:42:33.901 - don't have to build some crazy spaghetti like API in. 00:42:34.020 --> 00:42:36.932 - Point on the back end, you can just get what you need from the 00:42:36.932 --> 00:42:39.428 - API endpoint 30 built on the front end, and I'm like James 00:42:39.428 --> 00:42:41.924 - just saying it's not loading in some areas and not in others. 00:42:41.924 --> 00:42:44.420 - It will just kind of give you what you need and load 00:42:44.420 --> 00:42:46.708 - everything at the same time. So it's a great user experience. 00:42:48.100 --> 00:42:48.530 - Yeah. 00:42:50.280 --> 00:42:54.115 - OK, so we have that we now have our download types that would 00:42:54.115 --> 00:42:58.245 - propagate out if we if they were in the database. What we need to 00:42:58.245 --> 00:43:02.080 - do is before I can run this I need to add my immigration 00:43:02.080 --> 00:43:03.850 - 'cause we haven't done that yet. 00:43:04.670 --> 00:43:06.780 - I mean I'll make that are adding the libration the 00:43:06.780 --> 00:43:09.101 - last thing that we do here, 'cause it is after 5? 00:43:11.220 --> 00:43:14.235 - So just like we were seeing in the other stuff, I need to go in 00:43:14.235 --> 00:43:16.848 - an add-on migration, but I need to get my window for it first. 00:43:17.610 --> 00:43:21.586 - So view other windows package manager console. 00:43:24.280 --> 00:43:29.430 - Data model and looks like data model is the correct 00:43:29.430 --> 00:43:35.095 - one. I'm gonna double check with, typing it into T frame 00:43:35.095 --> 00:43:38.700 - or 6 slash dash migration product downloads. 00:43:41.780 --> 00:43:44.588 - Because I use specifically told at 6, it's letting you know that 00:43:44.588 --> 00:43:46.928 - because they're both installed and I told it to specifically 00:43:46.928 --> 00:43:49.308 - use that one. Don't do that. 00:43:51.720 --> 00:43:52.899 - Pin this app. 00:44:00.760 --> 00:44:04.166 - OK, so that finished I'm going to lower this down. I'm going to 00:44:04.166 --> 00:44:06.786 - save the file so it automatically cleans up some of 00:44:06.786 --> 00:44:10.192 - the stuff I'm going to run. My thing here that runs that puts 00:44:10.192 --> 00:44:13.336 - the S Carpenter. You can see that it is adding product ship 00:44:13.336 --> 00:44:16.910 - carrier method. Anne, it's adding product download an 00:44:16.910 --> 00:44:18.140 - product download type. 00:44:19.440 --> 00:44:20.660 - To all this stuff. 00:44:21.610 --> 00:44:25.654 - As tables. Why do I have friendship carrier method? I'm 00:44:25.654 --> 00:44:28.021 - not entirely certain 'cause I think that was actually 00:44:28.021 --> 00:44:29.336 - specific. To see for code. 00:44:31.180 --> 00:44:37.680 - But OK, now I can go run my update database 00:44:37.680 --> 00:44:38.980 - command product. 00:44:40.560 --> 00:44:42.919 - Spotsy wasn't even made that I thought. 00:44:45.470 --> 00:44:49.430 - Or spotty that might be it. I think I didn't have a 00:44:49.430 --> 00:44:50.420 - migration for it. 00:44:52.280 --> 00:44:54.470 - In Master. Ha ha. 00:44:57.560 --> 00:44:59.960 - K it's applying the migration. 00:45:01.970 --> 00:45:05.270 - Now also because I've already added it to see data, it should 00:45:05.270 --> 00:45:08.845 - see the Devil Table two. Once it's in there, so I'm going to 00:45:08.845 --> 00:45:12.170 - open my. Digital or my SMS here. 00:45:14.430 --> 00:45:16.078 - And double check that it does load it. 00:45:23.970 --> 00:45:25.358 - K the seeds done. 00:45:29.160 --> 00:45:30.810 - Moness mess. 00:45:36.290 --> 00:45:39.876 - Racing open Visual Studio 2019. An SMS at the same time 00:45:39.876 --> 00:45:41.506 - and see which loads first. 00:45:45.140 --> 00:45:49.136 - K so my local. I think it was pointing at this one. 00:45:51.490 --> 00:45:55.032 - So I should see a product's downloaded download type and if 00:45:55.032 --> 00:45:58.896 - I select this and see if it actually ceded the data too. 00:46:07.390 --> 00:46:09.259 - No, it did not see the data. 00:46:10.060 --> 00:46:14.987 - OK, so I think that maybe just how we have that seed running 00:46:14.987 --> 00:46:19.914 - there, so I'm going to go back to Visual Studio and I'm going 00:46:19.914 --> 00:46:22.188 - to find my C database test. 00:46:23.750 --> 00:46:27.978 - So that I can tell her to go ahead and seed so data model 00:46:27.978 --> 00:46:28.884 - seating, see database. 00:46:30.080 --> 00:46:32.754 - Collapse and I wanted to see the 00:46:32.754 --> 00:46:36.780 - default data. I'm just going to tell it to do that one 00:46:36.780 --> 00:46:38.488 - specifically. I have re sharper turned off. 00:46:39.600 --> 00:46:41.329 - So I need to turn resharper on. 00:46:45.210 --> 00:46:46.708 - And wait for her to come back. 00:46:48.980 --> 00:46:51.548 - And then I can control you. 00:46:53.180 --> 00:46:55.007 - Which gives me the unit test Explorer. 00:46:57.610 --> 00:46:59.005 - And I have to wait for it to load. 00:47:10.620 --> 00:47:13.210 - Resharper is contemplating the cure for cancer. 00:47:23.820 --> 00:47:27.216 - I had re sharper off because I installed the latest version and 00:47:27.216 --> 00:47:30.612 - it corrupted one of my one of the extensions that was doing 00:47:30.612 --> 00:47:33.725 - saying there's two versions of it installed at the same time. 00:47:34.300 --> 00:47:37.602 - And I've been having to deal with that. 'cause I tried had to 00:47:37.602 --> 00:47:39.888 - completely uninstall it. Clear like the app data folder. 00:47:40.480 --> 00:47:42.208 - Manually and some other stuff which is getting 00:47:42.208 --> 00:47:42.640 - really annoying. 00:47:49.240 --> 00:47:51.480 - K. See the default data. 00:47:53.250 --> 00:47:53.920 - Come on. 00:48:02.750 --> 00:48:03.740 - Run it. 00:48:10.560 --> 00:48:11.160 - They go. 00:48:29.600 --> 00:48:31.418 - You know what? I do? Have new identity data. 00:48:32.540 --> 00:48:34.133 - Because I have permissions that are on those tables 00:48:34.133 --> 00:48:35.018 - that need to go out. 00:48:49.830 --> 00:48:51.990 - So I'm gonna add this one. 00:48:58.650 --> 00:48:59.710 - I think it's the scary. 00:49:21.480 --> 00:49:23.130 - This should have content now. 00:49:25.360 --> 00:49:28.419 - Um? But it doesn't. 00:49:30.920 --> 00:49:33.692 - Why even pointed out of the database when I pointed at? 00:49:40.730 --> 00:49:42.380 - Yeah, it's important for that one. 00:49:49.790 --> 00:49:52.126 - So why didn't grab the power download types? 00:49:55.100 --> 00:49:57.350 - Oh, because they put them in Product Association types. 00:49:58.420 --> 00:49:59.560 - That would that would you know, 00:49:59.560 --> 00:50:00.800 - help if I wasn't. In that. 00:50:09.960 --> 00:50:11.538 - Google copypasta errors. 00:50:18.760 --> 00:50:19.816 - I need to run this again. 00:50:21.020 --> 00:50:23.160 - Soon as that is done. 00:50:26.570 --> 00:50:28.650 - And then I need to go to my associations table. 00:50:29.920 --> 00:50:32.152 - And I need to remove the ones that got added that weren't 00:50:32.152 --> 00:50:32.896 - supposed to be there. 00:50:35.330 --> 00:50:36.940 - Yeah, it was sitting here. 00:50:38.430 --> 00:50:39.588 - So let's get rid of those. 00:50:48.140 --> 00:50:48.760 - Stop. 00:50:50.660 --> 00:50:51.280 - Build. 00:50:52.690 --> 00:50:53.590 - No, stop it. 00:51:00.840 --> 00:51:01.569 - Come on dude.00:51:13.640 --> 00:51:14.628 - Just wanted to build. 00:51:34.130 --> 00:51:36.100 - Should be. Really here, yeah. 00:51:42.990 --> 00:51:44.270 - Turn down for what? 00:51:46.230 --> 00:51:48.240 - Oh, OK. 00:51:50.660 --> 00:51:54.006 - Essentially, said quite often, now mix tape. 00:51:58.060 --> 00:52:01.160 - Sleep 30 in the morning already my project won't build. 00:52:04.170 --> 00:52:07.624 - The real question is when both of that damn bass drop. 00:52:11.810 --> 00:52:14.681 - I gotta go in there without that device connected together then 00:52:14.681 --> 00:52:17.291 - pop it. Freaked him out, making backup dance around him. 00:52:18.920 --> 00:52:23.155 - Bag of moon Intellisense. Tell me where the error is boy. 00:52:29.730 --> 00:52:31.730 - What do you mean I need two arguments? 00:52:33.290 --> 00:52:35.420 - Runs on propane. 00:52:42.530 --> 00:52:44.330 - Electrons are ******* app. 00:52:51.770 --> 00:52:54.861 - Now you got me wondering though, how much energy density you 00:52:54.861 --> 00:52:58.233 - could get if you had a propane powered ups on a server. 00:52:59.700 --> 00:53:01.344 - Could you run that the regular 00:53:01.344 --> 00:53:03.040 - battery? You can do it. 00:53:04.630 --> 00:53:08.374 - I absolutely can definitely build cleaner. Pull out your 00:53:08.374 --> 00:53:11.286 - propane accessory that converts the propane generator 00:53:11.286 --> 00:53:15.030 - into the proper thing with the gold platinum standard. 00:53:17.580 --> 00:53:20.568 - OK, so in combat those things, my default data, they don't have 00:53:20.568 --> 00:53:24.054 - my see data in the database, so I'm gonna turn on my API admin. 00:53:25.000 --> 00:53:28.870 - And I should be able to go into the admin. 00:53:30.170 --> 00:53:30.790 - Now. 00:53:45.380 --> 00:53:47.369 - But just gonna take it sweet time to load. 00:54:29.030 --> 00:54:31.039 - K why do you have no translations? 00:54:38.150 --> 00:54:39.830 - I guess it never loaded any to 00:54:39.830 --> 00:54:42.550 - this database yet. So how about we give ourselves 00:54:42.550 --> 00:54:43.030 - some translations? 00:54:46.120 --> 00:54:48.736 - Oh, we got here and copy all that. 00:54:50.340 --> 00:54:51.010 - And. 00:54:52.550 --> 00:54:55.817 - So did you change the recently? Did you update the formulas 00:54:55.817 --> 00:54:59.381 - James in the spreadsheet? 'cause I notice that we had like those 00:54:59.381 --> 00:55:02.945 - four different columns 'cause it used to be a column for every 00:55:02.945 --> 00:55:06.509 - translation, but now it's just so English as a column and then 00:55:06.509 --> 00:55:09.716 - this column. Is everything that's not English I appended 00:55:09.716 --> 00:55:12.884 - together, so if you're doing non English in there, you basically 00:55:12.884 --> 00:55:14.612 - get all of it at once. 00:55:15.690 --> 00:55:19.551 - The reason I did that was the for a couple of reasons. One 00:55:19.551 --> 00:55:22.521 - sheet with all of these different portals and all the 00:55:22.521 --> 00:55:25.194 - different languages and all the different translations that were 00:55:25.194 --> 00:55:26.976 - happening over and over and over 00:55:26.976 --> 00:55:31.392 - again. The the Google Doc just couldn't handle it. You make a 00:55:31.392 --> 00:55:34.776 - change on anyone. It's one cell and it would take like 30 00:55:34.776 --> 00:55:35.904 - seconds to recalculate the 00:55:35.904 --> 00:55:39.559 - entire spreadsheet. Which was getting really bad. So by 00:55:39.559 --> 00:55:42.412 - reducing the number of cells that had calculated columns 00:55:42.412 --> 00:55:46.216 - and things that helped a lot with that and now it's back 00:55:46.216 --> 00:55:49.703 - down to performance method. And two I was going to double 00:55:49.703 --> 00:55:53.507 - up on all of those because of Oracle since Oracle has a 00:55:53.507 --> 00:55:55.092 - different method of their execute. 00:55:56.210 --> 00:55:57.680 - Of their stored procedure for that. 00:55:58.850 --> 00:56:01.580 - So now we have the normal SQL and then we have that Oracle 00:56:01.580 --> 00:56:04.520 - version side by side on here and it says the same thing where you 00:56:04.520 --> 00:56:07.460 - can get in English and then you can also get all the non English 00:56:07.460 --> 00:56:10.400 - at the same time and that is the same in all of these sheets. 00:56:12.330 --> 00:56:15.810 - On all this stuff, and oh look, these guys have loading errors. 00:56:16.880 --> 00:56:18.130 - Why do you holding her? 00:56:23.490 --> 00:56:26.680 - I don't know that should probably get fixed on that one, 00:56:26.680 --> 00:56:30.450 - but yeah, so all of that gets loaded in there and it doesn't 00:56:30.450 --> 00:56:33.640 - anymore performant manner. One thing I was trying to do, if 00:56:33.640 --> 00:56:37.700 - somebody like may have seen it. I had like an oral tab. I was 00:56:37.700 --> 00:56:40.600 - trying to make it like dynamically read every row and 00:56:40.600 --> 00:56:44.080 - cell for the key column and the the languish languish what the 00:56:44.080 --> 00:56:47.560 - language was an then making an Oracle copy of it over there. 00:56:47.560 --> 00:56:51.620 - And that was like way worse so I couldn't. That was not going to 00:56:51.620 --> 00:56:54.810 - be visible. But now if we have Oracle clients, they can load 00:56:54.810 --> 00:56:57.180 - all this translation stuff. Normally we don't do extra work. 00:56:57.740 --> 00:56:59.404 - On it, so those are all good to 00:56:59.404 --> 00:57:01.038 - go. The way they are. 00:57:02.590 --> 00:57:04.996 - But I got my admin translations 00:57:04.996 --> 00:57:09.353 - loading. The uploaded so if I click that go away. 00:57:10.420 --> 00:57:11.760 - Go away, go away. 00:57:12.360 --> 00:57:15.496 - Back here I should have English now. 00:57:17.220 --> 00:57:19.270 - Yes, I have English now and I can log in. 00:57:30.080 --> 00:57:32.960 - K so now I should really go to products. 00:57:35.950 --> 00:57:37.900 - And I should be able to just pick a product. 00:57:39.880 --> 00:57:42.256 - Oh my screen is awfully small. There we go. 00:57:45.800 --> 00:57:48.374 - I have no records 'cause I have done any seed eater. This is 00:57:48.374 --> 00:57:49.562 - like a fresh brand new database. 00:57:50.500 --> 00:57:53.750 - OK, so if I don't have any products I would want to see 00:57:53.750 --> 00:57:56.750 - the data I'm going to stop here and keep in touch. Keep 00:57:56.750 --> 00:57:58.000 - going 'cause we're after 5. 00:57:59.790 --> 00:58:02.427 - Thank you that James I especially like the product 00:58:02.427 --> 00:58:05.650 - details page and in the app settings notes. So next time 00:58:05.650 --> 00:58:09.166 - it's going to be run the sample data so I have my 00:58:09.166 --> 00:58:11.803 - sample product. Sample orders run runs spreadsheet of data 00:58:11.803 --> 00:58:15.026 - so that we have the default product. They run like some 00:58:15.026 --> 00:58:18.249 - with all the extra pictures and everything on him and then 00:58:18.249 --> 00:58:21.765 - go in and edit one and start trying to put a product 00:58:21.765 --> 00:58:24.109 - download on it will be reflected on there.