Kawai Wiki

Rev

Rev 77 | Rev 79 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77 Rev 78
Line 6... Line 6...
6
import org.kawai.dao.UserDAO;
6
import org.kawai.dao.UserDAO;
7
import org.kawai.model.Group;
7
import org.kawai.model.Group;
8
import org.kawai.model.Language;
8
import org.kawai.model.Language;
9
import org.kawai.model.Page;
9
import org.kawai.model.Page;
10
import org.kawai.model.Preview;
10
import org.kawai.model.Preview;
-
 
11
import org.kawai.model.Revision;
11
import org.mentawai.filter.AuthenticationFree;
12
import org.mentawai.filter.AuthenticationFree;
12
import org.mentawai.rule.MethodRule;
13
import org.mentawai.rule.MethodRule;
13
import org.mentawai.rule.RegexRule;
14
import org.mentawai.rule.RegexRule;
14
import org.mentawai.validation.Validatable;
15
import org.mentawai.validation.Validatable;
15
import org.mentawai.validation.ValidationInterceptor;
16
import org.mentawai.validation.ValidationInterceptor;
Line 221... Line 222...
221
                int userId = sessionUser.getId();
222
                int userId = sessionUser.getId();
222
                Preview preview = pageDAO.loadPreview(userId, name, lang);
223
                Preview preview = pageDAO.loadPreview(userId, name, lang);
223
                if (preview != null) {
224
                if (preview != null) {
224
                        Page page = pageDAO.loadByName(name, lang);
225
                        Page page = pageDAO.loadByName(name, lang);
225
                        if (page != null) {
226
                        if (page != null) {
-
 
227
                               
-
 
228
                                String oldTitle = page.getTitle();
-
 
229
                                String oldBody = page.getBody();
-
 
230
                               
226
                                page.setTitle(preview.getTitle());
231
                                page.setTitle(preview.getTitle());
227
                                page.setBody(preview.getBody());
232
                                page.setBody(preview.getBody());
228
                                page.setModifiedById(preview.getUserId());
233
                                page.setModifiedById(preview.getUserId());
229
                                pageDAO.update(page);
234
                                pageDAO.update(page);
-
 
235
                               
-
 
236
                                insertRevision(page, oldTitle, oldBody);
-
 
237
                               
230
                                pageDAO.deletePreview(userId, name, lang);
238
                                pageDAO.deletePreview(userId, name, lang);
231
                        } else {
239
                        } else {
232
                                page = preview.getPage();
240
                                page = preview.getPage();
233
                                pageDAO.insert(page);
241
                                pageDAO.insert(page);
234
                                pageDAO.deletePreview(userId, name, lang);
242
                                pageDAO.deletePreview(userId, name, lang);
235
                        }
243
                        }
236
                        setPageRedirParams(page);
244
                        setPageRedirParams(page);
237
                }
245
                }
238
                return SUCCESS;
246
                return SUCCESS;
-
 
247
        }
-
 
248
       
-
 
249
        private void insertRevision(Page page, String oldTitle, String oldBody) {
-
 
250
                Revision r = new Revision();
-
 
251
                r.setName(page.getName());
-
 
252
                r.setLanguageId(page.getLanguageId());
-
 
253
                r.setUserId(sessionUser.getId());
-
 
254
                r.setNewTitle(page.getTitle());
-
 
255
                r.setNewBody(page.getBody());
-
 
256
                r.setOldTitle(oldTitle);
-
 
257
                r.setOldBody(oldBody);
-
 
258
                pageDAO.insertRevision(r);
239
        }
259
        }
240
       
260
       
241
        public String edit() {
261
        public String edit() {
242
                if (!isPost()) return INDEX;
262
                if (!isPost()) return INDEX;
243
                String name = input.getString("name");
263
                String name = input.getString("name");
Line 246... Line 266...
246
                        // does not make sense to have CSS in different languages... (well, maybe it does, but we do NOT want to maintain more than one CSS)
266
                        // does not make sense to have CSS in different languages... (well, maybe it does, but we do NOT want to maintain more than one CSS)
247
                        lang = "en";
267
                        lang = "en";
248
                }
268
                }
249
                Page page = pageDAO.loadByName(name, Language.fromString(lang));
269
                Page page = pageDAO.loadByName(name, Language.fromString(lang));
250
                if (page != null) {
270
                if (page != null) {
-
 
271
                       
-
 
272
                        String oldTitle = page.getTitle();
-
 
273
                        String oldBody = page.getBody();
-
 
274
                       
251
                        input.inject(page);
275
                        input.inject(page);
-
 
276
                       
252
                        page.setModifiedById(sessionUser.getId());
277
                        page.setModifiedById(sessionUser.getId());
-
 
278
                       
253
                        if (input.getBoolean("isPreview")) {
279
                        if (input.getBoolean("isPreview")) {
254
                                pageDAO.insertPreview(sessionUser.getId(), page);
280
                                pageDAO.insertPreview(sessionUser.getId(), page);
255
                        } else {
281
                        } else {
256
                                pageDAO.update(page);
282
                                pageDAO.update(page);
-
 
283
                               
-
 
284
                                insertRevision(page, oldTitle, oldBody);
-
 
285
                               
257
                                // and now you have to delete the preview!
286
                                // and now you have to delete the preview!
258
                                pageDAO.deletePreview(sessionUser.getId(), page.getName(), page.getLanguage());
287
                                pageDAO.deletePreview(sessionUser.getId(), page.getName(), page.getLanguage());
259
                        }
288
                        }
260
                        setPageRedirParams(page);
289
                        setPageRedirParams(page);
261
                }
290
                }