Spaces:
No application file
No application file
| Mautic.getNetworkFormAction = function(networkType) { | |
| // removes errors when network type properties has changed | |
| if (networkType && mQuery(networkType).val() && mQuery(networkType).closest('.form-group').hasClass('has-error')) { | |
| mQuery(networkType).closest('.form-group').removeClass('has-error'); | |
| if (mQuery(networkType).next().hasClass('help-block')) { | |
| mQuery(networkType).next().remove(); | |
| } | |
| } | |
| Mautic.activateLabelLoadingIndicator('monitoring_networkType'); | |
| var query = "action=plugin:mauticSocial:getNetworkForm&networkType=" + mQuery(networkType).val(); | |
| mQuery.ajax({ | |
| url: mauticAjaxUrl, | |
| type: "POST", | |
| data: query, | |
| dataType: "json", | |
| success: function (response) { | |
| if (typeof response.html != 'undefined') { | |
| // pushes response into container element | |
| mQuery('#properties-container').html(response.html); | |
| // sends markup through core js parsers | |
| if (response.html != '') { | |
| Mautic.onPageLoad('#properties-container', response); | |
| } | |
| } | |
| }, | |
| error: function (request, textStatus, errorThrown) { | |
| Mautic.processAjaxError(request, textStatus, errorThrown); | |
| }, | |
| complete: function() { | |
| Mautic.removeLabelLoadingIndicator(); | |
| } | |
| }); | |
| }; | |
| /* | |
| * watches the compose field and updates various parts of the modal and text area | |
| */ | |
| Mautic.composeSocialWatcher = function() { | |
| // the text area | |
| var input = mQuery('textarea.tweet-message'); | |
| // on load | |
| Mautic.updateCharacterCount(); | |
| // watch the text area keyup | |
| input.on('keyup', function(){ | |
| Mautic.updateCharacterCount(); | |
| }); | |
| var pageId = mQuery('select.tweet-insert-page'); | |
| var assetId = mQuery('select.tweet-insert-asset'); | |
| var handle = mQuery('button.tweet-insert-handle'); | |
| pageId.on('change', function() { | |
| Mautic.insertSocialLink(pageId.val(), 'pagelink', false); | |
| }); | |
| assetId.on('change', function() { | |
| Mautic.insertSocialLink(assetId.val(), 'assetlink', false); | |
| }); | |
| handle.on('click', function() { | |
| Mautic.insertSocialLink(false, 'twitter_handle', true); | |
| }); | |
| }; | |
| /* | |
| * gets the count of the text area and returns (140 - count) | |
| */ | |
| Mautic.getCharacterCount = function() { | |
| var tweetLenght = 280; | |
| var currentLength = mQuery('textarea#twitter_tweet_text'); | |
| return (tweetLenght - currentLength.val().length); | |
| }; | |
| /* | |
| * sets the content of the character count span | |
| */ | |
| Mautic.updateCharacterCount = function() { | |
| var tweetCount = Mautic.getCharacterCount(); | |
| var countContainer = mQuery('#character-count span'); | |
| countContainer.text(tweetCount); | |
| }; | |
| /* | |
| * inserts a link placeholder into the text box. | |
| * | |
| * @id the id of the link placeholder | |
| * @type the type of link to insert | |
| * @skipId if the id is blank and this is true it'll still insert the link | |
| */ | |
| Mautic.insertSocialLink = function(id, type, skipId) { | |
| // if there is no id and skipID is false then exit | |
| if (! id && ! skipId) { | |
| return; | |
| } | |
| // if we need to skip the id state just leave it out | |
| if (skipId) { | |
| var link = '{' + type + '}'; | |
| } | |
| else { | |
| var link = '{' + type + '=' + id + '}'; | |
| } | |
| var textarea = mQuery('textarea.tweet-message'); | |
| var currentVal = textarea.val(); | |
| var newVal = (currentVal) ? currentVal + ' ' + link : link; | |
| textarea.val(newVal); | |
| Mautic.updateCharacterCount(); | |
| }; |