/* PHP MAILER JS FILE */ /* $(document).on('click', '#PHPMAILER-settings-button', function() { var post = { plugin:'PHPMailer/settings/get', // used for switch case in your API call api:'api/?v1/plugin', // API Endpoint will always be this for custom plugin API calls name:$(this).attr('data-plugin-name'), configName:$(this).attr('data-config-name'), messageTitle:'', // Send succees message title (top line) messageBody:'Disabled '+$(this).attr('data-plugin-name'), // Send succees message body (bottom line) error:'Organizr Function: API Connection Failed' // conole error message }; var callbacks = $.Callbacks(); // init callbacks var //callbacks.add( ); // add function to callback to be fired after API call //settingsAPI(post,callbacks); // exec API call //ajaxloader(".content-wrap","in"); //setTimeout(function(){ buildPlugins();ajaxloader(); }, 3000); }); */ // FUNCTIONS inviteLaunch() function inviteLaunch(){ if(typeof activeInfo == 'undefined'){ setTimeout(function () { inviteLaunch(); }, 1000); }else{ var menuList = ''; var htmlDOM = `
`; if(activeInfo.plugins["INVITES-enabled"] == true){ if (activeInfo.user.loggedin === true && activeInfo.user.groupID <= 1) { menuList = `
  • Manage Invites
  • `; htmlDOM += `
    New Invite
    `; }else if (activeInfo.user.loggedin === false){ menuList = `
  • Use Invite Code
  • `; } $('.append-menu').after(menuList); $('.organizr-area').after(htmlDOM); pageLoad(); getInvite(); } } } function joinPlex(){ var username = $('#invitePlexJoinUsername'); var email = $('#invitePlexJoinEmail'); var password = $('#invitePlexJoinPassword'); if(username.val() == ''){ username.focus(); message('Invite Error',' Please Enter Username',activeInfo.settings.notifications.position,'#FFF','warning','5000'); }else if(email.val() == ''){ email.focus(); message('Invite Error',' Please Enter Email',activeInfo.settings.notifications.position,'#FFF','warning','5000'); }else if(password.val() == ''){ password.focus(); message('Invite Error',' Please Enter Passowrd',activeInfo.settings.notifications.position,'#FFF','warning','5000'); } if(email.val() !== '' && username.val() !== '' && password.val() !== ''){ organizrAPI('POST','api/?v1/plex/join',{username:username.val(), email:email.val(), password:password.val()}).success(function(data) { var response = JSON.parse(data); if(response.data === true){ $('.invite-step-3-plex-no').toggleClass('hidden'); $('.invite-step-3-plex-yes').toggleClass('hidden'); message('Invite Function',' User Created',activeInfo.settings.notifications.position,'#FFF','success','5000'); $('#inviteUsernameInvite').val(username.val()); hasPlexUsername(); }else{ message('Invite Error',' '+response.data,activeInfo.settings.notifications.position,'#FFF','warning','5000'); } }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); }); } } function inviteHasAccount(type,value){ switch (type) { case 'plex': if(value){ $('.invite-step-2').toggleClass('hidden'); $('.invite-step-3-plex-yes').toggleClass('hidden'); }else{ $('.invite-step-2').toggleClass('hidden'); $('.invite-step-3-plex-no').toggleClass('hidden'); } break; default: alert(type+' is not set up yet'); } } function hasPlexUsername(){ var code = $('#inviteCodeInput').val().toUpperCase(); var username = $('#inviteUsernameInvite'); if(username.val() == ''){ username.focus(); message('Invite Error',' Please Enter Username',activeInfo.settings.notifications.position,'#FFF','warning','5000'); }else{ var post = { plugin:'Invites/codes', action:'use', code:code, usedby:username.val() }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); if(response.data === true){ $('.invite-step-3-plex-yes').toggleClass('hidden'); $('.invite-step-4-plex-accept').toggleClass('hidden'); if(local('get', 'invite')){ local('remove', 'invite'); } }else{ message('Invite Error',' Code Incorrect',activeInfo.settings.notifications.position,'#FFF','warning','5000'); } ajaxloader();; }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); ajaxloader(); }); } } function verifyInvite(){ var code = $('#inviteCodeInput').val().toUpperCase(); var post = { plugin:'Invites/codes', action:'check', code:code }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); if(response.data === true){ $('.invite-step-1').toggleClass('hidden'); $('.invite-step-2').toggleClass('hidden'); }else{ message('Invite Error',' Code Incorrect',activeInfo.settings.notifications.position,'#FFF','warning','5000'); } if(local('get', 'invite')){ local('remove', 'invite'); } ajaxloader();; }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); ajaxloader(); }); } function getInvite(invite=null){ if(invite){ local('set','invite',invite); } if($.urlParam('invite') !== null){ local('set','invite',$.urlParam('invite')); } if(local('get', 'invite')){ //show error page $('.inviteModal').trigger('click'); $('#inviteCodeInput').val(local('get', 'invite')); window.history.pushState({}, document.title, "/" ); local('remove', 'invite'); } } function createNewInvite(){ var username = $('#new-invite-form-inputUsername'); var email = $('#new-invite-form-inputEmail'); if(username.val() == ''){ username.focus(); message('Invite Error',' Please Enter Username',activeInfo.settings.notifications.position,'#FFF','warning','5000'); }else if(email.val() == ''){ email.focus(); message('Invite Error',' Please Enter Email',activeInfo.settings.notifications.position,'#FFF','warning','5000'); } if(email.val() !== '' && username.val() !== ''){ var post = { plugin:'Invites/codes', action:'create', code:createRandomString(6).toUpperCase(), email:email.val(), username:username.val(), }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); $.magnificPopup.close(); ajaxloader(); message('Invite',' Invite Created',activeInfo.settings.notifications.position,'#FFF','success','5000'); }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); ajaxloader(); message('Invite Error',' An Error Occured',activeInfo.settings.notifications.position,'#FFF','error','5000'); }); } } function deleteInvite(id){ var post = { plugin:'Invites/codes', action:'delete', id:id, }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); $('#inviteItem-'+id).remove(); //$.magnificPopup.close(); ajaxloader(); message('Invite',' Invite Deleted',activeInfo.settings.notifications.position,'#FFF','success','5000'); }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); ajaxloader(); message('Invite Error',' An Error Occured',activeInfo.settings.notifications.position,'#FFF','error','5000'); }); } // EVENTS and LISTENERS function buildInvites(array){ if(array.length == 0){ return '

    No Invites

    '; } var invites = ''; $.each(array, function(i,v) { v.dateused = (v.dateused) ? v.dateused : '-'; v.usedby = (v.usedby) ? v.usedby : '-'; v.ip = (v.ip) ? v.ip : '-'; invites += ` `+v.id+` `+v.username+` `+v.email+` `+v.code+` `+v.date+` `+v.dateused+` `+v.usedby+` `+v.ip+` `+v.valid+` `; }); return invites; } $(document).on('click', '.inviteModal', function() { var htmlDOM = ''; if (activeInfo.user.loggedin === true && activeInfo.user.groupID <= 1) { var post = { plugin:'Invites/codes', action:'get', }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); var htmlDOM = ''; htmlDOM = `
    Manage Invites
    `+buildInvites(response.data)+`
    # USERNAME EMAIL INVITE CODE DATE SENT DATE USED USED BY IP ADDRESS VALID DELETE
    `; $('.invite-div').html(htmlDOM); }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); }); ajaxloader(); }else if (activeInfo.user.loggedin === false){ htmlDOM = `
    Use Invite Code

    `; $('.invite-div').html(htmlDOM); } }); // CHANGE CUSTOMIZE Options $(document).on('change asColorPicker::close', '#INVITES-settings-page1 :input', function(e) { var input = $(this); switch ($(this).attr('type')) { case 'switch': case 'checkbox': var value = $(this).prop("checked") ? true : false; break; default: var value = $(this).val().toString(); } var post = { api:'api/?v1/update/config', name:$(this).attr("name"), type:$(this).attr("data-type"), value:value, messageTitle:'', messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(), error:'Organizr Function: API Connection Failed' }; var callbacks = $.Callbacks(); //callbacks.add( buildCustomizeAppearance ); settingsAPI(post,callbacks); //disable button then renable $('#INVITES-settings-page :input').prop('disabled', 'true'); setTimeout( function(){ $('#INVITES-settings-page :input').prop('disabled', null); input.emulateTab(); }, 2000 ); }); $(document).on('click', '#INVITES-settings-button', function() { var post = { plugin:'Invites/settings/get', // used for switch case in your API call }; ajaxloader(".content-wrap","in"); organizrAPI('POST','api/?v1/plugin',post).success(function(data) { var response = JSON.parse(data); $('#INVITES-settings-items').html(buildFormGroup(response.data)); $(".invite-select").select2(); $('.selectpicker').selectpicker(); }).fail(function(xhr) { console.error("Organizr Function: API Connection Failed"); }); ajaxloader(); });