Initial commit
This commit is contained in:
58
js/entry-detail.js
Normal file
58
js/entry-detail.js
Normal file
@@ -0,0 +1,58 @@
|
||||
(function (GravityFlowEntryDetail, $) {
|
||||
GravityFlowEntryDetail.printPage = function( sURL ) {
|
||||
printPage( sURL );
|
||||
};
|
||||
|
||||
GravityFlowEntryDetail.displayDiscussionItemToggle = function (formId, fieldId, displayLimit) {
|
||||
|
||||
$toggle = $(':focus').parent();
|
||||
$toggle.find( '.gravityflow-dicussion-item-hidden' ).slideToggle( 'fast' );
|
||||
|
||||
var $viewMore = $toggle.children( '.gravityflow-dicussion-item-toggle-display' );
|
||||
var oldText = $viewMore.attr( 'title' );
|
||||
var newText = $viewMore.data( 'title' );
|
||||
|
||||
$viewMore.attr( 'title', newText ).text( newText );
|
||||
$viewMore.data( 'title', oldText );
|
||||
|
||||
}
|
||||
|
||||
}(window.GravityFlowEntryDetail = window.GravityFlowEntryDetail || {}, jQuery));
|
||||
|
||||
function closePrint () {
|
||||
document.body.removeChild( this.__container__ );
|
||||
}
|
||||
|
||||
function setPrint () {
|
||||
this.contentWindow.__container__ = this;
|
||||
this.contentWindow.onbeforeunload = closePrint;
|
||||
this.contentWindow.onafterprint = closePrint;
|
||||
this.contentWindow.focus();
|
||||
|
||||
var ms_ie = false;
|
||||
var ua = window.navigator.userAgent;
|
||||
var old_ie = ua.indexOf( 'MSIE ' );
|
||||
var new_ie = ua.indexOf( 'Trident/' );
|
||||
|
||||
if ((old_ie > -1) || (new_ie > -1)) {
|
||||
ms_ie = true;
|
||||
}
|
||||
|
||||
if ( ms_ie ) {
|
||||
this.contentWindow.document.execCommand( 'print', false, null );
|
||||
} else {
|
||||
this.contentWindow.print();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function printPage (sURL) {
|
||||
var oHiddFrame = document.createElement( "iframe" );
|
||||
oHiddFrame.onload = setPrint;
|
||||
oHiddFrame.style.visibility = "hidden";
|
||||
oHiddFrame.style.position = "fixed";
|
||||
oHiddFrame.style.right = "0";
|
||||
oHiddFrame.style.bottom = "0";
|
||||
oHiddFrame.src = sURL;
|
||||
document.body.appendChild( oHiddFrame );
|
||||
}
|
||||
1
js/entry-detail.min.js
vendored
Normal file
1
js/entry-detail.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
function closePrint(){document.body.removeChild(this.__container__)}function setPrint(){(this.contentWindow.__container__=this).contentWindow.onbeforeunload=closePrint,this.contentWindow.onafterprint=closePrint,this.contentWindow.focus();var t=!1,n=window.navigator.userAgent,i=n.indexOf("MSIE "),e=n.indexOf("Trident/");(-1<i||-1<e)&&(t=!0),t?this.contentWindow.document.execCommand("print",!1,null):this.contentWindow.print()}function printPage(t){var n=document.createElement("iframe");n.onload=setPrint,n.style.visibility="hidden",n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.src=t,document.body.appendChild(n)}!function(t,r){t.printPage=function(t){printPage(t)},t.displayDiscussionItemToggle=function(t,n,i){$toggle=r(":focus").parent(),$toggle.find(".gravityflow-dicussion-item-hidden").slideToggle("fast");var e=$toggle.children(".gravityflow-dicussion-item-toggle-display"),o=e.attr("title"),d=e.data("title");e.attr("title",d).text(d),e.data("title",o)}}(window.GravityFlowEntryDetail=window.GravityFlowEntryDetail||{},jQuery);
|
||||
64
js/feed-list.js
Normal file
64
js/feed-list.js
Normal file
@@ -0,0 +1,64 @@
|
||||
(function (GravityFlow, $) {
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
if ( $('table.wp-list-table tbody tr').length == 1 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each( $('.wp-list-table tbody tr'), function() {
|
||||
$( this ).css( 'border-left', '5px solid ' + $(this).find('.step_highlight_color').css( 'background-color' ) );
|
||||
});
|
||||
$('.wp-list-table .step_highlight').remove();
|
||||
|
||||
var sortHandleMarkup = '<td class="sort-column"><i class="fa fa-bars feed-sort-handle"></i></td>';
|
||||
$('.wp-list-table thead tr, .wp-list-table tfoot tr').append('<th class="sort-column"></th>');
|
||||
$('.wp-list-table tbody tr').append(sortHandleMarkup);
|
||||
|
||||
$('.wp-list-table tbody').addClass('gravityflow-reorder-mode')
|
||||
.sortable({
|
||||
tolerance: "pointer",
|
||||
placeholder: "step-drop-zone",
|
||||
helper: fixHelperModified,
|
||||
handle: '.feed-sort-handle',
|
||||
update: function(event, ui){
|
||||
|
||||
var $feedIds = $(".wp-list-table tbody .check-column input[type=checkbox]");
|
||||
|
||||
var feedIds = $feedIds.map(function(){return $(this).val();}).get();
|
||||
|
||||
var data = {
|
||||
action: 'gravityflow_save_feed_order',
|
||||
feed_ids: feedIds,
|
||||
form_id: form.id
|
||||
};
|
||||
|
||||
$.post( ajaxurl, data)
|
||||
.done( function( response ) {
|
||||
if ( response ) {
|
||||
// OK
|
||||
} else {
|
||||
console.log( 'Error re-ordering feeds');
|
||||
console.log( response);
|
||||
}
|
||||
} )
|
||||
.fail( function( response ) {
|
||||
console.log( 'Error re-ordering feeds');
|
||||
console.log( response);
|
||||
} );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}(window.GravityFlow = window.GravityFlow || {}, jQuery));
|
||||
|
||||
|
||||
var fixHelperModified = function(e, tr) {
|
||||
var $originals = tr.children();
|
||||
console.log('originals: ' + $originals.length);
|
||||
var $helper = tr.clone();
|
||||
$helper.children().each(function(index) {
|
||||
jQuery(this).width($originals.eq(index).width());
|
||||
});
|
||||
return $helper;
|
||||
};
|
||||
1
js/feed-list.min.js
vendored
Normal file
1
js/feed-list.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(e,l){l(document).ready(function(){if(1!=l("table.wp-list-table tbody tr").length){l.each(l(".wp-list-table tbody tr"),function(){l(this).css("border-left","5px solid "+l(this).find(".step_highlight_color").css("background-color"))}),l(".wp-list-table .step_highlight").remove();l(".wp-list-table thead tr, .wp-list-table tfoot tr").append('<th class="sort-column"></th>'),l(".wp-list-table tbody tr").append('<td class="sort-column"><i class="fa fa-bars feed-sort-handle"></i></td>'),l(".wp-list-table tbody").addClass("gravityflow-reorder-mode").sortable({tolerance:"pointer",placeholder:"step-drop-zone",helper:fixHelperModified,handle:".feed-sort-handle",update:function(e,t){var o={action:"gravityflow_save_feed_order",feed_ids:l(".wp-list-table tbody .check-column input[type=checkbox]").map(function(){return l(this).val()}).get(),form_id:form.id};l.post(ajaxurl,o).done(function(e){e||(console.log("Error re-ordering feeds"),console.log(e))}).fail(function(e){console.log("Error re-ordering feeds"),console.log(e)})}})}})}(window.GravityFlow=window.GravityFlow||{},jQuery);var fixHelperModified=function(e,t){var o=t.children();console.log("originals: "+o.length);var l=t.clone();return l.children().each(function(e){jQuery(this).width(o.eq(e).width())}),l};
|
||||
100
js/form-editor.js
Normal file
100
js/form-editor.js
Normal file
@@ -0,0 +1,100 @@
|
||||
function SetDefaultValues_workflow_assignee_select(field) {
|
||||
|
||||
field.gravityflowAssigneeFieldShowUsers = true;
|
||||
field.gravityflowAssigneeFieldShowRoles = true;
|
||||
field.gravityflowAssigneeFieldShowFields = true;
|
||||
|
||||
field.choices = '';
|
||||
|
||||
|
||||
return field;
|
||||
}
|
||||
|
||||
function SetDefaultValues_workflow_user(field) {
|
||||
|
||||
field.label = gravityflow_form_editor_js_strings.user.defaults.label;
|
||||
field.choices = '';
|
||||
|
||||
return field;
|
||||
}
|
||||
|
||||
function SetDefaultValues_workflow_role(field) {
|
||||
|
||||
field.label = gravityflow_form_editor_js_strings.role.defaults.label;
|
||||
field.choices = '';
|
||||
|
||||
return field;
|
||||
}
|
||||
|
||||
function SetDefaultValues_workflow_discussion(field) {
|
||||
field.label = gravityflow_form_editor_js_strings.discussion.defaults.label;
|
||||
}
|
||||
|
||||
function SetDiscussionTimestampFormat(format) {
|
||||
SetFieldProperty('gravityflowDiscussionTimestampFormat', format);
|
||||
RefreshSelectedFieldPreview();
|
||||
}
|
||||
|
||||
function SetAssigneeFieldShowUsers() {
|
||||
var value = jQuery('#gravityflow-assignee-field-show-users').is(':checked');
|
||||
SetFieldProperty('gravityflowAssigneeFieldShowUsers', value);
|
||||
|
||||
var roleFilter = jQuery('li.gravityflow_setting_users_role_filter');
|
||||
|
||||
if (!value) {
|
||||
roleFilter.hide('slow', function () {
|
||||
jQuery('#gravityflow_users_role_filter').val('');
|
||||
SetFieldProperty('gravityflowUsersRoleFilter', '');
|
||||
});
|
||||
} else {
|
||||
roleFilter.show('slow');
|
||||
}
|
||||
}
|
||||
|
||||
jQuery(document).bind('gform_load_field_settings', function (event, field, form) {
|
||||
var isAssigneeField = field.type == 'workflow_assignee_select';
|
||||
var isWorkflowUserField = field.type == 'workflow_user';
|
||||
var isWorkflowRoleField = field.type == 'workflow_role';
|
||||
var isWorkflowDiscussionField = field.type == 'workflow_discussion';
|
||||
|
||||
if ( isAssigneeField || isWorkflowUserField || isWorkflowRoleField ) {
|
||||
field.choices = '';
|
||||
}
|
||||
|
||||
if (isAssigneeField) {
|
||||
var showUsers = field.gravityflowAssigneeFieldShowUsers;
|
||||
|
||||
jQuery('#gravityflow-assignee-field-show-users').prop('checked', !!showUsers);
|
||||
jQuery('#gravityflow-assignee-field-show-roles').prop('checked', !!field.gravityflowAssigneeFieldShowRoles);
|
||||
jQuery('#gravityflow-assignee-field-show-fields').prop('checked', !!field.gravityflowAssigneeFieldShowFields);
|
||||
|
||||
if (showUsers) {
|
||||
jQuery('li.gravityflow_setting_users_role_filter').toggle();
|
||||
}
|
||||
}
|
||||
|
||||
if (isAssigneeField || isWorkflowUserField) {
|
||||
jQuery('#gravityflow_users_role_filter').val(field.gravityflowUsersRoleFilter);
|
||||
}
|
||||
|
||||
if ( isWorkflowDiscussionField ) {
|
||||
var timestamp_format = field.gravityflowDiscussionTimestampFormat == undefined ? '' : field.gravityflowDiscussionTimestampFormat;
|
||||
jQuery('#gravityflow_discussion_timestamp_format').val(timestamp_format);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
// Allow admin-only field to be used in conditional logic.
|
||||
gform.addFilter('gform_is_conditional_logic_field', function (isConditionalLogicField, field) {
|
||||
if (field.adminOnly || field.visibility == 'administrative') {
|
||||
var inputType = field.inputType ? field.inputType : field.type,
|
||||
supported_fields = GetConditionalLogicFields(),
|
||||
index = jQuery.inArray(inputType, supported_fields);
|
||||
|
||||
isConditionalLogicField = index >= 0 ? true : false;
|
||||
}
|
||||
return isConditionalLogicField;
|
||||
}, 20 );
|
||||
});
|
||||
1
js/form-editor.min.js
vendored
Normal file
1
js/form-editor.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
function SetDefaultValues_workflow_assignee_select(e){return e.gravityflowAssigneeFieldShowUsers=!0,e.gravityflowAssigneeFieldShowRoles=!0,e.gravityflowAssigneeFieldShowFields=!0,e.choices="",e}function SetDefaultValues_workflow_user(e){return e.label=gravityflow_form_editor_js_strings.user.defaults.label,e.choices="",e}function SetDefaultValues_workflow_role(e){return e.label=gravityflow_form_editor_js_strings.role.defaults.label,e.choices="",e}function SetDefaultValues_workflow_discussion(e){e.label=gravityflow_form_editor_js_strings.discussion.defaults.label}function SetDiscussionTimestampFormat(e){SetFieldProperty("gravityflowDiscussionTimestampFormat",e),RefreshSelectedFieldPreview()}function SetAssigneeFieldShowUsers(){var e=jQuery("#gravityflow-assignee-field-show-users").is(":checked");SetFieldProperty("gravityflowAssigneeFieldShowUsers",e);var i=jQuery("li.gravityflow_setting_users_role_filter");e?i.show("slow"):i.hide("slow",function(){jQuery("#gravityflow_users_role_filter").val(""),SetFieldProperty("gravityflowUsersRoleFilter","")})}jQuery(document).bind("gform_load_field_settings",function(e,i,s){var r="workflow_assignee_select"==i.type,o="workflow_user"==i.type,l="workflow_role"==i.type,t="workflow_discussion"==i.type;if((r||o||l)&&(i.choices=""),r){var a=i.gravityflowAssigneeFieldShowUsers;jQuery("#gravityflow-assignee-field-show-users").prop("checked",!!a),jQuery("#gravityflow-assignee-field-show-roles").prop("checked",!!i.gravityflowAssigneeFieldShowRoles),jQuery("#gravityflow-assignee-field-show-fields").prop("checked",!!i.gravityflowAssigneeFieldShowFields),a&&jQuery("li.gravityflow_setting_users_role_filter").toggle()}if((r||o)&&jQuery("#gravityflow_users_role_filter").val(i.gravityflowUsersRoleFilter),t){var f=null==i.gravityflowDiscussionTimestampFormat?"":i.gravityflowDiscussionTimestampFormat;jQuery("#gravityflow_discussion_timestamp_format").val(f)}}),jQuery(document).ready(function(){gform.addFilter("gform_is_conditional_logic_field",function(e,i){if(i.adminOnly||"administrative"==i.visibility){var s=i.inputType?i.inputType:i.type,r=GetConditionalLogicFields();e=0<=jQuery.inArray(s,r)}return e},20)});
|
||||
560
js/form-settings.js
Normal file
560
js/form-settings.js
Normal file
@@ -0,0 +1,560 @@
|
||||
;(function (GravityFlowFeedSettings, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$('#editable_fields, .gravityflow-multiselect-ui').multiSelect();
|
||||
|
||||
var multiSelectWithSearch = {
|
||||
selectableHeader: "<input type='text' class='search-input' autocomplete='off' placeholder='"+gravityflow_form_settings_js_strings.assigneeSearchPlaceholder+"'>",
|
||||
selectionHeader: "<input type='text' class='search-input' autocomplete='off' placeholder='"+gravityflow_form_settings_js_strings.assigneeSearchPlaceholder+"'>",
|
||||
afterInit: function(ms){
|
||||
var that = this,
|
||||
$selectableSearch = that.$selectableUl.prev(),
|
||||
$selectionSearch = that.$selectionUl.prev(),
|
||||
selectableSearchString = '#'+ms.attr('id')+' .ms-elem-selectable:not(.ms-selected)',
|
||||
selectionSearchString = '#'+ms.attr('id')+' .ms-elem-selection.ms-selected';
|
||||
|
||||
if ( $('#'+ms.attr('id')+' .ms-elem-selectable').length > 10 ) {
|
||||
$('.ms-container .search-input').show();
|
||||
}
|
||||
|
||||
that.qs1 = $selectableSearch.quicksearch(selectableSearchString)
|
||||
.on('keydown', function(e){
|
||||
if (e.which === 40){
|
||||
that.$selectableUl.focus();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
that.qs2 = $selectionSearch.quicksearch(selectionSearchString)
|
||||
.on('keydown', function(e){
|
||||
if (e.which == 40){
|
||||
that.$selectionUl.focus();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
afterSelect: function(){
|
||||
this.qs1.cache();
|
||||
this.qs2.cache();
|
||||
},
|
||||
afterDeselect: function(){
|
||||
this.qs1.cache();
|
||||
this.qs2.cache();
|
||||
}
|
||||
};
|
||||
|
||||
$('#assignees, #workflow_notification_users').multiSelect(multiSelectWithSearch);
|
||||
|
||||
var gravityFlowIsDirty = false, gravityFlowSubmitted = false;
|
||||
|
||||
$('form#gform-settings').submit(function () {
|
||||
gravityFlowSubmitted = true;
|
||||
$('form#gform-settings').find(':input').removeAttr('disabled');
|
||||
});
|
||||
|
||||
$(':input').change(function () {
|
||||
gravityFlowIsDirty = true;
|
||||
});
|
||||
|
||||
window.onbeforeunload = function () {
|
||||
if (gravityFlowIsDirty && !gravityFlowSubmitted) {
|
||||
return "You have unsaved changes.";
|
||||
}
|
||||
};
|
||||
|
||||
var $stepType = $('input[name=_gaddon_setting_step_type]:checked');
|
||||
var selectedStepType = $stepType.val();
|
||||
|
||||
var $statusExpiration = $('#status_expiration');
|
||||
var expiredSelected = $statusExpiration.val() == 'expired';
|
||||
$('#expiration_sub_setting_destination_expired').toggle(expiredSelected);
|
||||
$statusExpiration.change(function () {
|
||||
var show = $(this).val() == 'expired';
|
||||
$('#expiration_sub_setting_destination_expired').fadeToggle(show);
|
||||
});
|
||||
|
||||
setSubSettings();
|
||||
|
||||
var selectedType = $("input[name=_gaddon_setting_type]:checked");
|
||||
toggleType(selectedType.val());
|
||||
|
||||
$('#gaddon-setting-row-type input[type=radio]').change(function () {
|
||||
toggleType(this.value);
|
||||
});
|
||||
|
||||
GravityFlowFeedSettings.getUsersMarkup = function (propertyName) {
|
||||
var i, n, account,
|
||||
accounts = gf_routing_setting_strings['accounts'],
|
||||
str = '<select class="gform-routing-users ' + propertyName + '_{i}">';
|
||||
|
||||
for (i = 0; i < accounts.length; i++) {
|
||||
account = accounts[i];
|
||||
if (typeof account.choices != 'undefined') {
|
||||
var optgroup = '', choice;
|
||||
for (n = 0; n < account.choices.length; n++) {
|
||||
choice = account.choices[n];
|
||||
optgroup += '<option value="{0}">{1}</option>'.format(choice.value, choice.label);
|
||||
}
|
||||
str += '<optgroup label="{0}">{1}</option>'.format(account.label, optgroup);
|
||||
|
||||
} else {
|
||||
str += '<option value="{0}">{1}</option>'.format(account.value, account.label);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
str += "</select>";
|
||||
return str;
|
||||
};
|
||||
|
||||
var $routingSetting = $('#gform_routing_setting');
|
||||
|
||||
var json = $('#routing').val();
|
||||
|
||||
var routing_items = json ? $.parseJSON(json) : null;
|
||||
|
||||
var options;
|
||||
if ($('#editable_fields').length > 0) {
|
||||
if (!routing_items) {
|
||||
routing_items = [{
|
||||
assignee: gf_routing_setting_strings['accounts'][0]['choices'][0]['value'],
|
||||
editable_fields: [gf_routing_setting_strings['input_fields'][0]['key']],
|
||||
fieldId: '0',
|
||||
operator: 'is',
|
||||
value: '',
|
||||
type: ''
|
||||
}];
|
||||
$('#user_input_routing').val($.toJSON(routing_items));
|
||||
}
|
||||
|
||||
options = {
|
||||
fieldName: $routingSetting.data('field_name'),
|
||||
fieldId: $routingSetting.data('field_id'),
|
||||
settings: gf_routing_setting_strings['fields'],
|
||||
accounts: gf_routing_setting_strings['accounts'],
|
||||
imagesURL: gf_vars.baseUrl + "/images",
|
||||
items: routing_items,
|
||||
callbacks: {
|
||||
addNewTarget: function (obj, target) {
|
||||
|
||||
var str = GravityFlowFeedSettings.getUsersMarkup('assignee');
|
||||
|
||||
var $fields = $('#editable_fields').clone();
|
||||
$fields.attr('name', 'editable_fields');
|
||||
var id = $('#gform-routings tbody tr').length;
|
||||
$fields.attr('id', 'editable_fields_routing_{i}');
|
||||
$fields.attr('style', '');
|
||||
$fields.addClass('gform-routing-input-field editable_fields_{i}');
|
||||
|
||||
str += '</td><td>' + $fields[0].outerHTML;
|
||||
return str;
|
||||
},
|
||||
header: function (obj, header) {
|
||||
return '<thead><tr><th>Assign To</th><th>Editable Fields</th><th colspan="3">Condition</th></tr></thead>';
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
if (!routing_items) {
|
||||
routing_items = [{
|
||||
assignee: gf_routing_setting_strings['accounts'][0]['choices'][0]['value'],
|
||||
fieldId: '0',
|
||||
operator: 'is',
|
||||
value: '',
|
||||
type: ''
|
||||
}];
|
||||
$('#routing').val($.toJSON(routing_items));
|
||||
}
|
||||
|
||||
options = {
|
||||
fieldName: $routingSetting.data('field_name'),
|
||||
fieldId: $routingSetting.data('field_id'),
|
||||
settings: gf_routing_setting_strings['fields'],
|
||||
accounts: gf_routing_setting_strings['accounts'],
|
||||
imagesURL: gf_vars.baseUrl + "/images",
|
||||
items: routing_items,
|
||||
callbacks: {
|
||||
addNewTarget: function (obj, target) {
|
||||
var str = GravityFlowFeedSettings.getUsersMarkup('assignee');
|
||||
return str;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
$routingSetting.gfRoutingSetting(options);
|
||||
|
||||
// Workflow Notification
|
||||
|
||||
$('#gaddon-setting-row-workflow_notification_type input[type=radio]').click(function () {
|
||||
toggleWorkflowNotificationType(this.value);
|
||||
});
|
||||
|
||||
var workflowNotificationEnabled = $('#workflow_notification_enabled').prop('checked');
|
||||
toggleWorkflowNotificationSettings(workflowNotificationEnabled);
|
||||
$('#workflow_notification_enabled').click(function () {
|
||||
toggleWorkflowNotificationSettings(this.checked);
|
||||
});
|
||||
|
||||
var $workflowNotificationRoutingSetting = $('#gform_user_routing_setting_workflow_notification_routing');
|
||||
|
||||
var workflowNotificationRoutingJSON = $('#workflow_notification_routing').val();
|
||||
|
||||
var workflow_notification_routing_items = workflowNotificationRoutingJSON ? $.parseJSON(workflowNotificationRoutingJSON) : null;
|
||||
|
||||
if (!workflow_notification_routing_items) {
|
||||
workflow_notification_routing_items = [{
|
||||
assignee: gf_routing_setting_strings['accounts'][0]['choices'][0]['value'],
|
||||
fieldId: '0',
|
||||
operator: 'is',
|
||||
value: '',
|
||||
type: '',
|
||||
}];
|
||||
$('#workflow_notification_routing').val($.toJSON(workflow_notification_routing_items));
|
||||
}
|
||||
|
||||
var workflowNotificationOptions = {
|
||||
fieldName: $workflowNotificationRoutingSetting.data('field_name'),
|
||||
fieldId: $workflowNotificationRoutingSetting.data('field_id'),
|
||||
settings: gf_routing_setting_strings['fields'],
|
||||
accounts: gf_routing_setting_strings['accounts'],
|
||||
imagesURL: gf_vars.baseUrl + "/images",
|
||||
items: workflow_notification_routing_items,
|
||||
callbacks: {
|
||||
addNewTarget: function (obj, target) {
|
||||
var str = GravityFlowFeedSettings.getUsersMarkup('assignee');
|
||||
return str;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$workflowNotificationRoutingSetting.gfRoutingSetting(workflowNotificationOptions);
|
||||
|
||||
// Notification Tabs
|
||||
|
||||
GravityFlowFeedSettings.initNotificationTab = function (type) {
|
||||
$('#' + type + '_notification_users').multiSelect(multiSelectWithSearch);
|
||||
|
||||
var $enabledSetting = $('#' + type + '_notification_enabled');
|
||||
|
||||
toggleNotificationTabSettings($enabledSetting.prop('checked'), type);
|
||||
|
||||
$enabledSetting.click(function () {
|
||||
toggleNotificationTabSettings(this.checked, type);
|
||||
});
|
||||
|
||||
$('#gaddon-setting-tab-field-' + type + '_notification_type input[type=radio]').click(function () {
|
||||
toggleNotificationTabSettings(true, type);
|
||||
});
|
||||
|
||||
var $routingSetting = $('#gform_user_routing_setting_' + type + '_notification_routing');
|
||||
|
||||
if ($routingSetting.length) {
|
||||
var $routingJSONInput = $('#' + type + '_notification_routing'),
|
||||
routingJSON = $routingJSONInput.val(),
|
||||
routingItems = routingJSON ? $.parseJSON(routingJSON) : null;
|
||||
|
||||
if (!routingItems) {
|
||||
routingItems = [{
|
||||
assignee: gf_routing_setting_strings['accounts'][0]['choices'][0]['value'],
|
||||
fieldId: '0',
|
||||
operator: 'is',
|
||||
value: '',
|
||||
type: ''
|
||||
}];
|
||||
$routingJSONInput.val($.toJSON(routingItems));
|
||||
}
|
||||
|
||||
var routingOptions = {
|
||||
fieldName: $routingSetting.data('field_name'),
|
||||
fieldId: $routingSetting.data('field_id'),
|
||||
settings: gf_routing_setting_strings['fields'],
|
||||
accounts: gf_routing_setting_strings['accounts'],
|
||||
imagesURL: gf_vars.baseUrl + "/images",
|
||||
items: routingItems,
|
||||
callbacks: {
|
||||
addNewTarget: function (obj, target) {
|
||||
return GravityFlowFeedSettings.getUsersMarkup('assignee');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$routingSetting.gfRoutingSetting(routingOptions);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var notificationTabs = ['assignee', 'rejection', 'approval', 'in_progress', 'complete'];
|
||||
|
||||
for (var i = 0; i < notificationTabs.length; i++) {
|
||||
GravityFlowFeedSettings.initNotificationTab(notificationTabs[i]);
|
||||
}
|
||||
|
||||
// User Input - Save Progress Option/In Progress Email Tab
|
||||
|
||||
var $saveProgressSetting = $('#default_status');
|
||||
if ($saveProgressSetting.val() === 'hidden') {
|
||||
$('#tabs-notification_tabs').tabs('disable', 1);
|
||||
}
|
||||
|
||||
$saveProgressSetting.change(function () {
|
||||
var disabled = $(this).val() === 'hidden',
|
||||
$notificationTabs = $('#tabs-notification_tabs');
|
||||
if (disabled) {
|
||||
var $enabledSetting = $('#in_progress_notification_enabled');
|
||||
|
||||
// Disable the In Progress notification if enabled.
|
||||
if ($enabledSetting.prop('checked')) {
|
||||
$enabledSetting.click();
|
||||
}
|
||||
|
||||
// If the In Progress Email tab is active switch to the Assignee Email tab.
|
||||
if ($notificationTabs.tabs('option', 'active') === 1) {
|
||||
$notificationTabs.tabs('option', 'active', 0);
|
||||
}
|
||||
|
||||
$notificationTabs.tabs('disable', 1);
|
||||
} else {
|
||||
$notificationTabs.tabs('enable', 1);
|
||||
}
|
||||
});
|
||||
|
||||
//-----
|
||||
|
||||
if (window.gform) {
|
||||
gform.addFilter('gform_merge_tags', GravityFlowFeedSettings.gravityflow_add_merge_tags);
|
||||
}
|
||||
|
||||
if (window['gformInitDatepicker']) {
|
||||
gformInitDatepicker();
|
||||
}
|
||||
|
||||
loadMessages();
|
||||
|
||||
});
|
||||
|
||||
function toggleNotificationTabSettings(enabled, notificationType) {
|
||||
var $NotificationTypeSetting = $('#gaddon-setting-tab-field-' + notificationType + '_notification_type');
|
||||
$NotificationTypeSetting.toggle(enabled);
|
||||
if (enabled) {
|
||||
var selected = $NotificationTypeSetting.find('input[type=radio]:checked').val();
|
||||
toggleNotificationTabFields(selected, notificationType);
|
||||
$('#gaddon-setting-tab-tab_' + notificationType + '_notification i.gravityflow-tab-checked').show();
|
||||
$('#gaddon-setting-tab-tab_' + notificationType + '_notification i.gravityflow-tab-unchecked').hide();
|
||||
} else {
|
||||
toggleNotificationTabFields('off', notificationType);
|
||||
$('#gaddon-setting-tab-tab_' + notificationType + '_notification i.gravityflow-tab-checked').hide();
|
||||
$('#gaddon-setting-tab-tab_' + notificationType + '_notification i.gravityflow-tab-unchecked').show();
|
||||
}
|
||||
}
|
||||
|
||||
function toggleNotificationTabFields(showType, notificationType) {
|
||||
var fields = ['users', 'routing', 'from_name', 'from_email', 'reply_to', 'bcc', 'subject', 'message', 'autoformat', 'resend', 'gpdf'],
|
||||
prefix = '#gaddon-setting-tab-field-' + notificationType + '_notification_';
|
||||
|
||||
$.each(fields, function (i, field) {
|
||||
$(prefix + field).hide();
|
||||
});
|
||||
|
||||
if (showType == 'off') {
|
||||
return;
|
||||
}
|
||||
|
||||
$.each(fields, function (i, field) {
|
||||
if (field == 'users' && showType == 'routing' || field == 'routing' && showType == 'select') {
|
||||
return true;
|
||||
}
|
||||
|
||||
$(prefix + field).fadeToggle('normal');
|
||||
});
|
||||
}
|
||||
|
||||
function toggleWorkflowNotificationType(showType) {
|
||||
var fields = {
|
||||
select: ['workflow_notification_users\\[\\]', 'workflow_notification_from_name', 'workflow_notification_from_email', 'workflow_notification_reply_to', 'workflow_notification_bcc', 'workflow_notification_subject', 'workflow_notification_message', 'workflow_notification_autoformat'],
|
||||
routing: ['workflow_notification_routing', 'workflow_notification_from_name', 'workflow_notification_from_email', 'workflow_notification_reply_to', 'workflow_notification_bcc', 'workflow_notification_subject', 'workflow_notification_message', 'workflow_notification_autoformat']
|
||||
};
|
||||
toggleFields(fields, showType, false);
|
||||
}
|
||||
|
||||
function toggleType(showType) {
|
||||
var fields = {
|
||||
select: ['assignees\\[\\]', 'editable_fields\\[\\]', 'conditional_logic_editable_fields_enabled'],
|
||||
routing: ['routing', 'conditional_logic_editable_fields_enabled']
|
||||
};
|
||||
|
||||
toggleFields(fields, showType);
|
||||
}
|
||||
|
||||
function toggleFields(fields, showType, isTab) {
|
||||
var prefix = isTab ? '#gaddon-setting-tab-field-' : '#gaddon-setting-row-';
|
||||
$.each(fields, function (type, activeFields) {
|
||||
$.each(activeFields, function (i, activeField) {
|
||||
$(prefix + activeField).hide();
|
||||
});
|
||||
});
|
||||
|
||||
$.each(fields, function (type, activeFields) {
|
||||
if (showType == type) {
|
||||
$.each(activeFields, function (i, activeField) {
|
||||
$(prefix + activeField).fadeToggle('normal');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function toggleWorkflowNotificationSettings(enabled) {
|
||||
var $workflowNotificationType = $('#gaddon-setting-row-workflow_notification_type');
|
||||
$workflowNotificationType.toggle(enabled);
|
||||
if (enabled) {
|
||||
var selected = $workflowNotificationType.find('input[type=radio]:checked').val();
|
||||
toggleWorkflowNotificationType(selected);
|
||||
} else {
|
||||
toggleWorkflowNotificationType('off');
|
||||
}
|
||||
}
|
||||
|
||||
function setSubSettings() {
|
||||
var subSettings = [
|
||||
'routing',
|
||||
'assignees\\[\\]',
|
||||
'assignee_notification_from_name',
|
||||
'assignee_notification_from_email',
|
||||
'assignee_notification_reply_to',
|
||||
'assignee_notification_bcc',
|
||||
'assignee_notification_subject',
|
||||
'assignee_notification_message',
|
||||
'assignee_notification_autoformat',
|
||||
'resend_assignee_email',
|
||||
'assignee_notification_gpdf',
|
||||
'rejection_notification_type',
|
||||
'rejection_notification_users\\[\\]',
|
||||
'rejection_notification_user_field',
|
||||
'rejection_notification_routing',
|
||||
'rejection_notification_message',
|
||||
'rejection_notification_autoformat',
|
||||
'approval_notification_type',
|
||||
'approval_notification_users\\[\\]',
|
||||
'approval_notification_user_field',
|
||||
'approval_notification_routing',
|
||||
'approval_notification_message',
|
||||
'approval_notification_autoformat',
|
||||
|
||||
'workflow_notification_type',
|
||||
'workflow_notification_users\\[\\]',
|
||||
'workflow_notification_user_field',
|
||||
'workflow_notification_routing',
|
||||
'workflow_notification_from_name',
|
||||
'workflow_notification_from_email',
|
||||
'workflow_notification_reply_to',
|
||||
'workflow_notification_bcc',
|
||||
'workflow_notification_subject',
|
||||
'workflow_notification_message',
|
||||
'workflow_notification_autoformat',
|
||||
|
||||
'assignees\\[\\]',
|
||||
'editable_fields\\[\\]',
|
||||
'routing',
|
||||
'assignee_notification_message',
|
||||
|
||||
];
|
||||
for (var i = 0; i < subSettings.length; i++) {
|
||||
$('#gaddon-setting-row-' + subSettings[i]).addClass('gravityflow_sub_setting');
|
||||
}
|
||||
}
|
||||
|
||||
GravityFlowFeedSettings.gravityflow_add_merge_tags = function (mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option) {
|
||||
if (isPrepop) {
|
||||
return mergeTags;
|
||||
}
|
||||
|
||||
addCommonMergeTags(mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option);
|
||||
addAprovalMergeTags(mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option);
|
||||
|
||||
return mergeTags;
|
||||
};
|
||||
|
||||
function addCommonMergeTags(mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option) {
|
||||
|
||||
var supportedElementIds = [
|
||||
'_gaddon_setting_workflow_notification_message',
|
||||
'_gaddon_setting_assignee_notification_message',
|
||||
'_gaddon_setting_approval_notification_message',
|
||||
'_gaddon_setting_rejection_notification_message',
|
||||
];
|
||||
|
||||
if (supportedElementIds.indexOf(elementId) < 0) {
|
||||
return mergeTags;
|
||||
}
|
||||
|
||||
var labels = gravityflow_form_settings_js_strings.mergeTagLabels,
|
||||
tags = [];
|
||||
|
||||
tags.push({tag: '{workflow_entry_link}', label: labels.workflow_entry_link});
|
||||
tags.push({tag: '{workflow_entry_url}', label: labels.workflow_entry_url});
|
||||
tags.push({tag: '{workflow_inbox_link}', label: labels.workflow_inbox_link});
|
||||
tags.push({tag: '{workflow_inbox_url}', label: labels.workflow_inbox_url});
|
||||
tags.push({tag: '{workflow_cancel_link}', label: labels.workflow_cancel_link});
|
||||
tags.push({tag: '{workflow_cancel_url}', label: labels.workflow_cancel_url});
|
||||
tags.push({tag: '{workflow_note}', label: labels.workflow_note});
|
||||
tags.push({tag: '{workflow_timeline}', label: labels.workflow_timeline});
|
||||
tags.push({tag: '{assignees}', label: labels.assignees});
|
||||
|
||||
mergeTags['gravityflow'] = {
|
||||
label: labels.group,
|
||||
tags: tags
|
||||
};
|
||||
|
||||
return mergeTags;
|
||||
|
||||
}
|
||||
|
||||
function addAprovalMergeTags(mergeTags, elementId, hideAllFields, excludeFieldTypes, isPrepop, option) {
|
||||
var supportedElementIds = [
|
||||
'_gaddon_setting_assignee_notification_message',
|
||||
];
|
||||
|
||||
if (supportedElementIds.indexOf(elementId) < 0) {
|
||||
return mergeTags;
|
||||
}
|
||||
|
||||
var labels = gravityflow_form_settings_js_strings.mergeTagLabels,
|
||||
tags = [];
|
||||
|
||||
tags.push({tag: '{workflow_approve_link}', label: labels.workflow_approve_link});
|
||||
tags.push({tag: '{workflow_approve_url}', label: labels.workflow_approve_url});
|
||||
tags.push({tag: '{workflow_approve_token}', label: labels.workflow_approve_token});
|
||||
tags.push({tag: '{workflow_reject_link}', label: labels.workflow_reject_link});
|
||||
tags.push({tag: '{workflow_reject_url}', label: labels.workflow_reject_url});
|
||||
tags.push({tag: '{workflow_reject_token}', label: labels.workflow_reject_token});
|
||||
|
||||
if (typeof mergeTags['gravityflow'] != 'undefined') {
|
||||
mergeTags['gravityflow']['tags'] = $.merge(mergeTags['gravityflow']['tags'], tags);
|
||||
} else {
|
||||
mergeTags['gravityflow'] = {
|
||||
label: labels.group,
|
||||
tags: tags
|
||||
};
|
||||
}
|
||||
|
||||
return mergeTags;
|
||||
}
|
||||
|
||||
function loadMessages() {
|
||||
var feedId = gravityflow_form_settings_js_strings['feedId'];
|
||||
if (feedId > 0) {
|
||||
var url = ajaxurl + '?action=gravityflow_feed_message&fid=' + feedId + '&id=' + gravityflow_form_settings_js_strings['formId'];
|
||||
$.get(url, function (response) {
|
||||
var $heading = $('#save_button');
|
||||
$heading.before(response);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}(window.GravityFlowFeedSettings = window.GravityFlowFeedSettings || {}, jQuery));
|
||||
|
||||
|
||||
1
js/form-settings.min.js
vendored
Normal file
1
js/form-settings.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
79
js/frontend.js
Normal file
79
js/frontend.js
Normal file
@@ -0,0 +1,79 @@
|
||||
(function (GravityFlowFrontEnd, $) {
|
||||
|
||||
$(document).ready(function () {
|
||||
var checks, first, last, checked, sliced, mobileEvent, transitionTimeout, focusedRowActions, $firstHeading,
|
||||
lastClicked = false;
|
||||
|
||||
// check all checkboxes
|
||||
$('tbody').children().children('.check-column').find(':checkbox').click(function (e) {
|
||||
if ('undefined' == e.shiftKey) {
|
||||
return true;
|
||||
}
|
||||
if (e.shiftKey) {
|
||||
if (!lastClicked) {
|
||||
return true;
|
||||
}
|
||||
checks = $(lastClicked).closest('form').find(':checkbox');
|
||||
first = checks.index(lastClicked);
|
||||
last = checks.index(this);
|
||||
checked = $(this).prop('checked');
|
||||
if (0 < first && 0 < last && first != last) {
|
||||
sliced = ( last > first ) ? checks.slice(first, last) : checks.slice(last, first);
|
||||
sliced.prop('checked', function () {
|
||||
if ($(this).closest('tr').is(':visible'))
|
||||
return checked;
|
||||
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
lastClicked = this;
|
||||
|
||||
// toggle "check all" checkboxes
|
||||
var unchecked = $(this).closest('tbody').find(':checkbox').filter(':visible').not(':checked');
|
||||
$(this).closest('table').children('thead, tfoot').find(':checkbox').prop('checked', function () {
|
||||
return ( 0 === unchecked.length );
|
||||
});
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
$('thead, tfoot').find('.check-column :checkbox').on('click.wp-toggle-checkboxes', function (event) {
|
||||
var $this = $(this),
|
||||
$table = $this.closest('table'),
|
||||
controlChecked = $this.prop('checked'),
|
||||
toggle = event.shiftKey || $this.data('wp-toggle');
|
||||
|
||||
$table.children('tbody').filter(':visible')
|
||||
.children().children('.check-column').find(':checkbox')
|
||||
.prop('checked', function () {
|
||||
if ($(this).is(':hidden')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (toggle) {
|
||||
return !$(this).prop('checked');
|
||||
} else if (controlChecked) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$table.children('thead, tfoot').filter(':visible')
|
||||
.children().children('.check-column').find(':checkbox')
|
||||
.prop('checked', function () {
|
||||
if (toggle) {
|
||||
return false;
|
||||
} else if (controlChecked) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
}(window.GravityFlowFrontEnd = window.GravityFlowFrontEnd || {}, jQuery));
|
||||
1
js/frontend.min.js
vendored
Normal file
1
js/frontend.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(e,r){r(document).ready(function(){var i,t,n,o,h=!1;r("tbody").children().children(".check-column").find(":checkbox").click(function(e){if("undefined"==e.shiftKey)return!0;if(e.shiftKey){if(!h)return!0;i=r(h).closest("form").find(":checkbox"),t=i.index(h),n=i.index(this),o=r(this).prop("checked"),0<t&&0<n&&t!=n&&(t<n?i.slice(t,n):i.slice(n,t)).prop("checked",function(){return!!r(this).closest("tr").is(":visible")&&o})}var c=r(h=this).closest("tbody").find(":checkbox").filter(":visible").not(":checked");return r(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return 0===c.length}),!0}),r("thead, tfoot").find(".check-column :checkbox").on("click.wp-toggle-checkboxes",function(e){var c=r(this),i=c.closest("table"),t=c.prop("checked"),n=e.shiftKey||c.data("wp-toggle");i.children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!r(this).is(":hidden")&&(n?!r(this).prop("checked"):!!t)}),i.children("thead, tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!n&&!!t})})})}(window.GravityFlowFrontEnd=window.GravityFlowFrontEnd||{},jQuery);
|
||||
156
js/generic-map.js
Normal file
156
js/generic-map.js
Normal file
@@ -0,0 +1,156 @@
|
||||
var GravityFlowGenericMap = function( options ) {
|
||||
|
||||
var self = this;
|
||||
|
||||
self.options = options;
|
||||
self.UI = jQuery( '#gaddon-setting-row-'+ self.options.fieldName );
|
||||
|
||||
self.init = function() {
|
||||
|
||||
self.bindEvents();
|
||||
|
||||
self.setupData();
|
||||
|
||||
self.setupRepeater();
|
||||
|
||||
};
|
||||
|
||||
self.bindEvents = function() {
|
||||
|
||||
self.UI.on( 'change', 'select[name="_gaddon_setting_'+ self.options.keyFieldName +'"]', function() {
|
||||
|
||||
var $select = jQuery( this ),
|
||||
$input = $select.next( '.custom-key-container' );
|
||||
|
||||
if( $select.val() != 'gf_custom' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$select.fadeOut( function() {
|
||||
$input.fadeIn().focus();
|
||||
} );
|
||||
|
||||
} );
|
||||
|
||||
self.UI.on( 'change', 'select[name="_gaddon_setting_'+ self.options.valueFieldName +'"]', function() {
|
||||
|
||||
var $select = jQuery( this ),
|
||||
$input = $select.next( '.custom-value-container' );
|
||||
|
||||
if( $select.val() != 'gf_custom' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$select.fadeOut( function() {
|
||||
$input.fadeIn().focus();
|
||||
} );
|
||||
|
||||
} );
|
||||
|
||||
self.UI.on( 'click', 'a.custom-key-reset', function( event ) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var $reset = jQuery( this ),
|
||||
$input = $reset.parents( '.custom-key-container' ),
|
||||
$select = $input.prev( 'select.key' );
|
||||
|
||||
$input.fadeOut( function() {
|
||||
$input.find( 'input' ).val( '' ).change();
|
||||
$select.fadeIn().focus().val( '' );
|
||||
} );
|
||||
|
||||
} );
|
||||
|
||||
self.UI.on( 'click', 'a.custom-value-reset', function( event ) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
var $reset = jQuery( this ),
|
||||
$input = $reset.parents( '.custom-value-container' ),
|
||||
$select = $input.prev( 'select.value' );
|
||||
|
||||
$input.fadeOut( function() {
|
||||
$input.find( 'input' ).val( '' ).change();
|
||||
$select.fadeIn().focus().val( '' );
|
||||
} );
|
||||
|
||||
} );
|
||||
|
||||
self.UI.closest( 'form' ).on( 'submit', function( event ) {
|
||||
|
||||
jQuery( '[name^="_gaddon_setting_'+ self.options.fieldName +'_"]' ).each( function( i ) {
|
||||
|
||||
jQuery( this ).removeAttr( 'name' );
|
||||
|
||||
} );
|
||||
|
||||
} );
|
||||
|
||||
};
|
||||
|
||||
self.setupData = function() {
|
||||
|
||||
self.data = jQuery.parseJSON( jQuery( '#' + self.options.fieldId ).val() );
|
||||
|
||||
if ( ! self.data ) {
|
||||
self.data = [ {
|
||||
key: '',
|
||||
value: '',
|
||||
custom_key: '',
|
||||
custom_value: ''
|
||||
} ];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
self.setupRepeater = function() {
|
||||
|
||||
var limit;
|
||||
if (self.options.limit > 0){
|
||||
limit = self.options.limit;
|
||||
}
|
||||
else{
|
||||
limit = 0;
|
||||
}
|
||||
|
||||
self.UI.find( 'tbody.repeater' ).repeater( {
|
||||
|
||||
limit: limit,
|
||||
items: self.data,
|
||||
addButtonMarkup: '<img src="'+ self.options.baseURL +'/images/add.png" style="cursor:pointer;" />',
|
||||
removeButtonMarkup: '<img src="'+ self.options.baseURL +'/images/remove.png" style="cursor:pointer;" />',
|
||||
callbacks: {
|
||||
add: function( obj, $elem, item ) {
|
||||
|
||||
var key_select = $elem.find( 'select[name="_gaddon_setting_'+ self.options.keyFieldName +'"]' );
|
||||
|
||||
if ( ! item.custom_key && key_select.length > 0 ) {
|
||||
$elem.find( '.custom-key-container' ).hide();
|
||||
} else {
|
||||
$elem.find( '.key' ).hide();
|
||||
}
|
||||
|
||||
var value_select = $elem.find( 'select[name="_gaddon_setting_'+ self.options.valueFieldName +'"]' );
|
||||
|
||||
if ( ! item.custom_value && value_select.length > 0 ) {
|
||||
$elem.find( '.custom-value-container' ).hide();
|
||||
} else {
|
||||
$elem.find( '.value' ).hide();
|
||||
}
|
||||
|
||||
},
|
||||
save: function( obj, data ) {
|
||||
|
||||
jQuery( '#'+ self.options.fieldId ).val( jQuery.toJSON( data ) );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
}
|
||||
|
||||
return self.init();
|
||||
|
||||
};
|
||||
1
js/generic-map.min.js
vendored
Normal file
1
js/generic-map.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
var GravityFlowGenericMap=function(e){var o=this;return o.options=e,o.UI=jQuery("#gaddon-setting-row-"+o.options.fieldName),o.init=function(){o.bindEvents(),o.setupData(),o.setupRepeater()},o.bindEvents=function(){o.UI.on("change",'select[name="_gaddon_setting_'+o.options.keyFieldName+'"]',function(){var e=jQuery(this),t=e.next(".custom-key-container");"gf_custom"==e.val()&&e.fadeOut(function(){t.fadeIn().focus()})}),o.UI.on("change",'select[name="_gaddon_setting_'+o.options.valueFieldName+'"]',function(){var e=jQuery(this),t=e.next(".custom-value-container");"gf_custom"==e.val()&&e.fadeOut(function(){t.fadeIn().focus()})}),o.UI.on("click","a.custom-key-reset",function(e){e.preventDefault();var t=jQuery(this).parents(".custom-key-container"),n=t.prev("select.key");t.fadeOut(function(){t.find("input").val("").change(),n.fadeIn().focus().val("")})}),o.UI.on("click","a.custom-value-reset",function(e){e.preventDefault();var t=jQuery(this).parents(".custom-value-container"),n=t.prev("select.value");t.fadeOut(function(){t.find("input").val("").change(),n.fadeIn().focus().val("")})}),o.UI.closest("form").on("submit",function(e){jQuery('[name^="_gaddon_setting_'+o.options.fieldName+'_"]').each(function(e){jQuery(this).removeAttr("name")})})},o.setupData=function(){o.data=jQuery.parseJSON(jQuery("#"+o.options.fieldId).val()),o.data||(o.data=[{key:"",value:"",custom_key:"",custom_value:""}])},o.setupRepeater=function(){var e;e=0<o.options.limit?o.options.limit:0,o.UI.find("tbody.repeater").repeater({limit:e,items:o.data,addButtonMarkup:'<img src="'+o.options.baseURL+'/images/add.png" style="cursor:pointer;" />',removeButtonMarkup:'<img src="'+o.options.baseURL+'/images/remove.png" style="cursor:pointer;" />',callbacks:{add:function(e,t,n){var a=t.find('select[name="_gaddon_setting_'+o.options.keyFieldName+'"]');!n.custom_key&&0<a.length?t.find(".custom-key-container").hide():t.find(".key").hide();var i=t.find('select[name="_gaddon_setting_'+o.options.valueFieldName+'"]');!n.custom_value&&0<i.length?t.find(".custom-value-container").hide():t.find(".value").hide()},save:function(e,t){jQuery("#"+o.options.fieldId).val(jQuery.toJSON(t))}}})},o.init()};
|
||||
101
js/inbox.js
Normal file
101
js/inbox.js
Normal file
@@ -0,0 +1,101 @@
|
||||
(function (GravityFlowInbox, $) {
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$('.gravityflow-actions-unlock').click( function() {
|
||||
var $this = $(this),
|
||||
$lock = $this.siblings('.gravityflow-actions-lock'),
|
||||
$noteContainer = $this.siblings('.gravityflow-actions-note-field-container'),
|
||||
$actionButtons = $this.siblings('.gravityflow-actions');
|
||||
$this.hide();
|
||||
$lock.show();
|
||||
$noteContainer.hide();
|
||||
$actionButtons.hide();
|
||||
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
|
||||
});
|
||||
|
||||
$('.gravityflow-action').click( function() {
|
||||
var $this = $(this),
|
||||
$unlock = $this.siblings('.gravityflow-actions-unlock'),
|
||||
$lock = $this.siblings('.gravityflow-actions-lock'),
|
||||
$noteContainer = $this.siblings('.gravityflow-actions-note-field-container'),
|
||||
$noteField = $noteContainer.find('textarea'),
|
||||
showNoteField = $this.data('note_field');
|
||||
|
||||
|
||||
if ( $this.hasClass( 'gravityflow-action-processed' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $this.parent('.gravityflow-actions').hasClass( 'gravityflow-actions-locked' ) ) {
|
||||
$this.parent('.gravityflow-actions').removeClass( 'gravityflow-actions-locked' );
|
||||
$lock.hide();
|
||||
$unlock.show();
|
||||
|
||||
if ( showNoteField ) {
|
||||
$noteContainer.show();
|
||||
$noteField.focus();
|
||||
$(document).keyup(function(e) {
|
||||
var KEYCODE_ESC = 27;
|
||||
if (e.keyCode == KEYCODE_ESC) {
|
||||
$unlock.click();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
setTimeout(function () {
|
||||
if ( ! $this.hasClass( 'gravityflow-action-processing' ) && ! $this.hasClass( 'gravityflow-action-processed' ) ) {
|
||||
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
|
||||
$lock.show();
|
||||
$unlock.hide();
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var entryId = parseInt($this.data('entry_id')),
|
||||
restBase = $this.data('rest_base'),
|
||||
action = $this.data('action'),
|
||||
url = gravityflow_inbox_strings.restUrl,
|
||||
nonce = gravityflow_inbox_strings.nonce,
|
||||
$spinner = $this.siblings('.gravityflow-actions-spinner');
|
||||
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: url + 'gf/v2/entries/' + entryId + '/workflow/' + restBase,
|
||||
data: { 'action' : action, 'gravityflow_note' : $noteField.val() },
|
||||
beforeSend: function ( xhr ) {
|
||||
xhr.setRequestHeader( 'X-WP-Nonce', nonce );
|
||||
$this.siblings().andSelf().hide();
|
||||
$this.addClass('gravityflow-action-processing');
|
||||
$spinner.show();
|
||||
},
|
||||
success : function( response ) {
|
||||
$spinner.hide();
|
||||
$this.removeClass('gravityflow-action-processing');
|
||||
if ( response.status == 'success' ) {
|
||||
$this.addClass('gravityflow-action-processed');
|
||||
$this.prop('title', response.feedback);
|
||||
$this.show();
|
||||
$this.parent('.gravityflow-actions').removeClass( 'gravityflow-actions-locked' );
|
||||
} else {
|
||||
$this.parent('.gravityflow-actions').addClass( 'gravityflow-actions-locked' );
|
||||
$this.siblings('.gravityflow-action').andSelf().show();
|
||||
$lock.show();
|
||||
alert( response.feedback );
|
||||
}
|
||||
},
|
||||
fail : function( response ) {
|
||||
$spinner.hide();
|
||||
$unlock.hide();
|
||||
$lock.show();
|
||||
$this.removeClass('gravityflow-action-processing');
|
||||
$this.siblings('.gravityflow-actions').andSelf().show();
|
||||
alert( response );
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}(window.GravityFlowInbox = window.GravityFlowInbox || {}, jQuery));
|
||||
1
js/inbox.min.js
vendored
Normal file
1
js/inbox.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(i,w){w(document).ready(function(){w(".gravityflow-actions-unlock").click(function(){var i=w(this),o=i.siblings(".gravityflow-actions-lock"),a=i.siblings(".gravityflow-actions-note-field-container"),s=i.siblings(".gravityflow-actions");i.hide(),o.show(),a.hide(),s.hide(),i.parent(".gravityflow-actions").addClass("gravityflow-actions-locked")}),w(".gravityflow-action").click(function(){var o=w(this),a=o.siblings(".gravityflow-actions-unlock"),s=o.siblings(".gravityflow-actions-lock"),i=o.siblings(".gravityflow-actions-note-field-container"),t=i.find("textarea"),n=o.data("note_field");if(!o.hasClass("gravityflow-action-processed")){if(o.parent(".gravityflow-actions").hasClass("gravityflow-actions-locked"))return o.parent(".gravityflow-actions").removeClass("gravityflow-actions-locked"),s.hide(),a.show(),void(n?(i.show(),t.focus(),w(document).keyup(function(i){27==i.keyCode&&a.click()})):setTimeout(function(){o.hasClass("gravityflow-action-processing")||o.hasClass("gravityflow-action-processed")||(o.parent(".gravityflow-actions").addClass("gravityflow-actions-locked"),s.show(),a.hide())},2e3));var e=parseInt(o.data("entry_id")),l=o.data("rest_base"),r=o.data("action"),c=gravityflow_inbox_strings.restUrl,f=gravityflow_inbox_strings.nonce,d=o.siblings(".gravityflow-actions-spinner");w.ajax({method:"POST",url:c+"gf/v2/entries/"+e+"/workflow/"+l,data:{action:r,gravityflow_note:t.val()},beforeSend:function(i){i.setRequestHeader("X-WP-Nonce",f),o.siblings().andSelf().hide(),o.addClass("gravityflow-action-processing"),d.show()},success:function(i){d.hide(),o.removeClass("gravityflow-action-processing"),"success"==i.status?(o.addClass("gravityflow-action-processed"),o.prop("title",i.feedback),o.show(),o.parent(".gravityflow-actions").removeClass("gravityflow-actions-locked")):(o.parent(".gravityflow-actions").addClass("gravityflow-actions-locked"),o.siblings(".gravityflow-action").andSelf().show(),s.show(),alert(i.feedback))},fail:function(i){d.hide(),a.hide(),s.show(),o.removeClass("gravityflow-action-processing"),o.siblings(".gravityflow-actions").andSelf().show(),alert(i)}})}})})}(window.GravityFlowInbox=window.GravityFlowInbox||{},jQuery);
|
||||
2
js/index.php
Normal file
2
js/index.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<?php
|
||||
//Nothing to see here
|
||||
535
js/multi-select.js
Normal file
535
js/multi-select.js
Normal file
@@ -0,0 +1,535 @@
|
||||
/*
|
||||
* MultiSelect v0.9.11
|
||||
* Copyright (c) 2012 Louis Cuny
|
||||
*
|
||||
* This program is free software. It comes without any warranty, to
|
||||
* the extent permitted by applicable law. You can redistribute it
|
||||
* and/or modify it under the terms of the Do What The Fuck You Want
|
||||
* To Public License, Version 2, as published by Sam Hocevar. See
|
||||
* http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
*/
|
||||
|
||||
!function ($) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
/* MULTISELECT CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var MultiSelect = function (element, options) {
|
||||
this.options = options;
|
||||
this.$element = $(element);
|
||||
this.$container = $('<div/>', { 'class': "ms-container" });
|
||||
this.$selectableContainer = $('<div/>', { 'class': 'ms-selectable' });
|
||||
this.$selectionContainer = $('<div/>', { 'class': 'ms-selection' });
|
||||
this.$selectableUl = $('<ul/>', { 'class': "ms-list", 'tabindex' : '-1' });
|
||||
this.$selectionUl = $('<ul/>', { 'class': "ms-list", 'tabindex' : '-1' });
|
||||
this.scrollTo = 0;
|
||||
this.elemsSelector = 'li:visible:not(.ms-optgroup-label,.ms-optgroup-container,.'+options.disabledClass+')';
|
||||
};
|
||||
|
||||
MultiSelect.prototype = {
|
||||
constructor: MultiSelect,
|
||||
|
||||
init: function(){
|
||||
var that = this,
|
||||
ms = this.$element;
|
||||
|
||||
if (ms.next('.ms-container').length === 0){
|
||||
ms.css({ position: 'absolute', left: '-9999px' });
|
||||
ms.attr('id', ms.attr('id') ? ms.attr('id') : Math.ceil(Math.random()*1000)+'multiselect');
|
||||
this.$container.attr('id', 'ms-'+ms.attr('id'));
|
||||
this.$container.addClass(that.options.cssClass);
|
||||
ms.find('option').each(function(){
|
||||
that.generateLisFromOption(this);
|
||||
});
|
||||
|
||||
this.$selectionUl.find('.ms-optgroup-label').hide();
|
||||
|
||||
if (that.options.selectableHeader){
|
||||
that.$selectableContainer.append(that.options.selectableHeader);
|
||||
}
|
||||
that.$selectableContainer.append(that.$selectableUl);
|
||||
if (that.options.selectableFooter){
|
||||
that.$selectableContainer.append(that.options.selectableFooter);
|
||||
}
|
||||
|
||||
if (that.options.selectionHeader){
|
||||
that.$selectionContainer.append(that.options.selectionHeader);
|
||||
}
|
||||
that.$selectionContainer.append(that.$selectionUl);
|
||||
if (that.options.selectionFooter){
|
||||
that.$selectionContainer.append(that.options.selectionFooter);
|
||||
}
|
||||
|
||||
that.$container.append(that.$selectableContainer);
|
||||
that.$container.append(that.$selectionContainer);
|
||||
ms.after(that.$container);
|
||||
|
||||
that.activeMouse(that.$selectableUl);
|
||||
that.activeKeyboard(that.$selectableUl);
|
||||
|
||||
var action = that.options.dblClick ? 'dblclick' : 'click';
|
||||
|
||||
that.$selectableUl.on(action, '.ms-elem-selectable', function(){
|
||||
that.select($(this).data('ms-value'));
|
||||
});
|
||||
that.$selectionUl.on(action, '.ms-elem-selection', function(){
|
||||
that.deselect($(this).data('ms-value'));
|
||||
});
|
||||
|
||||
that.activeMouse(that.$selectionUl);
|
||||
that.activeKeyboard(that.$selectionUl);
|
||||
|
||||
ms.on('focus', function(){
|
||||
that.$selectableUl.focus();
|
||||
})
|
||||
}
|
||||
|
||||
var selectedValues = ms.find('option:selected').map(function(){ return $(this).val(); }).get();
|
||||
that.select(selectedValues, 'init');
|
||||
|
||||
if (typeof that.options.afterInit === 'function') {
|
||||
that.options.afterInit.call(this, this.$container);
|
||||
}
|
||||
},
|
||||
|
||||
'generateLisFromOption' : function(option, index, $container){
|
||||
var that = this,
|
||||
ms = that.$element,
|
||||
attributes = "",
|
||||
$option = $(option);
|
||||
|
||||
for (var cpt = 0; cpt < option.attributes.length; cpt++){
|
||||
var attr = option.attributes[cpt];
|
||||
|
||||
if(attr.name !== 'value' && attr.name !== 'disabled'){
|
||||
attributes += attr.name+'="'+attr.value+'" ';
|
||||
}
|
||||
}
|
||||
var selectableLi = $('<li '+attributes+'><span>'+that.escapeHTML($option.text())+'</span></li>'),
|
||||
selectedLi = selectableLi.clone(),
|
||||
value = $option.val(),
|
||||
elementId = that.sanitize(value);
|
||||
|
||||
selectableLi
|
||||
.data('ms-value', value)
|
||||
.addClass('ms-elem-selectable')
|
||||
.attr('id', elementId+'-selectable');
|
||||
|
||||
selectedLi
|
||||
.data('ms-value', value)
|
||||
.addClass('ms-elem-selection')
|
||||
.attr('id', elementId+'-selection')
|
||||
.hide();
|
||||
|
||||
if ($option.prop('disabled') || ms.prop('disabled')){
|
||||
selectedLi.addClass(that.options.disabledClass);
|
||||
selectableLi.addClass(that.options.disabledClass);
|
||||
}
|
||||
|
||||
var $optgroup = $option.parent('optgroup');
|
||||
|
||||
if ($optgroup.length > 0){
|
||||
var optgroupLabel = $optgroup.attr('label'),
|
||||
optgroupId = that.sanitize(optgroupLabel),
|
||||
$selectableOptgroup = that.$selectableUl.find('#optgroup-selectable-'+optgroupId),
|
||||
$selectionOptgroup = that.$selectionUl.find('#optgroup-selection-'+optgroupId);
|
||||
|
||||
if ($selectableOptgroup.length === 0){
|
||||
var optgroupContainerTpl = '<li class="ms-optgroup-container"></li>',
|
||||
optgroupTpl = '<ul class="ms-optgroup"><li class="ms-optgroup-label"><span>'+optgroupLabel+'</span></li></ul>';
|
||||
|
||||
$selectableOptgroup = $(optgroupContainerTpl);
|
||||
$selectionOptgroup = $(optgroupContainerTpl);
|
||||
$selectableOptgroup.attr('id', 'optgroup-selectable-'+optgroupId);
|
||||
$selectionOptgroup.attr('id', 'optgroup-selection-'+optgroupId);
|
||||
$selectableOptgroup.append($(optgroupTpl));
|
||||
$selectionOptgroup.append($(optgroupTpl));
|
||||
if (that.options.selectableOptgroup){
|
||||
$selectableOptgroup.find('.ms-optgroup-label').on('click', function(){
|
||||
var values = $optgroup.children(':not(:selected, :disabled)').map(function(){ return $(this).val() }).get();
|
||||
that.select(values);
|
||||
});
|
||||
$selectionOptgroup.find('.ms-optgroup-label').on('click', function(){
|
||||
var values = $optgroup.children(':selected:not(:disabled)').map(function(){ return $(this).val() }).get();
|
||||
that.deselect(values);
|
||||
});
|
||||
}
|
||||
that.$selectableUl.append($selectableOptgroup);
|
||||
that.$selectionUl.append($selectionOptgroup);
|
||||
}
|
||||
index = index == undefined ? $selectableOptgroup.find('ul').children().length : index + 1;
|
||||
selectableLi.insertAt(index, $selectableOptgroup.children());
|
||||
selectedLi.insertAt(index, $selectionOptgroup.children());
|
||||
} else {
|
||||
index = index == undefined ? that.$selectableUl.children().length : index;
|
||||
|
||||
selectableLi.insertAt(index, that.$selectableUl);
|
||||
selectedLi.insertAt(index, that.$selectionUl);
|
||||
}
|
||||
},
|
||||
|
||||
'addOption' : function(options){
|
||||
var that = this;
|
||||
|
||||
if (options.value !== undefined && options.value !== null){
|
||||
options = [options];
|
||||
}
|
||||
$.each(options, function(index, option){
|
||||
if (option.value !== undefined && option.value !== null &&
|
||||
that.$element.find("option[value='"+option.value+"']").length === 0){
|
||||
var $option = $('<option value="'+option.value+'">'+option.text+'</option>'),
|
||||
index = parseInt((typeof option.index === 'undefined' ? that.$element.children().length : option.index)),
|
||||
$container = option.nested == undefined ? that.$element : $("optgroup[label='"+option.nested+"']")
|
||||
|
||||
$option.insertAt(index, $container);
|
||||
that.generateLisFromOption($option.get(0), index, option.nested);
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
'escapeHTML' : function(text){
|
||||
return $("<div>").text(text).html();
|
||||
},
|
||||
|
||||
'activeKeyboard' : function($list){
|
||||
var that = this;
|
||||
|
||||
$list.on('focus', function(){
|
||||
$(this).addClass('ms-focus');
|
||||
})
|
||||
.on('blur', function(){
|
||||
$(this).removeClass('ms-focus');
|
||||
})
|
||||
.on('keydown', function(e){
|
||||
switch (e.which) {
|
||||
case 40:
|
||||
case 38:
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
that.moveHighlight($(this), (e.which === 38) ? -1 : 1);
|
||||
return;
|
||||
case 37:
|
||||
case 39:
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
that.switchList($list);
|
||||
return;
|
||||
case 9:
|
||||
if(that.$element.is('[tabindex]')){
|
||||
e.preventDefault();
|
||||
var tabindex = parseInt(that.$element.attr('tabindex'), 10);
|
||||
tabindex = (e.shiftKey) ? tabindex-1 : tabindex+1;
|
||||
$('[tabindex="'+(tabindex)+'"]').focus();
|
||||
return;
|
||||
}else{
|
||||
if(e.shiftKey){
|
||||
that.$element.trigger('focus');
|
||||
}
|
||||
}
|
||||
}
|
||||
if($.inArray(e.which, that.options.keySelect) > -1){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
that.selectHighlighted($list);
|
||||
return;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
'moveHighlight': function($list, direction){
|
||||
var $elems = $list.find(this.elemsSelector),
|
||||
$currElem = $elems.filter('.ms-hover'),
|
||||
$nextElem = null,
|
||||
elemHeight = $elems.first().outerHeight(),
|
||||
containerHeight = $list.height(),
|
||||
containerSelector = '#'+this.$container.prop('id');
|
||||
|
||||
$elems.removeClass('ms-hover');
|
||||
if (direction === 1){ // DOWN
|
||||
|
||||
$nextElem = $currElem.nextAll(this.elemsSelector).first();
|
||||
if ($nextElem.length === 0){
|
||||
var $optgroupUl = $currElem.parent();
|
||||
|
||||
if ($optgroupUl.hasClass('ms-optgroup')){
|
||||
var $optgroupLi = $optgroupUl.parent(),
|
||||
$nextOptgroupLi = $optgroupLi.next(':visible');
|
||||
|
||||
if ($nextOptgroupLi.length > 0){
|
||||
$nextElem = $nextOptgroupLi.find(this.elemsSelector).first();
|
||||
} else {
|
||||
$nextElem = $elems.first();
|
||||
}
|
||||
} else {
|
||||
$nextElem = $elems.first();
|
||||
}
|
||||
}
|
||||
} else if (direction === -1){ // UP
|
||||
|
||||
$nextElem = $currElem.prevAll(this.elemsSelector).first();
|
||||
if ($nextElem.length === 0){
|
||||
var $optgroupUl = $currElem.parent();
|
||||
|
||||
if ($optgroupUl.hasClass('ms-optgroup')){
|
||||
var $optgroupLi = $optgroupUl.parent(),
|
||||
$prevOptgroupLi = $optgroupLi.prev(':visible');
|
||||
|
||||
if ($prevOptgroupLi.length > 0){
|
||||
$nextElem = $prevOptgroupLi.find(this.elemsSelector).last();
|
||||
} else {
|
||||
$nextElem = $elems.last();
|
||||
}
|
||||
} else {
|
||||
$nextElem = $elems.last();
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nextElem.length > 0){
|
||||
$nextElem.addClass('ms-hover');
|
||||
var scrollTo = $list.scrollTop() + $nextElem.position().top -
|
||||
containerHeight / 2 + elemHeight / 2;
|
||||
|
||||
$list.scrollTop(scrollTo);
|
||||
}
|
||||
},
|
||||
|
||||
'selectHighlighted' : function($list){
|
||||
var $elems = $list.find(this.elemsSelector),
|
||||
$highlightedElem = $elems.filter('.ms-hover').first();
|
||||
|
||||
if ($highlightedElem.length > 0){
|
||||
if ($list.parent().hasClass('ms-selectable')){
|
||||
this.select($highlightedElem.data('ms-value'));
|
||||
} else {
|
||||
this.deselect($highlightedElem.data('ms-value'));
|
||||
}
|
||||
$elems.removeClass('ms-hover');
|
||||
}
|
||||
},
|
||||
|
||||
'switchList' : function($list){
|
||||
$list.blur();
|
||||
this.$container.find(this.elemsSelector).removeClass('ms-hover');
|
||||
if ($list.parent().hasClass('ms-selectable')){
|
||||
this.$selectionUl.focus();
|
||||
} else {
|
||||
this.$selectableUl.focus();
|
||||
}
|
||||
},
|
||||
|
||||
'activeMouse' : function($list){
|
||||
var that = this;
|
||||
|
||||
$('body').on('mouseenter', that.elemsSelector, function(){
|
||||
$(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');
|
||||
$(this).addClass('ms-hover');
|
||||
});
|
||||
|
||||
$('body').on('mouseleave', that.elemsSelector, function () {
|
||||
$(this).parents('.ms-container').find(that.elemsSelector).removeClass('ms-hover');;
|
||||
});
|
||||
},
|
||||
|
||||
'refresh' : function() {
|
||||
this.destroy();
|
||||
this.$element.multiSelect(this.options);
|
||||
},
|
||||
|
||||
'destroy' : function(){
|
||||
$("#ms-"+this.$element.attr("id")).remove();
|
||||
this.$element.css('position', '').css('left', '')
|
||||
this.$element.removeData('multiselect');
|
||||
},
|
||||
|
||||
'select' : function(value, method){
|
||||
if (typeof value === 'string'){ value = [value]; }
|
||||
|
||||
var that = this,
|
||||
ms = this.$element,
|
||||
msIds = $.map(value, function(val){ return(that.sanitize(val)); }),
|
||||
selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable').filter(':not(.'+that.options.disabledClass+')'),
|
||||
selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection').filter(':not(.'+that.options.disabledClass+')'),
|
||||
options = ms.find('option:not(:disabled)').filter(function(){ return($.inArray(this.value, value) > -1); });
|
||||
|
||||
if (method === 'init'){
|
||||
selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),
|
||||
selections = this.$selectionUl.find('#' + msIds.join('-selection, #') + '-selection');
|
||||
}
|
||||
|
||||
if (selectables.length > 0){
|
||||
selectables.addClass('ms-selected').hide();
|
||||
selections.addClass('ms-selected').show();
|
||||
|
||||
options.prop('selected', true);
|
||||
|
||||
that.$container.find(that.elemsSelector).removeClass('ms-hover');
|
||||
|
||||
var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');
|
||||
if (selectableOptgroups.length > 0){
|
||||
selectableOptgroups.each(function(){
|
||||
var selectablesLi = $(this).find('.ms-elem-selectable');
|
||||
if (selectablesLi.length === selectablesLi.filter('.ms-selected').length){
|
||||
$(this).find('.ms-optgroup-label').hide();
|
||||
}
|
||||
});
|
||||
|
||||
var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');
|
||||
selectionOptgroups.each(function(){
|
||||
var selectionsLi = $(this).find('.ms-elem-selection');
|
||||
if (selectionsLi.filter('.ms-selected').length > 0){
|
||||
$(this).find('.ms-optgroup-label').show();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (that.options.keepOrder && method !== 'init'){
|
||||
var selectionLiLast = that.$selectionUl.find('.ms-selected');
|
||||
if((selectionLiLast.length > 1) && (selectionLiLast.last().get(0) != selections.get(0))) {
|
||||
selections.insertAfter(selectionLiLast.last());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (method !== 'init'){
|
||||
ms.trigger('change');
|
||||
if (typeof that.options.afterSelect === 'function') {
|
||||
that.options.afterSelect.call(this, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
'deselect' : function(value){
|
||||
if (typeof value === 'string'){ value = [value]; }
|
||||
|
||||
var that = this,
|
||||
ms = this.$element,
|
||||
msIds = $.map(value, function(val){ return(that.sanitize(val)); }),
|
||||
selectables = this.$selectableUl.find('#' + msIds.join('-selectable, #')+'-selectable'),
|
||||
selections = this.$selectionUl.find('#' + msIds.join('-selection, #')+'-selection').filter('.ms-selected').filter(':not(.'+that.options.disabledClass+')'),
|
||||
options = ms.find('option').filter(function(){ return($.inArray(this.value, value) > -1); });
|
||||
|
||||
if (selections.length > 0){
|
||||
selectables.removeClass('ms-selected').show();
|
||||
selections.removeClass('ms-selected').hide();
|
||||
options.prop('selected', false);
|
||||
|
||||
that.$container.find(that.elemsSelector).removeClass('ms-hover');
|
||||
|
||||
var selectableOptgroups = that.$selectableUl.children('.ms-optgroup-container');
|
||||
if (selectableOptgroups.length > 0){
|
||||
selectableOptgroups.each(function(){
|
||||
var selectablesLi = $(this).find('.ms-elem-selectable');
|
||||
if (selectablesLi.filter(':not(.ms-selected)').length > 0){
|
||||
$(this).find('.ms-optgroup-label').show();
|
||||
}
|
||||
});
|
||||
|
||||
var selectionOptgroups = that.$selectionUl.children('.ms-optgroup-container');
|
||||
selectionOptgroups.each(function(){
|
||||
var selectionsLi = $(this).find('.ms-elem-selection');
|
||||
if (selectionsLi.filter('.ms-selected').length === 0){
|
||||
$(this).find('.ms-optgroup-label').hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
ms.trigger('change');
|
||||
if (typeof that.options.afterDeselect === 'function') {
|
||||
that.options.afterDeselect.call(this, value);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
'select_all' : function(){
|
||||
var ms = this.$element,
|
||||
values = ms.val();
|
||||
|
||||
ms.find('option:not(":disabled")').prop('selected', true);
|
||||
this.$selectableUl.find('.ms-elem-selectable').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').hide();
|
||||
this.$selectionUl.find('.ms-optgroup-label').show();
|
||||
this.$selectableUl.find('.ms-optgroup-label').hide();
|
||||
this.$selectionUl.find('.ms-elem-selection').filter(':not(.'+this.options.disabledClass+')').addClass('ms-selected').show();
|
||||
this.$selectionUl.focus();
|
||||
ms.trigger('change');
|
||||
if (typeof this.options.afterSelect === 'function') {
|
||||
var selectedValues = $.grep(ms.val(), function(item){
|
||||
return $.inArray(item, values) < 0;
|
||||
});
|
||||
this.options.afterSelect.call(this, selectedValues);
|
||||
}
|
||||
},
|
||||
|
||||
'deselect_all' : function(){
|
||||
var ms = this.$element,
|
||||
values = ms.val();
|
||||
|
||||
ms.find('option').prop('selected', false);
|
||||
this.$selectableUl.find('.ms-elem-selectable').removeClass('ms-selected').show();
|
||||
this.$selectionUl.find('.ms-optgroup-label').hide();
|
||||
this.$selectableUl.find('.ms-optgroup-label').show();
|
||||
this.$selectionUl.find('.ms-elem-selection').removeClass('ms-selected').hide();
|
||||
this.$selectableUl.focus();
|
||||
ms.trigger('change');
|
||||
if (typeof this.options.afterDeselect === 'function') {
|
||||
this.options.afterDeselect.call(this, values);
|
||||
}
|
||||
},
|
||||
|
||||
sanitize: function(value){
|
||||
var hash = 0, i, character;
|
||||
if (value.length == 0) return hash;
|
||||
var ls = 0;
|
||||
for (i = 0, ls = value.length; i < ls; i++) {
|
||||
character = value.charCodeAt(i);
|
||||
hash = ((hash<<5)-hash)+character;
|
||||
hash |= 0; // Convert to 32bit integer
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
};
|
||||
|
||||
/* MULTISELECT PLUGIN DEFINITION
|
||||
* ======================= */
|
||||
|
||||
$.fn.multiSelect = function () {
|
||||
var option = arguments[0],
|
||||
args = arguments;
|
||||
|
||||
return this.each(function () {
|
||||
var $this = $(this),
|
||||
data = $this.data('multiselect'),
|
||||
options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option === 'object' && option);
|
||||
|
||||
if (!data){ $this.data('multiselect', (data = new MultiSelect(this, options))); }
|
||||
|
||||
if (typeof option === 'string'){
|
||||
data[option](args[1]);
|
||||
} else {
|
||||
data.init();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.multiSelect.defaults = {
|
||||
keySelect: [32],
|
||||
selectableOptgroup: false,
|
||||
disabledClass : 'disabled',
|
||||
dblClick : false,
|
||||
keepOrder: false,
|
||||
cssClass: ''
|
||||
};
|
||||
|
||||
$.fn.multiSelect.Constructor = MultiSelect;
|
||||
|
||||
$.fn.insertAt = function(index, $parent) {
|
||||
return this.each(function() {
|
||||
if (index === 0) {
|
||||
$parent.prepend(this);
|
||||
} else {
|
||||
$parent.children().eq(index - 1).after(this);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}(window.jQuery);
|
||||
1
js/multi-select.min.js
vendored
Normal file
1
js/multi-select.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
181
js/quicksearch.js
Normal file
181
js/quicksearch.js
Normal file
@@ -0,0 +1,181 @@
|
||||
(function($, window, document, undefined) {
|
||||
$.fn.quicksearch = function (target, opt) {
|
||||
|
||||
var timeout, cache, rowcache, jq_results, val = '', e = this, options = $.extend({
|
||||
delay: 100,
|
||||
selector: null,
|
||||
stripeRows: null,
|
||||
loader: null,
|
||||
noResults: '',
|
||||
matchedResultsCount: 0,
|
||||
bind: 'keyup',
|
||||
onBefore: function () {
|
||||
return;
|
||||
},
|
||||
onAfter: function () {
|
||||
return;
|
||||
},
|
||||
show: function () {
|
||||
this.style.display = "";
|
||||
},
|
||||
hide: function () {
|
||||
this.style.display = "none";
|
||||
},
|
||||
prepareQuery: function (val) {
|
||||
return val.toLowerCase().split(' ');
|
||||
},
|
||||
testQuery: function (query, txt, _row) {
|
||||
for (var i = 0; i < query.length; i += 1) {
|
||||
if (txt.indexOf(query[i]) === -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}, opt);
|
||||
|
||||
this.go = function () {
|
||||
|
||||
var i = 0,
|
||||
numMatchedRows = 0,
|
||||
noresults = true,
|
||||
query = options.prepareQuery(val),
|
||||
val_empty = (val.replace(' ', '').length === 0);
|
||||
|
||||
for (var i = 0, len = rowcache.length; i < len; i++) {
|
||||
if (val_empty || options.testQuery(query, cache[i], rowcache[i])) {
|
||||
options.show.apply(rowcache[i]);
|
||||
noresults = false;
|
||||
numMatchedRows++;
|
||||
} else {
|
||||
options.hide.apply(rowcache[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (noresults) {
|
||||
this.results(false);
|
||||
} else {
|
||||
this.results(true);
|
||||
this.stripe();
|
||||
}
|
||||
|
||||
this.matchedResultsCount = numMatchedRows;
|
||||
this.loader(false);
|
||||
options.onAfter();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/*
|
||||
* External API so that users can perform search programatically.
|
||||
* */
|
||||
this.search = function (submittedVal) {
|
||||
val = submittedVal;
|
||||
e.trigger();
|
||||
};
|
||||
|
||||
/*
|
||||
* External API to get the number of matched results as seen in
|
||||
* https://github.com/ruiz107/quicksearch/commit/f78dc440b42d95ce9caed1d087174dd4359982d6
|
||||
* */
|
||||
this.currentMatchedResults = function() {
|
||||
return this.matchedResultsCount;
|
||||
};
|
||||
|
||||
this.stripe = function () {
|
||||
|
||||
if (typeof options.stripeRows === "object" && options.stripeRows !== null)
|
||||
{
|
||||
var joined = options.stripeRows.join(' ');
|
||||
var stripeRows_length = options.stripeRows.length;
|
||||
|
||||
jq_results.not(':hidden').each(function (i) {
|
||||
$(this).removeClass(joined).addClass(options.stripeRows[i % stripeRows_length]);
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this.strip_html = function (input) {
|
||||
var output = input.replace(new RegExp('<[^<]+\>', 'g'), "");
|
||||
output = $.trim(output.toLowerCase());
|
||||
return output;
|
||||
};
|
||||
|
||||
this.results = function (bool) {
|
||||
if (typeof options.noResults === "string" && options.noResults !== "") {
|
||||
if (bool) {
|
||||
$(options.noResults).hide();
|
||||
} else {
|
||||
$(options.noResults).show();
|
||||
}
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
this.loader = function (bool) {
|
||||
if (typeof options.loader === "string" && options.loader !== "") {
|
||||
(bool) ? $(options.loader).show() : $(options.loader).hide();
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
this.cache = function () {
|
||||
|
||||
jq_results = $(target);
|
||||
|
||||
if (typeof options.noResults === "string" && options.noResults !== "") {
|
||||
jq_results = jq_results.not(options.noResults);
|
||||
}
|
||||
|
||||
var t = (typeof options.selector === "string") ? jq_results.find(options.selector) : $(target).not(options.noResults);
|
||||
cache = t.map(function () {
|
||||
return e.strip_html(this.innerHTML);
|
||||
});
|
||||
|
||||
rowcache = jq_results.map(function () {
|
||||
return this;
|
||||
});
|
||||
|
||||
/*
|
||||
* Modified fix for sync-ing "val".
|
||||
* Original fix https://github.com/michaellwest/quicksearch/commit/4ace4008d079298a01f97f885ba8fa956a9703d1
|
||||
* */
|
||||
val = val || this.val() || "";
|
||||
|
||||
return this.go();
|
||||
};
|
||||
|
||||
this.trigger = function () {
|
||||
this.loader(true);
|
||||
options.onBefore();
|
||||
|
||||
window.clearTimeout(timeout);
|
||||
timeout = window.setTimeout(function () {
|
||||
e.go();
|
||||
}, options.delay);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this.cache();
|
||||
this.results(true);
|
||||
this.stripe();
|
||||
this.loader(false);
|
||||
|
||||
return this.each(function () {
|
||||
|
||||
/*
|
||||
* Changed from .bind to .on.
|
||||
* */
|
||||
$(this).on(options.bind, function () {
|
||||
|
||||
val = $(this).val();
|
||||
e.trigger();
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
}(jQuery, this, document));
|
||||
1
js/quicksearch.min.js
vendored
Normal file
1
js/quicksearch.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(r,a,t,e){r.fn.quicksearch=function(e,t){var s,o,u,n,h="",i=this,l=r.extend({delay:100,selector:null,stripeRows:null,loader:null,noResults:"",matchedResultsCount:0,bind:"keyup",onBefore:function(){},onAfter:function(){},show:function(){this.style.display=""},hide:function(){this.style.display="none"},prepareQuery:function(t){return t.toLowerCase().split(" ")},testQuery:function(t,e,s){for(var n=0;n<t.length;n+=1)if(-1===e.indexOf(t[n]))return!1;return!0}},t);return this.go=function(){for(var t=0,e=0,s=!0,n=l.prepareQuery(h),i=0===h.replace(" ","").length,r=(t=0,u.length);t<r;t++)i||l.testQuery(n,o[t],u[t])?(l.show.apply(u[t]),s=!1,e++):l.hide.apply(u[t]);return s?this.results(!1):(this.results(!0),this.stripe()),this.matchedResultsCount=e,this.loader(!1),l.onAfter(),this},this.search=function(t){h=t,i.trigger()},this.currentMatchedResults=function(){return this.matchedResultsCount},this.stripe=function(){if("object"==typeof l.stripeRows&&null!==l.stripeRows){var e=l.stripeRows.join(" "),s=l.stripeRows.length;n.not(":hidden").each(function(t){r(this).removeClass(e).addClass(l.stripeRows[t%s])})}return this},this.strip_html=function(t){var e=t.replace(new RegExp("<[^<]+>","g"),"");return e=r.trim(e.toLowerCase())},this.results=function(t){return"string"==typeof l.noResults&&""!==l.noResults&&(t?r(l.noResults).hide():r(l.noResults).show()),this},this.loader=function(t){return"string"==typeof l.loader&&""!==l.loader&&(t?r(l.loader).show():r(l.loader).hide()),this},this.cache=function(){n=r(e),"string"==typeof l.noResults&&""!==l.noResults&&(n=n.not(l.noResults));var t="string"==typeof l.selector?n.find(l.selector):r(e).not(l.noResults);return o=t.map(function(){return i.strip_html(this.innerHTML)}),u=n.map(function(){return this}),h=h||this.val()||"",this.go()},this.trigger=function(){return this.loader(!0),l.onBefore(),a.clearTimeout(s),s=a.setTimeout(function(){i.go()},l.delay),this},this.cache(),this.results(!0),this.stripe(),this.loader(!1),this.each(function(){r(this).on(l.bind,function(){h=r(this).val(),i.trigger()})})}}(jQuery,this,document);
|
||||
112
js/reports.js
Normal file
112
js/reports.js
Normal file
@@ -0,0 +1,112 @@
|
||||
(function (Gravity_Flow_Reports, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
var stepVars;
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
stepVars = gravityflowFilterVars.config;
|
||||
var selectedVars = gravityflowFilterVars.selected;
|
||||
|
||||
var formId = selectedVars.formId;
|
||||
|
||||
$('#gravityflow-reports-category').toggle(formId ? true : false);
|
||||
|
||||
if ( formId ) {
|
||||
var category = selectedVars.category;
|
||||
if ( category == 'step' ) {
|
||||
$('#gravityflow-reports-steps').html(getStepOptions(formId));
|
||||
var stepId = selectedVars.stepId;
|
||||
$('#gravityflow-reports-steps').val(stepId);
|
||||
$('#gravityflow-reports-steps').show();
|
||||
|
||||
if ( stepId ) {
|
||||
var assigneeVars = stepVars[formId][stepId].assignees;
|
||||
|
||||
$('#gravityflow-reports-assignees').html(getAssigneeOptions( assigneeVars ) );
|
||||
|
||||
$('#gravityflow-reports-assignees').val(selectedVars.assignee);
|
||||
$('#gravityflow-reports-assignees').show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('#gravityflow-form-drop-down').change(function(){
|
||||
$('#gravityflow-reports-category').toggle( this.value ? true : false);
|
||||
});
|
||||
$('#gravityflow-reports-category').change(function(){
|
||||
var formId = $('#gravityflow-form-drop-down').val();
|
||||
if ( this.value == 'step' ) {
|
||||
$('#gravityflow-reports-steps').html(getStepOptions(formId));
|
||||
$('#gravityflow-reports-steps').show();
|
||||
} else {
|
||||
$('#gravityflow-reports-assignees').hide();
|
||||
$('#gravityflow-reports-steps').hide();
|
||||
}
|
||||
});
|
||||
$('#gravityflow-reports-steps').change( function(){
|
||||
if ( this.value ) {
|
||||
var formId = $('#gravityflow-form-drop-down').val();
|
||||
var assigneeVars = stepVars[formId][this.value].assignees;
|
||||
$('#gravityflow-reports-assignees').html(getAssigneeOptions( assigneeVars ) );
|
||||
$('#gravityflow-reports-assignees').show();
|
||||
} else {
|
||||
$('#gravityflow-reports-assignees').hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
function getStepOptions( formId ){
|
||||
var m = [];
|
||||
m.push( '<option value="">{0}</option>'.format( 'All Steps' ) );
|
||||
var steps = stepVars[formId];
|
||||
$.each( steps, function ( i, step ){
|
||||
m.push( '<option value="{0}">{1}</option>'.format(step.id, step.name ) );
|
||||
});
|
||||
return m.join('');
|
||||
}
|
||||
|
||||
function getAssigneeOptions( assigneeVars ){
|
||||
var m = [];
|
||||
m.push( '<option value="">{0}</option>'.format( 'All Assignees' ) );
|
||||
for(var i=0; i < assigneeVars.length; i++) {
|
||||
m.push( '<option value="{0}">{1}</option>'.format(assigneeVars[i].key, assigneeVars[i].name ) );
|
||||
}
|
||||
return m.join('');
|
||||
}
|
||||
|
||||
Gravity_Flow_Reports.drawCharts = function() {
|
||||
|
||||
$('.gravityflow_chart').each(function () {
|
||||
var $this = $(this);
|
||||
var dataTable = $this.data('table');
|
||||
var data = google.visualization.arrayToDataTable(dataTable);
|
||||
|
||||
var options = $this.data('options');
|
||||
|
||||
var chartType = $this.data('type');
|
||||
|
||||
var chart = new google.charts[chartType]( this );
|
||||
|
||||
chart.draw(data, options);
|
||||
})
|
||||
}
|
||||
|
||||
String.prototype.format = function () {
|
||||
var args = arguments;
|
||||
return this.replace(/{(\d+)}/g, function (match, number) {
|
||||
return typeof args[number] != 'undefined'
|
||||
? args[number]
|
||||
: match
|
||||
;
|
||||
});
|
||||
};
|
||||
|
||||
}(window.Gravity_Flow_Reports = window.Gravity_Flow_Reports || {}, jQuery));
|
||||
|
||||
|
||||
google.load("visualization", "1.1", {packages:["bar"]});
|
||||
google.setOnLoadCallback(Gravity_Flow_Reports.drawCharts);
|
||||
1
js/reports.min.js
vendored
Normal file
1
js/reports.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(t,s){"use strict";var e;function i(t){var r=[];r.push('<option value="">{0}</option>'.format("All Steps"));var o=e[t];return s.each(o,function(t,o){r.push('<option value="{0}">{1}</option>'.format(o.id,o.name))}),r.join("")}function n(t){var o=[];o.push('<option value="">{0}</option>'.format("All Assignees"));for(var r=0;r<t.length;r++)o.push('<option value="{0}">{1}</option>'.format(t[r].key,t[r].name));return o.join("")}s(document).ready(function(){e=gravityflowFilterVars.config;var t=gravityflowFilterVars.selected,o=t.formId;if((s("#gravityflow-reports-category").toggle(!!o),o)&&"step"==t.category){s("#gravityflow-reports-steps").html(i(o));var r=t.stepId;if(s("#gravityflow-reports-steps").val(r),s("#gravityflow-reports-steps").show(),r){var a=e[o][r].assignees;s("#gravityflow-reports-assignees").html(n(a)),s("#gravityflow-reports-assignees").val(t.assignee),s("#gravityflow-reports-assignees").show()}}s("#gravityflow-form-drop-down").change(function(){s("#gravityflow-reports-category").toggle(!!this.value)}),s("#gravityflow-reports-category").change(function(){var t=s("#gravityflow-form-drop-down").val();"step"==this.value?(s("#gravityflow-reports-steps").html(i(t)),s("#gravityflow-reports-steps").show()):(s("#gravityflow-reports-assignees").hide(),s("#gravityflow-reports-steps").hide())}),s("#gravityflow-reports-steps").change(function(){if(this.value){var t=s("#gravityflow-form-drop-down").val(),o=e[t][this.value].assignees;s("#gravityflow-reports-assignees").html(n(o)),s("#gravityflow-reports-assignees").show()}else s("#gravityflow-reports-assignees").hide()})}),t.drawCharts=function(){s(".gravityflow_chart").each(function(){var t=s(this),o=t.data("table"),r=google.visualization.arrayToDataTable(o),a=t.data("options"),e=t.data("type");new google.charts[e](this).draw(r,a)})},String.prototype.format=function(){var r=arguments;return this.replace(/{(\d+)}/g,function(t,o){return void 0!==r[o]?r[o]:t})}}(window.Gravity_Flow_Reports=window.Gravity_Flow_Reports||{},jQuery),google.load("visualization","1.1",{packages:["bar"]}),google.setOnLoadCallback(Gravity_Flow_Reports.drawCharts);
|
||||
290
js/routing-setting.js
Normal file
290
js/routing-setting.js
Normal file
@@ -0,0 +1,290 @@
|
||||
;(function ( GFRoutingSetting, $, undefined ) {
|
||||
|
||||
"use strict";
|
||||
|
||||
// Create the defaults once
|
||||
var pluginName = "gfRoutingSetting",
|
||||
defaults = {
|
||||
prefix: "",
|
||||
allowMultiple: true,
|
||||
imagesURL: "",
|
||||
operatorStrings: {"is":"is","isnot":"isNot", ">":"greaterThan", "<":"lessThan", "contains":"contains", "starts_with":"startsWith", "ends_with":"endsWith"},
|
||||
items: [ {
|
||||
target: '',
|
||||
fieldId: '0',
|
||||
operator: 'is',
|
||||
value: '',
|
||||
type: '',
|
||||
} ],
|
||||
callbacks: {
|
||||
addNewTarget: function() { },
|
||||
header: function() { return '<thead><tr><th>Assign To</th><th colspan="3">Condition</th></tr></thead>';}
|
||||
}
|
||||
};
|
||||
|
||||
// The plugin constructor
|
||||
function Plugin( element, options ) {
|
||||
this.element = element;
|
||||
this.$element = $(element);
|
||||
|
||||
this.options = $.extend( true, {}, defaults, options) ;
|
||||
|
||||
this.prefix = options.prefix;
|
||||
this.settings = options.settings;
|
||||
this.accounts = options.accounts;
|
||||
|
||||
this._defaults = defaults;
|
||||
this._name = pluginName;
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
Plugin.prototype = {
|
||||
|
||||
init: function() {
|
||||
|
||||
var t = this;
|
||||
|
||||
var routingsMarkup, headerMarkup;
|
||||
headerMarkup = this.getHeaderMarkup();
|
||||
routingsMarkup = '<table class="gform-routings">{0}<tbody class="repeater">{1}</tbody></table>'.format(headerMarkup, this.getNewRoutingRow());
|
||||
|
||||
var $routings = $(routingsMarkup);
|
||||
$routings.find('.repeater').repeater({
|
||||
|
||||
limit: 0,
|
||||
items: this.options.items,
|
||||
addButtonMarkup: '<img class="gform-add" src="{0}/images/add.png" />'.format(gf_vars.baseUrl),
|
||||
removeButtonMarkup: '<img class="gform-remove" src="{0}/images/remove.png" />'.format(gf_vars.baseUrl),
|
||||
callbacks: {
|
||||
save: function( obj, data ) {
|
||||
$('#' + t.options.fieldId).val( $.toJSON( data ) );
|
||||
},
|
||||
beforeAdd: function( obj, $elem, item){
|
||||
var $target = $elem.find('.gform-routing-target');
|
||||
$target.val(item.target);
|
||||
|
||||
var $field = $elem.find('.gform-routing-field').first();
|
||||
$field.value = item.fieldId;
|
||||
t.changeField($field);
|
||||
|
||||
var $operator = $elem.find('.gform-routing-operator').first();
|
||||
|
||||
$operator.value = item.operator;
|
||||
|
||||
t.changeOperator($operator);
|
||||
|
||||
var $value = $elem.find('.gform-routing-value');
|
||||
$value.val(item.value);
|
||||
|
||||
},
|
||||
}
|
||||
})
|
||||
.on('change', '.gform-routing-field', function(e){
|
||||
t.changeField(this);
|
||||
})
|
||||
.on('click', '.gform-no-filters', function(e){
|
||||
var $this = $(this);
|
||||
var $row = $this.find('.gform-routing');
|
||||
if($row.length == 0){
|
||||
t.addNewRouting(this);
|
||||
}
|
||||
$this.remove();
|
||||
e.preventDefault();
|
||||
})
|
||||
.on('change', '.gform-routing-operator', function(){
|
||||
t.changeOperator(this);
|
||||
});
|
||||
|
||||
this.$element.append($routings);
|
||||
|
||||
/*
|
||||
if (typeof filters == 'undefined' || filters.length == 0){
|
||||
t.displayNoRoutingsMessage();
|
||||
return;
|
||||
}
|
||||
|
||||
t.$element.find(".gform-routing-field").each(function (i) {
|
||||
var fieldId = filters[i].field;
|
||||
$(this).val(fieldId);
|
||||
t.changeField(this);
|
||||
});
|
||||
t.$element.find(".gform-routing-operator").each(function (i) {
|
||||
var operator = filters[i].operator;
|
||||
$(this).val(operator);
|
||||
t.changeOperator(this, this.value);
|
||||
});
|
||||
|
||||
t.$element.find(".gform-routing-value").each(function (i) {
|
||||
var value = filters[i].value;
|
||||
$(this).val(value);
|
||||
$(this).change();
|
||||
});
|
||||
|
||||
var i;
|
||||
|
||||
for (i = 0; i < filters.length; i++) {
|
||||
t.$element.find(".gform-routings").append(this.getNewRoutingRow(filters[i].routeId));
|
||||
}
|
||||
*/
|
||||
},
|
||||
|
||||
getHeaderMarkup: function() {
|
||||
|
||||
var header = this.options.callbacks.header( this, '' );
|
||||
return header;
|
||||
},
|
||||
|
||||
getNewRoutingRow: function () {
|
||||
var r = [];
|
||||
|
||||
r.push( '<td>{0}</td>'.format( this.getRoutingTarget() ) );
|
||||
r.push( '<td>{0}</td>'.format( this.getRoutingFields() ) );
|
||||
r.push( '<td>{0}</td>'.format( this.getRoutingOperators( this.options.settings[0] ) ) );
|
||||
r.push( '<td>{0}</td>'.format( this.getRoutingValues() ) );
|
||||
r.push( '<td>{buttons}</td>' );
|
||||
|
||||
return '<tr class="gform-routing-row">{0}</tr>'.format( r.join('') );
|
||||
},
|
||||
|
||||
getRoutingTarget: function () {
|
||||
var target = '<input type="text" class="gform-routing-target target_{i}">';
|
||||
target = this.options.callbacks.addNewTarget( this, target );
|
||||
return target;
|
||||
},
|
||||
|
||||
getRoutingFields: function () {
|
||||
var i, j, key, val, label, groupLabel, options, numRows,
|
||||
select = [],
|
||||
settings = this.settings;
|
||||
select.push('<select class="gform-routing-field fieldId_{i}" >');
|
||||
for (i = 0; i < settings.length; i++) {
|
||||
key = settings[i].key;
|
||||
if (settings[i].group) {
|
||||
groupLabel = settings[i].text;
|
||||
numRows = settings[i].filters.length;
|
||||
options = [];
|
||||
for (j = 0; j < numRows; j++) {
|
||||
label = settings[i].filters[j].text;
|
||||
val = settings[i].filters[j].key;
|
||||
options.push('<option value="{0}">{1}</option>'.format(val, label));
|
||||
}
|
||||
select.push('<optgroup label="{0}">{1}</optgroup>'.format(groupLabel, options.join('')));
|
||||
} else {
|
||||
label = settings[i].text;
|
||||
select.push('<option value="{0}">{1}</option>'.format(key, label));
|
||||
}
|
||||
|
||||
}
|
||||
select.push("</select>");
|
||||
select.push('<input type="hidden" class="gform-filter-type" name="type_{i}" value="" >');
|
||||
return select.join('');
|
||||
},
|
||||
|
||||
changeOperator: function (operatorSelect) {
|
||||
var $select = $(operatorSelect),
|
||||
$buttons = $select.closest('tr').find('.repeater-buttons');
|
||||
var index = $buttons.find('.add-item ').data('index');
|
||||
var $fieldSelect = $select.closest('tr').find('.gform-routing-field');
|
||||
var filter = this.getFilter($fieldSelect.value);
|
||||
if (filter) {
|
||||
$select.closest('tr').find(".gform-routing-value").replaceWith(this.getRoutingValues(filter, operatorSelect.value, index));
|
||||
}
|
||||
},
|
||||
|
||||
changeField: function (fieldSelect) {
|
||||
var filter = this.getFilter(fieldSelect.value);
|
||||
if (filter) {
|
||||
var $select = $(fieldSelect),
|
||||
$buttons = $select.closest('tr').find('.repeater-buttons');
|
||||
var index = $buttons.find('.add-item ').data('index');
|
||||
$select.closest('tr').find(".gform-routing-value").replaceWith(this.getRoutingValues(filter, null, index));
|
||||
$select.closest('tr').find(".gform-filter-type").val(filter.type).change();
|
||||
var $newOperators = $(this.getRoutingOperators(filter, index));
|
||||
$select.closest('tr').find(".gform-routing-operator").replaceWith($newOperators);
|
||||
$select.closest('tr').find(".gform-routing-operator").change();
|
||||
}
|
||||
},
|
||||
|
||||
getRoutingOperators: function (filter, index) {
|
||||
if ( typeof index == 'undefined' || index === null ){
|
||||
index = '{i}';
|
||||
}
|
||||
var i, operator,
|
||||
operatorStrings = this.options.operatorStrings,
|
||||
str = '<select class="gform-routing-operator operator_{0}">'.format(index);
|
||||
|
||||
if (filter) {
|
||||
for (i = 0; i < filter.operators.length; i++) {
|
||||
operator = filter.operators[i];
|
||||
str += '<option value="{0}">{1}</option>'.format(operator, gf_vars[operatorStrings[operator]] );
|
||||
}
|
||||
}
|
||||
str += "</select>";
|
||||
return str;
|
||||
},
|
||||
|
||||
getRoutingValues: function (filter, selectedOperator, index) {
|
||||
var i, val, text, str, options = "";
|
||||
|
||||
if ( typeof index == 'undefined' || index === null ){
|
||||
index = '{i}';
|
||||
}
|
||||
|
||||
if ( filter && filter.values && selectedOperator != 'contains' ) {
|
||||
for (i = 0; i < filter.values.length; i++) {
|
||||
val = filter.values[i].value;
|
||||
text = filter.values[i].text;
|
||||
options += '<option value="{0}">{1}</option>'.format(val, text);
|
||||
}
|
||||
str = '<select class="gform-routing-value value_{0}">{1}</select>'.format(index, options);
|
||||
} else {
|
||||
str = '<input type="text" value="" class="gform-routing-value value_{0}" />'.format(index);
|
||||
}
|
||||
|
||||
return str;
|
||||
},
|
||||
|
||||
getFilter: function (key) {
|
||||
var settings = this.settings;
|
||||
if (!key)
|
||||
return;
|
||||
for (var i = 0; i < settings.length; i++) {
|
||||
if (key == settings[i].key)
|
||||
return settings[i];
|
||||
if (settings[i].group) {
|
||||
for (var j = 0; j < settings[i].filters.length; j++) {
|
||||
if (key == settings[i].filters[j].key)
|
||||
return settings[i].filters[j];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
selected: function (selected, current){
|
||||
return selected == current ? 'selected="selected"' : "";
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
// A really lightweight plugin wrapper around the constructor,
|
||||
// preventing against multiple instantiations
|
||||
$.fn[pluginName] = function ( options ) {
|
||||
return this.each(function () {
|
||||
if (!$.data(this, "plugin_" + pluginName)) {
|
||||
$.data(this, "plugin_" + pluginName,
|
||||
new Plugin( this, options ));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
String.prototype.format = function () {
|
||||
var args = arguments;
|
||||
return this.replace(/{(\d+)}/g, function (match, number) {
|
||||
return typeof args[number] != 'undefined' ? args[number] : match;
|
||||
});
|
||||
};
|
||||
|
||||
})( window.GFRoutingSetting = window.GFRoutingSetting || {}, jQuery );
|
||||
|
||||
1
js/routing-setting.min.js
vendored
Normal file
1
js/routing-setting.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(t,a,e){"use strict";var i="gfRoutingSetting",r={prefix:"",allowMultiple:!0,imagesURL:"",operatorStrings:{is:"is",isnot:"isNot",">":"greaterThan","<":"lessThan",contains:"contains",starts_with:"startsWith",ends_with:"endsWith"},items:[{target:"",fieldId:"0",operator:"is",value:"",type:""}],callbacks:{addNewTarget:function(){},header:function(){return'<thead><tr><th>Assign To</th><th colspan="3">Condition</th></tr></thead>'}}};function o(t,e){this.element=t,this.$element=a(t),this.options=a.extend(!0,{},r,e),this.prefix=e.prefix,this.settings=e.settings,this.accounts=e.accounts,this._defaults=r,this._name=i,this.init()}o.prototype={init:function(){var t,e,n=this;e=this.getHeaderMarkup(),t='<table class="gform-routings">{0}<tbody class="repeater">{1}</tbody></table>'.format(e,this.getNewRoutingRow());var i=a(t);i.find(".repeater").repeater({limit:0,items:this.options.items,addButtonMarkup:'<img class="gform-add" src="{0}/images/add.png" />'.format(gf_vars.baseUrl),removeButtonMarkup:'<img class="gform-remove" src="{0}/images/remove.png" />'.format(gf_vars.baseUrl),callbacks:{save:function(t,e){a("#"+n.options.fieldId).val(a.toJSON(e))},beforeAdd:function(t,e,i){e.find(".gform-routing-target").val(i.target);var r=e.find(".gform-routing-field").first();r.value=i.fieldId,n.changeField(r);var o=e.find(".gform-routing-operator").first();o.value=i.operator,n.changeOperator(o),e.find(".gform-routing-value").val(i.value)}}}).on("change",".gform-routing-field",function(t){n.changeField(this)}).on("click",".gform-no-filters",function(t){var e=a(this);0==e.find(".gform-routing").length&&n.addNewRouting(this),e.remove(),t.preventDefault()}).on("change",".gform-routing-operator",function(){n.changeOperator(this)}),this.$element.append(i)},getHeaderMarkup:function(){return this.options.callbacks.header(this,"")},getNewRoutingRow:function(){var t=[];return t.push("<td>{0}</td>".format(this.getRoutingTarget())),t.push("<td>{0}</td>".format(this.getRoutingFields())),t.push("<td>{0}</td>".format(this.getRoutingOperators(this.options.settings[0]))),t.push("<td>{0}</td>".format(this.getRoutingValues())),t.push("<td>{buttons}</td>"),'<tr class="gform-routing-row">{0}</tr>'.format(t.join(""))},getRoutingTarget:function(){var t='<input type="text" class="gform-routing-target target_{i}">';return t=this.options.callbacks.addNewTarget(this,t)},getRoutingFields:function(){var t,e,i,r,o,n,a,s,u=[],g=this.settings;for(u.push('<select class="gform-routing-field fieldId_{i}" >'),t=0;t<g.length;t++)if(i=g[t].key,g[t].group){for(n=g[t].text,s=g[t].filters.length,a=[],e=0;e<s;e++)o=g[t].filters[e].text,r=g[t].filters[e].key,a.push('<option value="{0}">{1}</option>'.format(r,o));u.push('<optgroup label="{0}">{1}</optgroup>'.format(n,a.join("")))}else o=g[t].text,u.push('<option value="{0}">{1}</option>'.format(i,o));return u.push("</select>"),u.push('<input type="hidden" class="gform-filter-type" name="type_{i}" value="" >'),u.join("")},changeOperator:function(t){var e=a(t),i=e.closest("tr").find(".repeater-buttons").find(".add-item ").data("index"),r=e.closest("tr").find(".gform-routing-field"),o=this.getFilter(r.value);o&&e.closest("tr").find(".gform-routing-value").replaceWith(this.getRoutingValues(o,t.value,i))},changeField:function(t){var e=this.getFilter(t.value);if(e){var i=a(t),r=i.closest("tr").find(".repeater-buttons").find(".add-item ").data("index");i.closest("tr").find(".gform-routing-value").replaceWith(this.getRoutingValues(e,null,r)),i.closest("tr").find(".gform-filter-type").val(e.type).change();var o=a(this.getRoutingOperators(e,r));i.closest("tr").find(".gform-routing-operator").replaceWith(o),i.closest("tr").find(".gform-routing-operator").change()}},getRoutingOperators:function(t,e){null==e&&(e="{i}");var i,r,o=this.options.operatorStrings,n='<select class="gform-routing-operator operator_{0}">'.format(e);if(t)for(i=0;i<t.operators.length;i++)r=t.operators[i],n+='<option value="{0}">{1}</option>'.format(r,gf_vars[o[r]]);return n+="</select>"},getRoutingValues:function(t,e,i){var r,o,n,a,s="";if(null==i&&(i="{i}"),t&&t.values&&"contains"!=e){for(r=0;r<t.values.length;r++)o=t.values[r].value,n=t.values[r].text,s+='<option value="{0}">{1}</option>'.format(o,n);a='<select class="gform-routing-value value_{0}">{1}</select>'.format(i,s)}else a='<input type="text" value="" class="gform-routing-value value_{0}" />'.format(i);return a},getFilter:function(t){var e=this.settings;if(t)for(var i=0;i<e.length;i++){if(t==e[i].key)return e[i];if(e[i].group)for(var r=0;r<e[i].filters.length;r++)if(t==e[i].filters[r].key)return e[i].filters[r]}},selected:function(t,e){return t==e?'selected="selected"':""}},a.fn[i]=function(t){return this.each(function(){a.data(this,"plugin_"+i)||a.data(this,"plugin_"+i,new o(this,t))})},String.prototype.format=function(){var i=arguments;return this.replace(/{(\d+)}/g,function(t,e){return void 0!==i[e]?i[e]:t})}}(window.GFRoutingSetting=window.GFRoutingSetting||{},jQuery);
|
||||
53
js/settings.js
Normal file
53
js/settings.js
Normal file
@@ -0,0 +1,53 @@
|
||||
;(function (GravityFlowSettings, $) {
|
||||
|
||||
"use strict";
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$("form.oauth").submit(function() {
|
||||
var inputs = $(this).find("input.required");
|
||||
var error = false;
|
||||
$.each(inputs, function() {
|
||||
if ($(this).val() == "") {
|
||||
error = true;
|
||||
if ($(this).closest('p').find('p.error').length < 1) {
|
||||
$(this).before('<p class="error">' + gravityflow_settings_js_strings.required_fields + '</p>');
|
||||
}
|
||||
}
|
||||
else {
|
||||
$(this).closest('p').find('p.error').hide().remove();
|
||||
}
|
||||
});
|
||||
if (error) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$('#gflow_reauthorize_app').click(function(e) {
|
||||
e.preventDefault();
|
||||
var secure = gravityflow_settings_js_strings.nonce;
|
||||
var app = $(this).data('app');
|
||||
$.post(gravityflow_settings_js_strings.ajaxurl, {security: secure, action: 'gravity_flow_reauth_app', app: app}, function(response) {
|
||||
if (response.success) {
|
||||
window.location.reload();
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
$('#new-app').click(function(){
|
||||
$(this).hide();
|
||||
$('#connected_apps_table_container').hide();
|
||||
$('#connected_app_form_container').fadeIn();
|
||||
});
|
||||
|
||||
$('#gflow_add_app_cancel').click(function () {
|
||||
|
||||
$('#connected_app_form_container').hide();
|
||||
$('#new-app').show();
|
||||
$('#connected_apps_table_container').fadeIn();
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
}(window.GravityFlowSettings = window.GravityFlowSettings || {}, jQuery));
|
||||
1
js/settings.min.js
vendored
Normal file
1
js/settings.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(t,i){"use strict";i(document).ready(function(){i("form.oauth").submit(function(){var t=i(this).find("input.required"),n=!1;if(i.each(t,function(){""==i(this).val()?(n=!0,i(this).closest("p").find("p.error").length<1&&i(this).before('<p class="error">'+gravityflow_settings_js_strings.required_fields+"</p>")):i(this).closest("p").find("p.error").hide().remove()}),n)return!1}),i("#gflow_reauthorize_app").click(function(t){t.preventDefault();var n=gravityflow_settings_js_strings.nonce,e=i(this).data("app");i.post(gravityflow_settings_js_strings.ajaxurl,{security:n,action:"gravity_flow_reauth_app",app:e},function(t){t.success&&window.location.reload()})}),i("#new-app").click(function(){i(this).hide(),i("#connected_apps_table_container").hide(),i("#connected_app_form_container").fadeIn()}),i("#gflow_add_app_cancel").click(function(){i("#connected_app_form_container").hide(),i("#new-app").show(),i("#connected_apps_table_container").fadeIn()})})}(window.GravityFlowSettings=window.GravityFlowSettings||{},jQuery);
|
||||
91
js/status-list.js
Normal file
91
js/status-list.js
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
(function (GravityFlowStatusList, $) {
|
||||
var page = 1, filters;
|
||||
$(document).ready(function () {
|
||||
$('#doaction, #doaction2').click(function(){
|
||||
|
||||
var action = $(this).prev('select').val();
|
||||
|
||||
if ( action == 'print' ) {
|
||||
tb_show('Print Entries', '#TB_inline?width=350&height=250&inlineId=print_modal_container', '');
|
||||
return false;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('#gravityflow-bulk-print-button').click(function(){
|
||||
var checkedValues = $('.gravityflow-cb-entry-id:checked').map(function() {
|
||||
return this.value;
|
||||
}).get();
|
||||
var timelinesQS = $('#gravityflow-print-timelines').is(':checked') ? '&timelines=1' : '';
|
||||
var pageBreakQS = jQuery('#gravityflow-print-page-break').is(':checked') ? '&page_break=1' : '';
|
||||
printPage( gravityflow_status_list_strings.ajaxurl + '?action=gravityflow_print_entries&lid=' + checkedValues.join(',') + timelinesQS + pageBreakQS );
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.gravityflow-export-status-button').click(function(){
|
||||
var $this = $(this);
|
||||
$this.addClass('button-disabled');
|
||||
filters = $this.data('filter_args');
|
||||
var s = $this.next('.spinner');
|
||||
$this.next('.gravityflow-spinner').show();
|
||||
processExport();
|
||||
});
|
||||
|
||||
function processExport(){
|
||||
var url;
|
||||
url = ajaxurl + '?action=gravityflow_export_status&order=asc&paged=' + page;
|
||||
url += filters;
|
||||
$.getJSON(url, function(data){
|
||||
if ( data.status =='complete' ) {
|
||||
window.location = data.url;
|
||||
} else if( data.status =='incomplete' ) {
|
||||
processExport( page++ );
|
||||
} else {
|
||||
alert(data.message);
|
||||
}
|
||||
$('.gravityflow-export-status-button.button-disabled').next('.gravityflow-spinner').hide();
|
||||
$('.gravityflow-export-status-button.button-disabled').removeClass('button-disabled');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}(window.GravityFlowStatusList = window.GravityFlowStatusList || {}, jQuery));
|
||||
|
||||
function closePrint () {
|
||||
document.body.removeChild(this.__container__);
|
||||
}
|
||||
|
||||
function setPrint () {
|
||||
this.contentWindow.__container__ = this;
|
||||
this.contentWindow.onbeforeunload = closePrint;
|
||||
this.contentWindow.onafterprint = closePrint;
|
||||
this.contentWindow.focus();
|
||||
var ms_ie = false;
|
||||
var ua = window.navigator.userAgent;
|
||||
var old_ie = ua.indexOf('MSIE ');
|
||||
var new_ie = ua.indexOf('Trident/');
|
||||
|
||||
if ((old_ie > -1) || (new_ie > -1)) {
|
||||
ms_ie = true;
|
||||
}
|
||||
|
||||
if ( ms_ie ) {
|
||||
this.contentWindow.document.execCommand('print', false, null);
|
||||
} else {
|
||||
this.contentWindow.print();
|
||||
}
|
||||
}
|
||||
|
||||
function printPage (sURL) {
|
||||
var oHiddFrame = document.createElement("iframe");
|
||||
oHiddFrame.onload = setPrint;
|
||||
oHiddFrame.style.visibility = "hidden";
|
||||
oHiddFrame.style.position = "fixed";
|
||||
oHiddFrame.style.right = "0";
|
||||
oHiddFrame.style.bottom = "0";
|
||||
oHiddFrame.src = sURL;
|
||||
document.body.appendChild(oHiddFrame);
|
||||
}
|
||||
1
js/status-list.min.js
vendored
Normal file
1
js/status-list.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
function closePrint(){document.body.removeChild(this.__container__)}function setPrint(){(this.contentWindow.__container__=this).contentWindow.onbeforeunload=closePrint,this.contentWindow.onafterprint=closePrint,this.contentWindow.focus();var t=!1,n=window.navigator.userAgent,i=n.indexOf("MSIE "),e=n.indexOf("Trident/");(-1<i||-1<e)&&(t=!0),t?this.contentWindow.document.execCommand("print",!1,null):this.contentWindow.print()}function printPage(t){var n=document.createElement("iframe");n.onload=setPrint,n.style.visibility="hidden",n.style.position="fixed",n.style.right="0",n.style.bottom="0",n.src=t,document.body.appendChild(n)}!function(t,e){var i,o=1;e(document).ready(function(){e("#doaction, #doaction2").click(function(){if("print"==e(this).prev("select").val())return tb_show("Print Entries","#TB_inline?width=350&height=250&inlineId=print_modal_container",""),!1}),e("#gravityflow-bulk-print-button").click(function(){var t=e(".gravityflow-cb-entry-id:checked").map(function(){return this.value}).get(),n=e("#gravityflow-print-timelines").is(":checked")?"&timelines=1":"",i=jQuery("#gravityflow-print-page-break").is(":checked")?"&page_break=1":"";return printPage(gravityflow_status_list_strings.ajaxurl+"?action=gravityflow_print_entries&lid="+t.join(",")+n+i),!1}),e(".gravityflow-export-status-button").click(function(){var t=e(this);t.addClass("button-disabled"),i=t.data("filter_args");t.next(".spinner");t.next(".gravityflow-spinner").show(),function n(){var t;t=ajaxurl+"?action=gravityflow_export_status&order=asc&paged="+o;t+=i;e.getJSON(t,function(t){"complete"==t.status?window.location=t.url:"incomplete"==t.status?n(o++):alert(t.message),e(".gravityflow-export-status-button.button-disabled").next(".gravityflow-spinner").hide(),e(".gravityflow-export-status-button.button-disabled").removeClass("button-disabled")})}()})})}(window.GravityFlowStatusList=window.GravityFlowStatusList||{},jQuery);
|
||||
Reference in New Issue
Block a user