/*+*********************************************************************************** * The contents of this file are subject to the vtiger CRM Public License Version 1.0 * ("License"); You may not use this file except in compliance with the License * The Original Code is: vtiger CRM Open Source * The Initial Developer of the Original Code is vtiger. * Portions created by vtiger are Copyright (C) vtiger. * All Rights Reserved. *************************************************************************************/ Vtiger_List_Js("Rss_List_Js",{},{ /** * Function get the height of the document * @return height */ getDocumentHeight : function() { return jQuery(document).height(); }, registerRssAddButtonClickEvent : function() { var thisInstance = this; jQuery('.rssAddButton').on('click', function() { thisInstance.showRssAddForm(); }) }, /** * Function show rssAddForm model */ showRssAddForm : function() { var thisInstance = this; thisInstance.getRssAddFormUi().then(function(data) { var resetPasswordUi = jQuery('.rssAddFormContainer').find('#rssAddFormUi'); if(resetPasswordUi.length > 0){ resetPasswordUi = resetPasswordUi.clone(true,true); var callback = function(data) { var form = data.find('#rssAddForm'); var params = { submitHandler: function(form) { var form = jQuery(form); thisInstance.rssFeedSave(form); } }; form.vtValidate(params); } app.helper.showModal(resetPasswordUi, {cb: callback}); } }); }, /** * Function to get the rss add form * @param url */ getRssAddFormUi : function(url) { var aDeferred = jQuery.Deferred(); var resetPasswordContainer = jQuery('.rssAddFormContainer'); var resetPasswordUi = resetPasswordContainer.find('#rssAddFormUi'); if(resetPasswordUi.length == 0) { var actionParams = { 'module' : app.getModuleName(), 'view' : 'ViewTypes', 'mode' : 'getRssAddForm' }; app.request.get({'data' : actionParams}).then(function(error, data){ resetPasswordContainer.html(data); aDeferred.resolve(data); }, function(textStatus, errorThrown){ aDeferred.reject(textStatus, errorThrown); } ); } else { aDeferred.resolve(); } return aDeferred.promise(); }, /** * Function to save rss feed * @parm form */ rssFeedSave : function(form) { var thisInstance = this; var data = form.serializeFormData(); app.helper.showProgress(); var params = { 'module': app.getModuleName(), 'action' : 'Save', 'feedurl' : data.feedurl } app.request.post({data : params}).then(function(error, result) { app.helper.hideProgress(); if (result.success) { app.helper.hideModal(); thisInstance.getRssFeeds(result.id).then(function () { thisInstance.loadRssWidget(data, result).then(function () { app.helper.showAlertNotification({message: app.vtranslate(result.message)}); }); }); } else { app.helper.showErrorNotification({message:app.vtranslate(result.message)}); } } ); }, /** * Function to register click on the rss sidebar link */ registerRssUrlClickEvent : function() { var thisInstance = this; jQuery('.quickWidgetContainer').on('click','.rssLink', function(e) { var element = jQuery(e.currentTarget); var id = element.data('id'); thisInstance.getRssFeeds(id); }); }, /** * Function to get the feeds for specific id * @param id */ getRssFeeds : function(id) { var thisInstance = this; var aDeferred = jQuery.Deferred(); var container = thisInstance.getListViewContainer(); app.helper.showProgress(); var params = { 'module' : app.getModuleName(), 'view' : 'List', 'id' : id } app.request.pjax({'data': params}).then(function (error, data) { container.find('#listViewContents').replaceWith(data); // thisInstance.setFeedContainerHeight(container); app.helper.hideProgress(); aDeferred.resolve(data); }); return aDeferred.promise(); }, /** * Function to get the height of the Feed Container * @param container */ setFeedContainerHeight : function(container) { var height = this.getDocumentHeight()/2; container.find('.feedListContainer').height(height); }, /** * Function to register the click of feeds * @param container */ registerFeedClickEvent : function(container) { var thisInstance = this; container.on('click' , '.feedLink', function(e) { var element = jQuery(e.currentTarget); var url = element.data('url'); var frameElement = thisInstance.getFrameElement(url) container.find('.feedFrame').html(frameElement); }); }, /** * Function to get the iframe element * @param url * @retrun frameElement */ getFrameElement : function(url) { app.helper.showProgress(); var frameElement = jQuery('