11var storage = new LocalStorage ( ) ;
22var blackList = [ ] ;
3+ var restrictionList = [ ] ;
4+ var blockBtnList = [ 'settingsBtn' , 'restrictionsBtn' , 'aboutBtn' ] ;
5+ var blockList = [ 'settingsBlock' , 'restrictionsBlock' , 'aboutBlock' ] ;
36
47document . addEventListener ( 'DOMContentLoaded' , function ( ) {
58 document . getElementById ( 'settingsBtn' ) . addEventListener ( 'click' , function ( ) {
6- document . getElementById ( 'settingsBtn' ) . classList . add ( 'active' ) ;
7- document . getElementById ( 'aboutBtn' ) . classList . remove ( 'active' ) ;
8-
9- document . getElementById ( 'settingsBlock' ) . hidden = false ;
10- document . getElementById ( 'aboutBlock' ) . hidden = true ;
9+ setBlockEvent ( 'settingsBtn' , 'settingsBlock' ) ;
10+ } ) ;
11+ document . getElementById ( 'restrictionsBtn' ) . addEventListener ( 'click' , function ( ) {
12+ setBlockEvent ( 'restrictionsBtn' , 'restrictionsBlock' ) ;
1113 } ) ;
1214 document . getElementById ( 'aboutBtn' ) . addEventListener ( 'click' , function ( ) {
13- document . getElementById ( 'settingsBtn' ) . classList . remove ( 'active' ) ;
14- document . getElementById ( 'aboutBtn' ) . classList . add ( 'active' ) ;
15-
16- document . getElementById ( 'settingsBlock' ) . hidden = true ;
17- document . getElementById ( 'aboutBlock' ) . hidden = false ;
18-
15+ setBlockEvent ( 'aboutBtn' , 'aboutBlock' ) ;
1916 loadVersion ( ) ;
2017 } ) ;
2118 document . getElementById ( 'clearAllData' ) . addEventListener ( 'click' , function ( ) {
@@ -24,6 +21,9 @@ document.addEventListener('DOMContentLoaded', function () {
2421 document . getElementById ( 'addBlackSiteBtn' ) . addEventListener ( 'click' , function ( ) {
2522 addNewBlackSiteClickHandler ( ) ;
2623 } ) ;
24+ document . getElementById ( 'addRestrictionSiteBtn' ) . addEventListener ( 'click' , function ( ) {
25+ addNewRestrictionSiteClickHandler ( ) ;
26+ } ) ;
2727 document . getElementById ( 'viewTimeInBadge' ) . addEventListener ( 'change' , function ( ) {
2828 storage . saveSettings ( SETTINGS_VIEW_TIME_IN_BADGE , this . checked ) ;
2929 } ) ;
@@ -37,6 +37,21 @@ document.addEventListener('DOMContentLoaded', function () {
3737
3838loadSettings ( ) ;
3939
40+ function setBlockEvent ( btnName , blockName ) {
41+ blockBtnList . forEach ( element => {
42+ if ( element === btnName ) {
43+ document . getElementById ( btnName ) . classList . add ( 'active' ) ;
44+ }
45+ else document . getElementById ( element ) . classList . remove ( 'active' ) ;
46+ } ) ;
47+
48+ blockList . forEach ( element => {
49+ if ( element === blockName ) {
50+ document . getElementById ( blockName ) . hidden = false ;
51+ } else document . getElementById ( element ) . hidden = true ;
52+ } ) ;
53+ }
54+
4055function loadSettings ( ) {
4156 storage . getSettings ( SETTINGS_INTERVAL_INACTIVITY , function ( item ) {
4257 document . getElementById ( 'intervalInactivity' ) . value = item ;
@@ -56,7 +71,7 @@ function loadSettings() {
5671 } ) ;
5772}
5873
59- function loadVersion ( ) {
74+ function loadVersion ( ) {
6075 var version = chrome . runtime . getManifest ( ) . version ;
6176 document . getElementById ( 'version' ) . innerText = 'v' + version ;
6277}
@@ -92,6 +107,18 @@ function addNewBlackSiteClickHandler() {
92107 updateBlackList ( ) ;
93108}
94109
110+ function addNewRestrictionSiteClickHandler ( ) {
111+ var newRestrictionSite = document . getElementById ( 'addRestrictionSiteLbl' ) . value ;
112+ if ( newRestrictionSite !== '' ) {
113+ addDomainToRestrictionListBox ( newRestrictionSite ) ;
114+ if ( restrictionList === undefined )
115+ restrictionList = [ ] ;
116+ restrictionList . push ( newRestrictionSite ) ;
117+ document . getElementById ( 'addRestrictionSiteLbl' ) . value = '' ;
118+ }
119+ updateRestrictionList ( ) ;
120+ }
121+
95122function addDomainToListBox ( domain ) {
96123 var li = document . createElement ( 'li' ) ;
97124 li . innerText = domain ;
@@ -104,13 +131,47 @@ function addDomainToListBox(domain) {
104131 document . getElementById ( 'blackList' ) . appendChild ( li ) . appendChild ( del ) ;
105132}
106133
134+ function addDomainToRestrictionListBox ( domain ) {
135+ var li = document . createElement ( 'li' ) ;
136+ li . innerText = domain ;
137+ var edit = document . createElement ( 'img' ) ;
138+ edit . height = 12 ;
139+ edit . src = '/icons/delete.png' ;
140+ edit . addEventListener ( 'click' , function ( e ) {
141+ editRestrictionSite ( e ) ;
142+ } ) ;
143+ var del = document . createElement ( 'img' ) ;
144+ del . height = 12 ;
145+ del . src = '/icons/delete.png' ;
146+ del . addEventListener ( 'click' , function ( e ) {
147+ deleteRestrictionSite ( e ) ;
148+ } ) ;
149+ var li = document . getElementById ( 'restrictionsList' ) . appendChild ( li ) ;
150+ li . appendChild ( del ) ;
151+ li . appendChild ( edit ) ;
152+ }
153+
107154function deleteBlackSite ( e ) {
108155 var targetElement = e . path [ 1 ] ;
109156 blackList . splice ( blackList . indexOf ( targetElement . innerText ) , 1 ) ;
110157 document . getElementById ( 'blackList' ) . removeChild ( targetElement ) ;
111158 updateBlackList ( ) ;
112159}
113160
161+ function deleteRestrictionSite ( e ) {
162+ var targetElement = e . path [ 1 ] ;
163+ restrictionList . splice ( restrictionList . indexOf ( targetElement . innerText ) , 1 ) ;
164+ document . getElementById ( 'restrictionsList' ) . removeChild ( targetElement ) ;
165+ updateRestrictionList ( ) ;
166+ }
167+
168+ function editRestrictionSite ( e ) {
169+
170+ }
171+
114172function updateBlackList ( ) {
115173 storage . saveSettings ( STORAGE_BLACK_LIST , blackList ) ;
174+ }
175+
176+ function updateRestrictionList ( ) {
116177}
0 commit comments