PageSourceSearch

https://auroville.org.in/cache/1790235173/default/elgg/Ajax.mjs

js auroville.org.in collected 2026-09-24 10:01:10 UTC 6,063 bytes, 35 lines download raw bytes

1import 'jquery';import elgg from 'elgg';import spinner from 'elgg/spinner';import system_messages from 'elgg/system_messages';import security from 'elgg/security';import i18n from 'elgg/i18n';import hooks from 'elgg/hooks';var site_url=elgg.get_site_url(),action_base=site_url+'action/',fragment_pattern=/#.*$/,query_pattern=/\?.*$/,leading_slash_pattern=/^\//,slashes_pattern=/(^\/|\/$)/g;function Ajax(use_spinner){use_spinner=(use_spinner==null)?!0:!!use_spinner;var that=this;var spinner_starts=0;function fetch(options,hook_type){var orig_options,params,jqXHR,metadata_extracted=!1,error_displayed=!1;function extract_metadata(data,status_code){status_code=status_code||200;if(!metadata_extracted){const m=data._elgg_msgs;if(m&&m.error){data.error=m.error}
2if(data.error&&options.showErrorMessages){system_messages.error(data.error);error_displayed=!0}
3if(data.error||status_code!==200){data.status=-1}else{data.status=0}
4m&&m.success&&options.showSuccessMessages&&system_messages.success(m.success);delete data._elgg_msgs;const deps=data._elgg_deps;if(deps&&deps.js){deps.js.forEach((dep)=>import(dep))}
5if(deps&&deps.css){deps.css.forEach(function(dep){if($('link[rel="stylesheet"][data-name="'+dep.name+'"]').length){return}
6let link=document.createElement('link');link.type='text/css';link.rel='stylesheet';link.href=dep.href;link.setAttribute('data-name',dep.name);if(dep.integrity){link.integrity=dep.integrity;link.crossorigin='anonymous'}
7document.head.appendChild(link)})}
8delete data._elgg_deps;metadata_extracted=!0}}
9that._fetch_args={options:options,hook_type:hook_type};hook_type=hook_type||'';if(!$.isPlainObject(options)){throw new Error('options must be a plain object with key "url"')}
10if(!options.url&&hook_type!=='path:'){throw new Error('options must be a plain object with key "url"')}
11if(options.data===undefined){options.data={}}
12if(options.showSuccessMessages===undefined){options.showSuccessMessages=!0}
13if(options.showErrorMessages===undefined){options.showErrorMessages=!0}
14if($.isPlainObject(options.data)){options.data=options.data||{}}else if(options.data instanceof FormData){options.processData=!1;options.contentType=!1}else{if(typeof options.data!=='string'){throw new Error('if defined, options.data must be a plain object or string')}}
15options.dataType='json';orig_options=$.extend({},options);params={options:options};if(hook_type&&typeof options.data!=='string'){options.data=hooks.trigger(Ajax.REQUEST_DATA_HOOK,hook_type,params,options.data)}
16if(!options.method){options.method='GET';if(options.data&&!$.isEmptyObject(options.data)){options.method='POST'}}
17if(use_spinner){options.beforeSend=function(){orig_options.beforeSend&&orig_options.beforeSend.apply(null,arguments);spinner_starts++;spinner.start()};options.complete=function(){spinner_starts--;if(spinner_starts<1){spinner.stop()}
18orig_options.complete&&orig_options.complete.apply(null,arguments)}}
19var custom_error=function(){};if(options.error){custom_error=options.error}
20options.error=function(jqXHR,textStatus,errorThrown){if(!jqXHR.getAllResponseHeaders()){custom_error(jqXHR,textStatus,errorThrown);return}
21try{var data=$.parseJSON(jqXHR.responseText);if($.isPlainObject(data)){extract_metadata(data,jqXHR.status)}}catch(e){if(window.console){console.warn(e.message)}}
22if(!error_displayed&&options.showErrorMessages){system_messages.error(i18n.echo('ajax:error'))}
23custom_error(jqXHR,textStatus,errorThrown)};options.dataFilter=function(data,type){if(type!=='json'){return data}
24data=$.parseJSON(data);extract_metadata(data,200);var params={options:orig_options};if(hook_type){data=hooks.trigger(Ajax.RESPONSE_DATA_HOOK,hook_type,params,data)}
25jqXHR.AjaxData=data;if(data.value!==undefined){return JSON.stringify(data.value)}
26return JSON.stringify(data)};options.url=elgg.normalize_url(options.url);options.headers={'X-Elgg-Ajax-API':'2'};that._ajax_options=options;jqXHR=$.ajax(options);return jqXHR}
27this.path=function(path,options){elgg.assertTypeOf('string',path);if(path.indexOf(site_url)===0){path=path.substring(site_url.length)}
28path=path.replace(fragment_pattern,'');assertNotUrl(path);options=options||{};options.url=path;path=path.replace(query_pattern,'').replace(slashes_pattern,'');return fetch(options,'path:'+path)};this.view=function(view,options){elgg.assertTypeOf('string',view);if(view===''){throw new Error('view cannot be empty')}
29assertNotUrl(view);options=options||{};options.url='ajax/view/'+view;options.method=options.method||'GET';view=view.replace(query_pattern,'').replace(slashes_pattern,'');return fetch(options,'view:'+view)};this.form=function(action,options){elgg.assertTypeOf('string',action);if(action===''){throw new Error('action cannot be empty')}
30action=action.replace(leading_slash_pattern,'').replace(fragment_pattern,'');assertNotUrl(action);options=options||{};options.url='ajax/form/'+action;options.method=options.method||'GET';action=action.replace(query_pattern,'').replace(slashes_pattern,'');return fetch(options,'form:'+action)};this.action=function(action,options){elgg.assertTypeOf('string',action);if(action===''){throw new Error('action cannot be empty')}
31if(action.indexOf(action_base)===0){action=action.substring(action_base.length)}
32action=action.replace(leading_slash_pattern,'').replace(fragment_pattern,'');assertNotUrl(action);options=options||{};options.data=options.data||{};var m=action.match(/\?(.+)$/);if(m&&/(^|&)__elgg_ts=/.test(m[1])){}else{options.data=security.addToken(options.data)}
33options.method=options.method||'POST';options.url='action/'+action;action=action.replace(query_pattern,'').replace(slashes_pattern,'');return fetch(options,'action:'+action)};this.objectify=function(el){$(el).trigger('elgg-ajax-objectify');return new FormData($(el)[0])};this.forward=function(destination){spinner_starts++;spinner.start();elgg.forward(destination)}}
34function assertNotUrl(arg){if(/^https?:/.test(arg)){throw new Error('elgg/Ajax cannot be used with external URLs')}}
35Ajax.REQUEST_DATA_HOOK='ajax_request_data';Ajax.RESPONSE_DATA_HOOK='ajax_response_data';export default Ajax

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.