|
|
(۱۶ نسخهٔ میانی ویرایش شده توسط ۳ کاربر نشان داده نشد) |
خط ۱: |
خط ۱: |
| /** Collapsible tables *********************************************************
| | document.body.onload = addElement; |
| *
| |
| * Description: Allows tables to be collapsed, showing only the header. See
| |
| * [[Wikipedia:NavFrame]].
| |
| * Maintainers: [[User:R. Koot]]
| |
| */
| |
| var autoCollapse = 2;
| |
| var collapseCaption = "نهفتن";
| |
| var expandCaption = "نمایش";
| |
| var expandCaption_more = "ادامه مطلب";
| |
|
| |
|
| function collapseTable( tableIndex ) | | function addElement() { |
| { | | const newDiv = document.createElement("div"); |
| var Button = document.getElementById( "collapseButton" + tableIndex );
| | newDiv.className = "black-banner"; |
| var Table = document.getElementById( "collapsibleTable" + tableIndex );
| | newDiv.appendChild(newContent); |
| | | const currentDiv = document.getElementById("body"); |
| if ( !Table || !Button ) {
| | document.body.insertAfter(newDiv, currentDiv); |
| return false;
| |
| }
| |
| | |
| var Rows = Table.rows;
| |
| /**
| |
| * AMDEADMAN Edit for readmore collapse added if
| |
| */ | |
| if ($("#collapsibleTable" + tableIndex).hasClass('readmore') & Button.firstChild.data == collapseCaption ) {
| |
| for ( var i = 1; i < Rows.length; i++ ) {
| |
| Rows[i].style.display = "none";
| |
| }
| |
| Button.firstChild.data = expandCaption_more;
| |
| } else if ( Button.firstChild.data == collapseCaption ) {
| |
| for ( var i = 1; i < Rows.length; i++ ) {
| |
| Rows[i].style.display = "none";
| |
| }
| |
| Button.firstChild.data = expandCaption;
| |
| } else {
| |
| for ( var i = 1; i < Rows.length; i++ ) {
| |
| Rows[i].style.display = Rows[0].style.display;
| |
| }
| |
| Button.firstChild.data = collapseCaption;
| |
| }
| |
| }
| |
| | |
| function createCollapseButtons() {
| |
| var tableIndex = 0;
| |
| var NavigationBoxes = {};
| |
| var Tables = document.getElementsByTagName( 'table' );
| |
| var i;
| |
| | |
| function handleButtonLink( index, e ) {
| |
| window.collapseTable( index );
| |
| e.preventDefault();
| |
| }
| |
| | |
| for ( i = 0; i < Tables.length; i++ ) {
| |
| if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
| |
| | |
| /* only add button and increment count if there is a header row to work with */
| |
| var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
| |
| if ( !HeaderRow ) continue;
| |
| var Header = HeaderRow.getElementsByTagName( 'th' )[0];
| |
| if ( !Header ) continue;
| |
| | |
| NavigationBoxes[ tableIndex ] = Tables[i];
| |
| Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
| |
| | |
| var Button = document.createElement( 'span' );
| |
| var ButtonLink = document.createElement( 'a' );
| |
| var ButtonText = document.createTextNode( collapseCaption );
| |
| | |
| Button.className = 'collapseButton'; /* Styles are declared in Common.css */
| |
| | |
| ButtonLink.style.color = Header.style.color;
| |
| ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
| |
| ButtonLink.setAttribute( 'href', '#' );
| |
| $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
| |
| ButtonLink.appendChild( ButtonText );
| |
| | |
| Button.appendChild( document.createTextNode( '[' ) );
| |
| Button.appendChild( ButtonLink );
| |
| Button.appendChild( document.createTextNode( ']' ) );
| |
| /**
| |
| * AMDEADMAN Edit for readmore collapse
| |
| */
| |
| if($( Tables[i] ).hasClass( 'readmore' )){
| |
| $(Header).html($(Header).text()).append(Button);
| |
| } else {
| |
| Header.insertBefore( Button, Header.firstChild );
| |
| }
| |
| tableIndex++;
| |
| }
| |
| }
| |
| | |
| for ( i = 0; i < tableIndex; i++ ) {
| |
| if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
| |
| window.collapseTable( i );
| |
| }
| |
| else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
| |
| var element = NavigationBoxes[i];
| |
| while ((element = element.parentNode)) {
| |
| if ( $( element ).hasClass( 'outercollapse' ) ) {
| |
| window.collapseTable ( i );
| |
| break;
| |
| }
| |
| }
| |
| }
| |
| }
| |
| }
| |
| | |
| $(createCollapseButtons);
| |
| | |
| if (new mw.Uri().query.redlink === "1" && mw.config.get('wgAction') === "edit" && mw.config.get('wgNamespaceNumber') === 0) {
| |
| function fixarticletitle(instr) { // a simple text cleaner, can improved by gadget-extraeditbutton codes later | |
| for (var i = 0; i < 10; i++) {
| |
| instr = instr.replace(new RegExp("(" + "٠١٢٣٤٥٦٧٨٩"[i] + "|" + i + ")", "g"), "۰۱۲۳۴۵۶۷۸۹"[i]); // arabic and latin numbers
| |
| }
| |
| return instr
| |
| .replace(/[ىي]/g, "ی")
| |
| .replace(/ك/g, "ک")
| |
| .replace(/:(?=[^\s])/g, ": ")
| |
| .replace(/([^\s])\(/, "$1 (") // look behind is not supported by javascript
| |
| .replace(/([\.،«»\:؛\sزرذدواژؤإأآءةa-zA-Z])\u200c/g, "$1")
| |
| .replace(/\u200c /g, " ")
| |
| .replace(/(\u200c*$|^\u200c*)/g, "")
| |
| .replace(/[\u200dـ]/g, "")
| |
| .replace(/\(\s(.*?)\s\)/g, "($1)")
| |
| .replace(/(ۀ|هٓ)/g, "هٔ")
| |
| .replace(/ابهام ?زدایی/g, "ابهامزدایی");
| |
| } | |
| fixedtitle = fixarticletitle(mw.config.get('wgTitle'));
| |
| if (fixedtitle !== mw.config.get('wgTitle')) {
| |
| window.location.href = window.location.href.replace(
| |
| encodeURI(mw.config.get('wgTitle').replace(/\s/g, "_")),
| |
| encodeURI(fixedtitle.replace(/\s/g, "_"))
| |
| ) + "&redirected=1";
| |
| }
| |
| } | | } |