-
-
Notifications
You must be signed in to change notification settings - Fork 362
ASPNET MVC Core Responsive Web Design Lecture 17 BootStrap Integration and Full Tutorial P3
Full tutorial link > 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
-
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
