@@ -87,19 +87,40 @@ function getThreshold(aModel, aContent, aAuthor, aCallback) {
8787exports . getThreshold = getThreshold ;
8888
8989function saveContent ( aModel , aContent , aAuthor , aFlags , aCallback ) {
90- if ( ! aContent . flags ) { aContent . flags = 0 ; }
91- aContent . flags += aFlags ;
90+ if ( ! aContent . flags ) {
91+ aContent . flags = { } ;
92+ }
93+
94+ if ( ! aContent . flags . critical ) {
95+ aContent . flags . critical = 0 ;
96+ }
97+ aContent . flags . critical += aFlags ;
9298
93- if ( aContent . flags >= thresholds [ aModel . modelName ] * ( aAuthor . role < 4 ? 2 : 1 ) ) {
99+ if ( aContent . flags . critical >= thresholds [ aModel . modelName ] * ( aAuthor . role < 4 ? 2 : 1 ) ) {
94100 return getThreshold ( aModel , aContent , aAuthor , function ( aThreshold ) {
95- aContent . flagged = aContent . flags >= aThreshold ;
96- aContent . save ( function ( aErr , aContent ) { aCallback ( aContent . flagged ) ; } ) ;
101+ aContent . flagged = aContent . flags . critical >= aThreshold ;
102+
103+ aContent . save ( function ( aErr , aContent ) {
104+ if ( aErr ) {
105+ console . warn ( 'Error flagging content' , aErr ) ;
106+ aCallback ( null ) ;
107+ return ;
108+ }
109+ aCallback ( aContent . flagged ) ;
110+ } ) ;
97111 } ) ;
98112 } else {
99113 aContent . flagged = false ;
100114 }
101115
102- aContent . save ( function ( aErr , aContent ) { aCallback ( aContent . flagged ) ; } ) ;
116+ aContent . save ( function ( aErr , aContent ) {
117+ if ( aErr ) {
118+ console . warn ( 'Error unflagging content' , aErr ) ;
119+ aCallback ( null ) ;
120+ return ;
121+ }
122+ aCallback ( aContent . flagged ) ;
123+ } ) ;
103124}
104125exports . saveContent = saveContent ;
105126
@@ -111,7 +132,13 @@ function flag(aModel, aContent, aUser, aAuthor, aCallback) {
111132 } ) ;
112133
113134 flag . save ( function ( aErr , aFlag ) {
114- if ( ! aContent . flags ) { aContent . flags = 0 ; }
135+ if ( ! aContent . flags ) {
136+ aContent . flags = { } ;
137+ }
138+
139+ if ( ! aContent . flags . critical ) {
140+ aContent . flags . critical = 0 ;
141+ }
115142 if ( ! aContent . flagged ) { aContent . flagged = false ; }
116143
117144 saveContent ( aModel , aContent , aAuthor , aUser . role < 4 ? 2 : 1 , aCallback ) ;
@@ -130,9 +157,17 @@ exports.unflag = function (aModel, aContent, aUser, aCallback) {
130157 if ( ! aUser ) { return aCallback ( null ) ; }
131158
132159 getFlag ( aModel , aContent , aUser , function ( aFlag ) {
133- if ( ! aFlag ) { return aCallback ( null ) ; }
160+ if ( ! aFlag ) {
161+ return aCallback ( null ) ;
162+ }
134163
135- if ( ! aContent . flags ) { aContent . flags = 0 ; }
164+ if ( ! aContent . flags ) {
165+ aContent . flags = { } ;
166+ }
167+
168+ if ( ! aContent . flags . critical ) {
169+ aContent . flags . critical = 0 ;
170+ }
136171 if ( ! aContent . flagged ) { aContent . flagged = false ; }
137172
138173 function removeFlag ( aAuthor ) {
0 commit comments