ÿØÿà JFIF    ÿÛ „  ( %!1"%)+...383-7(-.+  -%%--------+------------/----------------------------ÿÀ  ¶" ÿÄ     ÿÄ @    !1AQaq‘¡"±ÁÑð2’BRráS‚ñ3b¢CT²Ò #cÿÄ    ÿÄ '   1!AQ2a"‘±#ÿÚ   ? ò(/p‘—–¢·,M|¯G»R£üešT. ôŸEoCFñ‡ 4ÔkåóxR|µÁ¨ÓDà!Ç´µ˜‡p ÍQ‹§!þž^õWsŒy  åÁ§$á«%ºq˜™JyyË0y«^Ϗ -3ÃÏËÈ£Æ\P’ä„s&•‹Üs üô'àWt¹pñCp$bÚF`·7.^)¾!)ÒÙ˜–ÅÏš^h¾ø³·ìe±ŒaeÖ—Í,e=B}Jéߦ$$½—šÙÜCC¯¶è8β–Åkèwx LÉngT±æ¹£Ócœ¿Í/©Éÿ ‰ÚCÒ­mq;Tt¶–}0"zÖPcd1š­¤tˆ„ÐÓâqú[™öUCŠ2޿د­É(¸ßúçšmW,Ò ºf‹Ån™ÄLêÁ8üÁkÁ€L¥ÍuJ1œôrÂSŒÓöt!7EUíïb)AËi¬â-ÙHk8òÁiXYwÅ)O^"ÇØriÛô{»wRUKÙÏÚlÓ¬€‚’שT ] ªb—ÊîKC^×M“xùäñz¬zJ× {4[¹M'IÆeH1LCWÕ]œûº WDæà°OÅ‚¹c²ÞuA–rL`HšpCez‡V’— Ž‚Ë„–ñ­'µR0ÕÖ=À:±G»C\nÆÉ5*¢ †3šhQ4ýÒi$Õ1"Ü]¢p-q3zcQ$ªö¨¥æf›‘»´ÝÚHá„e²JÇ–iÊ:·à¬Øc5Åk»Laª*wi [0Ówk ¦a¦0Õ²ÅÅ‚T¸’³q:Æ<¹ú Ò˜Æ}2VE•Ѐp¡Ô3Úº …h³^LJºçì¥Ánó|˜ÖˆÎˆ+« ¦dø‘Mº–d\ªDðÛ„Ì×LÝ——Ð9Ç|•FèçVm™¨€™3õS–9Äå¢<̉Ìm¢±`·º˜&Z²ž Ë®D«¶»6™‰©­HÈ Àá«h­i³04æ’hxœi3ï¨(ÓL·†‹¶ËpŒ ƒÜÒ? :õdsÀ –3æÓ·Üjâ¬9—]8n¼&]I F£¼…ì–—Œ0v°LǐÅfÛ2TÖ’aµ˜N@ÖBSÏ^à´4-±°b×nÈÈœÆD=KdŒø…ÄÈK,›ÖR§fjü$^ÔÎ!„6^ s:Üun\ôkCÞò÷<—Lúl Í›G¹ÀPá¼Nc¡šÒ…ÙWͳœ±vÊáЄ×9‹P‰cEØ‘™›µŸP<×g1 º©Ø¬wiÁ^l5× I/';Ë+´Z‡ÓÄFÕp[Èð’ HÄ ó 9¬Dl4“é±Ï”V=^Hð;žLädÉa‚°Ë,#/Ž~²BÔÛ QãñQtIeórVB,ÏÂf‹4#Μc‹É3ZIÖ Œ¢¥·üxa‡Ãçè„jŠ[5 Ä!U?,3žÎ×…ðdÓ÷háŠA‰ìÄ4÷ÃÜZÃE{‰®+W\ZÍE[‰»µk»MÝ­`¢©†˜ÃV‹-f¢¡†¢a«eŠ%«Y¨©q%jâd,Ôq`) ¤¦…šˆ ¦E>0Ùb²t–Ÿ  ÷jsςҒKÈcø(é›;k(’#ôŒQ ™C> õ³M9óºÆµ¤çâ;uÀ)5>RÔ¸fÓ~Ȧ—’-$fe«"FâUˆÊwµPÏu w+"åÉó¨6s™Û9(À¨ù©hE°½†n`m~“@©›p!Vkhµ Á1šbEqqÊ@ºèl›2 –Yã%‘‚hÛ{a¶‡ÅÞM²¬çL34®Çl]®‹ŽØŒm'RÜe35æöˆ­Á­ cP9šeÁköo´L³Ì=p8]”‡B¶,šº|ɏdzXˆØk*ÇÚ{#ñ‰pã(€¶‡9ý'šÜ³½¯kƒ†Â’ëSOƒ•Å®H6+a¢µˆ‹Y¨b˜b+XˆÖ!°u!¢"µˆˆn2ˆ Å0Ä`Å Ô®c(ÓÜGº•Ä»Œ âWî%q.áÐÄ÷î%umÍ£+ÜQ,Vn¦-GphU¸¢X­&,Gt ·K¢ÅÅ·¥RÄÊÉbKn N­R2g$VµÕó Qr#–ÓZUÏð0ÎtÙÀœz ëöo“Îk¯n„T°"SÞ+³/…€½"ižãO%Í%&Δâ‘ËØ´IˆÓ°Ë‰ÞM3.™yçÁzit›`4C`k¢¼á!álÄï sÂ[×!¤l¾æo"ƒIÔ'@ªu)3›ô®“@Z à¾] üœ'‡4¸PÞkÁ-qÄH‰ÓÍBd´ÿ —¹°ÄA&ÊUC„öz‚‚RæŠtf¬>˜ÑidšEçÑL÷áý¡V±h§­c¿¥¨ƒ@g¼…Ýö^ÞËc.ž„æ“I[ ª+·zÐÒÚ,½Ð»¶€C›7jk$๖€Ž¾ÅÙpp¶ÍþéΤ ½ØÎŒq ñpæžÅ¥#Øâ49ÃÂK^MYV“,¶Éz_òæ:…;Õ«¦I3âJ£¤û5$7Èxün\â]Êe¯(Ÿ&Ž‹¶2<6Ćf× æ¢ƱqWı[(ÙÂŽç‚T7¨@ÈÉÍß‚ïÙ"&3TYlGށ†)†#5ŠA©^T2ÆÁ†)©†©†¤yGXÁ†©"†)©¼ÅV WS†#©]R–r‹q5ÕbâWþBh¯u+ªÅÄ×ü„nÑ^êkªÁj‰jeœWˆÕÕ`µDµ2Ì+Ä µDµµ5Ô{¤Þ0RF’H÷AÛ<ÊÁ§ ƈæ0Ñ£ê4 öÚµ[¬/1²€â<-¬šö²r×0o×w ´xÐÒË„ g01¬„åEM蛇Ã\6µE›‘fÙO k÷CºnÓ1`iîÒ² áÂ!ÑLÄÿ ³¬\õ*:M=Ç»c‹2[‰ØsÕLò\ŒK L^™üÄN\¶#» Ç\……ßïIœÉ$¸ÎñÍ®ÔHÇ Ûí/´>Li”„†g^$ 7NÍÑÑ2M2ªNg=k½Ð}Ÿl6‡ —JWˆ”ÞéT·+µ¦üÂFè¢Vs6ýÆ4»2+2IÝ9ô9®ÇGÙÇ1+Ä8;*Õ§ž½D*îÑWÚçá3Ma¤·ˆ¥t}š²Ü…Q+Æüµ8HíS”üxGéÁˆ¦Ël„éÈ 5 µÄƒ6äÜ(kIš¯S†fÖ&¸®×v|Äyˆ*禌Éù@7-®Ä[]ÎÖ¿ê`º…=:…žJVnݳvðÖKE¼‚ »mà ÷f®:Ë ™–4rð¡4` ܹçž~‹C=œ…¾Ïj|VDtK.ƒ"9 Ï ­–éXá³6WÒïIL-Ї Ç home/smkb8269/public_html/wp-admin/js/comment.js000064400000005547152266336550015443 0ustar00/** * @output wp-admin/js/comment.js */ /* global postboxes */ /** * Binds to the document ready event. * * @since 2.5.0 * * @param {jQuery} $ The jQuery object. */ jQuery( function($) { postboxes.add_postbox_toggles('comment'); var $timestampdiv = $('#timestampdiv'), $timestamp = $( '#timestamp' ), stamp = $timestamp.html(), $timestampwrap = $timestampdiv.find( '.timestamp-wrap' ), $edittimestamp = $timestampdiv.siblings( 'a.edit-timestamp' ); /** * Adds event that opens the time stamp form if the form is hidden. * * @listens $edittimestamp:click * * @param {Event} event The event object. * @return {void} */ $edittimestamp.on( 'click', function( event ) { if ( $timestampdiv.is( ':hidden' ) ) { // Slide down the form and set focus on the first field. $timestampdiv.slideDown( 'fast', function() { $( 'input, select', $timestampwrap ).first().trigger( 'focus' ); } ); $(this).hide(); } event.preventDefault(); }); /** * Resets the time stamp values when the cancel button is clicked. * * @listens .cancel-timestamp:click * * @param {Event} event The event object. * @return {void} */ $timestampdiv.find('.cancel-timestamp').on( 'click', function( event ) { // Move focus back to the Edit link. $edittimestamp.show().trigger( 'focus' ); $timestampdiv.slideUp( 'fast' ); $('#mm').val($('#hidden_mm').val()); $('#jj').val($('#hidden_jj').val()); $('#aa').val($('#hidden_aa').val()); $('#hh').val($('#hidden_hh').val()); $('#mn').val($('#hidden_mn').val()); $timestamp.html( stamp ); event.preventDefault(); }); /** * Sets the time stamp values when the ok button is clicked. * * @listens .save-timestamp:click * * @param {Event} event The event object. * @return {void} */ $timestampdiv.find('.save-timestamp').on( 'click', function( event ) { // Crazyhorse branch - multiple OK cancels. var aa = $('#aa').val(), mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val(), newD = new Date( aa, mm - 1, jj, hh, mn ); event.preventDefault(); if ( newD.getFullYear() != aa || (1 + newD.getMonth()) != mm || newD.getDate() != jj || newD.getMinutes() != mn ) { $timestampwrap.addClass( 'form-invalid' ); return; } else { $timestampwrap.removeClass( 'form-invalid' ); } $timestamp.html( wp.i18n.__( 'Submitted on:' ) + ' ' + /* translators: 1: Month, 2: Day, 3: Year, 4: Hour, 5: Minute. */ wp.i18n.__( '%1$s %2$s, %3$s at %4$s:%5$s' ) .replace( '%1$s', $( 'option[value="' + mm + '"]', '#mm' ).attr( 'data-text' ) ) .replace( '%2$s', parseInt( jj, 10 ) ) .replace( '%3$s', aa ) .replace( '%4$s', ( '00' + hh ).slice( -2 ) ) .replace( '%5$s', ( '00' + mn ).slice( -2 ) ) + ' ' ); // Move focus back to the Edit link. $edittimestamp.show().trigger( 'focus' ); $timestampdiv.slideUp( 'fast' ); }); }); home/smkb8269/public_html/lms.smk-almanshuriyah.sch.id/comment/comment.js000064400000047770152266540570022356 0ustar00// This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . /** * Comment Helper * @author Dongsheng Cai */ M.core_comment = { /** * Initialize commenting system */ init: function(Y, options) { var CommentHelper = function(args) { CommentHelper.superclass.constructor.apply(this, arguments); }; CommentHelper.NAME = "COMMENT"; CommentHelper.ATTRS = { options: {}, lang: {} }; Y.extend(CommentHelper, Y.Base, { api: M.cfg.wwwroot+'/comment/comment_ajax.php', initializer: function(args) { var scope = this; this.client_id = args.client_id; this.itemid = args.itemid; this.commentarea = args.commentarea; this.component = args.component; this.courseid = args.courseid; this.contextid = args.contextid; this.autostart = (args.autostart); // Fail fast if the comments element cannot be found, such as in embedded-type views where blocks may be loaded // then discarded. if (!Y.one('#comment-ctrl-'+this.client_id)) { return; } // expand comments? if (this.autostart) { this.view(args.page); } // load comments var handle = Y.one('#comment-link-'+this.client_id); // hide toggle link if (handle) { if (args.notoggle) { handle.setStyle('display', 'none'); } handle.on('click', function(e) { e.preventDefault(); this.view(0); return false; }, this); // Also handle space/enter key. handle.on('key', function(e) { e.preventDefault(); this.view(0); return false; }, '13,32', this); } scope.toggle_textarea(false); }, post: function() { var container = Y.one('#comment-list-'+this.client_id); var ta = Y.one('#dlg-content-'+this.client_id); var scope = this; var value = ta.get('value'); if (value && value != M.util.get_string('addcomment', 'moodle')) { ta.set('disabled', true); var spinner = M.util.add_spinner(Y, container); spinner.show(); var params = {'content': value}; this.request({ action: 'add', scope: scope, params: params, callback: async function(id, obj, args) { var scope = args.scope; var cid = scope.client_id; var ta = Y.one('#dlg-content-'+cid); ta.set('value', ''); ta.set('disabled', false); spinner.remove(); scope.toggle_textarea(false); var container = Y.one('#comment-list-'+cid); var result = await scope.render([obj], true); var newcomment = Y.Node.create(result.html); container.appendChild(newcomment); var ids = result.ids; var linkTextCount = Y.one('#comment-link-text-' + cid + ' .comment-link-count'); if (linkTextCount) { linkTextCount.set('innerHTML', obj.count); } for(var i in ids) { var attributes = { color: { to: '#06e' }, backgroundColor: { to: '#FFE390' } }; var anim = new Y.YUI2.util.ColorAnim(ids[i], attributes); anim.animate(); } scope.register_pagination(); scope.register_delete_buttons(); } }, true); } else { var attributes = { backgroundColor: { from: '#FFE390', to:'#FFFFFF' } }; var anim = new Y.YUI2.util.ColorAnim('dlg-content-'+cid, attributes); anim.animate(); } }, request: function(args, noloading) { var params = {}; var scope = this; if (args['scope']) { scope = args['scope']; } //params['page'] = args.page?args.page:''; // the form element only accept certain file types params['sesskey'] = M.cfg.sesskey; params['action'] = args.action?args.action:''; params['client_id'] = this.client_id; params['itemid'] = this.itemid; params['area'] = this.commentarea; params['courseid'] = this.courseid; params['contextid'] = this.contextid; params['component'] = this.component; if (args['params']) { for (i in args['params']) { params[i] = args['params'][i]; } } var cfg = { method: 'POST', on: { complete: function(id,o,p) { if (!o) { alert('IO FATAL'); return false; } var data = Y.JSON.parse(o.responseText); if (data.error) { if (data.error == 'require_login') { args.callback(id,data,p); return true; } alert(data.error); return false; } else { args.callback(id,data,p); return true; } } }, arguments: { scope: scope }, headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, data: build_querystring(params) }; if (args.form) { cfg.form = args.form; } Y.io(this.api, cfg); if (!noloading) { this.wait(); } }, render: async function(list, newcmt) { var ret = {}; ret.ids = []; var template = Y.one('#cmt-tmpl'); var html = ''; for(var i in list) { var htmlid = 'comment-'+list[i].id+'-'+this.client_id; var val = template.get('innerHTML'); if (list[i].profileurl) { val = val.replace('___name___', ''+list[i].fullname+''); } else { val = val.replace('___name___', list[i].fullname); } if (list[i].delete || newcmt) { list[i].clientid = this.client_id; list[i].content += await this.renderDeleteIcon(list[i]); } val = val.replace('___time___', list[i].time); val = val.replace('___picture___', list[i].avatar); val = val.replace('___content___', list[i].content); val = '
  • '+val+'
  • '; ret.ids.push(htmlid); html = (val+html); } ret.html = html; return ret; }, renderDeleteIcon: async function(list) { return new Promise(function(resolve) { require(['core/templates', 'core/str'], (Templates, Str) => { return Str.get_string('deletecommentbyon', 'moodle', { user: list.fullname, time: list.time }).then(function(deleteStr) { return Templates.renderPix('t/delete', 'core', deleteStr).then(function(deleteIcon) { var deleteDiv = document.createElement('div'); deleteDiv.className = 'comment-delete'; var deleteLink = document.createElement('a'); deleteLink.href = '#'; deleteLink.role = 'button'; deleteLink.title = deleteStr; deleteLink.id = `comment-delete-${list.clientid}-${list.id}`; deleteLink.innerHTML = deleteIcon; deleteDiv.appendChild(deleteLink); resolve(deleteDiv.outerHTML); return true; }); }); }); }); }, load: function(page) { var scope = this; var container = Y.one('#comment-ctrl-'+this.client_id); var params = { 'action': 'get', 'page': page }; this.request({ scope: scope, params: params, callback: async function(id, ret, args) { var linkTextCount = Y.one('#comment-link-text-' + scope.client_id + ' .comment-link-count'); if (linkTextCount) { linkTextCount.set('innerHTML', ret.count); } var container = Y.one('#comment-list-'+scope.client_id); var pagination = Y.one('#comment-pagination-'+scope.client_id); if (ret.pagination) { pagination.set('innerHTML', ret.pagination); } else { //empty paging bar pagination.set('innerHTML', ''); } if (ret.error == 'require_login') { var result = {}; result.html = M.util.get_string('commentsrequirelogin', 'moodle'); } else { var result = await scope.render(ret.list); } container.set('innerHTML', result.html); var img = Y.one('#comment-img-'+scope.client_id); if (img) { img.set('src', M.util.image_url('t/expanded', 'core')); } args.scope.register_pagination(); args.scope.register_delete_buttons(); } }); }, dodelete: function(id) { // note: delete is a reserved word in javascript, chrome and safary do not like it at all here! var scope = this, cid = scope.client_id, params = {'commentid': id}; function remove_dom(type, anim, cmt) { cmt.remove(); var linkTextCount = Y.one('#comment-link-text-' + cid + ' .comment-link-count'), comments = Y.all('#comment-list-' + cid + ' li'); if (linkTextCount) { linkTextCount.set('innerHTML', comments.size()); } } this.request({ action: 'delete', scope: scope, params: params, callback: function(id, resp, args) { var htmlid= 'comment-'+resp.commentid+'-'+resp.client_id; var attributes = { width:{to:0}, height:{to:0} }; var cmt = Y.one('#'+htmlid); cmt.setStyle('overflow', 'hidden'); var anim = new Y.YUI2.util.Anim(htmlid, attributes, 1, Y.YUI2.util.Easing.easeOut); anim.onComplete.subscribe(remove_dom, cmt, this); anim.animate(); } }, true); }, register_actions: function() { // add new comment var action_btn = Y.one('#comment-action-post-'+this.client_id); if (action_btn) { action_btn.on('click', function(e) { e.preventDefault(); this.post(); return false; }, this); } // cancel comment box var cancel = Y.one('#comment-action-cancel-'+this.client_id); if (cancel) { cancel.on('click', function(e) { e.preventDefault(); this.view(0); return false; }, this); } }, register_delete_buttons: function() { var scope = this; // page buttons Y.all('div.comment-delete a').each( function(node, id) { var theid = node.get('id'); var parseid = new RegExp("comment-delete-"+scope.client_id+"-(\\d+)", "i"); var commentid = theid.match(parseid); if (!commentid) { return; } if (commentid[1]) { Y.Event.purgeElement('#'+theid, false, 'click'); } node.on('click', function(e) { e.preventDefault(); if (commentid[1]) { scope.dodelete(commentid[1]); } }); // Also handle space/enter key. node.on('key', function(e) { e.preventDefault(); if (commentid[1]) { scope.dodelete(commentid[1]); } }, '13,32'); // 13 and 32 are the keycodes for space and enter. } ); }, register_pagination: function() { var scope = this; // page buttons Y.all('#comment-pagination-'+this.client_id+' a').each( function(node, id) { node.on('click', function(e, node) { e.preventDefault(); var id = node.get('id'); var re = new RegExp("comment-page-"+this.client_id+"-(\\d+)", "i"); var result = id.match(re); this.load(result[1]); }, scope, node); } ); }, view: function(page) { var commenttoggler = Y.one('#comment-link-' + this.client_id); var container = Y.one('#comment-ctrl-'+this.client_id); var ta = Y.one('#dlg-content-'+this.client_id); var img = Y.one('#comment-img-'+this.client_id); var d = container.getStyle('display'); if (d=='none'||d=='') { // show if (!this.autostart) { this.load(page); } else { this.register_delete_buttons(); this.register_pagination(); } container.setStyle('display', 'block'); if (img) { img.set('src', M.util.image_url('t/expanded', 'core')); } if (commenttoggler) { commenttoggler.setAttribute('aria-expanded', 'true'); } } else { // hide container.setStyle('display', 'none'); var collapsedimage = 't/collapsed'; // ltr mode if ( Y.one(document.body).hasClass('dir-rtl') ) { collapsedimage = 't/collapsed_rtl'; } if (img) { img.set('src', M.util.image_url(collapsedimage, 'core')); } if (ta) { ta.set('value',''); } if (commenttoggler) { commenttoggler.setAttribute('aria-expanded', 'false'); } } if (ta) { //toggle_textarea.apply(ta, [false]); //// reset textarea size ta.on('focus', function() { this.toggle_textarea(true); }, this); //ta.onkeypress = function() { //if (this.scrollHeight > this.clientHeight && !window.opera) //this.rows += 1; //} ta.on('blur', function() { this.toggle_textarea(false); }, this); } this.register_actions(); return false; }, toggle_textarea: function(focus) { var t = Y.one('#dlg-content-'+this.client_id); if (!t) { return false; } if (focus) { if (t.get('value') == M.util.get_string('addcomment', 'moodle')) { t.set('value', ''); t.setStyle('color', 'black'); } }else{ if (t.get('value') == '') { t.set('value', M.util.get_string('addcomment', 'moodle')); t.setStyle('color','grey'); t.set('rows', 2); } } }, wait: function() { var container = Y.one('#comment-list-'+this.client_id); container.set('innerHTML', ''); M.util.add_spinner(Y, container).show(); } }); new CommentHelper(options); } };