From 460a89909c972e9c060089d459ba030815ebad3c Mon Sep 17 00:00:00 2001 From: S SARAVANAN Date: Tue, 1 Jun 2021 18:41:14 +0530 Subject: [PATCH] Fixes #v0.7: Popup changes added --- Gruntfile.js | 2 +- client/index.html | 1 + client/js/templates/popup.jst.ejs | 8 ++ client/js/views/intro_video_view.js | 11 +- client/js/views/login_view.js | 20 ++++ client/js/views/popup_view.js | 180 ++++++++++++++++++++++++++++ server/php/R/r.php | 7 ++ sql/upgrade-0.6.9-0.7.sql | 132 +++++++++++++++++++- 8 files changed, 354 insertions(+), 7 deletions(-) create mode 100644 client/js/templates/popup.jst.ejs create mode 100644 client/js/views/popup_view.js diff --git a/Gruntfile.js b/Gruntfile.js index 0e544b337..7a0f66ae2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,6 +1,6 @@ module.exports = function(grunt) { var css_files = new Array('client/css/fullcalendar.css', 'client/css/bootstrap-datetimepicker.min.css', 'client/css/jquery.fancybox.css', 'client/css/bootstrap.css', 'client/css/jquery.dockmodal.css', 'client/css/select2-bootstrap.css', 'client/css/flag.css', 'client/css/highlight-github.css', 'client/css/jquery-ui.css', 'client/css/bootstrap-colorpicker.css'); - var js_files = new Array('client/js/libs/jquery-1.8.3.js', 'client/js/libs/jquery.placeholder.js', 'client/js/libs/emojify.min.js', 'client/js/libs/jquery-ui-1.8.23.js', 'client/js/libs/jquery.drawDoughnutChart.js', 'client/js/libs/underscore.js', 'client/js/libs/backbone.js', 'client/js/libs/backbone.stickit.js', 'client/js/libs/backbone.dualstorage.js', 'client/js/libs/affix.js', 'client/js/libs/bootstrap-twipsy.js', 'client/js/libs/bootstrap-tooltip.js', 'client/js/libs/bootstrap-popover.js', 'client/js/libs/bootstrap-dropdown.js', 'client/js/libs/bootstrap-datetimepicker.min.js', 'client/js/libs/bootstrap-collapse.js', 'client/js/libs/bootstrap-alert.js', 'client/js/libs/bootstrap-transition.js', 'client/js/libs/bootstrap-tab.js', 'client/js/libs/bootstrap-modal.js', 'client/js/libs/md5.js', 'client/js/libs/select2.js', 'client/js/libs/ImageSelect.jquery.js', 'client/js/libs/date.format.js', 'client/js/libs/jquery.fancybox.js', 'client/js/libs/jquery.gritter.min.js', 'client/js/libs/jquery.scrollTo-min.js', 'client/js/libs/jquery.dockmodal.js', 'client/js/libs/Markdown.Converter.js', 'client/js/libs/tag-it.js', 'client/js/libs/jquery.iframe-transport.js', 'client/js/libs/highlight.js', 'client/js/libs/showdown.js', 'client/js/libs/showdown-target-blank.min.js', 'client/js/libs/showdown-xss-filter.js', 'client/js/libs/fullcalendar.min.js', 'client/js/libs/load-image.min.js', 'client/js/libs/tmpl.min.js', 'client/js/libs/jquery.ui.widget.js', 'client/js/libs/jquery.cookie.js', 'client/js/libs/jquery.fileupload.js', 'client/js/libs/jquery.fileupload-process.js', 'client/js/libs/jquery.fileupload-image.js', 'client/js/libs/jquery.fileupload-validate.js', 'client/js/libs/jquery.bootstrap-growl.js', 'client/js/libs/backbone.defered-view-loader.js', 'client/js/libs/backbone.upload-manager.js', 'client/js/libs/backbone-batch-operations.js', 'client/js/libs/jquery-bootstrap-pagination.js', 'client/js/libs/jquery.fn.gantt.js', 'client/js/libs/jquery.sparkline.js', 'client/js/libs/localforage.js', 'client/js/libs/xss.js', 'client/js/libs/locale.js', 'client/js/libs/splitter.js', 'client/js/libs/snuggsi.min.js', 'client/js/libs/musical.js', 'client/js/libs/favico-0.3.8.min.js', 'client/js/libs/i18next.min.js', 'client/js/libs/i18nextXHRBackend.min.js', 'client/js/libs/i18nextSprintfPostProcessor.min.js', 'client/js/libs/jquery.hotkeys.js', 'client/js/libs/backbone-hotkeys.js', 'client/js/libs/backbone-forms.js', 'client/js/libs/jquery.printPage.js', 'client/js/libs/jquery.ui.touch-punch.js', 'client/js/libs/bootstrap-colorpicker.js', 'client/js/libs/moment.js', 'client/js/libs/moment-timezone.js', 'client/js/libs/moment-timezone-with-data.js', 'client/js/models/oauth.js', 'client/js/models/user.js', 'client/js/models/board.js', 'client/js/models/boards_subscriber.js', 'client/js/models/list.js', 'client/js/models/flickr.js', 'client/js/models/unsplash.js', 'client/js/models/organization.js', 'client/js/models/list_subscriber.js', 'client/js/models/card.js', 'client/js/models/organizations_user.js', 'client/js/models/boards_user.js', 'client/js/models/activity.js', 'client/js/models/card_voter.js', 'client/js/models/card_label.js', 'client/js/models/card_subscriber.js', 'client/js/models/card_attachment.js', 'client/js/models/label.js', 'client/js/models/checklist.js', 'client/js/models/checklist_item.js', 'client/js/models/card_user.js', 'client/js/models/elasticsearch.js', 'client/js/models/workflow_template.js', 'client/js/models/acl.js', 'client/js/models/role.js', 'client/js/models/role_setting.js', 'client/js/models/setting_category.js', 'client/js/models/boards_star.js', 'client/js/models/instant_card_add.js', 'client/js/models/email_template.js', 'client/js/models/app.js', 'client/js/models/oauth_client.js', 'client/js/models/oauth_application.js', 'client/js/models/acl_board_links.js', 'client/js/models/board_user_roles.js', 'client/js/models/acl_organization_links.js', 'client/js/models/organization_user_roles.js', 'client/js/models/chat_history.js', 'client/js/models/intro_view_model.js', 'client/js/collections/user_collection.js', 'client/js/collections/attachment_collection.js', 'client/js/collections/list_collection.js', 'client/js/collections/flickr_collection.js', 'client/js/collections/unsplash_collection.js', 'client/js/collections/organization_collection.js', 'client/js/collections/organizations_user_collection.js', 'client/js/collections/boards_user_collection.js', 'client/js/collections/activity_collection.js', 'client/js/collections/board_subscriber_collection.js', 'client/js/collections/card_collection.js', 'client/js/collections/board_collection.js', 'client/js/collections/card_attachment_collection.js', 'client/js/collections/card_label_collection.js', 'client/js/collections/card_position_collection.js', 'client/js/collections/card_checklist_collection.js', 'client/js/collections/checklist_item_collection.js', 'client/js/collections/card_voter_collection.js', 'client/js/collections/elasticsearch_collection.js', 'client/js/collections/workflow_template_collection.js', 'client/js/collections/list_subscriber_collection.js', 'client/js/collections/card_subscriber_collection.js', 'client/js/collections/card_user_collection.js', 'client/js/collections/acl_collection.js', 'client/js/collections/role_collection.js', 'client/js/collections/setting_category_collection.js', 'client/js/collections/board_star_collection.js', 'client/js/collections/email_template_collection.js', 'client/js/collections/role_settings_collection.js', 'client/js/collections/app_collection.js', 'client/js/collections/oauth_client_collection.js', 'client/js/collections/oauth_application_collection.js', 'client/js/collections/acl_board_links_collection.js', 'client/js/collections/organization_user_roles_collection.js', 'client/js/collections/acl_organization_links_collection.js', 'client/js/collections/board_user_roles_collection.js', 'client/js/collections/chat_history_collection.js', 'client/js/collections/intro_videoCollection.js', 'client/js/templates/templates.js', 'client/js/views/application_view.js', 'client/js/views/admin_user_add_view.js', 'client/js/views/register_view.js', 'client/js/views/login_view.js', 'client/js/views/authenticate_view.js', 'client/js/views/saml_authenticate_view.js', 'client/js/views/list_view.js', 'client/js/views/activity_view.js', 'client/js/views/board_view.js', 'client/js/views/header_view.js', 'client/js/views/footer_view.js', 'client/js/views/boards_index_view.js', 'client/js/views/users_forgot_password_view.js', 'client/js/views/users_activation_view.js', 'client/js/views/users_change_password_view.js', 'client/js/views/organization_view.js', 'client/js/views/organizations_user_view.js', 'client/js/views/boards_user_view.js', 'client/js/views/chat_view.js', 'client/js/views/intro_video_view.js', 'client/js/views/card_view.js', 'client/js/views/modal_card_view.js', 'client/js/views/modal_list_view.js', 'client/js/views/modal_board_view.js', 'client/js/views/attachment_view.js', 'client/js/views/card_attachment_view.js', 'client/js/views/card_label_view.js', 'client/js/views/card_checklist_view.js', 'client/js/views/card_checklist_item_view.js', 'client/js/views/user_view.js', 'client/js/views/user_index_view.js', 'client/js/views/user_logins_index_view.js', 'client/js/views/push_notifications_index_view.js', 'client/js/views/board_simple_view.js', 'client/js/views/instant_card_add_view.js', 'client/js/views/role_index_view.js', 'client/js/views/role_settings_view.js', 'client/js/views/user_cards_view.js', 'client/js/views/user_activity_menu_view.js', 'client/js/views/user_boards_listing_menu_view.js', 'client/js/views/user_search_result_view.js', 'client/js/views/organization_visibility_form_view.js', 'client/js/views/organization_member_permission_form_view.js', 'client/js/views/organization_member_remove_form_view.js', 'client/js/views/organization_member_confirm_remove_form_view.js', 'client/js/views/attachment_delete_confirm_form_view.js', 'client/js/views/attachment_delete_confirm_form_view.js', 'client/js/views/board_organization_form_view.js', 'client/js/views/board_custom_background_view.js', 'client/js/views/board_sidebar_view.js', 'client/js/views/archived_items_view.js', 'client/js/views/board_background_view.js', 'client/js/views/board_filter_view.js', 'client/js/views/board_user_activity_view.js', 'client/js/views/board_user_remove_confirm_view.js', 'client/js/views/card_copy_view.js', 'client/js/views/list_archive_confirm_view.js', 'client/js/views/list_cards_archive_confirm_view.js', 'client/js/views/move_cards_from_list_view.js', 'client/js/views/move_list_view.js', 'client/js/views/copy_list_view.js', 'client/js/views/list_delete_confirm_view.js', 'client/js/views/list_actions_view.js', 'client/js/views/card_labels_form_view.js', 'client/js/views/card_positions_form_view.js', 'client/js/views/card_member_form_view.js', 'client/js/views/card_actions_view.js', 'client/js/views/activity_user_add_search_result_view.js', 'client/js/views/card_voters_list_view.js', 'client/js/views/activity_delete_confirm_view.js', 'client/js/views/edit_activity_form_view.js', 'client/js/views/activity_reply_form_view.js', 'client/js/views/activity_add_form_view.js', 'client/js/views/card_label_form_view.js', 'client/js/views/emoji_list_view.js', 'client/js/views/checklist_item_emoji_list_view.js', 'client/js/views/admin_users_logins_view.js', 'client/js/views/admin_push_notifications_view.js', 'client/js/views/admin_user_index_view.js', 'client/js/views/admin_boards_list_view.js', 'client/js/views/oauth_applications_view.js', 'client/js/views/oauth_client_view.js', 'client/js/views/oauth_client_add_view.js', 'client/js/views/oauth_client_edit_view.js', 'client/js/views/oauth_applications_view.js', 'client/js/views/app_view.js', 'client/js/views/app_setting_view.js', 'client/js/views/card_search_result_view.js', 'client/js/views/copy_from_existing_card_view.js', 'client/js/views/move_card_view.js', 'client/js/views/copy_card_view.js', 'client/js/views/activity_card_search_view.js', 'client/js/views/checklist_add_form_view.js', 'client/js/views/modal_card_member_form_view.js', 'client/js/views/card_search_users_result_view.js', 'client/js/views/notification_menu_view.js', 'client/js/views/organization_add_view.js', 'client/js/views/board_add_view.js', 'client/js/views/organizations_board_form_view.js', 'client/js/views/board_import_form_view.js', 'client/js/views/user_cards_view.js', 'client/js/views/checklist_item_add_form_view.js', 'client/js/views/checklist_delete_confirm_form_view.js', 'client/js/views/checklist_actions_view.js', 'client/js/views/checklist_item_actions_view.js', 'client/js/views/checklist_item_delete_confirm_form_view.js', 'client/js/views/checklist_item_edit_form_view.js', 'client/js/views/checklist_item_add_link_view.js', 'client/js/views/checklist_edit_form_view.js', 'client/js/views/attachment_delete_confirm_view.js', 'client/js/views/setting_view.js', 'client/js/views/instant_card_add_labels_form_view.js', 'client/js/views/instant_card_add_members_form_view.js', 'client/js/views/switch_to_list_form_view.js', 'client/js/views/user_activity_menu_view.js', 'client/js/views/user_board_list_view.js', 'client/js/views/archived_lists_view.js', 'client/js/views/archived_list_view.js', 'client/js/views/archived_cards_view.js', 'client/js/views/archived_card_view.js', 'client/js/views/edit_board_member_permission_to_normal_view.js', 'client/js/views/copy_board_visibility_view.js', 'client/js/views/show_all_visibility_view.js', 'client/js/views/show_board_member_permission_form_view.js', 'client/js/views/show_board_visibility_view.js', 'client/js/views/show_search_message_view.js', 'client/js/views/search_result_view.js', 'client/js/views/show_search_boards_view.js', 'client/js/views/search_board_subscribe_view.js', 'client/js/views/show_boards_list_view.js', 'client/js/views/my_boards_listing_view.js', 'client/js/views/started_boards_listing_view.js', 'client/js/views/closed_boards_listing_view.js', 'client/js/views/board_additional_setting_view.js', 'client/js/views/select_board_visibility_view.js', 'client/js/views/board_visibility_view.js', 'client/js/views/board_add_organization_form_view.js', 'client/js/views/board_member_add_search_result_view.js', 'client/js/views/checklist_item_mention_member_view.js', 'client/js/views/checklist_item_mention_member_search_form_view.js', 'client/js/views/organization_board_view.js', 'client/js/views/user_boards_listing_menu_view.js', 'client/js/views/board_user_actions_view.js', 'client/js/views/modal_user_activities_list_view.js', 'client/js/views/organizations_lists_view.js', 'client/js/views/organizations_list_view.js', 'client/js/views/email_template_view.js', 'client/js/views/user_activity_view.js', 'client/js/views/user_logins_index_container_view.js', 'client/js/views/push_notifications_index_container_view.js', 'client/js/views/user_index_container_view.js', 'client/js/views/selected_board_visibility_view.js', 'client/js/views/modal_activity_view.js', 'client/js/views/modal_flickr_photo_view.js', 'client/js/views/modal_unsplash_photo_view.js', 'client/js/views/modal_music_view.js', 'client/js/views/flickr_view.js', 'client/js/views/unsplash_view.js', 'client/js/views/board_404_view.js', 'client/js/views/organization_404_view.js', 'client/js/views/organization_header_view.js', 'client/js/views/user_view_header_view.js', 'client/js/views/organizations_lists_header_view.js', 'client/js/views/board_header_view.js', 'client/js/views/starred_boards_index_view.js', 'client/js/views/organization_delete_form_view.js', 'client/js/views/error_404_view.js', 'client/js/views/board_index_header_view.js', 'client/js/views/about_us_view.js', 'client/js/views/closed_boards_index_view.js', 'client/js/views/activity_index_view.js', 'client/js/views/admin_activity_index_view.js', 'client/js/views/show_sync_google_calendar_view.js', 'client/js/views/show_copy_board_view.js', 'client/js/views/invite_user_view.js', 'client/js/views/music_repeat_view.js', 'client/js/views/admin_board_view.js', 'client/js/views/admin_boards_index_view.js', 'client/js/views/email_to_board_setting_view.js', 'client/js/views/qr_code_view.js', 'client/js/views/user_dashboard_view.js', 'client/js/views/search_page_result_view.js', 'client/js/views/board_labels_view.js', 'client/js/views/board_labels_edit_view.js', 'client/js/views/label_delete_confirm_view.js', 'client/js/views/subscribe_board_confirm_view.js', 'client/js/views/unsubscribe_board_confirm_view.js', 'client/js/views/archived_cards_delete_confirm_view.js', 'client/js/views/archived_card_delete_confirm_view.js', 'client/js/views/archived_list_delete_confirm_view.js', 'client/js/views/archived_lists_delete_confirm_view.js', 'client/js/views/modal_shortcut_view.js', 'client/js/views/modal_chat_history_view.js', 'client/js/views/chat_history_view.js', 'client/js/common.js', 'client/js/filterUtility.js', 'client/js/application.js'); + var js_files = new Array('client/js/libs/jquery-1.8.3.js', 'client/js/libs/jquery.placeholder.js', 'client/js/libs/emojify.min.js', 'client/js/libs/jquery-ui-1.8.23.js', 'client/js/libs/jquery.drawDoughnutChart.js', 'client/js/libs/underscore.js', 'client/js/libs/backbone.js', 'client/js/libs/backbone.stickit.js', 'client/js/libs/backbone.dualstorage.js', 'client/js/libs/affix.js', 'client/js/libs/bootstrap-twipsy.js', 'client/js/libs/bootstrap-tooltip.js', 'client/js/libs/bootstrap-popover.js', 'client/js/libs/bootstrap-dropdown.js', 'client/js/libs/bootstrap-datetimepicker.min.js', 'client/js/libs/bootstrap-collapse.js', 'client/js/libs/bootstrap-alert.js', 'client/js/libs/bootstrap-transition.js', 'client/js/libs/bootstrap-tab.js', 'client/js/libs/bootstrap-modal.js', 'client/js/libs/md5.js', 'client/js/libs/select2.js', 'client/js/libs/ImageSelect.jquery.js', 'client/js/libs/date.format.js', 'client/js/libs/jquery.fancybox.js', 'client/js/libs/jquery.gritter.min.js', 'client/js/libs/jquery.scrollTo-min.js', 'client/js/libs/jquery.dockmodal.js', 'client/js/libs/Markdown.Converter.js', 'client/js/libs/tag-it.js', 'client/js/libs/jquery.iframe-transport.js', 'client/js/libs/highlight.js', 'client/js/libs/showdown.js', 'client/js/libs/showdown-target-blank.min.js', 'client/js/libs/showdown-xss-filter.js', 'client/js/libs/fullcalendar.min.js', 'client/js/libs/load-image.min.js', 'client/js/libs/tmpl.min.js', 'client/js/libs/jquery.ui.widget.js', 'client/js/libs/jquery.cookie.js', 'client/js/libs/jquery.fileupload.js', 'client/js/libs/jquery.fileupload-process.js', 'client/js/libs/jquery.fileupload-image.js', 'client/js/libs/jquery.fileupload-validate.js', 'client/js/libs/jquery.bootstrap-growl.js', 'client/js/libs/backbone.defered-view-loader.js', 'client/js/libs/backbone.upload-manager.js', 'client/js/libs/backbone-batch-operations.js', 'client/js/libs/jquery-bootstrap-pagination.js', 'client/js/libs/jquery.fn.gantt.js', 'client/js/libs/jquery.sparkline.js', 'client/js/libs/localforage.js', 'client/js/libs/xss.js', 'client/js/libs/locale.js', 'client/js/libs/splitter.js', 'client/js/libs/snuggsi.min.js', 'client/js/libs/musical.js', 'client/js/libs/favico-0.3.8.min.js', 'client/js/libs/i18next.min.js', 'client/js/libs/i18nextXHRBackend.min.js', 'client/js/libs/i18nextSprintfPostProcessor.min.js', 'client/js/libs/jquery.hotkeys.js', 'client/js/libs/backbone-hotkeys.js', 'client/js/libs/backbone-forms.js', 'client/js/libs/jquery.printPage.js', 'client/js/libs/jquery.ui.touch-punch.js', 'client/js/libs/bootstrap-colorpicker.js', 'client/js/libs/moment.js', 'client/js/libs/moment-timezone.js', 'client/js/libs/moment-timezone-with-data.js', 'client/js/models/oauth.js', 'client/js/models/user.js', 'client/js/models/board.js', 'client/js/models/boards_subscriber.js', 'client/js/models/list.js', 'client/js/models/flickr.js', 'client/js/models/unsplash.js', 'client/js/models/organization.js', 'client/js/models/list_subscriber.js', 'client/js/models/card.js', 'client/js/models/organizations_user.js', 'client/js/models/boards_user.js', 'client/js/models/activity.js', 'client/js/models/card_voter.js', 'client/js/models/card_label.js', 'client/js/models/card_subscriber.js', 'client/js/models/card_attachment.js', 'client/js/models/label.js', 'client/js/models/checklist.js', 'client/js/models/checklist_item.js', 'client/js/models/card_user.js', 'client/js/models/elasticsearch.js', 'client/js/models/workflow_template.js', 'client/js/models/acl.js', 'client/js/models/role.js', 'client/js/models/role_setting.js', 'client/js/models/setting_category.js', 'client/js/models/boards_star.js', 'client/js/models/instant_card_add.js', 'client/js/models/email_template.js', 'client/js/models/app.js', 'client/js/models/oauth_client.js', 'client/js/models/oauth_application.js', 'client/js/models/acl_board_links.js', 'client/js/models/board_user_roles.js', 'client/js/models/acl_organization_links.js', 'client/js/models/organization_user_roles.js', 'client/js/models/chat_history.js', 'client/js/models/intro_view_model.js', 'client/js/collections/user_collection.js', 'client/js/collections/attachment_collection.js', 'client/js/collections/list_collection.js', 'client/js/collections/flickr_collection.js', 'client/js/collections/unsplash_collection.js', 'client/js/collections/organization_collection.js', 'client/js/collections/organizations_user_collection.js', 'client/js/collections/boards_user_collection.js', 'client/js/collections/activity_collection.js', 'client/js/collections/board_subscriber_collection.js', 'client/js/collections/card_collection.js', 'client/js/collections/board_collection.js', 'client/js/collections/card_attachment_collection.js', 'client/js/collections/card_label_collection.js', 'client/js/collections/card_position_collection.js', 'client/js/collections/card_checklist_collection.js', 'client/js/collections/checklist_item_collection.js', 'client/js/collections/card_voter_collection.js', 'client/js/collections/elasticsearch_collection.js', 'client/js/collections/workflow_template_collection.js', 'client/js/collections/list_subscriber_collection.js', 'client/js/collections/card_subscriber_collection.js', 'client/js/collections/card_user_collection.js', 'client/js/collections/acl_collection.js', 'client/js/collections/role_collection.js', 'client/js/collections/setting_category_collection.js', 'client/js/collections/board_star_collection.js', 'client/js/collections/email_template_collection.js', 'client/js/collections/role_settings_collection.js', 'client/js/collections/app_collection.js', 'client/js/collections/oauth_client_collection.js', 'client/js/collections/oauth_application_collection.js', 'client/js/collections/acl_board_links_collection.js', 'client/js/collections/organization_user_roles_collection.js', 'client/js/collections/acl_organization_links_collection.js', 'client/js/collections/board_user_roles_collection.js', 'client/js/collections/chat_history_collection.js', 'client/js/collections/intro_videoCollection.js', 'client/js/templates/templates.js', 'client/js/views/application_view.js', 'client/js/views/admin_user_add_view.js', 'client/js/views/register_view.js', 'client/js/views/login_view.js', 'client/js/views/authenticate_view.js', 'client/js/views/saml_authenticate_view.js', 'client/js/views/list_view.js', 'client/js/views/activity_view.js', 'client/js/views/board_view.js', 'client/js/views/header_view.js', 'client/js/views/footer_view.js', 'client/js/views/boards_index_view.js', 'client/js/views/users_forgot_password_view.js', 'client/js/views/users_activation_view.js', 'client/js/views/users_change_password_view.js', 'client/js/views/organization_view.js', 'client/js/views/organizations_user_view.js', 'client/js/views/boards_user_view.js', 'client/js/views/chat_view.js', 'client/js/views/intro_video_view.js', 'client/js/views/popup_view.js', 'client/js/views/card_view.js', 'client/js/views/modal_card_view.js', 'client/js/views/modal_list_view.js', 'client/js/views/modal_board_view.js', 'client/js/views/attachment_view.js', 'client/js/views/card_attachment_view.js', 'client/js/views/card_label_view.js', 'client/js/views/card_checklist_view.js', 'client/js/views/card_checklist_item_view.js', 'client/js/views/user_view.js', 'client/js/views/user_index_view.js', 'client/js/views/user_logins_index_view.js', 'client/js/views/push_notifications_index_view.js', 'client/js/views/board_simple_view.js', 'client/js/views/instant_card_add_view.js', 'client/js/views/role_index_view.js', 'client/js/views/role_settings_view.js', 'client/js/views/user_cards_view.js', 'client/js/views/user_activity_menu_view.js', 'client/js/views/user_boards_listing_menu_view.js', 'client/js/views/user_search_result_view.js', 'client/js/views/organization_visibility_form_view.js', 'client/js/views/organization_member_permission_form_view.js', 'client/js/views/organization_member_remove_form_view.js', 'client/js/views/organization_member_confirm_remove_form_view.js', 'client/js/views/attachment_delete_confirm_form_view.js', 'client/js/views/attachment_delete_confirm_form_view.js', 'client/js/views/board_organization_form_view.js', 'client/js/views/board_custom_background_view.js', 'client/js/views/board_sidebar_view.js', 'client/js/views/archived_items_view.js', 'client/js/views/board_background_view.js', 'client/js/views/board_filter_view.js', 'client/js/views/board_user_activity_view.js', 'client/js/views/board_user_remove_confirm_view.js', 'client/js/views/card_copy_view.js', 'client/js/views/list_archive_confirm_view.js', 'client/js/views/list_cards_archive_confirm_view.js', 'client/js/views/move_cards_from_list_view.js', 'client/js/views/move_list_view.js', 'client/js/views/copy_list_view.js', 'client/js/views/list_delete_confirm_view.js', 'client/js/views/list_actions_view.js', 'client/js/views/card_labels_form_view.js', 'client/js/views/card_positions_form_view.js', 'client/js/views/card_member_form_view.js', 'client/js/views/card_actions_view.js', 'client/js/views/activity_user_add_search_result_view.js', 'client/js/views/card_voters_list_view.js', 'client/js/views/activity_delete_confirm_view.js', 'client/js/views/edit_activity_form_view.js', 'client/js/views/activity_reply_form_view.js', 'client/js/views/activity_add_form_view.js', 'client/js/views/card_label_form_view.js', 'client/js/views/emoji_list_view.js', 'client/js/views/checklist_item_emoji_list_view.js', 'client/js/views/admin_users_logins_view.js', 'client/js/views/admin_push_notifications_view.js', 'client/js/views/admin_user_index_view.js', 'client/js/views/admin_boards_list_view.js', 'client/js/views/oauth_applications_view.js', 'client/js/views/oauth_client_view.js', 'client/js/views/oauth_client_add_view.js', 'client/js/views/oauth_client_edit_view.js', 'client/js/views/oauth_applications_view.js', 'client/js/views/app_view.js', 'client/js/views/app_setting_view.js', 'client/js/views/card_search_result_view.js', 'client/js/views/copy_from_existing_card_view.js', 'client/js/views/move_card_view.js', 'client/js/views/copy_card_view.js', 'client/js/views/activity_card_search_view.js', 'client/js/views/checklist_add_form_view.js', 'client/js/views/modal_card_member_form_view.js', 'client/js/views/card_search_users_result_view.js', 'client/js/views/notification_menu_view.js', 'client/js/views/organization_add_view.js', 'client/js/views/board_add_view.js', 'client/js/views/organizations_board_form_view.js', 'client/js/views/board_import_form_view.js', 'client/js/views/user_cards_view.js', 'client/js/views/checklist_item_add_form_view.js', 'client/js/views/checklist_delete_confirm_form_view.js', 'client/js/views/checklist_actions_view.js', 'client/js/views/checklist_item_actions_view.js', 'client/js/views/checklist_item_delete_confirm_form_view.js', 'client/js/views/checklist_item_edit_form_view.js', 'client/js/views/checklist_item_add_link_view.js', 'client/js/views/checklist_edit_form_view.js', 'client/js/views/attachment_delete_confirm_view.js', 'client/js/views/setting_view.js', 'client/js/views/instant_card_add_labels_form_view.js', 'client/js/views/instant_card_add_members_form_view.js', 'client/js/views/switch_to_list_form_view.js', 'client/js/views/user_activity_menu_view.js', 'client/js/views/user_board_list_view.js', 'client/js/views/archived_lists_view.js', 'client/js/views/archived_list_view.js', 'client/js/views/archived_cards_view.js', 'client/js/views/archived_card_view.js', 'client/js/views/edit_board_member_permission_to_normal_view.js', 'client/js/views/copy_board_visibility_view.js', 'client/js/views/show_all_visibility_view.js', 'client/js/views/show_board_member_permission_form_view.js', 'client/js/views/show_board_visibility_view.js', 'client/js/views/show_search_message_view.js', 'client/js/views/search_result_view.js', 'client/js/views/show_search_boards_view.js', 'client/js/views/search_board_subscribe_view.js', 'client/js/views/show_boards_list_view.js', 'client/js/views/my_boards_listing_view.js', 'client/js/views/started_boards_listing_view.js', 'client/js/views/closed_boards_listing_view.js', 'client/js/views/board_additional_setting_view.js', 'client/js/views/select_board_visibility_view.js', 'client/js/views/board_visibility_view.js', 'client/js/views/board_add_organization_form_view.js', 'client/js/views/board_member_add_search_result_view.js', 'client/js/views/checklist_item_mention_member_view.js', 'client/js/views/checklist_item_mention_member_search_form_view.js', 'client/js/views/organization_board_view.js', 'client/js/views/user_boards_listing_menu_view.js', 'client/js/views/board_user_actions_view.js', 'client/js/views/modal_user_activities_list_view.js', 'client/js/views/organizations_lists_view.js', 'client/js/views/organizations_list_view.js', 'client/js/views/email_template_view.js', 'client/js/views/user_activity_view.js', 'client/js/views/user_logins_index_container_view.js', 'client/js/views/push_notifications_index_container_view.js', 'client/js/views/user_index_container_view.js', 'client/js/views/selected_board_visibility_view.js', 'client/js/views/modal_activity_view.js', 'client/js/views/modal_flickr_photo_view.js', 'client/js/views/modal_unsplash_photo_view.js', 'client/js/views/modal_music_view.js', 'client/js/views/flickr_view.js', 'client/js/views/unsplash_view.js', 'client/js/views/board_404_view.js', 'client/js/views/organization_404_view.js', 'client/js/views/organization_header_view.js', 'client/js/views/user_view_header_view.js', 'client/js/views/organizations_lists_header_view.js', 'client/js/views/board_header_view.js', 'client/js/views/starred_boards_index_view.js', 'client/js/views/organization_delete_form_view.js', 'client/js/views/error_404_view.js', 'client/js/views/board_index_header_view.js', 'client/js/views/about_us_view.js', 'client/js/views/closed_boards_index_view.js', 'client/js/views/activity_index_view.js', 'client/js/views/admin_activity_index_view.js', 'client/js/views/show_sync_google_calendar_view.js', 'client/js/views/show_copy_board_view.js', 'client/js/views/invite_user_view.js', 'client/js/views/music_repeat_view.js', 'client/js/views/admin_board_view.js', 'client/js/views/admin_boards_index_view.js', 'client/js/views/email_to_board_setting_view.js', 'client/js/views/qr_code_view.js', 'client/js/views/user_dashboard_view.js', 'client/js/views/search_page_result_view.js', 'client/js/views/board_labels_view.js', 'client/js/views/board_labels_edit_view.js', 'client/js/views/label_delete_confirm_view.js', 'client/js/views/subscribe_board_confirm_view.js', 'client/js/views/unsubscribe_board_confirm_view.js', 'client/js/views/archived_cards_delete_confirm_view.js', 'client/js/views/archived_card_delete_confirm_view.js', 'client/js/views/archived_list_delete_confirm_view.js', 'client/js/views/archived_lists_delete_confirm_view.js', 'client/js/views/modal_shortcut_view.js', 'client/js/views/modal_chat_history_view.js', 'client/js/views/chat_history_view.js', 'client/js/common.js', 'client/js/filterUtility.js', 'client/js/application.js'); var source_js_files = new Array('Gruntfile.js', 'client/js/collections/**/*.js', 'client/js/models/**/*.js', 'client/js/views/**/*.js', 'client/js/application.js', 'client/js/filterUtility.js', 'client/js/common.js', 'client/apps/**/js/*.js', '!client/apps/**/js/default.cache.js', '!client/apps/**/css/default.cache.css', '!client/apps/r_gantt_view/js/app.js', '!client/apps/node_modules/**/*.js'); var backbone_source_js_files = new Array('client/js/collections/**/*.js', 'client/js/models/**/*.js', 'client/js/views/**/*.js'); var authorize_js_files = new Array('client/js/libs/jquery-1.8.3.js', 'client/js/libs/bootstrap-alert.js', 'client/js/libs/jquery.bootstrap-growl.js'); diff --git a/client/index.html b/client/index.html index 9a628376a..5bf42419c 100755 --- a/client/index.html +++ b/client/index.html @@ -226,6 +226,7 @@ + diff --git a/client/js/templates/popup.jst.ejs b/client/js/templates/popup.jst.ejs new file mode 100644 index 000000000..f59aeee12 --- /dev/null +++ b/client/js/templates/popup.jst.ejs @@ -0,0 +1,8 @@ +
+
+

