{"version":3,"sources":["llms-metabox-students.js"],"names":["$","window","llms","MetaboxStudents","this","init","post","post_type","indexOf","$metabox","bind","self","on","e","preventDefault","remove_student","delete_student_enrollment","add_student","llmsStudentsSelect2","multiple","enroll_students","$el","update_student_enrollment","attr","$select","ids","val","$container","find","LLMS","Spinner","start","Ajax","call","data","action","student_ids","beforeSend","xhr","before","l10n","translate","abort","stop","success","r","trigger","admin_tables","reload","id","status","$table","closest","student_id","jQuery"],"mappings":"CAeA,SAAYA,GAEXC,OAAOC,KAAOD,OAAOC,MAAQ,GA0K7BD,OAAOC,KAAKC,gBAAkB,IAxKR,WASrBC,KAAKC,KAAO,WAINJ,OAAOC,KAAKI,KAAKC,YAAc,IAFtB,CAAE,SAAU,mBAEwBC,QAASP,OAAOC,KAAKI,KAAKC,aAE3EH,KAAKK,SAAWT,EAAG,uBAEnBI,KAAKM,SAcPN,KAAKM,KAAO,WAEX,IAAIC,EAAOP,KAEXA,KAAKK,SAASG,GAAI,QAAS,wBAAyB,SAAUC,GAC7DA,EAAEC,iBACFH,EAAKI,eAAgBf,EAAGI,SAGzBA,KAAKK,SAASG,GAAI,QAAS,2BAA4B,SAAUC,GAChEA,EAAEC,iBACFH,EAAKK,0BAA2BhB,EAAGI,SAGpCA,KAAKK,SAASG,GAAI,QAAS,qBAAsB,SAAUC,GAC1DA,EAAEC,iBACFH,EAAKM,YAAajB,EAAGI,SAGtBJ,EAAG,4BAA6BkB,oBAAqB,CAAEC,UAAU,IAEjEnB,EAAG,yBAA0BY,GAAI,QAAS,WACzCD,EAAKS,gBAAiBpB,EAAGI,UAY3BA,KAAKa,YAAc,SAAUI,GAC5BjB,KAAKkB,0BAA2BD,EAAIE,KAAM,WAAa,QAWxDnB,KAAKgB,gBAAkB,SAAUC,GAEhC,IACCG,EAAaxB,EAAG,4BAChByB,EAAaD,EAAQE,MACrBC,EAAavB,KAAKK,SAASmB,KAAM,kCAElCC,KAAKC,QAAQC,MAAOJ,GAEpB1B,OAAO4B,KAAKG,KAAKC,KAAM,CACtBC,KAAM,CACLC,OAAQ,uBACRC,YAAaX,GAEdY,WAAY,SAAUC,GACdb,IACNJ,EAAIkB,OAAQ,4BAA8BV,KAAKW,KAAKC,UAAW,qCAAwC,WACvGH,EAAII,QACJb,KAAKC,QAAQa,KAAMhB,KAGrBiB,QAAS,SAAUC,GAElBrB,EAAQE,IAAK,MAAOoB,QAAS,UAC7BjB,KAAKC,QAAQa,KAAMhB,GACnB1B,OAAOC,KAAK6C,aAAaC,OAAQhD,EAAG,0CAcvCI,KAAKW,eAAiB,SAAUM,GAC/BjB,KAAKkB,0BAA2BD,EAAIE,KAAM,WAAa,WAWxDnB,KAAKY,0BAA4B,SAAUK,GAC1CjB,KAAKkB,0BAA2BD,EAAIE,KAAM,WAAa,WAYxDnB,KAAKkB,0BAA4B,SAAU2B,EAAIC,GAE9C,IAAIC,EAAanD,EAAG,qCACnB2B,EAAawB,EAAOC,QAAS,oBAE9BvB,KAAKC,QAAQC,MAAOJ,GAEpB1B,OAAO4B,KAAKG,KAAKC,KAAM,CACtBC,KAAM,CACLC,OAAQ,4BACRe,OAAQA,EACRG,WAAYJ,GAEbL,QAAS,WAER3C,OAAOC,KAAK6C,aAAaC,OAAQG,OAOpC/C,KAAKC,QAvKP,CA8KKiD","file":"../../js/llms-metabox-students.min.js","sourcesContent":["/**\n * LifterLMS Students Metabox Functions\n *\n * @package LifterLMS/Scripts\n *\n * @since 3.0.0\n * @version 3.33.0\n */\n\n/**\n * LifterLMS Students Metabox Functions\n *\n * @since 3.0.0\n * @since 3.33.0 Added the logic to handle the Student's enrollment deletion.\n */\n( function( $, undefined ) {\n\n\twindow.llms = window.llms || {};\n\n\tvar MetaboxStudents = function() {\n\n\t\t/**\n\t\t * Initialize\n\t\t *\n\t\t * @return void\n\t\t * @since  3.0.0\n\t\t * @version  3.0.0\n\t\t */\n\t\tthis.init = function() {\n\n\t\t\tvar screens = [ 'course', 'llms_membership' ];\n\n\t\t\tif ( window.llms.post.post_type && -1 !== screens.indexOf( window.llms.post.post_type ) ) {\n\n\t\t\t\tthis.$metabox = $( '#lifterlms-students' );\n\n\t\t\t\tthis.bind();\n\t\t\t}\n\n\t\t};\n\n\t\t/**\n\t\t * Bind dom events\n\t\t *\n\t\t * @since 3.0.0\n\t\t * @since 3.4.0 Unknown.\n\t\t * @since 3.33.0 Added enrollment deletion handlers.\n\t\t *\n\t\t * @return void\n\t\t */\n\t\tthis.bind = function() {\n\n\t\t\tvar self = this;\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-remove-student', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.remove_student( $( this ) );\n\t\t\t} );\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-delete-enrollment', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.delete_student_enrollment( $( this ) );\n\t\t\t} );\n\n\t\t\tthis.$metabox.on( 'click', 'a.llms-add-student', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.add_student( $( this ) );\n\t\t\t} );\n\n\t\t\t$( '#llms-add-student-select' ).llmsStudentsSelect2( { multiple: true } );\n\n\t\t\t$( '#llms-enroll-students' ).on( 'click', function() {\n\t\t\t\tself.enroll_students( $( this ) );\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Add a Student\n\t\t *\n\t\t * @param    obj  $el  jQuery selector of the add button\n\t\t * @since    3.0.0\n\t\t * @version  3.0.0\n\t\t */\n\t\tthis.add_student = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'add' );\n\t\t};\n\n\t\t/**\n\t\t * Handle bulk enrollment via \"Enroll New Students\" area\n\t\t *\n\t\t * @param    obj   $el  jQuery selector for the triggering button\n\t\t * @return   void\n\t\t * @since    3.0.0\n\t\t * @version  3.4.0\n\t\t */\n\t\tthis.enroll_students = function( $el ) {\n\n\t\t\tvar self       = this,\n\t\t\t\t$select    = $( '#llms-add-student-select' ),\n\t\t\t\tids        = $select.val(),\n\t\t\t\t$container = this.$metabox.find( '.llms-metabox-students-add-new' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'bulk_enroll_students',\n\t\t\t\t\tstudent_ids: ids,\n\t\t\t\t},\n\t\t\t\tbeforeSend: function( xhr ) {\n\t\t\t\t\tif ( ! ids ) {\n\t\t\t\t\t\t$el.before( '<span class=\"llms-error\">' + LLMS.l10n.translate( 'Please select a student to enroll' ) + '</span>' );\n\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsuccess: function( r ) {\n\n\t\t\t\t\t$select.val( null ).trigger( 'change' );\n\t\t\t\t\tLLMS.Spinner.stop( $container );\n\t\t\t\t\twindow.llms.admin_tables.reload( $( '#llms-gb-table-student-management' ) );\n\n\t\t\t\t},\n\t\t\t} );\n\n\t\t};\n\n\t\t/**\n\t\t * Remove a Student\n\t\t *\n\t\t * @param    obj  $el  jQuery selector of the add button\n\t\t * @since    3.0.0\n\t\t * @version  3.0.0\n\t\t */\n\t\tthis.remove_student = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'remove' );\n\t\t};\n\n\t\t/**\n\t\t * Delete a Student's enrollment.\n\t\t *\n\t\t * @since 3.33.0\n\t\t *\n\t\t * @param  obj  $el  jQuery selector of the add button.\n\t\t * @return void\n\t\t */\n\t\tthis.delete_student_enrollment = function( $el ) {\n\t\t\tthis.update_student_enrollment( $el.attr( 'data-id' ), 'delete' );\n\t\t};\n\n\t\t/**\n\t\t * Execute AJAX call, add spinners, update html view\n\t\t *\n\t\t * @since 3.0.0\n\t\t *\n\t\t * @param int id Student id.\n\t\t * @param string status New status [add|remove|delete].\n\t\t * @return void\n\t\t */\n\t\tthis.update_student_enrollment = function( id, status ) {\n\n\t\t\tvar $table     = $( '#llms-gb-table-student-management' ),\n\t\t\t\t$container = $table.closest( '.llms-table-wrap' );\n\n\t\t\tLLMS.Spinner.start( $container );\n\n\t\t\twindow.LLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'update_student_enrollment',\n\t\t\t\t\tstatus: status,\n\t\t\t\t\tstudent_id: id,\n\t\t\t\t},\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t// spinner doesn't stop because the table reloader will stop it\n\t\t\t\t\twindow.llms.admin_tables.reload( $table );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t};\n\n\t\t// go\n\t\tthis.init();\n\n\t};\n\n\t// initialize the object\n\twindow.llms.MetaboxStudents = new MetaboxStudents();\n\n} )( jQuery );\n"],"sourceRoot":"../../js"}