Skip to content
Benoit edited this page Jul 7, 2015 · 3 revisions

La disposition proposée par timmi, avec menu vertical à gauche et en-tête aux couleurs de l'application a été partagée dans Lucca-UI.

##Sidebar et main-content Voici la structure à adopter (remplacer ce qui se trouve entre @ par ce que vous voulez) :

<body>
    <div id="ilucca-banner" />...

<div id="app" ng-app="@myApp@" ng-class="{'collapse-sidebar':collapseSidebar}" ng-controller="@myAppController@">
	<div id="main-sidebar">
		<!-- Your app logotype !-->
		<a id="logo" ui-sref="@homeState@" title="">
			<span class="img">@My App@</span>
		</a>

		<!-- Main Navigation !-->
		<nav id="main-nav">
			<ul>
				<li ng-repeat="item in items" tooltip-placement="right" tooltip="@item.name@" tooltip-popup-delay="500" tooltip-class="lucca-tooltip secondary">
					<a ui-sref='@aimedState@' class="lucca-icon @item.icon@" ng-class="{active:@isCurrent?@, 'has-updates':@hasUpdates?@}">
						<span class="section-name">@item.name@</span>
						<span class="updates-count">@updates@</span>
					</a>
				</li>
			</ul>
		</nav>

		<!-- Footer !-->
		<footer>
			<a id="toggle-sidebar" href="" ng-click="collapseSidebar=!collapseSidebar"></a>
		</footer>
	</div>
	<main>
		<div ui-view="page" id="view"></div>
	</main>
</div>
</body>

Vous remarquerez que l'élément "#app" a deux états mutuellement exclusifs matérialisés par la présence ou non de la classe collapse-sidebar. S'il porte ladite classe, la sidebar sera déployée (et poussera le contenu).

L'élément actif de la navigation principale est défini par la classe ".active" sur son ancre : nav#main-nav ul li a.active

##Main header Le main header est répété à chaque vue (il est dans le fichier appelé par le ui-view cité plus haut).

Il se structure comme suit :

	<header id="main-header">
		<div class="lucca-container">
			<!-- Help ! -->
			<div id="help-me-please"
				 tooltip
				 tooltip-template="'help-tooltip.html'"
				 tooltip-placement="left"
				 tooltip-trigger="click"
				 tooltip-class="help-me-please-tooltip">
				<em>?</em>
			</div>

			<h1 ng-if="@THERE'S ONLY ONE GUY HERE@">{{'TITLE_1'|translate}}</h1>

			<div class="main-title" ng-if="@THEY'RE A LOT HERE@">
				<h1>{{'TITLE_N'|translate}} </h1>

				<!-- User select !-->
				<ui-select ng-model="@userSelected@" theme="bootstrap" ng-disabled="users.length == 1" on-select="@doSomething@">
					<ui-select-match placeholder="{{$select.selected.name}}">{{$select.selected.name}}</ui-select-match>
					<ui-select-choices repeat="user in users | filter: $select.search">
						<span ng-bind-html="user.name | highlight: $select.search"></span>
					</ui-select-choices>
				</ui-select>
			</div>
		</div>
	</header>

Plusieurs observations :

  • Vous pouvez directement placer un H1 dans le header, ou bien, en l'enrobant préalablement dans une div.main-title, le joindre à un ui-select
  • Pour le tooltip, n'oubliez pas d'ajouter un template en bas de page (spécifique à chaque vue dans l'idéal) : <script type="text/ng-template" id="help-tooltip.html"></script>
Clone this wiki locally