<%- i18next.t("You're using open source Community Edition. Please consider upgrading to the Enterprise Edition and support this open source project") %>

+
+ +
\ No newline at end of file diff --git a/client/js/views/intro_video_view.js b/client/js/views/intro_video_view.js index c8edb5f55..4f17954c1 100644 --- a/client/js/views/intro_video_view.js +++ b/client/js/views/intro_video_view.js @@ -12,7 +12,7 @@ App.intro_video_view = Backbone.View.extend({ */ initialize: function() { var field = $('#content').attr('class'); - if (field === "container-fluid") { + if (field.indexOf("container-fluid") !== -1) { this.render(); } }, @@ -25,7 +25,9 @@ App.intro_video_view = Backbone.View.extend({ * */ render: function() { - $('#content').addClass('intro_video'); + if (!$('#content').hasClass("intro_video")) { + $('#content').addClass("intro_video"); + } if (authuser.user.is_intro_video_skipped === "f" || authuser.user.is_intro_video_skipped === null) { this.$el.dockmodal({ height: 300, @@ -151,9 +153,14 @@ App.intro_video_view = Backbone.View.extend({ } } }); + /*The popupView has been called here*/ + var popupView = new App.popupView(); } }); this.$el.html(this.template); + } else { + /*The popupView has been called here*/ + var popupView = new App.popupView(); } return this; } diff --git a/client/js/views/login_view.js b/client/js/views/login_view.js index 34edaed68..5fab0329c 100644 --- a/client/js/views/login_view.js +++ b/client/js/views/login_view.js @@ -121,6 +121,7 @@ App.LoginView = Backbone.View.extend({ auth_response.user.is_ldap = response.user.is_ldap; auth_response.user.is_saml = response.user.is_saml; auth_response.user.is_intro_video_skipped = response.user.is_intro_video_skipped; + auth_response.user.community_edition_popup = response.user.community_edition_popup; auth_response.user.is_two_factor_authentication_enabled = response.user.is_two_factor_authentication_enabled; $.cookie('auth', JSON.stringify(auth_response)); $.removeCookie('push_tokens'); @@ -146,6 +147,25 @@ App.LoginView = Backbone.View.extend({ } auth_user_organizations.add(authuser.user.organizations); self.changeFavicon(response.user.notify_count); + if (_.isUndefined(authuser.user.community_edition_popup) || _.isEmpty(authuser.user.community_edition_popup) || authuser.user.community_edition_popup == null) { + var userdata = {}; + userdata.date = moment(new Date()).format('YYYY-MM-DD HH:mm:ss').split(' ').join('T'); + userdata.is_skipped = false; + var formdata = {}; + formdata.community_edition_popup = JSON.stringify(userdata); + var user = new App.User(); + user.url = api_url + 'users/' + authuser.user.id + '.json'; + user.save(formdata, { + success: function(response) { + if (!_.isEmpty(response.attributes.success)) { + var Auth = JSON.parse($.cookie('auth')); + Auth.user.community_edition_popup = JSON.stringify(userdata); + $.cookie('auth', JSON.stringify(Auth)); + authuser = Auth; + } + } + }); + } this.headerView = new App.HeaderView({ model: model }); diff --git a/client/js/views/popup_view.js b/client/js/views/popup_view.js new file mode 100644 index 000000000..5ea76c632 --- /dev/null +++ b/client/js/views/popup_view.js @@ -0,0 +1,180 @@ +/** + * popup View + * @class popupView + * @constructor + * @extends Backbone.View + */ + +App.popupView = Backbone.View.extend({ + /** + * Constructor + * initialize default values and actions + */ + initialize: function() { + if (window.location.hash === "#/boards") { + this.render(); + } + }, + template: JST['templates/popup'], + /** + * render() + * populate the html to the dom + * @param NULL + * @return object + * + */ + render: function() { + var communityEditionPopup = JSON.parse(authuser.user.community_edition_popup); + var expirationDate = communityEditionPopup.date.replace('T', ' '); + expirationDate = new Date(expirationDate); + expirationDate.setDate(expirationDate.getDate() + parseInt(30)); + var currentDate = new Date('2021-08-01 16:56:23'); + if ((currentDate.getTime() > expirationDate.getTime()) && !communityEditionPopup.is_skipped) { + this.$el.dockmodal({ + height: 300, + width: 200, + animationSpeed: ANIMATION_SPEED, + title: "
" + i18next.t('Upgrade to Enterprise Edition') + "
", + beforePopout: function(event) { + if ($(window).width() < 1400) { + $('.editor').resizable({ + maxWidth: 1000, + minWidth: 500 + }); + } else { + $('.editor').resizable({ + maxWidth: 1050, + minWidth: 500 + }); + } + $('.editor').each(function() { + var $this = $(this); + var factor1 = '30', + factor2 = '70'; + if (!_.isUndefined(authuser.user) && !_.isEmpty(authuser.user)) { + if (!_.isUndefined(authuser.user.persist_card_divider_position) && authuser.user.persist_card_divider_position !== null) { + factor1 = authuser.user.persist_card_divider_position; + factor2 = 100 - factor1; + } + } + $this.resizable({ + handles: 'e', + resize: function(event, ui) { + var x = ui.element.outerWidth(); + var ele = ui.element; + var factor = x * 100 / $(this).parent().width(); + var f1 = factor; + var f2 = 100 - factor; + $.cookie('factor1', f1); + $this.css('width', f1 + '%'); + $this.next().css('width', f2 + '%'); + }, + stop: function(event, ui) { + var x = ui.element.outerWidth(); + var factor = x * 100 / $(this).parent().width(); + if (!_.isUndefined(authuser.user) && !_.isEmpty(authuser.user)) { + var data = { + persist_card_divider_position: factor + }; + var user = new App.User(); + user.url = api_url + 'users/' + authuser.user.id + '.json'; + user.set('id', parseInt(authuser.user.id)); + user.save(data, { + success: function(model, response) { + var Auth = JSON.parse($.cookie('auth')); + Auth.user.persist_card_divider_position = factor; + $.cookie('auth', JSON.stringify(Auth)); + authuser = Auth; + } + }); + } + }, + }).css({ + width: factor1 + '%' + }).next().css({ + width: factor2 + '%' + }); + }); + }, + beforeRestore: function(event) { + $('.editor').resizable({ + maxWidth: 380, + minWidth: 350 + }); + $('.editor').each(function() { + var $this = $(this); + var factor1 = '60'; + var factor2 = '40'; + $this.resizable({ + handles: 'e', + resize: function(event, ui) { + var x = ui.element.outerWidth(); + var ele = ui.element; + var factor = x * 100 / $(this).parent().width(); + var f1 = factor; + var f2 = 100 - factor; + $this.css('width', f1 + '%'); + $this.next().css('width', f2 + '%'); + } + }).css({ + width: factor1 + '%' + }).next().css({ + width: factor2 + '%' + }); + }); + }, + open: function(event, dialog) { + $('.dockmodal').removeClass('active'); + event.parent().parent().addClass('active'); + $('.dockmodal').click(function(e) { + $('.dockmodal').removeClass('active'); + $(this).addClass('active'); + }); + $(window).bind('keydown', function(e) { + if (e.keyCode === 27) { + $('.action-close', $('.dockmodal.active')).trigger('click'); + } + }); + }, + close: function(event, dialog) { + var data = {}; + data.date = communityEditionPopup.date; + data.is_skipped = true; + var formdata = {}; + formdata.community_edition_popup = JSON.stringify(data); + var user = new App.User(); + user.url = api_url + 'users/' + authuser.user.id + '.json'; + user.save(formdata, { + success: function(response) { + if (!_.isEmpty(response.attributes.success)) { + var Auth = JSON.parse($.cookie('auth')); + Auth.user.community_edition_popup = JSON.stringify(data); + $.cookie('auth', JSON.stringify(Auth)); + authuser = Auth; + } + } + }); + /* var data = {}; + + data.is_intro_video_skipped = true; + + $('.action-close', ('.dockmodal-header')).trigger('click'); + var introvideo = new App.intro_view_model(); + introvideo.url = api_url + 'users/' + authuser.user.id + '.json'; + introvideo.save(data, { + success: function(response) { + if (!_.isEmpty(response.attributes.success)) { + var Auth = JSON.parse($.cookie('auth')); + Auth.user.is_intro_video_skipped = response.attributes.is_intro_video_skipped; + $.cookie('auth', JSON.stringify(Auth)); + authuser = Auth; + } + } + }); */ + } + }); + this.$el.html(this.template); + } + return this; + } +}); diff --git a/server/php/R/r.php b/server/php/R/r.php index 0533a9833..cdc4639ee 100644 --- a/server/php/R/r.php +++ b/server/php/R/r.php @@ -3286,6 +3286,13 @@ function r_post($r_resource_cmd, $r_resource_vars, $r_resource_filters, $r_post) ); pg_query_params($db_lnk, 'UPDATE users SET is_intro_video_skipped= $1 WHERE id = $2', $qry_val_arr); } + if (!empty($r_post['community_edition_popup'])) { + $qry_val_arr = array( + $r_post['community_edition_popup'], + $r_resource_vars['users'] + ); + pg_query_params($db_lnk, 'UPDATE users SET community_edition_popup= $1 WHERE id = $2', $qry_val_arr); + } if (!empty($_POST['username'])) { $qry_val_arr = array( $r_resource_vars['users'] diff --git a/sql/upgrade-0.6.9-0.7.sql b/sql/upgrade-0.6.9-0.7.sql index b3972e71e..87f34b65a 100644 --- a/sql/upgrade-0.6.9-0.7.sql +++ b/sql/upgrade-0.6.9-0.7.sql @@ -382,8 +382,25 @@ CREATE OR REPLACE VIEW "user_push_tokens_listing" AS FROM ((user_push_tokens LEFT JOIN users ON ((users.id = user_push_tokens.user_id)))); -ALTER TABLE "users" -ADD "is_saml" boolean NOT NULL DEFAULT 'false'; +DO $$ + BEGIN + BEGIN + ALTER TABLE "users" ADD COLUMN "is_saml" boolean NOT NULL DEFAULT 'false'; + EXCEPTION + WHEN duplicate_column THEN RAISE NOTICE 'column is_saml already exists in users'; + END; + END; +$$; + +DO $$ + BEGIN + BEGIN + ALTER TABLE "users" ADD COLUMN "community_edition_popup" text NULL; + EXCEPTION + WHEN duplicate_column THEN RAISE NOTICE 'column community_edition_popup already exists in users'; + END; + END; +$$; CREATE OR REPLACE VIEW users_listing AS SELECT users.id, @@ -478,7 +495,8 @@ CREATE OR REPLACE VIEW users_listing AS users.is_invite_from_board, users.is_two_factor_authentication_enabled, users.persist_card_divider_position, - (users.is_saml)::integer AS is_saml + (users.is_saml)::integer AS is_saml, + users.community_edition_popup FROM (((((((((users users LEFT JOIN ips i ON ((i.id = users.ip_id))) LEFT JOIN cities rci ON ((rci.id = i.city_id))) @@ -803,4 +821,110 @@ CREATE OR REPLACE VIEW boards_listing AS board.show_pending_checklist_item FROM ((boards board LEFT JOIN users users ON ((users.id = board.user_id))) - LEFT JOIN organizations organizations ON ((organizations.id = board.organization_id))); \ No newline at end of file + LEFT JOIN organizations organizations ON ((organizations.id = board.organization_id))); + +CREATE OR REPLACE VIEW users_listing AS + SELECT users.id, + users.role_id, + users.username, + users.password, + users.email, + users.full_name, + users.initials, + users.about_me, + users.profile_picture_path, + users.notification_frequency, + (users.is_allow_desktop_notification)::integer AS is_allow_desktop_notification, + (users.is_active)::integer AS is_active, + (users.is_email_confirmed)::integer AS is_email_confirmed, + users.created_organization_count, + users.created_board_count, + users.joined_organization_count, + users.list_count, + users.joined_card_count, + users.created_card_count, + users.joined_board_count, + users.checklist_count, + users.checklist_item_completed_count, + users.checklist_item_count, + users.activity_count, + users.card_voter_count, + (users.is_productivity_beats)::integer AS is_productivity_beats, + ( SELECT array_to_json(array_agg(row_to_json(o.*))) AS array_to_json + FROM ( SELECT organizations_users_listing.organization_id AS id, + organizations_users_listing.name, + organizations_users_listing.description, + organizations_users_listing.website_url, + organizations_users_listing.logo_url, + organizations_users_listing.organization_visibility + FROM organizations_users_listing organizations_users_listing + WHERE (organizations_users_listing.user_id = users.id) + ORDER BY organizations_users_listing.id) o) AS organizations, + users.last_activity_id, + ( SELECT array_to_json(array_agg(row_to_json(o.*))) AS array_to_json + FROM ( SELECT boards_stars.id, + boards_stars.board_id, + boards_stars.user_id, + (boards_stars.is_starred)::integer AS is_starred + FROM board_stars boards_stars + WHERE (boards_stars.user_id = users.id) + ORDER BY boards_stars.id) o) AS boards_stars, + ( SELECT array_to_json(array_agg(row_to_json(o.*))) AS array_to_json + FROM ( SELECT boards_users.id, + boards_users.board_id, + boards_users.user_id, + boards_users.board_user_role_id, + boards.name, + boards.background_picture_url, + boards.background_pattern_url, + boards.background_color + FROM (boards_users boards_users + JOIN boards ON ((boards.id = boards_users.board_id))) + WHERE (boards_users.user_id = users.id) + ORDER BY boards_users.id) o) AS boards_users, + users.last_login_date, + li.ip AS last_login_ip, + lci.name AS login_city_name, + lst.name AS login_state_name, + lco.name AS login_country_name, + lower((lco.iso_alpha2)::text) AS login_country_iso2, + i.ip AS registered_ip, + rci.name AS register_city_name, + rst.name AS register_state_name, + rco.name AS register_country_name, + lower((rco.iso_alpha2)::text) AS register_country_iso2, + lt.name AS login_type, + to_char(users.created, 'YYYY-MM-DD"T"HH24:MI:SS'::text) AS created, + users.user_login_count, + users.is_send_newsletter, + users.last_email_notified_activity_id, + users.owner_board_count, + users.member_board_count, + users.owner_organization_count, + users.member_organization_count, + users.language, + (users.is_ldap)::integer AS is_ldap, + users.timezone, + users.default_desktop_notification, + users.is_list_notifications_enabled, + users.is_card_notifications_enabled, + users.is_card_members_notifications_enabled, + users.is_card_labels_notifications_enabled, + users.is_card_checklists_notifications_enabled, + users.is_card_attachments_notifications_enabled, + users.is_intro_video_skipped, + users.is_invite_from_board, + users.is_two_factor_authentication_enabled, + users.persist_card_divider_position, + (users.is_saml)::integer AS is_saml, + users.community_edition_popup, + FROM (((((((((users users + LEFT JOIN ips i ON ((i.id = users.ip_id))) + LEFT JOIN cities rci ON ((rci.id = i.city_id))) + LEFT JOIN states rst ON ((rst.id = i.state_id))) + LEFT JOIN countries rco ON ((rco.id = i.country_id))) + LEFT JOIN ips li ON ((li.id = users.last_login_ip_id))) + LEFT JOIN cities lci ON ((lci.id = li.city_id))) + LEFT JOIN states lst ON ((lst.id = li.state_id))) + LEFT JOIN countries lco ON ((lco.id = li.country_id))) + LEFT JOIN login_types lt ON ((lt.id = users.login_type_id))); \ No newline at end of file