x x x
x
Only portrait mode is currently supported - please rotate your device.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

HTML
<link rel="stylesheet" href="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/stylesheets/MorganStanley/msresources.css?v=84">


Custom section
ContainerIDpage-banner
Classbanner


Custom section
ClasstitleSection

Custom title
TitleResources


Show If
groupmorganstanley-admins, confluence-administrators


Custom button container
CustomCSSwidth: unset; padding: unset;

Custom button
Typecustom-button
TextAdd a New Resource
Url/display/MSRES/Create+Resource



Content Layout Macro

HTML
<div class="content">

<style>
div#resources-container {
    width: 80%;
}

#resources-container .resources-links {
    text-transform: uppercase;
    text-align: center;
}

.rw_search_item {
    margin-left: 5px !important;
    width: 97% !important;
}


.rw_search_icon.rw_icon.rw_iconfont_search {
   color: var(--primary-color);
}

@media only screen and (min-width : 320px) and (max-width : 480px) {
    div.titleSection    <div class="cards-section">
        <div id="category-cards" class="horizontal-cards">
        </div>
    </div>
</div>

<script>
const categories = [
    {
      title: "Finance & Accounting",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Finance+%26+Operations.jpeg",
      redirect: "/display/MSRES/Finance+and+Accounting"
    },
    {
      title: "Fundraising & Capital Markets",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Fundraising.jpeg",
      redirect: "/display/MSRES/Fundraising+and+Capital+Markets"
    }, {
      title: "Industry Research & Whitepapers",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/IndustryResearchAndWhitepapers.jpg",
      redirect: "/display/MSRES/Industry+Research+and+Whitepapers"
    }, {
      title: "Leadership & Management",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Leadership.jpeg",
      redirect: "/display/MSRES/Leadership+and+Management"
    }, {
      title: "Legal",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Legal.jpeg",
      redirect: "/display/MSRES/Legal"
    }, {
      title: "Podcasts & Digital Media",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Podcasts%26DigitalMedia.jpg",
      redirect: "/display/MSRES/Podcast+and+Digital+Media"
    }, {
      title:  justify-content: center;
        margin: unset;"PR & Communications",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Marketing+%26+PR.jpg",
      redirect: "/display/MSRES/PR+and+Communications"
    }, {
      title: "Sales & Marketing",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Sales+%26+Customer+Acquisition.jpeg",
      redirect: "/display/MSRES/Sales+and+Marketing"
    }, {
      title: "Talent Management",
      imgSrc: .titleSection .custom-button-container {
  "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/Talent+%26+HR.jpeg",
      redirect: "/display/MSRES/Talent+Management"
    }, {
      title: "Technology & Product Development",
      imgSrc: "https://gsvlabs-confluence-files.s3.us-west-2.amazonaws.com/images/MStanley/resourcePlaceholders/TechAndProductDev.jpg",
      displayredirect: none;"/display/MSRES/Technology+and+Product+Development"
    }
]

// renders the profile cards
async function renderCards(cards, tab) {
  let cardsDiv = .rw_cell.rw_search_module_containerdocument.getElementById('category-cards')
  cardsDiv.innerHTML = "";

  let cardsArray = []

  if (cards.length) {
    let promiseArr =  padding: 0;
        background: var(--main-backgroundObject.values(cards).map((card) => createProfileHTML(card, tab));

    cardsArray = await Promise.all(promiseArr) // wait for array of promises to resolve
  } else {
    cardsArray.push(`<p class="not-available">Not Available!</p>`);
  }
  cardsDiv.insertAdjacentHTML('beforeend', cardsArray.join(""));
}

// create html for the profile cards
async function createProfileHTML(card, tab) {
  div#resources-containerconst {
 title, imgSrc, redirect } = card;

  width: calc(100vw - 20px) !important;let myPromise = new Promise(async (resolve, reject) => {
    try {
      const profileHTML padding:= 10px;`
        display: flex;    <a class="custom-card-link-styling" onclick="handleCardClick('${title}','${redirect}')">
        justify-content: center;
    }
    
    #resources-container .resources-links      <div class="card" style="background-image: url(${imgSrc});">
                <div class="body">
                    <p class="name"> ${title}</p>
                </div>
              </div>
            </a>`
      resolve(profileHTML);
    } catch (error) {
      throw  width: 80%;(error);
      reject()
    }
  }

</style>
Custom section
CustomCSS flex-direction: row; align-items: center; justify-content: space-between;
Classbanner
Custom section
ClasstitleSection
Custom title
TitleResources

Show If
groupmorganstanley-admins
Custom button container
CustomCSSwidth:unset;

Custom button
CustomCSSborder-radius: 6px; background-color: var(--primary-color); border: none; width: auto;
Typecustom-button
TextAdd a New Resource
Url/display/MSRES/Create+Resource

...

);

  return await myPromise;
}

function handleCardClick(title, redirect) {
	window.location.href = redirect;
}

renderCards(categories);

</script>