|
45 | 45 | public final class TopicVersionDAO implements ITopicVersionDAO { |
46 | 46 | // Constants |
47 | 47 | private static final String SQL_QUERY_NEW_PK = "SELECT max( id_topic_version ) FROM wiki_topic_version"; |
48 | | - private static final String SQL_QUERY_SELECT = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous FROM wiki_topic_version WHERE id_topic_version = ?"; |
49 | | - private static final String SQL_QUERY_INSERT = "INSERT INTO wiki_topic_version ( id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous ) VALUES ( ?, ?, ?, ?, ?, ? ) "; |
| 48 | + private static final String SQL_QUERY_SELECT = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published FROM wiki_topic_version WHERE id_topic_version = ?"; |
| 49 | + private static final String SQL_QUERY_INSERT = "INSERT INTO wiki_topic_version ( id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) "; |
50 | 50 | private static final String SQL_QUERY_DELETE = "DELETE FROM wiki_topic_version WHERE id_topic_version = ? "; |
51 | | - private static final String SQL_QUERY_SELECTALL = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous FROM wiki_topic_version"; |
52 | | - private static final String SQL_QUERY_INSERT_MODIFICATION = "INSERT INTO wiki_topic_version ( id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous ) VALUES ( ?, ?, ?, ?, ?, ?) "; |
53 | | - private static final String SQL_QUERY_SELECT_LAST_BY_TOPIC_ID = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous FROM wiki_topic_version WHERE id_topic = ? ORDER BY date_edition DESC LIMIT 1"; |
54 | | - private static final String SQL_QUERY_SELECT_BY_TOPIC_ID = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous FROM wiki_topic_version WHERE id_topic = ? ORDER BY date_edition DESC "; |
| 51 | + private static final String SQL_QUERY_SELECTALL = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published FROM wiki_topic_version"; |
| 52 | + private static final String SQL_QUERY_INSERT_MODIFICATION = "INSERT INTO wiki_topic_version ( id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published ) VALUES ( ?, ?, ?, ?, ?, ?, ? ) "; |
| 53 | + private static final String SQL_QUERY_SELECT_LAST_BY_TOPIC_ID = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published FROM wiki_topic_version WHERE id_topic = ? ORDER BY date_edition DESC LIMIT 1"; |
| 54 | + private static final String SQL_QUERY_SELECT_BY_TOPIC_ID = "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published FROM wiki_topic_version WHERE id_topic = ? ORDER BY date_edition DESC "; |
55 | 55 | private static final String SQL_QUERY_DELETE_BY_TOPIC_ID = "DELETE FROM wiki_topic_version WHERE id_topic = ? "; |
56 | 56 | private static final String SQL_QUERY_SELECT_CONTENT = "SELECT locale, page_title, wiki_content, html_wiki_content FROM wiki_topic_version_content WHERE id_topic_version = ?"; |
57 | 57 | private static final String SQL_QUERY_INSERT_CONTENT = "INSERT INTO wiki_topic_version_content ( id_topic_version, locale, page_title, wiki_content, html_wiki_content ) VALUES ( ?, ?, ?, ?, ?) "; |
58 | 58 | private static final String SQL_QUERY_DELETE_CONTENT = "DELETE FROM wiki_topic_version_content WHERE id_topic_version = ? "; |
59 | 59 | private static final String SQL_QUERY_DELETE_CONTENT_BY_TOPIC_ID = "DELETE a.* FROM wiki_topic_version_content a, wiki_topic_version b WHERE a.id_topic_version = b.id_topic_version AND b.id_topic = ? "; |
| 60 | + private static final String SQL_QUERY_SELECT_PUBLISHED_BY_TOPIC_ID= "SELECT id_topic_version, edit_comment, id_topic, lutece_user_id, date_edition, id_topic_version_previous, is_published FROM wiki_topic_version WHERE id_topic = ? AND is_published = 1 ORDER BY date_edition DESC "; |
| 61 | + private static final String SQL_QUERY_UPDATE_IS_PUBLISHED = "UPDATE wiki_topic_version SET is_published=?,edit_comment=? WHERE id_topic_version = ? "; |
60 | 62 | private static final String SQL_QUERY_DELETE_CONTENT_BY_TOPIC_VERSION_ID = "DELETE FROM wiki_topic_version_content WHERE id_topic_version = ? "; |
61 | 63 | private static final String SQL_QUERY_DELETE_BY_TOPIC_VERSION_ID = "DELETE FROM wiki_topic_version WHERE id_topic_version = ? "; |
62 | 64 |
|
@@ -93,6 +95,7 @@ public void insert(TopicVersion topicVersion, Plugin plugin) { |
93 | 95 | daoUtil.setString(4, topicVersion.getLuteceUserId()); |
94 | 96 | daoUtil.setTimestamp(5, topicVersion.getDateEdition()); |
95 | 97 | daoUtil.setInt(6, topicVersion.getIdTopicVersionPrevious()); |
| 98 | + daoUtil.setBoolean(7, topicVersion.getIsPublished()); |
96 | 99 |
|
97 | 100 | daoUtil.executeUpdate(); |
98 | 101 | } |
@@ -202,6 +205,21 @@ public void deleteByTopicVersion(int nTopicVersionId, Plugin plugin) { |
202 | 205 | } |
203 | 206 | } |
204 | 207 |
|
| 208 | + /** |
| 209 | + * {@inheritDoc } |
| 210 | + */ |
| 211 | + @Override |
| 212 | + public void updateIsPublished(int nIdTopicVersion, String comment, boolean bIsPublished, Plugin plugin) { |
| 213 | + try (DAOUtil daoUtil = new DAOUtil(SQL_QUERY_UPDATE_IS_PUBLISHED, plugin)) { |
| 214 | + daoUtil.setBoolean(1, bIsPublished); |
| 215 | + daoUtil.setString(2, comment); |
| 216 | + daoUtil.setInt(3, nIdTopicVersion); |
| 217 | + daoUtil.executeUpdate(); |
| 218 | + } |
| 219 | + |
| 220 | + } |
| 221 | + |
| 222 | + |
205 | 223 | /** |
206 | 224 | * {@inheritDoc } |
207 | 225 | */ |
@@ -237,6 +255,28 @@ public void addTopicVersion(TopicVersion topicVersion, Plugin plugin) { |
237 | 255 | daoUtil.setString(4, topicVersion.getUserName()); |
238 | 256 | daoUtil.setTimestamp(5, new java.sql.Timestamp(new java.util.Date().getTime())); |
239 | 257 | daoUtil.setInt(6, topicVersion.getIdTopicVersionPrevious()); |
| 258 | + daoUtil.setBoolean(7, topicVersion.getIsPublished()); |
| 259 | + |
| 260 | + daoUtil.executeUpdate(); |
| 261 | + } |
| 262 | + |
| 263 | + storeContent(topicVersion); |
| 264 | + } |
| 265 | + /** |
| 266 | + * {@inheritDoc } |
| 267 | + */ |
| 268 | + @Override |
| 269 | + public void updateTopicVersion(TopicVersion topicVersion, Plugin plugin) { |
| 270 | + deleteByTopicVersion(topicVersion.getIdTopicVersion(), plugin); |
| 271 | + try (DAOUtil daoUtil = new DAOUtil(SQL_QUERY_INSERT_MODIFICATION, plugin)) { |
| 272 | + topicVersion.setIdTopicVersion(newPrimaryKey(plugin)); |
| 273 | + daoUtil.setInt(1, topicVersion.getIdTopicVersion()); |
| 274 | + daoUtil.setString(2, topicVersion.getEditComment()); |
| 275 | + daoUtil.setInt(3, topicVersion.getIdTopic()); |
| 276 | + daoUtil.setString(4, topicVersion.getUserName()); |
| 277 | + daoUtil.setTimestamp(5, new java.sql.Timestamp(new java.util.Date().getTime())); |
| 278 | + daoUtil.setInt(6, topicVersion.getIdTopicVersionPrevious()); |
| 279 | + daoUtil.setBoolean(7, topicVersion.getIsPublished()); |
240 | 280 |
|
241 | 281 | daoUtil.executeUpdate(); |
242 | 282 | } |
@@ -286,6 +326,25 @@ public TopicVersion loadLastVersion(int nIdTopic, Plugin plugin) { |
286 | 326 | return topicVersion; |
287 | 327 | } |
288 | 328 |
|
| 329 | + @Override |
| 330 | + public TopicVersion getPublishedVersion(int nTopicId, Plugin plugin) { |
| 331 | + TopicVersion topicVersion = null; |
| 332 | + |
| 333 | + try (DAOUtil daoUtil = new DAOUtil(SQL_QUERY_SELECT_PUBLISHED_BY_TOPIC_ID, plugin)) { |
| 334 | + daoUtil.setInt(1, nTopicId); |
| 335 | + daoUtil.executeQuery(); |
| 336 | + |
| 337 | + if (daoUtil.next()) { |
| 338 | + topicVersion = setTopicVersionWithDaoUtil(daoUtil); |
| 339 | + } |
| 340 | + } |
| 341 | + |
| 342 | + if (topicVersion != null) { |
| 343 | + fillContent(topicVersion); |
| 344 | + } |
| 345 | + |
| 346 | + return topicVersion; |
| 347 | + } |
289 | 348 | /** |
290 | 349 | * {@inheritDoc } |
291 | 350 | */ |
@@ -315,6 +374,7 @@ public TopicVersion setTopicVersionWithDaoUtil(DAOUtil daoUtil) { |
315 | 374 | topicVersion.setLuteceUserId(daoUtil.getString(4)); |
316 | 375 | topicVersion.setDateEdition(daoUtil.getTimestamp(5)); |
317 | 376 | topicVersion.setIdTopicVersionPrevious(daoUtil.getInt(6)); |
| 377 | + topicVersion.setIsPublished(daoUtil.getBoolean(7)); |
318 | 378 |
|
319 | 379 | return topicVersion; |
320 | 380 | } |
|
0 commit comments