ASP.NET - MVC - Core - Responsive Web Design - Lecture 17: BootStrap Integration & Full Tutorial P3 #327
FurkanGozukara
announced in
Tutorials
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
ASP.NET - MVC - Core - Responsive Web Design - Lecture 17: BootStrap Integration & Full Tutorial P3
Full tutorial: https://www.youtube.com/watch?v=iIsy8S_UO8k
#SoftwareDevelopment #Software #Engineering #CSharp #Coding #Course
Asp.NET Core V5 - MVC Pattern - Bootstrap V5 - Responsive Web #Programming with C# Full Course Playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffsnAWtgk4ja3HN3xgMKF7BOE
GitHub repository of the course : https://github.com/FurkanGozukara/Responsive-Web-Design-With-ASP.NET-5-and-MVC-Pattern-and-BootStrap-5-2021
Discord channel link of the course : https://discord.gg/6Mrb8MwteQ
How to use Discord : https://youtu.be/AEwPtYiLvsQ
*** In Lecture 17: ***
What are Popovers and how to initialize them and dismiss them with different ways
Progress bars, Progress, Labels, height, width, Backgrounds, Multiple bars , Striped bar, Animated stripes
What is Scrollspy, How it works, Example in navbar, Example with nested nav, Example with list-group, position relative requirement
Spinners, Border spinner, Colored spinners, Growing spinner, Alignment, Margin, Placement, Floats, Text align and Size of spinners, spinners inside Buttons
Toasts, Examples, Live demo, Translucent, Stacking, Color schemes, Placement
Tooltips, Example: Enable tooltips everywhere, Examples, Usage, activation, Markup, Options
Helpers in Bootstrap 5 : Clearfix, Colored links, ratio, aspect ratios
Position, Fixed top, Fixed bottom, Sticky top, Responsive sticky top, Visually hidden
Stretched link, Text truncation
background colors and Background gradient
borders border size border width border color
colors and text colors
Display in print
Interactions, Text selection, Pointer events
Shadows, box shadow
Sizing,Relative to the parent, Relative to the viewport
Spacing, margin, padding, gap
Text, Text alignment, Text wrapping and overflow, Word break, Text transform, Font size, Font weight and italics, Monospace, line height, Reset color, Text decoration
Vertical alignment
Display none takes no space in browser flow however visibility invisible takes space but not visible
How to design a custom authentication and login system with using session set string get string and serialize deserialize object methodoloy
Please subscribe and make comments.
This course requires fundamental knowledge about programming and C#. So please watch our below playlists related to C#.
Our courses playlists are like below:
[1] Introduction to Programming Full Course with C# playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffskoSXySh0MdiayPJsBZ7m2o
[2] Advanced #Programming with C# Full Course Playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffslHaBdS3RUW26RKzSjkl8m4
[3] Object Oriented Programming Full Course with C# playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffsnH3XJb66FDIHh1yHwWC26I
[4] Asp.NET Core V5 - MVC Pattern - Bootstrap V5 - Responsive Web #Programming with C# Full Course Playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffsnAWtgk4ja3HN3xgMKF7BOE
[5] Artificial Intelligence (AI) and Machine Learning (ML) Full Course with C# Examples playlist: https://www.youtube.com/playlist?list=PL_pbwdIyffskVschrADCL6KEnL_nqDtgD
[6] Software Engineering Full Course playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffslgxMVyXhnHiSn_EWTvx1G-
[7] Security of Information Systems Full Course playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffslM_o92NwkaUzD7C6Fekx26
[8] (Turkish) Bilgisayar Becerileri Tam Ders playlist : https://www.youtube.com/playlist?list=PL_pbwdIyffsmyE2e909ea1MXLcMb8MenG
auto subtitle timing : NA
Video Transcription
00:00:02 hello dear students welcome to the lecture 17 of responsive web design with
00:00:05 lecture 17 of responsive web design with asp.net 5 and then we see pattern and
00:00:07 asp.net 5 and then we see pattern and bootstrap 5.
00:00:08 bootstrap 5. uh so we were left at popovers of
00:00:11 uh so we were left at popovers of a bootstrap uh before doing that let's
00:00:15 a bootstrap uh before doing that let's start with cloning our
00:00:35 and meanwhile it is getting open as we can
00:00:37 can continue reading
00:00:45 okay okay so pop overs overlap
00:00:54 overview things to know when using the popover plug-in
00:00:56 popover plug-in popovers rely on the third party library
00:00:59 popovers rely on the third party library popper for positioning
00:01:01 popper for positioning you must include popper.minjs before
00:01:04 you must include popper.minjs before bootstrap.js
00:01:05 bootstrap.js or use
00:01:11 bootstrap.bundle.minjs.bootstrap.bundle.js which contains popper in order for
00:01:12 which contains popper in order for popovers to work
00:01:14 popovers to work this is the bundle that we have already
00:01:18 this is the bundle that we have already included in our project therefore it
00:01:20 included in our project therefore it will
00:01:21 will work it is working actually we have
00:01:23 work it is working actually we have already tested that
00:01:26 already tested that popovers require the tooltip plug-in as
00:01:28 popovers require the tooltip plug-in as a dependency
00:01:30 a dependency popovers are opt-in for performance
00:01:32 popovers are opt-in for performance reasons so you must initialize them
00:01:34 reasons so you must initialize them yourself
00:01:36 yourself so these are not automatically
00:01:38 so these are not automatically initialized we have to initialize them
00:01:40 initialized we have to initialize them ourselves zero length title and content
00:01:44 ourselves zero length title and content values will never show a popover
00:01:47 values will never show a popover specify container body to avoid
00:01:49 specify container body to avoid rendering problems in more complex
00:01:51 rendering problems in more complex components
00:01:52 components like our input groups button groups etc
00:01:56 like our input groups button groups etc triggering popovers on hidden elements
00:01:58 triggering popovers on hidden elements will not work
00:02:00 will not work popovers four dot disabled or disabled
00:02:02 popovers four dot disabled or disabled elements must be triggered on a wrapper
00:02:04 elements must be triggered on a wrapper element
00:02:06 element when triggered from anchors that wrap
00:02:08 when triggered from anchors that wrap across multiple lines
00:02:09 across multiple lines popovers will be centered between the
00:02:11 popovers will be centered between the anchors overall width
00:02:13 anchors overall width use text no wrap on your a greater than
00:02:16 use text no wrap on your a greater than s to avoid this behavior
00:02:19 s to avoid this behavior popovers must be hidden before their
00:02:21 popovers must be hidden before their corresponding elements have been removed
00:02:23 corresponding elements have been removed from the dom
00:02:24 from the dom so you have to hide them before remove
00:02:27 so you have to hide them before remove the element that
00:02:29 the element that they are binded
00:02:35 okay let's rename our project as usual
00:03:47 okay oh we also need to name this with controller extension
00:03:55 actually name appending okay and yeah let's add
00:04:05 director by the way i have to remove root from lecture
00:04:07 root from lecture 16 otherwise it would complete okay
00:04:10 16 otherwise it would complete okay everything is ready
00:04:11 everything is ready and let's open our index let's save this
00:04:16 and let's open our index let's save this close all other tabs
00:04:20 close all other tabs okay now we can start our examples so
00:04:23 okay now we can start our examples so you see we can
00:04:24 you see we can we need to initialize them
00:04:29 we need to initialize them like this
00:04:32 like this so let's copy this pop over
00:04:36 so let's copy this pop over here and
00:04:39 here and now i need to initialize it so
00:04:42 now i need to initialize it so where is the pop over okay here the
00:04:45 where is the pop over okay here the content of popover
00:04:46 content of popover database content and
00:04:50 database content and i need to initialize it as
00:04:58 of course the script therefore i need to visualize it right pop over neighbors
00:05:01 visualize it right pop over neighbors example pop over
00:05:05 example pop over so it is using class example pop over
00:05:07 so it is using class example pop over but
00:05:09 but we don't have that yet in our
00:05:13 we don't have that yet in our [Music]
00:05:24 let's give an id to this or
00:05:32 let's add an extra class here pop class
00:05:40 like this and i'm going to use that as a selector
00:05:49 this is not the way we did it let me check from our picture 16 we had a
00:05:53 check from our picture 16 we had a working example here
00:06:00 so yeah it was like this this is a better way
00:06:01 better way so you see we are using when the
00:06:03 so you see we are using when the document load is ready
00:06:07 document load is ready we are selecting
00:06:10 we are selecting database toggle equal pop over like this
00:06:13 database toggle equal pop over like this so we are getting all database toggle
00:06:16 so we are getting all database toggle elements which are equal to pop over
00:06:20 elements which are equal to pop over with this a jquery selector and then we
00:06:23 with this a jquery selector and then we call pop over
00:06:25 call pop over command this is the most
00:06:30 command this is the most optimal way
00:06:35 it will initialize all of the pop workers at once
00:06:41 so can we have multiple pop overs at the top at
00:06:42 top at any time um
00:06:58 that's ready to open okay let's stop it
00:07:06 [Music] let's add some
00:07:17 okay and one
00:08:05 oh i see the error is coming from tooltip because we have no
00:08:13 tooltip because we have no uh tooltip right now
00:08:31 so let's replace by the way you see there is lecture 15 written here
00:08:34 there is lecture 15 written here uh in order to fix that we need to
00:08:37 uh in order to fix that we need to change our
00:08:38 change our um
00:08:41 um under shaded layout cshtml
00:08:44 under shaded layout cshtml here i need to change it as lecture 17
00:08:53 and okay so it says popover is not a function
00:09:00 and did we include anything else here in lecture 16
00:09:14 oh i see we had included but these are different things
00:09:17 but these are different things yeah this is table jump related
00:09:20 yeah this is table jump related stop and
00:09:36 yeah we don't have that let's check out layout in the layout we
00:09:39 let's check out layout in the layout we have
00:09:40 have javascript booster bundle mean so we
00:09:43 javascript booster bundle mean so we already have
00:09:45 already have bootstrap bundle it also says we need to
00:09:49 bootstrap bundle it also says we need to have a tooltip plugin
00:09:52 have a tooltip plugin and is this a different thing
00:10:37 oh you can't see it here oh i see it here
00:10:39 here so they have used
00:10:40 so they have used [Music]
00:10:43 [Music] document query circuit all this power
00:10:45 document query circuit all this power for each function you will swap up over
00:10:47 for each function you will swap up over okay
00:10:48 okay they have used this for their pop over
00:10:53 they have used this for their pop over and you want ready documentaries like
00:10:58 and you want ready documentaries like this
00:11:04 okay let's test this if it is working or not
00:11:14 i see so you see it says that the integrity attribute is not
00:11:19 the integrity attribute is not verified that was let's remove that
00:11:22 verified that was let's remove that integrity
00:11:23 integrity from
00:11:35 it is oh it is here let's remove it now it should it shouldn't get local
00:11:43 of course i need to refresh okay okay now no errors and now it is working
00:11:46 now no errors and now it is working amazing we can have both of them and
00:11:51 amazing we can have both of them and what about our previous selectors like
00:11:55 what about our previous selectors like this
00:11:56 this and yeah still working okay
00:12:01 and yeah still working okay so it was related to secret blocking to
00:12:03 so it was related to secret blocking to it integrity check
00:12:05 it integrity check and once i have removed it it is working
00:12:09 and once i have removed it it is working i don't know maybe we have changed
00:12:10 i don't know maybe we have changed something so it
00:12:12 something so it affected its integrity and you see we
00:12:15 affected its integrity and you see we can have multiple pop overs they are not
00:12:17 can have multiple pop overs they are not getting close
00:12:18 getting close by default when we click somewhere else
00:12:21 by default when we click somewhere else uh we need to
00:12:22 uh we need to click it again for pop over to get
00:12:30 close let's continue with the example here
00:12:32 here you see there can be four directions uh
00:12:35 you see there can be four directions uh like here
00:12:38 like here okay let's close this
00:12:41 okay let's close this i can close this
00:12:48 okay and dismiss on next click okay so we can also set that
00:12:50 we can also set that uh you probably already
00:12:53 uh you probably already remembered that in the previous lectures
00:13:02 so it must have [Music]
00:13:04 [Music] okay database trigger focus i think this
00:13:07 okay database trigger focus i think this is the
00:13:08 is the keyboard so let's make
00:13:11 keyboard so let's make one of them dismissible okay here
00:13:15 one of them dismissible okay here uh this misa will
00:13:19 uh this misa will uh to make it dismissible i am adding
00:13:21 uh to make it dismissible i am adding database trigger
00:13:24 database trigger when i refresh okay this is dismissible
00:13:26 when i refresh okay this is dismissible you see
00:13:27 you see when i click somewhere else it is
00:13:29 when i click somewhere else it is getting dismissed and this is not
00:13:31 getting dismissed and this is not for this you have to click here all
00:13:34 for this you have to click here all right
00:13:35 right and disabled elements so disable it
00:13:39 and disabled elements so disable it pop over automatically getting
00:13:42 pop over automatically getting triggered that's
00:13:45 triggered that's when you hover your mouse
00:13:49 when you hover your mouse like here and auto let's
00:13:52 like here and auto let's dismiss it so it has database trigger
00:13:55 dismiss it so it has database trigger hover
00:13:56 hover and focus
00:14:04 since it is the same lot you see for default we don't provide any
00:14:06 you see for default we don't provide any triggers and by default it is being
00:14:09 triggers and by default it is being uh click triggers
00:14:13 uh click triggers so let's write our notes as usual
00:14:17 so let's write our notes as usual in extra 17
00:14:26 and also initialize them and
00:14:41 all right let's continue to the next okay which is progress
00:14:59 correcting documentation and examples for using
00:15:01 documentation and examples for using bootstrap custom progress bars featuring
00:15:03 bootstrap custom progress bars featuring support for stacked bars
00:15:05 support for stacked bars animated backgrounds and text labels
00:15:08 animated backgrounds and text labels on this okay so how it looks how
00:15:11 on this okay so how it looks how it works progress components are built
00:15:15 it works progress components are built with two html elements
00:15:17 with two html elements some css to set the width and a few
00:15:19 some css to set the width and a few attributes
00:15:21 attributes we don't use the html5 progress element
00:15:23 we don't use the html5 progress element ensuring you can stack progress bars
00:15:26 ensuring you can stack progress bars animate them and place text labels over
00:15:28 animate them and place text labels over them
00:15:29 them we use the dot progress as a wrapper to
00:15:32 we use the dot progress as a wrapper to indicate the max value of the progress
00:15:34 indicate the max value of the progress bar
00:15:35 bar we use the inner dot progress bar to
00:15:37 we use the inner dot progress bar to indicate the progress so far
00:15:40 indicate the progress so far the dot progress bar requires an inline
00:15:43 the dot progress bar requires an inline style utility class
00:15:44 style utility class or custom css to set their width
00:15:48 or custom css to set their width the dot progress bar also requires some
00:15:50 the dot progress bar also requires some role and aria attributes to make it
00:15:52 role and aria attributes to make it accessible
00:15:54 accessible put that all together and you have the
00:15:56 put that all together and you have the following examples
00:15:57 following examples okay let's copy them and test them
00:16:02 okay let's copy them and test them so we have div class progress path
00:16:05 so we have div class progress path progress as a main wrapper than we have
00:16:08 progress as a main wrapper than we have in line
00:16:09 in line progress bar role progress bar idea
00:16:12 progress bar role progress bar idea value now is 0
00:16:13 value now is 0 which means what kind of percentage
00:16:16 which means what kind of percentage value it has
00:16:18 value it has and
00:16:23 uh actually this is really this may be related to
00:16:24 related to screen readers or not i'm not sure
00:16:29 screen readers or not i'm not sure and it has value marks
00:16:32 and it has value marks okay so this is probably
00:16:36 okay so this is probably yeah related to the screen readers i
00:16:39 yeah related to the screen readers i believe it won't
00:16:41 believe it won't have any effect when i remove them
00:16:49 okay and of course i will need to have
00:17:04 some separation because they are pretty much stacked
00:17:07 because they are pretty much stacked and let's also have
00:17:11 and let's also have some new line between them
00:17:19 some new line between them okay yeah idea uh this area label is
00:17:22 okay yeah idea uh this area label is just for screen readers
00:17:25 just for screen readers and when you set their width like this
00:17:28 and when you set their width like this it means
00:17:29 it means how much person is progressing
00:17:39 also we can have we can use this uh width as well but
00:17:42 we can use this uh width as well but that is
00:17:44 that is it doesn't have all it has only 0 25
00:17:48 it doesn't have all it has only 0 25 50 75 and 100
00:17:52 50 75 and 100 okay so how can we also have
00:18:00 a label it is pretty simple like this so let's say our progress is 12 percent
00:18:19 is completed how it looks and
00:18:23 how it looks and some longer text
00:18:32 okay yeah you see you cannot see the rest of
00:18:33 rest of it if the text is over
00:18:37 it if the text is over dash and what about if you make it like
00:18:40 dash and what about if you make it like this
00:18:48 yeah so whichever the site you put your text it will be visible there
00:18:56 and you can also set head custom head like this so let's set a
00:19:00 custom head like this so let's set a custom head
00:19:02 custom head inside style for example height
00:19:06 inside style for example height 40 pixels
00:19:11 40 pixels and where it is
00:19:21 okay why this isn't working because i think we need to set the
00:19:22 think we need to set the head in here
00:19:38 we can also have different uh backgrounds these are the usual
00:19:42 backgrounds these are the usual utility classes or bootstrap
00:19:52 for example i added here and it changes like that i can also change i think the
00:19:55 like that i can also change i think the progress bar
00:19:56 progress bar as bg dot
00:19:59 as bg dot dangerous yeah
00:20:03 dangerous yeah okay and you can also stack
00:20:07 okay and you can also stack multiple bars like this
00:20:20 okay let's stack multiple bars and you can write different uh
00:20:24 and you can write different uh texts inside them like 15 percent
00:20:28 texts inside them like 15 percent 30 percent and 20 percent
00:20:41 yeah actually this is being 45 percent and this is being 65
00:20:44 and this is being 65 when you take it from the zero
00:20:48 when you take it from the zero okay and you can also have stripe it
00:20:53 okay and you can also have stripe it so we add bar striper to
00:20:56 so we add bar striper to our progress bar class
00:20:59 our progress bar class here like this
00:21:02 here like this and it becomes striped but it is zero so
00:21:06 and it becomes striped but it is zero so we need to add some weight to this
00:21:21 yeah you see and we can also have animation
00:21:36 like uh it is added to the inside progress part so
00:21:38 progress part so here however it requires some activation
00:21:42 here however it requires some activation probably
00:21:50 let's see for animation of course probably we also need
00:22:13 so database toggle button id animated progress ic
00:22:26 and let's add animation to be able to have animation
00:22:36 we need to have an id so the id it takes is
00:22:40 so the id it takes is animated progress
00:23:51 this may be inside their javascript file which they include here here
00:23:54 which they include here here so you see when it's clicked
00:23:57 so you see when it's clicked it adds an event listener
00:24:02 it adds an event listener which adds progress were animated
00:24:06 which adds progress were animated oh it's called toggle
00:24:26 i see so on click [Music]
00:24:29 [Music] we can have onclick method on click
00:24:44 [Music] progress
00:24:47 progress animate they are here the inside thing
00:24:52 animate they are here the inside thing i mean this is
00:25:01 so on click we can execute a javascript method
00:25:04 a javascript method animate bash
00:25:11 okay and for animate part let's write a
00:25:14 animate part let's write a method here function
00:25:29 jquery it will select this class
00:25:33 it will select this class and it will call toggle method
00:25:45 okay oh by default it is animating i see so when you add this
00:25:48 so when you add this it is automatically animating if i
00:25:51 it is automatically animating if i remove this
00:25:52 remove this [Music]
00:25:54 [Music] and
00:25:56 and yeah it stops animation
00:25:59 yeah it stops animation so to be able to have it animating
00:26:09 id equal to animate i need to add this class so what i'm
00:26:11 i need to add this class so what i'm going to do is
00:26:14 going to do is pick this as animate and
00:26:18 pick this as animate and add a class okay you see there is add
00:26:21 add a class okay you see there is add class
00:26:23 class like this okay okay
00:26:26 like this okay okay and
00:26:31 so it will start animation however it won't remove it to be able to remove
00:26:33 won't remove it to be able to remove it what we need to do is
00:26:38 it what we need to do is this okay if
00:26:53 press class this then we need to remove glass
00:27:12 and then we need to return okay to to be able to return of course we need
00:27:14 to be able to return of course we need to encapsulate it like this
00:27:18 to encapsulate it like this and if it doesn't have classic it will
00:27:21 and if it doesn't have classic it will continue to execute
00:27:25 continue to execute you see now i can animate it or remove
00:27:27 you see now i can animate it or remove it
00:27:33 okay and okay that's it
00:27:41 okay so progress bars progress um
00:28:23 animated stripes okay that's it let's continue to scroll spy
00:28:30 okay spy automatically update bootstrap
00:28:33 spy automatically update bootstrap navigation or list group components
00:28:35 navigation or list group components based on scroll position to indicate
00:28:37 based on scroll position to indicate which link is currently active in the
00:28:39 which link is currently active in the viewport
00:28:40 viewport yeah i have seen examples of this
00:28:43 yeah i have seen examples of this actually
00:28:49 i don't have any memorized website right now to show what i have seen
00:28:50 now to show what i have seen example of this how it works
00:28:54 example of this how it works scroll spy has a few requirements to
00:28:56 scroll spy has a few requirements to function properly
00:28:59 function properly it must be used on a bootstrap nav
00:29:01 it must be used on a bootstrap nav component or list group
00:29:04 component or list group scroll spy requires position relative on
00:29:06 scroll spy requires position relative on the element you're spying on
00:29:08 the element you're spying on usually the body anchors a are required
00:29:11 usually the body anchors a are required and must point to an element with that
00:29:13 and must point to an element with that id
00:29:15 id when successfully implemented your nav
00:29:17 when successfully implemented your nav or list group will update accordingly
00:29:19 or list group will update accordingly moving the dot active class from one
00:29:21 moving the dot active class from one item to the next based on their
00:29:23 item to the next based on their associated targets
00:29:26 associated targets containers and keyboard access
00:29:29 containers and keyboard access if you're making a scrollable container
00:29:31 if you're making a scrollable container other than the body
00:29:33 other than the body be sure to have a height set and
00:29:34 be sure to have a height set and overflow eye scroll
00:29:36 overflow eye scroll applied to it alongside a tab index
00:29:38 applied to it alongside a tab index equals zero to ensure keyboard access
00:29:41 equals zero to ensure keyboard access okay so there's an example let's test
00:29:44 okay so there's an example let's test that example
00:30:03 you see when i click it it goes to the dead position with adding this
00:30:07 dead position with adding this hashtag to the end of to url
00:30:11 hashtag to the end of to url but where it was close by here
00:30:20 okay h4 id second heading i see so when we add this it is
00:30:24 i see so when we add this it is just adding this to the end of the
00:30:28 just adding this to the end of the url and
00:30:36 url and okay we can't see it so let's add it to
00:30:38 okay we can't see it so let's add it to the bottom of the page
00:30:57 let's add multiple of them to uh of course these cause some problems
00:31:04 course these cause some problems um [Music]
00:31:08 [Music] okay um
00:31:33 okay we need to remove extra one here but now this is what i what i didn't
00:31:37 but now this is what i what i didn't mean
00:31:38 mean when we changed this scroll it was
00:31:41 when we changed this scroll it was highlighting somewhere around here
00:31:43 highlighting somewhere around here let's continue with the example
00:31:47 let's continue with the example okay
00:31:55 i see so this is working but you see
00:31:59 but you see our example is not this is probably due
00:32:02 our example is not this is probably due to
00:32:09 [Music] we don't have
00:32:15 we don't have such area
00:32:24 which is called this add a b plus equal to containers and let's set
00:32:28 containers and let's set height
00:32:38 okay max height equal to 100 pixel and then it should become scrollable
00:32:40 and then it should become scrollable auto scroll
00:33:54 definitely this example is incompleted given here let's check from source code
00:34:35 yeah okay this is the correct example so [Music]
00:35:01 okay so it has h to example div class be the example now for example
00:35:05 div class be the example now for example now when our light bg.ph3
00:35:13 was still looks like we are missing something here
00:35:23 okay i think we need to set our number fixed
00:35:42 now we were setting our number fixed here
00:35:53 from the okay this is 0.4 let's open 0.5
00:35:59 0.4 let's open 0.5 fix it so for
00:36:02 fix it so for fix it we add
00:36:22 ah we have to fix it uh top to the null bar
00:36:24 bar which is here's okay
00:36:28 which is here's okay and then we refresh
00:36:40 inside yeah not working so why we can't make
00:36:44 yeah not working so why we can't make the example
00:37:13 okay uh let me check this from source codes
00:37:22 of this number is top of it or here
00:37:34 so you see it has database targets now our example
00:37:35 our example so let's just copy this
00:37:43 and paste it to our example here
00:37:50 okay so there are some key issues uh first the number is just above
00:37:53 first the number is just above uh the div which has database by scroll
00:37:59 uh the div which has database by scroll database target number example two which
00:38:02 database target number example two which is written here
00:38:04 is written here as an id and database offset 0
00:38:08 as an id and database offset 0 and classic close by example and this is
00:38:11 and classic close by example and this is the custom plus probably they have and
00:38:12 the custom plus probably they have and top index 0
00:38:15 top index 0 so now when i refresh it will
00:38:18 so now when i refresh it will work i'm pretty sure but so it is
00:38:21 work i'm pretty sure but so it is related to this i think this is related
00:38:23 related to this i think this is related to its
00:38:24 to its style 8
00:38:28 style 8 let's make it 300 pixels
00:38:32 let's make it 300 pixels refresh okay i think
00:38:35 refresh okay i think i also need to add
00:38:46 sucral overflow i auto let's refresh
00:38:50 auto let's refresh okay and okay there's still something
00:38:54 okay and okay there's still something wrong
00:39:02 um but maybe still wrong
00:39:12 okay we have idea of our number and
00:39:22 we have database for scroll target as example 2
00:39:41 okay so why not working
00:39:50 okay it is going to the first heading second heading and
00:39:52 second heading and 15 or something you see
00:39:56 15 or something you see however they are not highlighted
00:40:06 i think it is because they are wrapped inside another class not the body itself
00:40:18 so the key issue is related to probably it's across by example let's see this
00:40:20 it's across by example let's see this class
00:40:22 class okay it has position relative height
00:40:25 okay it has position relative height and marginal here so we need to set
00:40:28 and marginal here so we need to set position relative
00:40:31 position relative [Music]
00:40:45 let's refresh okay now it has appeared all right that's it you see when you
00:40:48 all right that's it you see when you work with the examples
00:40:49 work with the examples provided here sometimes you need to
00:41:05 okay there is nothing oh you see it also told us to add
00:41:09 it also told us to add body position relative otherwise it
00:41:11 body position relative otherwise it won't work
00:41:12 won't work but we have discovered is already
00:41:14 but we have discovered is already ourselves
00:41:21 and okay that's it if you want to use it you
00:41:23 okay that's it if you want to use it you can look more
00:41:48 example with nested now this is just saying nothing different
00:41:57 by the way when you click two it's not working very well
00:41:59 working very well yeah wait even the example doesn't work
00:42:09 and this group is just you using this group nothing
00:42:13 is just you using this group nothing [Music]
00:42:14 [Music] different
00:42:30 requirement okay and the sippiness
00:42:41 spinners indicate the loading state of a component or page with bootstrap
00:42:43 component or page with bootstrap spinners
00:42:43 spinners built entirely with html css and no
00:42:47 built entirely with html css and no javascript
00:42:48 javascript okay we had i have shown example of
00:42:51 okay we had i have shown example of loading
00:42:52 loading spinners or image
00:42:55 spinners or image in the previous lectures but we had used
00:42:59 in the previous lectures but we had used a
00:43:00 a an image for that task probably it is
00:43:03 an image for that task probably it is still here let me see
00:43:05 here let me see [Music]
00:43:13 okay here fidget spinner and instead of that in which now we are
00:43:15 instead of that in which now we are going to use
00:43:16 going to use uh the spinner of a
00:43:21 uh the spinner of a bootstrap it's a built-in spinach that
00:43:23 bootstrap it's a built-in spinach that you can just
00:43:25 you can just call that as a class here
00:43:28 call that as a class here visually hidden loading
00:43:36 and you see loading text is visually hidden
00:43:37 hidden it just it is just for
00:43:49 let's say screen readers to read you see the visually hidden has
00:43:52 you see the visually hidden has i think display
00:43:58 visibility hidden of let's see which class is that
00:44:04 so visual hidden means that um [Music]
00:44:06 [Music] yeah its position is absolute and margin
00:44:10 yeah its position is absolute and margin -1 which means it is not inside the
00:44:13 -1 which means it is not inside the screen it is at the
00:44:15 screen it is at the top left of the screen with -1
00:44:21 top left of the screen with -1 margin if i change margin of this like
00:44:25 margin if i change margin of this like 11 okay
00:44:29 11 okay um i also need to change its
00:44:33 um i also need to change its width and height
00:44:37 width and height position absolute and now it works
00:44:39 position absolute and now it works you've seen loading
00:44:40 you've seen loading it is even spinning as well
00:44:43 it is even spinning as well all right and there's growing spinach so
00:44:48 all right and there's growing spinach so different classes
00:44:49 different classes you can use all of them alignments
00:44:53 you can use all of them alignments like this which has a margin of 5
00:44:58 like this which has a margin of 5 placements i wonder if they have size
00:45:01 placements i wonder if they have size yeah
00:45:01 yeah they also have size you can even set
00:45:05 they also have size you can even set custom sizes that is great so let's
00:45:21 okay width equal to 50 pixels and head equal to 50 pixels
00:45:33 okay you see the first one has 50 pixels with an 8 and you can even
00:45:37 with an 8 and you can even show simply inside the button
00:45:45 so it's it is this can be also used when you post back
00:45:46 you post back and disable button for from clicking
00:45:50 and disable button for from clicking so it will show loading button like this
00:45:53 so it will show loading button like this uh you see it is not clickable to make it
00:45:56 you see it is not clickable to make it non-click not clickable we add disabled
00:45:59 non-click not clickable we add disabled role here
00:46:02 role here and okay that's it
00:46:08 so how you activate spinner is totally related to you when you post page to the
00:46:11 related to you when you post page to the server
00:46:13 server you need to add necessary clusters to
00:46:15 you need to add necessary clusters to those elements
00:46:17 those elements and remove them from those classes when
00:46:19 and remove them from those classes when the
00:46:20 the prospect is completed we have made
00:46:24 prospect is completed we have made example of that actually
00:46:26 example of that actually the previous lectures you can look for
00:46:28 the previous lectures you can look for them
00:46:43 however for my developed games i use
00:46:46 developed games i use a web pa spinach i mean an image spinach
00:46:51 a web pa spinach i mean an image spinach because it looks i think cooler
00:46:57 because it looks i think cooler okay so growing spinach
00:47:06 and alignment placement whatever you want you can
00:47:09 placement whatever you want you can always mix
00:47:11 always mix losses of bootstrap to obtain
00:47:20 different results you can also float text line
00:47:30 like here you see it take center that's it there's nothing different here that's
00:47:32 it there's nothing different here that's nothing
00:47:33 nothing special here
00:48:05 okay so toasts push notifications to your
00:48:09 toasts push notifications to your visitors with a toast
00:48:10 visitors with a toast a lightweight and easily customizable
00:48:12 a lightweight and easily customizable alert message
00:48:18 toasts are lightweight notifications designed to mimic the push notifications
00:48:20 designed to mimic the push notifications that have been popularized by mobile and
00:48:22 that have been popularized by mobile and desktop operating systems
00:48:24 desktop operating systems they're built with flexbox so they're
00:48:26 they're built with flexbox so they're easy to align and position
00:48:29 easy to align and position overview things to know when using the
00:48:32 overview things to know when using the toast plugin
00:48:34 toast plugin toasts are opt-in for performance
00:48:36 toasts are opt-in for performance reasons so you must initialize them
00:48:38 reasons so you must initialize them yourself
00:48:40 yourself toasts will automatically hide if you do
00:48:42 toasts will automatically hide if you do not specify autohide
00:48:44 not specify autohide false it's also an automatic
00:48:53 okay so there are some examples let's start
00:48:54 start basic to encourage extensible and
00:48:57 basic to encourage extensible and predictable toasts
00:48:58 predictable toasts we recommend a header and body toast
00:49:01 we recommend a header and body toast headers use display
00:49:03 headers use display flex allowing easy alignment of content
00:49:05 flex allowing easy alignment of content thanks to our margin and flexbox
00:49:07 thanks to our margin and flexbox utilities
00:49:09 utilities toasts are as flexible as you need and
00:49:11 toasts are as flexible as you need and have very little required markup
00:49:14 have very little required markup at a minimum we require a single element
00:49:16 at a minimum we require a single element to contain your toasted content
00:49:18 to contain your toasted content and strongly encourage a dismiss button
00:49:21 and strongly encourage a dismiss button well this looks pretty cool and easy
00:49:30 okay something like this and here it is not visible by default so
00:49:33 and here it is not visible by default so we need a trigger
00:49:45 um okay like this i think i will do it with
00:49:48 okay like this i think i will do it with the trigger like this
00:49:55 okay so position fixed it says i will [Music]
00:49:56 [Music] use
00:49:58 use [Music]
00:50:16 so what happens if we don't put this it probably still won't work
00:50:22 okay to make it work we need to initialize it how to initialize it
00:50:24 initialize it how to initialize it let's see
00:50:37 okay like this so let's add this code to our
00:50:41 let's add this code to our script towards this slice called
00:50:43 script towards this slice called document correct host
00:50:50 okay uh yeah it should do work i think so let's have page
00:51:04 i think i will use this oh i see because we have added it to the
00:51:07 oh i see because we have added it to the correct place
00:51:08 correct place so let's just use the jquery
00:51:12 so let's just use the jquery it will select all toast
00:51:21 class elements like this and it will call
00:51:26 and it will call um toast yeah
00:51:31 um toast yeah i'm on the physical vlog
00:51:48 yeah um so toast is not supported
00:52:05 no um let's use the
00:52:19 maybe it is because we didn't add a position to it
00:52:21 position to it so
00:52:46 okay okay i still can't see it
00:53:52 i think we need to trigger it with a bottom click
00:53:56 bottom click so it will be like this toast button on
00:53:59 so it will be like this toast button on click
00:53:59 click so i see so it returns source list and
00:54:04 so i see so it returns source list and from toast each toast show
00:54:13 so do we have a button with id id is this so we need to give this id to
00:54:18 id is this so we need to give this id to this so this is basically assigning an
00:54:22 this so this is basically assigning an event
00:54:24 event to this button
00:54:31 so when we click it yeah now we can see the toast
00:54:32 the toast appearing so does it have auto height
00:54:38 appearing so does it have auto height yeah okay it is working
00:54:42 yeah okay it is working and so this is a
00:54:45 and so this is a height class
00:54:52 it has a height button it has a close button
00:55:07 sourced i think it hides all the toasts
00:55:16 so let's try multiple toasts it was some it was somewhere around here
00:55:25 okay toast containers yeah let's try this
00:55:33 like this so those containers can contain multiple toasts
00:55:35 contain multiple toasts for steadily toast ideally assertive
00:55:37 for steadily toast ideally assertive ariata material
00:55:39 ariata material database yes gloss
00:55:43 database yes gloss meteor cloth it will close the toast
00:55:48 meteor cloth it will close the toast i think it closes the party post
00:55:52 i think it closes the party post so let's test
00:55:56 so let's test yeah they have appeared here
00:55:59 yeah they have appeared here by the way they are taking space here it
00:56:01 by the way they are taking space here it is
00:56:03 is i think it shouldn't be like that
00:56:32 oh we can even have middle centers [Music]
00:56:59 so it is like this yeah talks i have 15 to have that let's add it here
00:57:03 to have that let's add it here we'll toast containers let's refresh
00:57:07 we'll toast containers let's refresh oh no we can't even click it
00:57:13 oh no we can't even click it let's see the source code
00:57:32 maybe we need to put these inside this machine
00:57:41 this machine um yes and he is
00:59:05 oh i see but this is very based by the way
00:59:07 way when i added a bias now it is gone
00:59:11 when i added a bias now it is gone to wash
00:59:18 wow i see you see after i have added this brt uh
00:59:21 after i have added this brt uh depos position relative now it has
00:59:24 depos position relative now it has zero height and therefore not taking any
00:59:28 zero height and therefore not taking any space and when i click it i can see it
00:59:30 space and when i click it i can see it like here
00:59:33 like here and if i want to set them
00:59:36 and if i want to set them [Music]
00:59:40 [Music] center
00:59:59 so defects justify content centered and i item center with 100 percent
01:00:03 i item center with 100 percent this will be the class of the
01:00:14 deep area leave and from here or not okay let's make the container id
01:00:17 or not okay let's make the container id like this i'm in the class
01:00:20 like this i'm in the class so let's try this way
01:00:24 so let's try this way okay still take now they're taking space
01:00:27 okay still take now they're taking space again
01:00:28 again so we need to keep
01:00:56 okay they are centered but they are taking space
01:01:23 container position should be relative and
01:01:24 and [Music]
01:01:27 [Music] okay so the container will be relative
01:01:30 okay so the container will be relative which is here
01:01:32 which is here and this will help position absolute
01:01:36 and this will help position absolute like this so it won't take space
01:01:43 and when we click it okay now we can see it however
01:01:52 um let's see that's the uh use
01:02:07 okay how it makes position
01:03:09 i wonder if there is a class for z index for boost up
01:03:30 now so we need to add that ourselves okay so it won't get behind
01:03:35 okay so it won't get behind yeah uh but the way it
01:03:39 yeah uh but the way it is being displayed is not what i want
01:03:45 is being displayed is not what i want you see this is the toast position
01:03:48 you see this is the toast position relative uh i want to set it
01:03:52 relative uh i want to set it center of the page so
01:03:58 center of the page so let's see if wrong here i think it was
01:04:00 let's see if wrong here i think it was this
01:04:01 this somewhere around here
01:04:22 manual center here let's try this so we will keep position
01:04:26 so we will keep position reality
01:04:45 so this way okay it is working but if it is it is taking space or not so let's
01:04:48 is it is taking space or not so let's find it out
01:04:49 find it out no it is not taking any space zero uh
01:04:52 no it is not taking any space zero uh and zero so
01:04:53 and zero so this is what we were looking for and now
01:04:56 this is what we were looking for and now it is being displayed here i can also
01:04:58 it is being displayed here i can also set it
01:04:59 set it top right like tab 0
01:05:03 top right like tab 0 starts and 0
01:05:07 starts and 0 i think it should work
01:05:15 okay one of them is visible and the other one is not so
01:05:18 other one is not so um top turn and
01:05:21 um top turn and 10 it's totally up to you
01:05:26 10 it's totally up to you oh now i can pretty so there's something
01:06:05 when we right it like that it is not working as expected
01:06:15 the other one is at the top so when we remove this
01:06:24 now this is taking space which isn't even
01:06:25 even working okay so the position is totally
01:06:29 working okay so the position is totally up
01:06:30 up to you and
01:06:34 to you and if you make it like this
01:06:46 i think instead of and i need to use start
01:08:02 let's see where it is okay so it is taking space right now
01:08:04 taking space right now therefore it is not as we want and the
01:08:07 therefore it is not as we want and the closed volumes
01:08:08 closed volumes is not working
01:08:21 so you need to work with the positioning
01:08:25 the positioning because by default they are taking space
01:08:28 because by default they are taking space in your
01:08:31 in your website
01:08:37 therefore you have to be careful with that
01:08:48 oh now it is working here so position relative to the very top then
01:08:52 position relative to the very top then inside container position absolute top
01:08:54 inside container position absolute top zero and zero p three
01:08:56 zero and zero p three padding three so this looks like the
01:08:59 padding three so this looks like the best
01:09:00 best option if you ask me okay
01:09:04 option if you ask me okay and yeah that's it about toasts
01:09:08 and yeah that's it about toasts so we can also set auto hide false and
01:09:12 so we can also set auto hide false and yeah that's it
01:09:45 means it blends with their backgrounds i think
01:09:47 think so you need to
01:09:55 yeah it blocks it down and
01:10:02 stacking okay custom content color schemes you
01:10:05 okay custom content color schemes you can also have
01:10:13 placement is a little bit problematic but we made it work at the
01:10:16 but we made it work at the and yeah
01:10:19 and yeah okay so the there is tooltips as a last
01:10:23 okay so the there is tooltips as a last component
01:10:32 tooltips documentation and examples for adding custom bootstrap tooltips with
01:10:34 adding custom bootstrap tooltips with css and javascript using css3 for
01:10:37 css and javascript using css3 for animations and data bs attributes for
01:10:39 animations and data bs attributes for local title storage
01:10:46 overview things to know when using the tooltip plugin
01:10:48 tooltip plugin tooltips rely on the third-party library
01:10:51 tooltips rely on the third-party library popper for positioning
01:10:53 popper for positioning you must include
01:10:57 popper.minjsbeforebootstrap.js or use
01:11:03 bootstrap.bundle.minjs.bootstrap.bundle.js which contains popper in order for
01:11:04 which contains popper in order for tooltips to work
01:11:07 tooltips to work tooltips are opt-in for performance
01:11:08 tooltips are opt-in for performance reasons so you must initialize them
01:11:10 reasons so you must initialize them yourself
01:11:12 yourself tooltips with zero length titles are
01:11:14 tooltips with zero length titles are never displayed
01:11:16 never displayed specify container body to avoid
01:11:19 specify container body to avoid rendering problems in more complex
01:11:20 rendering problems in more complex components
01:11:21 components like our input groups button groups etc
01:11:25 like our input groups button groups etc triggering tool tips on hidden elements
01:11:27 triggering tool tips on hidden elements will not work
01:11:29 will not work tooltips four dot disabled or disabled
01:11:31 tooltips four dot disabled or disabled elements must be triggered on a wrapper
01:11:33 elements must be triggered on a wrapper element
01:11:35 element when triggered from hyperlinks that span
01:11:37 when triggered from hyperlinks that span multiple lines
01:11:38 multiple lines tooltips will be centered okay it is
01:11:40 tooltips will be centered okay it is pretty much same
01:11:41 pretty much same as poppers
01:11:45 as poppers so we also need to initialize them
01:11:48 so we also need to initialize them so let's try
01:11:55 and where do we initialize it we initialize it with
01:12:03 data we are salty parting it was like that
01:12:15 okay you see it appears and it doesn't appear until i click it back
01:12:17 it doesn't appear until i click it back alright
01:12:18 alright okay okay
01:12:28 yeah working there are also options for tooltips
01:12:35 um i think can we keep timing and other things
01:12:45 yeah options so there are some options as animation building through
01:12:48 as animation building through containers delay you see that you can
01:12:50 containers delay you see that you can have a delay
01:12:52 have a delay uh like
01:12:55 uh like this so how do we provide delay to our
01:12:59 this so how do we provide delay to our tooltip
01:13:12 let's see if there's more examples somebody out here
01:13:26 okay database animation i see database delete problem so let's add
01:13:29 delete problem so let's add and delete the first one data bs delay
01:13:33 and delete the first one data bs delay equal to 1000 here
01:13:41 when i refresh okay it pretty much comes immediately and this comes yeah so this
01:13:45 immediately and this comes yeah so this is the way it works
01:13:46 is the way it works that is html so we can upload
01:13:49 that is html so we can upload html as well into tooltip what does that
01:13:52 html as well into tooltip what does that mean let me show
01:14:00 database html equal to true
01:14:03 equal to true and in the title let's add an
01:14:07 and in the title let's add an hr like this
01:14:10 hr like this html let's see how it looks
01:14:15 html let's see how it looks you see now this is working with hr
01:14:19 you see now this is working with hr and there is placement
01:14:22 and there is placement we can make a placement top right left
01:14:26 we can make a placement top right left it is by default auto uh selector
01:14:30 it is by default auto uh selector template so you see you can have a
01:14:33 template so you see you can have a template as well
01:14:39 the template is like this but you can change it
01:14:41 change it trigger hover focus you see you can also
01:14:45 trigger hover focus you see you can also change trigger as well like click i
01:14:48 change trigger as well like click i think manual pull back and
01:14:52 manual pull back and boundary custom class sanitize
01:15:00 so it is about sanitization of html alone lists
01:15:01 alone lists sanitize offset we can also set offset
01:15:05 sanitize offset we can also set offset like
01:15:11 2020 for example interviews offset equal to
01:15:16 interviews offset equal to 2020
01:15:25 you see there is some offset right now i can see it
01:15:27 can see it and okay so are there anything relating
01:15:31 and okay so are there anything relating to this miss no since it is too deep it
01:15:33 to this miss no since it is too deep it is automatically getting dismissed
01:15:36 is automatically getting dismissed if you want to remove this mix i think
01:15:39 if you want to remove this mix i think you need to have
01:16:06 is okay paul strap not
01:16:10 okay paul strap not auto hide tooltip i wonder if this is
01:16:25 oh i see when i initialize it there is trigger hover
01:16:53 i see with data delay we can set multiple
01:17:31 i see so we need to change uh trigger to hover instead of have over
01:17:34 trigger to hover instead of have over focus
01:17:40 and you can also bind events like this height
01:17:42 height but there is no option to disable auto
01:17:44 but there is no option to disable auto hide i think
01:18:27 options are up to you okay
01:18:40 12 tips um tooltips errors
01:18:54 okay usage creation
01:19:16 okay i think that is enough so enough helpers
01:19:27 clear fix quickly and easily clear floated content within a container by
01:19:29 floated content within a container by adding a clear fix utility
01:19:37 okay so the following example show how the clear fix can be used without the
01:19:39 the clear fix can be used without the clay fixed
01:19:40 clay fixed wrapping blue they would not spawn
01:19:42 wrapping blue they would not spawn around buttons which
01:19:43 around buttons which would cause broken layout so let's
01:19:47 would cause broken layout so let's test it the first one with a clear fix
01:19:52 test it the first one with a clear fix and second one without clear fix
01:20:00 okay you see the first one is floated left prototype
01:20:02 left prototype but the other one is um
01:20:05 but the other one is um completely different than the rest
01:20:14 okay and this is about clear with colored links
01:20:16 colored links yeah that's something we already know
01:20:32 okay um let me fix color things
01:20:46 right here aspect practical let's test it
01:21:01 okay of course we can see them right now so we need to add some
01:21:03 so we need to add some i think borders
01:21:31 they are taking full space i don't know why
01:21:47 let's add a background to its [Music]
01:21:56 eg dangerous okay i see so based on
01:21:59 okay i see so based on the screen size
01:22:07 you see it is just double of the uh securing resolution so its width
01:22:11 uh securing resolution so its width is 1519
01:22:15 is 1519 and its height is just uh
01:22:19 and its height is just uh half of it so we can have custom
01:22:22 half of it so we can have custom ratio like
01:22:36 15 percent okay so you see it said it's right you according to
01:22:38 it said it's right you according to screen size
01:22:40 screen size uh so it is like this yeah
01:22:43 uh so it is like this yeah so this is about right here
01:23:00 all right and position fix it up fix it button stick it up
01:23:03 fix it up fix it button stick it up you already have all them
01:23:26 and then there is a responses ticket top for example let me show stick it up to
01:23:28 for example let me show stick it up to you
01:23:40 remain dash like this when you get down below its current position so you
01:23:42 down below its current position so you see it's currently positioned here when
01:23:44 see it's currently positioned here when i get down you see it's still here
01:23:49 get down you see it's still here we already have example of that in the
01:23:51 we already have example of that in the previous lecture so what is
01:23:53 previous lecture so what is visually hidden
01:24:00 visually hidden use these helpers to visually hide
01:24:01 visually hide elements but keep them accessible to
01:24:03 elements but keep them accessible to assistive technologies
01:24:06 assistive technologies visually hide an element while still
01:24:08 visually hide an element while still allowing it to be exposed to assistive
01:24:10 allowing it to be exposed to assistive technologies
01:24:11 technologies such as screen readers with dot visually
01:24:13 such as screen readers with dot visually hidden
01:24:14 hidden use dot visually hidden focusable to
01:24:16 use dot visually hidden focusable to visually hide an element by default
01:24:18 visually hide an element by default but to display it when it's focused eg
01:24:20 but to display it when it's focused eg by a keyboard only user
01:24:23 by a keyboard only user dot visually hidden focusable can also
01:24:25 dot visually hidden focusable can also be applied to a container
01:24:27 be applied to a container thanks to focus within the container
01:24:29 thanks to focus within the container will be displayed when any child
01:24:31 will be displayed when any child element of the container receives focus
01:24:34 element of the container receives focus okay so it is like this
01:24:58 and stretch it link so you see entire card is now as a
01:25:02 so you see entire card is now as a single link
01:25:04 single link let's see
01:25:13 okay do style cards and you see i can click everywhere this is so hard to achieve in
01:25:17 everywhere this is so hard to achieve in regular html believe me but i have spent
01:25:20 regular html believe me but i have spent so much time to make some of my links
01:25:22 so much time to make some of my links like this
01:25:23 like this but with a stretched link
01:25:27 but with a stretched link class here it takes the entire
01:25:31 class here it takes the entire uh it makes the entire div
01:25:35 uh it makes the entire div as a stretched link it's awesome believe
01:25:38 as a stretched link it's awesome believe me
01:25:41 me so this is probably javascript you see
01:25:43 so this is probably javascript you see when i click it it's clicking here
01:25:54 when i click it it's clicking here okay multiple links and tap stocks are
01:25:56 okay multiple links and tap stocks are not recommended of course
01:25:58 not recommended of course wow this is so so much uh
01:26:02 wow this is so so much uh i have some future believe me if you are
01:26:03 i have some future believe me if you are working with html you will know that
01:26:08 working with html you will know that and okay carter stretch it link some
01:26:10 and okay carter stretch it link some quick example take some
01:26:11 quick example take some stitching leaving not working because
01:26:13 stitching leaving not working because position relative is added to the link
01:26:17 position relative is added to the link okay so this is about such a thing
01:26:28 and text rank translation it will only show some
01:26:31 it will only show some part of some
01:26:37 part of the text so it will truncate text after two column i think
01:26:49 yeah um yeah this this may be useful but i
01:26:51 yeah this this may be useful but i wouldn't suggest to use
01:26:53 wouldn't suggest to use the text from application
01:26:58 the text from application and then there is utilities api
01:27:08 okay so this is not our topic right now you can look that if you want background
01:27:11 you can look that if you want background background color we already know that
01:27:14 background color we already know that you can also background gradient which
01:27:16 you can also background gradient which is great yeah
01:27:17 is great yeah normally i i suggest you to use big
01:27:20 normally i i suggest you to use big current
01:27:21 current uh gradient
01:27:25 uh gradient so how do we use it so let's
01:27:28 so how do we use it so let's see because gradient is in most cases
01:27:31 see because gradient is in most cases looks better
01:27:39 when i add ps gradient to the class i think it becomes a gradient here
01:27:41 class i think it becomes a gradient here it is not a single
01:27:42 it is not a single color anymore let's add a gradient to
01:27:45 color anymore let's add a gradient to every one of them
01:28:00 oh this is so cool ah yeah they are all gradients right now
01:28:03 ah yeah they are all gradients right now it looks
01:28:03 it looks much better
01:28:13 okay um background colors variant and
01:28:16 variant and yeah there's nothing
01:28:19 yeah there's nothing more important here borders
01:28:23 more important here borders so you can have different border
01:28:27 so you can have different border selecting additive
01:28:28 selecting additive subtractive
01:28:37 border color border bits for the size orders folders you already know them
01:28:40 orders folders you already know them for the size more than weights
01:28:43 for the size more than weights for this color as such
01:28:48 for this color as such okay colors the colors are like this
01:28:51 okay colors the colors are like this you see different text colors
01:28:55 you see different text colors and yeah that's it
01:29:11 display oh display is about what kind of
01:29:15 oh display is about what kind of um display
01:29:20 um display you are expecting i mean in line block
01:29:23 you are expecting i mean in line block inline blog they're all differently
01:29:25 inline blog they're all differently rendered in the browser uh
01:29:29 rendered in the browser uh so this is all about this way you want
01:29:31 so this is all about this way you want it to be like a table or table cell
01:29:33 it to be like a table or table cell table row flex in nine flex
01:29:37 table row flex in nine flex so these are just the
01:29:38 so these are just the [Music]
01:29:40 [Music] display values they are taking d dot non
01:29:43 display values they are taking d dot non block inline block uh
01:29:47 block inline block uh you see table sprint cell this way in
01:29:49 you see table sprint cell this way in print you can also set display in print
01:29:51 print you can also set display in print as well
01:29:53 as well so when user tries to print it will be
01:29:55 so when user tries to print it will be how it will be displayed
01:29:58 how it will be displayed the notation is display and value
01:30:01 the notation is display and value so let's make an example
01:30:05 so let's make an example by default these are display block
01:30:09 by default these are display block therefore they take entire row
01:30:12 therefore they take entire row you see the inline developed replacing
01:30:16 you see the inline developed replacing 90 grit
01:30:17 90 grit like that
01:30:21 like that anyway if you want to learn more about
01:30:23 anyway if you want to learn more about display
01:30:24 display uh display differences
01:30:31 okay maybe there's an example let's see i think we need to type as css display
01:30:36 i think we need to type as css display differences
01:30:46 okay okay so you see this is inline this is inline
01:30:49 you see this is inline this is inline block
01:30:50 block this is block taking entire row
01:30:54 this is block taking entire row um this is flexbox
01:30:57 um this is flexbox this is another thing pulled over
01:31:03 this is another thing pulled over grits and this is a hard example to
01:31:07 grits and this is a hard example to understand maybe there's another thing
01:31:16 okay inline block and you can look for that
01:31:19 inline block and you can look for that if you want
01:31:20 if you want i will just move there is flex
01:31:23 i will just move there is flex um this is the new feature of browsers
01:31:27 um this is the new feature of browsers but this is awesome feature by the way
01:31:32 but this is awesome feature by the way and you can also use flexbox
01:31:45 you may need to read more about flex if you want to learn
01:31:47 you want to learn i will just pass it for now uh
01:31:50 i will just pass it for now uh float is just float
01:32:13 let's test it okay anyway there is nothing you need
01:32:15 okay anyway there is nothing you need lord take position
01:32:17 lord take position according to the other elements there is
01:32:21 according to the other elements there is interactions let's see if there is
01:32:23 interactions let's see if there is anything interesting
01:32:25 anything interesting wow nice so select all select auto
01:32:28 wow nice so select all select auto like this when i double click it select
01:32:35 and let's select on i hit select none by the way
01:32:37 the way so the interactions
01:32:50 pointer event so this is this cannot be clicked
01:32:51 clicked so it is pa none this can be default
01:32:54 so it is pa none this can be default behavior
01:32:57 behavior [Music]
01:33:04 okay this is not a really important thing
01:33:05 thing but it's just awesome and it's
01:33:14 overflow overflow is just about this you see there is a scroll bar
01:33:16 see there is a scroll bar you can set overflow hidden if all flow
01:33:18 you can set overflow hidden if all flow hidden it won't be visible
01:33:20 hidden it won't be visible if overflow visible it will overflow as
01:33:23 if overflow visible it will overflow as name suggests and if you set overflow
01:33:25 name suggests and if you set overflow auto it will overflow
01:33:27 auto it will overflow from both sizes
01:33:36 instead of style overflow you just use overflow class
01:33:37 overflow class that's all about it
01:33:41 that's all about it and then there is position so position
01:33:44 and then there is position so position static relative absolute fixed and
01:33:50 steady what is pollution study i i don't
01:33:53 what is pollution study i i don't know it is the same
01:33:56 know it is the same as absolute
01:34:03 anyway so you can have position relative like this it is displayed at the top
01:34:07 like this it is displayed at the top i mean the position right it's it's part
01:34:10 i mean the position right it's it's part element and position
01:34:12 element and position top is you'll see displaying here okay
01:34:18 top is you'll see displaying here okay and [Music]
01:34:22 [Music] we can have other examples as well this
01:34:24 we can have other examples as well this is a good example actually let's put it
01:34:31 so you see for this to work the parent element
01:34:33 element may need to have a position absolute
01:34:35 may need to have a position absolute relative
01:34:36 relative i think that's
01:34:43 i'm tested so i will remove position relative for
01:34:45 relative for modern copy pasting
01:35:00 yeah so these are the first ones and these are the second ones
01:35:03 and these are the second ones i can see them so we need to add them
01:35:06 i can see them so we need to add them into
01:35:07 into inside the containers
01:35:15 but when you remove hard position relative
01:35:15 relative it gets broken
01:35:25 yeah so i need to so they must have
01:35:28 to so they must have position relative as a parent
01:35:56 and you see position after top zero starts
01:35:58 you see position after top zero starts to the translation middle button
01:36:01 to the translation middle button on the prime around the pin wow it looks
01:36:03 on the prime around the pin wow it looks cool
01:36:05 cool style bits rm hrm
01:36:09 style bits rm hrm so this is actually a division here
01:36:24 so it's the position right here and you see between one and two there is
01:36:25 see between one and two there is actually a div
01:36:27 actually a div so this is the bottom this is the button
01:36:29 so this is the bottom this is the button and between them
01:36:38 oh i see so this is the button and this is another one where does that
01:36:42 and this is another one where does that come oh this is progress bar i see
01:36:49 so this progress bar is what is being displayed here
01:36:57 and since we use position absolute top here they are getting
01:36:59 here they are getting all they are getting these positions
01:37:03 all they are getting these positions oh cool okay
01:37:11 there is shadows right here box shadow
01:37:30 and sizing you relate to the department you should hate auto
01:37:34 you should hate auto okay let's add this
01:38:25 oh it's taking a lot of space anyway let's continue with spacing
01:38:30 anyway let's continue with spacing so spacing is all about merging and
01:38:32 so spacing is all about merging and padding
01:38:33 padding uh they their notation is like this
01:38:38 uh they their notation is like this negative merging up
01:38:41 negative merging up so you can also gap like this
01:38:50 yeah you already know that i think
01:39:00 margin link yeah okay
01:39:06 there is text text alignment we already know text alignment you see you can
01:39:08 know text alignment you see you can center right align left align
01:39:11 center right align left align text wrapping words page
01:39:16 text wrapping words page so you can also have a wordplay like
01:39:18 so you can also have a wordplay like this
01:39:19 this uh for wordpress we add text break here
01:39:22 uh for wordpress we add text break here otherwise it won't get broken
01:39:24 otherwise it won't get broken into the multiple lines let's test it
01:39:27 into the multiple lines let's test it out
01:39:28 out so text wrapping versus text break
01:39:38 okay so the text break breaks into the next line but text wrapping
01:39:40 next line but text wrapping is expanding our you see maximum width
01:39:50 that is text transform font size oh font size
01:39:50 size like this fs1 fs4 point wait for
01:40:07 okay fw front page fct italics or fct is fond style probably yeah
01:40:11 fond style probably yeah yeah phone style is fct
01:40:14 yeah phone style is fct so let's note this
01:40:22 text uh text alignment
01:40:37 world page text transform
01:40:51 by the italics and you can have line height well it
01:40:54 and you can have line height well it even supports line height
01:40:56 even supports line height like in work this is cool
01:41:05 i think how does it do that probably padding for that mushroom
01:41:09 probably padding for that mushroom let's refresh you see line heading
01:41:13 let's refresh you see line heading it is really cool you can have mono
01:41:16 it is really cool you can have mono space so each character is taking
01:41:19 space so each character is taking same uh
01:41:42 won't be diatonics okay we have right everything that
01:41:44 everything that presses colors
01:41:51 so when you use reset color it is using the parent text which is for example in
01:41:53 the parent text which is for example in text method
01:41:55 text method text calculation okay that's it that's
01:41:58 text calculation okay that's it that's all
01:42:12 [Music] as needed vertical align is hard
01:42:16 as needed vertical align is hard believe me to achieve when you are not
01:42:19 believe me to achieve when you are not using table
01:42:21 using table or here they have user table as well
01:42:29 or here they have user table as well okay
01:42:48 okay so there is this difference bit field
01:42:49 field between visibility and display
01:42:56 between visibility and display one of them takes space the other one is
01:42:57 one of them takes space the other one is not class visible invisible
01:43:06 and display none and yeah so let's see the difference
01:43:16 okay so and let me show so when it is visible it takes space
01:43:18 so when it is visible it takes space when it is invisible it is taking space
01:43:20 when it is invisible it is taking space when it is displayed on it is not taking
01:43:22 when it is displayed on it is not taking space okay
01:43:25 space okay display none takes no space
01:43:28 display none takes no space in browser flow
01:43:32 in browser flow average visibility
01:43:36 average visibility invisible takes space but
01:43:39 invisible takes space but not visible so this is the difference
01:43:53 and then there is extent okay that's not our topic right now
01:44:04 so for icons i think we need to add external
01:44:06 external thing
01:44:11 yeah both drop icons we have already added that as
01:44:12 added that as in previous lectures okay that's
01:44:15 in previous lectures okay that's all about bootstrap five
01:44:19 all about bootstrap five now i can show an example of
01:44:23 now i can show an example of custom login okay
01:44:32 okay uh how you design your login and other things
01:44:33 other things is totally up to you
01:44:36 is totally up to you but let's add a new here as login
01:44:48 but let's add a new here as login in this login what we are going to do is
01:44:50 in this login what we are going to do is we are going to send
01:44:52 we are going to send a database to the server
01:44:56 a database to the server and then log in the user that's it
01:45:02 and then log in the user that's it so let's open
01:45:05 so let's open our
01:45:13 sql server management studio by the way in my own project i
01:45:18 by the way in my own project i keep the login information in the
01:45:20 keep the login information in the session data
01:45:22 session data so if user is logged in
01:45:26 so if user is logged in i put it inside the session
01:45:30 i put it inside the session and if not i check session whether
01:45:33 and if not i check session whether user login or not it is totally up to
01:45:36 user login or not it is totally up to you how you
01:45:42 design your session we have shown you can even keep
01:45:55 like this session set card you can set string
01:45:59 you can set string as well
01:46:12 as well okay in our mvc database
01:46:16 okay in our mvc database we have users and in users
01:46:21 we have users and in users we have
01:46:30 okay first thing we are birthday and whatever we want
01:46:32 whatever we want so um
01:46:33 so um [Music]
01:46:52 logi so this will be
01:46:55 be wrote
01:47:17 what we are going to do is we are going to set
01:47:22 to set [Music]
01:47:29 yeah this is the way we are going to set we are going to set if user entered
01:47:31 we are going to set if user entered correct
01:47:32 correct pass force and username
01:47:35 pass force and username we already have made examples of forms
01:47:41 we already have made examples of forms for example
01:47:41 for example [Music]
01:47:45 [Music] from lecture 13 yeah let's use this post
01:47:56 [Music] here so we can set a speed route
01:47:59 here so we can set a speed route for post let's set a route in our
01:48:02 for post let's set a route in our controller
01:48:04 controller okay here
01:48:07 okay here so for this we are going to set a name
01:48:15 as equal to login rot you can give any name you want
01:48:18 rot you can give any name you want so it will be posted here and
01:48:22 so it will be posted here and we also i i need to change
01:48:27 we also i i need to change actually here
01:48:33 we also need to have a model to verify post information so
01:48:37 post information so let's have
01:48:40 let's have a model here i am going to have login
01:48:44 a model here i am going to have login model
01:48:58 so inside here we are going to have two property raw
01:49:00 property raw prop sr
01:49:03 prop sr username current large system doesn't
01:49:07 username current large system doesn't have password so i will
01:49:09 have password so i will use a user first name and email
01:49:12 use a user first name and email for verification to lock a user
01:49:16 for verification to lock a user so as our first name
01:49:20 so as our first name and then you are going to have
01:49:23 and then you are going to have by the way i explain a very detailed
01:49:26 by the way i explain a very detailed login system in my
01:49:28 login system in my other lectures for example in advanced
01:49:31 other lectures for example in advanced programming lecture in object oriented
01:49:33 programming lecture in object oriented programming lecture
01:49:34 programming lecture so if you want to learn how to make a
01:49:37 so if you want to learn how to make a login system
01:49:38 login system you should watch them it is basically
01:49:40 you should watch them it is basically same because uh
01:49:44 same because uh our mvc project also uses c-sharp and my
01:49:47 our mvc project also uses c-sharp and my lectures also use c-sharp
01:49:51 lectures also use c-sharp so if you watch my
01:49:56 so if you watch my let me show introduction programming
01:50:00 let me show introduction programming or advanced programming here
01:50:03 or advanced programming here you will learn about how to make a
01:50:06 you will learn about how to make a proper login system with
01:50:09 proper login system with salted keywords salted and hashed
01:50:11 salted keywords salted and hashed keywords
01:50:12 keywords to have maximum security how to record
01:50:16 to have maximum security how to record them in database
01:50:17 them in database how to uh
01:50:24 let's say save username password give them id login users
01:50:28 give them id login users and such everything related login
01:50:30 and such everything related login operations
01:50:31 operations background code is explained in
01:50:34 background code is explained in introduction to programming and
01:50:35 introduction to programming and advanced programming if you already know
01:50:37 advanced programming if you already know c-sharp which you should already have
01:50:40 c-sharp which you should already have you can watch my advanced programming
01:50:42 you can watch my advanced programming course
01:50:44 course videos and then you will learn
01:50:46 videos and then you will learn everything
01:50:47 everything related to proper login system okay so
01:50:50 related to proper login system okay so i am just showing a quick example on
01:50:53 i am just showing a quick example on this uh
01:50:54 this uh lecture right now since it was requested
01:50:57 lecture right now since it was requested uh so email
01:51:04 and let's add that as a model here model uh it will be from
01:51:08 a model here model uh it will be from nature9 model start
01:51:10 nature9 model start login okay so asp4 will be
01:51:14 login okay so asp4 will be for let's see autocomplete
01:51:23 okay uh as our first name and this will be by the way card
01:51:27 and this will be by the way card so we can also display
01:51:32 so we can also display our display it was like
01:51:36 our display it was like let me find
01:51:56 by the way uh in our previous lectures we have truly
01:51:58 we have truly seen everything related to this so i'm
01:52:01 seen everything related to this so i'm not going to
01:52:01 not going to waste time with them
01:52:14 okay and in our is our login index
01:52:19 our is our login index here um please under please enter your
01:52:22 here um please under please enter your first name
01:52:33 okay and then we are going to have same for okay
01:52:37 same for okay let's go to complete email
01:52:51 some database solid model okay that's it and in our
01:52:55 and in our lecture cell controller we are going to
01:52:57 lecture cell controller we are going to get
01:53:00 get the model start login i
01:53:04 the model start login i login
01:53:11 and i can verify it if i want but for now i won't so here we need to
01:53:14 but for now i won't so here we need to use
01:53:14 use our database
01:53:21 so let's check database example in our lectures copy paste
01:53:50 can we see context and we have tbr users and i need to use
01:53:54 and i need to use wash here dot okay here that
01:53:59 wash here dot okay here that email equal to login dot
01:54:09 sr email and and here that first name equal to
01:54:14 here that first name equal to my login.first name
01:54:31 strength and hint this is oh we have a problem with here
01:54:35 we have a problem with here oh this is my mistake okay let me fix
01:54:40 oh this is my mistake okay let me fix okay um and let's have first or default
01:54:45 okay um and let's have first or default so the default value of
01:54:54 i think default is sources empty otherwise first elements of default t
01:54:56 otherwise first elements of default t source if source is empty
01:54:58 source if source is empty so the default will be node probably i
01:55:02 so the default will be node probably i think
01:55:21 environment passwords i mean email it first name and email combination
01:55:24 first name and email combination and of course you can display much
01:55:26 and of course you can display much better
01:55:28 better things otherwise
01:55:31 things otherwise it is not nude finally we are using
01:55:35 it is not nude finally we are using info
01:55:42 we can have a custom class or we can just
01:55:43 just voltage inside a user session
01:55:47 voltage inside a user session such as an example was somewhere around
01:55:50 such as an example was somewhere around here
01:55:58 you see as you write code you will memorize it but under memorizing
01:56:02 memorize it but under memorizing um there is this serialize and we must
01:56:04 um there is this serialize and we must have a center serialize
01:56:07 have a center serialize you can just copy paste your older code
01:56:11 you can just copy paste your older code okay and user login
01:56:17 and to be able to use it i need to add a reference of course
01:56:26 and as a user login i am going to use serialization what is it is
01:56:30 serialization what is it is here i will use json converse serialize
01:56:33 here i will use json converse serialize and i will just use so this is tbr users
01:56:37 and i will just use so this is tbr users type
01:56:38 type this uh i need some okay
01:56:43 this uh i need some okay and i will set session and then
01:56:46 and i will set session and then um it is going to return here
01:56:51 um it is going to return here so you see um
01:56:57 if i want to check whether user is logged in or
01:56:58 logged in or not i need to do it like this
01:57:01 not i need to do it like this [Music]
01:57:02 [Music] if
01:57:20 okay we can check if user has user login or not
01:57:25 or not and then
01:57:30 let's see [Music]
01:57:39 we can deserialize it and tell that user is logged in
01:57:41 is logged in so in my model i'm going to add some
01:57:44 so in my model i'm going to add some extra attribute display
01:57:52 here let's add prop sync
01:58:00 okay is users notebooks unless this have a tbr
01:58:04 this have a tbr tbr users
01:58:11 users okay values so by default i will set it as a node
01:58:15 so by default i will set it as a node actually it could be by default no since
01:58:16 actually it could be by default no since it's an object type
01:58:19 it's an object type and if user is logged in
01:58:22 and if user is logged in i will deserialize it
01:58:26 i will deserialize it like here
01:58:37 okay of course to be able to have that i need to
01:58:38 need to log in okay um users
01:58:41 log in okay um users login of course to be able to use login
01:58:46 login of course to be able to use login i need that using
01:59:02 and user login.tv actual user values fill the e code so
01:59:06 actual user values fill the e code so json convert this object login
01:59:10 json convert this object login and session
01:59:16 and session gets string
01:59:20 gets string so we get string it get the key like
01:59:23 so we get string it get the key like this
01:59:25 this and then i would return okay here
01:59:29 and then i would return okay here login and
01:59:37 since our name is logincshtml as an object yes yeah
01:59:40 as an object yes yeah [Music]
01:59:42 [Music] oh by the way this is returning the
01:59:45 oh by the way this is returning the default index not the login index
01:59:54 so let's break it here these are nice objects so
01:59:55 objects so where is the problem here
02:00:06 oh login.tv or each of these will be table users type
02:00:07 table users type i like this okay
02:00:11 i like this okay so in our index
02:00:14 so in our index actually let's uh return
02:00:23 um what i'm going to do is let's reverse back
02:00:31 like this return weave and i will have another index as index 2
02:00:33 and i will have another index as index 2 and this will have a
02:00:35 and this will have a custom rod as
02:00:51 and this will login okay so let's revolve this
02:00:52 revolve this road and simply
02:00:56 road and simply we will return login view yeah
02:00:59 we will return login view yeah okay and if user is logged in we will
02:01:02 okay and if user is logged in we will display it
02:01:03 display it as like this okay
02:01:07 as like this okay so if
02:01:15 a model that tbl actually if model is not equal to node
02:01:18 actually if model is not equal to node but of course it wouldn't work user was
02:01:21 but of course it wouldn't work user was equal not equal to
02:01:22 equal not equal to node let's say uh
02:01:26 node let's say uh logos in users okay to type it of course
02:01:30 logos in users okay to type it of course we need to have it
02:01:31 we need to have it something like this okay logged in user
02:01:35 something like this okay logged in user id it will
02:01:35 id it will be that model that
02:01:39 be that model that okay user values that
02:01:42 okay user values that okay user id
02:01:45 okay user id and logged in users
02:01:50 and logged in users first name okay
02:02:14 and then you can also show this email whatever you want you see it is all up
02:02:16 whatever you want you see it is all up to your imagination how
02:02:17 to your imagination how you design is of your design login users
02:02:29 i'm just simply telling you the idea when you log out you just destroy that
02:02:31 when you log out you just destroy that session value and
02:02:32 session value and tada it is logged out
02:02:46 else okay i think let's make it like this
02:02:50 okay i think let's make it like this uh no user is no but in yet
02:02:59 and let's also add a form to log out
02:03:03 a form to log out okay so for log out
02:03:07 okay so for log out it will be simply pretty simple actually
02:03:15 by the way uh we will return [Music]
02:03:24 we login actually we need to redirect login not return via login so how we
02:03:26 login not return via login so how we were redirecting
02:03:42 so that our logged in data can be okay redirect action yeah let's do that
02:03:55 redirect action index 2 okay and let's also have a logout
02:04:06 as oak out look at you road
02:04:10 look at you road go out by the way this doesn't need any
02:04:15 go out by the way this doesn't need any model so it will simply
02:04:19 model so it will simply sessions and how do we remove
02:04:25 sessions and how do we remove remove yeah that's it
02:04:30 remove yeah that's it user login
02:04:36 and redirect action yeah index 2
02:04:40 yeah index 2 and in our index page
02:04:43 and in our index page our login page i mean yes
02:04:47 our login page i mean yes we just need to type okay logout
02:04:53 we just need to type okay logout users okay let's test it
02:05:44 okay no user is logged in first name let's type something as
02:05:46 let's type something as as incorrect okay involved first name
02:05:48 as incorrect okay involved first name and email combination
02:05:50 and email combination let's type something valid as first name
02:05:52 let's type something valid as first name totals
02:05:54 totals email is this
02:06:00 okay login user id first name talos university and that's
02:06:02 university and that's a refresh page we are still logged in
02:06:05 a refresh page we are still logged in because we are keeping that data in
02:06:08 because we are keeping that data in uh session on the session is destroyed
02:06:10 uh session on the session is destroyed it will be there
02:06:11 it will be there let's log out users and log out tada
02:06:15 let's log out users and log out tada it's a custom authentication system
02:06:18 it's a custom authentication system how you design is totally up to you you
02:06:20 how you design is totally up to you you can improve it you can do whatever you
02:06:22 can improve it you can do whatever you want
02:06:22 want and end of the course
02:06:27 and end of the course actually this course should spawn into
02:06:30 actually this course should spawn into two semesters as i
02:06:32 two semesters as i mention it because that can we can we
02:06:35 mention it because that can we can we could show
02:06:36 could show much more thing but as i said you if you
02:06:39 much more thing but as i said you if you watch my introduction to the
02:06:41 watch my introduction to the programming and advanced programming and
02:06:43 programming and advanced programming and object-oriented programming
02:06:45 object-oriented programming course videos here advanced programming
02:06:52 introduction to programming and object-oriented programming if you watch
02:06:54 object-oriented programming if you watch all these students series
02:06:57 all these students series to the lecture one of internet you will
02:07:00 to the lecture one of internet you will have much better
02:07:01 have much better idea of how to code your
02:07:04 idea of how to code your website at the server side and you
02:07:07 website at the server side and you already
02:07:07 already learned the basics actually fundamentals
02:07:10 learned the basics actually fundamentals and even advanced topics of
02:07:12 and even advanced topics of nbc design without net course
02:07:16 nbc design without net course okay uh how to design a custom
02:07:25 authentication and login system with using
02:07:29 system with using session set string
02:07:34 session set string get string and
02:07:37 get string and sterilize these very nice
02:07:41 sterilize these very nice object methodology all right
02:07:45 object methodology all right so lecture 17 is
02:07:49 so lecture 17 is ready let's upload our source code i
02:07:52 ready let's upload our source code i have i hope you have enjoyed my
02:07:56 have i hope you have enjoyed my uh lectures you can always contact
02:07:59 uh lectures you can always contact me through our discord channel
02:08:02 me through our discord channel uh no matter what time you are watching
02:08:06 uh no matter what time you are watching this hopefully i will be there
02:08:07 this hopefully i will be there and answer you
02:08:31 right it is adding all changes
02:08:48 all right end of lecture 17 end of the course hopefully see you
02:08:50 course hopefully see you another time okay
02:08:54 another time okay see you later
Beta Was this translation helpful? Give feedback.
All reactions