mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var admin = (function () {
 | 
						|
 | 
						|
var exports = {};
 | 
						|
 | 
						|
exports.show_or_hide_menu_item = function () {
 | 
						|
    var item = $('.admin-menu-item').expectOne();
 | 
						|
    if (page_params.is_admin) {
 | 
						|
        item.find("span").text(i18n.t("Manage organization"));
 | 
						|
    } else {
 | 
						|
        item.find("span").text(i18n.t("Organization settings"));
 | 
						|
        $(".organization-box [data-name='organization-profile']")
 | 
						|
            .find("input, textarea, button, select").attr("disabled", true);
 | 
						|
        $(".organization-box [data-name='organization-settings']")
 | 
						|
            .find("input, textarea, button, select").attr("disabled", true);
 | 
						|
        $(".organization-box [data-name='organization-permissions']")
 | 
						|
            .find("input, textarea, button, select").attr("disabled", true);
 | 
						|
        $(".organization-box [data-name='auth-methods']")
 | 
						|
            .find("input, button, select, checked").attr("disabled", true);
 | 
						|
        $(".organization-box [data-name='default-streams-list']")
 | 
						|
            .find("input:not(.search), button, select").attr("disabled", true);
 | 
						|
        $(".organization-box [data-name='filter-settings']")
 | 
						|
            .find("input, button, select").attr("disabled", true);
 | 
						|
        $(".control-label-disabled").css("color", "#333333");
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
function _setup_page() {
 | 
						|
    var options = {
 | 
						|
        realm_name: page_params.realm_name,
 | 
						|
        realm_description: page_params.realm_description,
 | 
						|
        realm_restricted_to_domain: page_params.realm_restricted_to_domain,
 | 
						|
        realm_invite_required: page_params.realm_invite_required,
 | 
						|
        realm_invite_by_admins_only: page_params.realm_invite_by_admins_only,
 | 
						|
        realm_inline_image_preview: page_params.realm_inline_image_preview,
 | 
						|
        server_inline_image_preview: page_params.server_inline_image_preview,
 | 
						|
        realm_inline_url_embed_preview: page_params.realm_inline_url_embed_preview,
 | 
						|
        server_inline_url_embed_preview: page_params.server_inline_url_embed_preview,
 | 
						|
        realm_authentication_methods: page_params.realm_authentication_methods,
 | 
						|
        realm_create_stream_by_admins_only: page_params.realm_create_stream_by_admins_only,
 | 
						|
        realm_name_changes_disabled: page_params.realm_name_changes_disabled,
 | 
						|
        realm_email_changes_disabled: page_params.realm_email_changes_disabled,
 | 
						|
        realm_add_emoji_by_admins_only: page_params.realm_add_emoji_by_admins_only,
 | 
						|
        can_admin_emojis: page_params.is_admin || !page_params.realm_add_emoji_by_admins_only,
 | 
						|
        realm_allow_message_deleting: page_params.realm_allow_message_deleting,
 | 
						|
        realm_allow_message_editing: page_params.realm_allow_message_editing,
 | 
						|
        realm_message_content_edit_limit_minutes:
 | 
						|
            Math.ceil(page_params.realm_message_content_edit_limit_seconds / 60),
 | 
						|
        realm_message_retention_days: page_params.realm_message_retention_days,
 | 
						|
        realm_allow_edit_history: page_params.realm_allow_edit_history,
 | 
						|
        language_list: page_params.language_list,
 | 
						|
        realm_default_language: page_params.realm_default_language,
 | 
						|
        realm_waiting_period_threshold: page_params.realm_waiting_period_threshold,
 | 
						|
        realm_notifications_stream_id: page_params.realm_notifications_stream_id,
 | 
						|
        realm_signup_notifications_stream_id: page_params.realm_signup_notifications_stream_id,
 | 
						|
        is_admin: page_params.is_admin,
 | 
						|
        realm_icon_source: page_params.realm_icon_source,
 | 
						|
        realm_icon_url: page_params.realm_icon_url,
 | 
						|
        realm_mandatory_topics: page_params.realm_mandatory_topics,
 | 
						|
    };
 | 
						|
 | 
						|
    var admin_tab = templates.render('admin_tab', options);
 | 
						|
    $("#settings_content .organization-box").html(admin_tab);
 | 
						|
    $("#settings_content .alert").removeClass("show");
 | 
						|
 | 
						|
    // Since we just swapped in a whole new page, we need to
 | 
						|
    // tell admin_sections nothing is loaded.
 | 
						|
    admin_sections.reset_sections();
 | 
						|
 | 
						|
    var tab = (function () {
 | 
						|
        var tab = false;
 | 
						|
        var hash_sequence = window.location.hash.split(/\//);
 | 
						|
        if (/#*(organization)/.test(hash_sequence[0])) {
 | 
						|
            tab = hash_sequence[1];
 | 
						|
            return tab || "organization-profile";
 | 
						|
        }
 | 
						|
        return tab;
 | 
						|
    }());
 | 
						|
 | 
						|
    if (tab) {
 | 
						|
        exports.launch_page(tab);
 | 
						|
    }
 | 
						|
 | 
						|
    $("#id_realm_default_language").val(page_params.realm_default_language);
 | 
						|
 | 
						|
    // Do this after calling the setup_up methods, so that we can
 | 
						|
    // disable any dynamically rendered elements.
 | 
						|
    exports.show_or_hide_menu_item();
 | 
						|
}
 | 
						|
 | 
						|
exports.launch_page = function (tab) {
 | 
						|
    var $active_tab = $("#settings_overlay_container li[data-section='" + tab + "']");
 | 
						|
 | 
						|
    if ($active_tab.hasClass("admin")) {
 | 
						|
        components.toggle.lookup("settings-toggle").goto("organization", { dont_switch_tab: true });
 | 
						|
    }
 | 
						|
 | 
						|
    overlays.open_settings();
 | 
						|
    $active_tab.click();
 | 
						|
};
 | 
						|
 | 
						|
exports.setup_page = function () {
 | 
						|
    i18n.ensure_i18n(_setup_page);
 | 
						|
};
 | 
						|
 | 
						|
return exports;
 | 
						|
 | 
						|
}());
 | 
						|
 | 
						|
if (typeof module !== 'undefined') {
 | 
						|
    module.exports = admin;
 | 
						|
}
 |