Fixed query appending in default tab
This commit is contained in:
parent
28f92e3f73
commit
89087f15b8
8 changed files with 195 additions and 142 deletions
|
@ -14,6 +14,37 @@ $limit = 3;
|
|||
<li data-state="/console/users?project={{router.params.project}}">
|
||||
|
||||
<h2>Users</h2>
|
||||
|
||||
<div data-ui-modal class="box modal close" data-button-text="" data-button-class="fly round" data-button-icon="icon-plus">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h1>Create User</h1>
|
||||
|
||||
<form
|
||||
data-service="users.createUser"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger,reset"
|
||||
data-success-param-alert-text="Created user successfully"
|
||||
data-success-param-trigger-events="user-create,modal-close"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to create user"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<label for="user-name">Name</label>
|
||||
<input type="text" class="full-width" id="user-name" name="name" required autocomplete="off" />
|
||||
|
||||
<label for="user-email">Email</label>
|
||||
<input type="email" class="full-width" id="user-email" name="email" required autocomplete="off" />
|
||||
|
||||
<label for="user-password">Password</label>
|
||||
<input type="password" class="full-width" id="user-password" name="password" required autocomplete="off" />
|
||||
|
||||
<hr />
|
||||
|
||||
<button type="submit">Create</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<form class="box padding-small margin-bottom"
|
||||
data-service="users.listUsers"
|
||||
|
@ -21,7 +52,7 @@ $limit = 3;
|
|||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-offset=""
|
||||
data-param-order-type="ASC"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-users"
|
||||
data-success="state"
|
||||
|
@ -42,7 +73,7 @@ $limit = 3;
|
|||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-offset="{{router.params.offset}}"
|
||||
data-param-order-type="ASC"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-users">
|
||||
|
||||
|
@ -54,6 +85,7 @@ $limit = 3;
|
|||
|
||||
<div data-ls-if="0 != {{project-users.sum}}" style="display: none;">
|
||||
<div class="note margin-bottom-small margin-end-small text-align-end text-size-small"><span data-ls-bind="{{project-users.sum}}"></span> results found</div>
|
||||
|
||||
<div class="box margin-bottom">
|
||||
<table class="vertical">
|
||||
<thead>
|
||||
|
@ -102,7 +134,7 @@ $limit = 3;
|
|||
data-event="submit"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-order-type="ASC"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-users"
|
||||
data-success="state"
|
||||
|
@ -117,7 +149,7 @@ $limit = 3;
|
|||
data-event="submit"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-order-type="ASC"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-users"
|
||||
data-success="state"
|
||||
|
@ -125,138 +157,148 @@ $limit = 3;
|
|||
<button name="offset" data-paging-next data-offset="{{router.params.offset}}" data-sum="{{project-users.sum}}" class="margin-start round small" aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<input type="text" class="fill" data-ls-bind="Back: {{router.params.offset|pageBack}}, status:{{router.params.offset|pageBackDisbaled}} (sum: {{project-users.sum}})" disabled />
|
||||
<input type="text" class="fill" data-ls-bind="Next: {{router.params.offset|pageNext}}, status: {{router.params.offset|pageNextDisbaled}} (sum: {{project-users.sum}})" data-sum="{{project-users.sum}}" disabled /> -->
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li data-state="/console/users/teams?project={{router.params.project}}">
|
||||
<h2>Teams</h2>
|
||||
|
||||
<div>
|
||||
<div class="row responsive force-reverse clear margin-bottom-tiny">
|
||||
<div class="col span-2">
|
||||
<div data-ui-modal class="modal close" data-button-text="" data-button-class="pull-end round" data-button-icon="icon-plus">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
<div data-ui-modal class="modal close" data-button-text="" data-button-class="fly round" data-button-icon="icon-plus">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h1>Create Team</h1>
|
||||
<h1>Create Team</h1>
|
||||
|
||||
<form
|
||||
data-service="teams.createTeam"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger,reset"
|
||||
data-success-param-alert-text="Created team successfully"
|
||||
data-success-param-trigger-events="filter-teams-changed,team-create,modal-close"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to create team"
|
||||
data-failure-param-alert-classname="error">
|
||||
<form
|
||||
data-service="teams.createTeam"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger,reset"
|
||||
data-success-param-alert-text="Created team successfully"
|
||||
data-success-param-trigger-events="filter-teams-changed,team-create,modal-close"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to create team"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<label for="team-name">Name</label>
|
||||
<input type="text" class="full-width" id="team-name" name="name" required autocomplete="off" />
|
||||
<label for="team-name">Name</label>
|
||||
<input type="text" class="full-width" id="team-name" name="name" required autocomplete="off" />
|
||||
|
||||
<button type="submit">Create</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</form>
|
||||
</div>
|
||||
<button type="submit">Create</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<form class="box padding-small margin-bottom"
|
||||
data-service="teams.listTeams"
|
||||
data-event="submit"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-offset=""
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-teams"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search,offset">
|
||||
<div class="row responsive">
|
||||
<div class="col span-10">
|
||||
<input name="search" id="searchTeams" type="search" autocomplete="off" placeholder="Search" class="margin-bottom-no" data-ls-bind="{{router.params.search}}">
|
||||
</div>
|
||||
<div class="col span-6"> </div>
|
||||
<div class="col span-4">
|
||||
<div class="margin-bottom-small">
|
||||
<form data-forms-filter="filter-teams" data-event="init">
|
||||
<input type="hidden" name="offset" value="0">
|
||||
<input type="hidden" name="limit" value="10">
|
||||
<input name="search" id="searchTeams" type="search" autocomplete="off" placeholder="Search" class="strip margin-bottom-no">
|
||||
</form>
|
||||
</div>
|
||||
<div class="col span-2">
|
||||
<button class="fill">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div
|
||||
data-service="teams.listTeams"
|
||||
data-event="load,team-create,team-update,team-delete"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-offset="{{router.params.offset}}"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-teams">
|
||||
|
||||
<div data-ls-if="0 == {{project-teams.sum}}" class="box margin-bottom" style="display: none;">
|
||||
<h3 class="margin-bottom">No Teams Found</h3>
|
||||
|
||||
<p class="margin-bottom-no">Create your first team to get started</p>
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 != {{project-teams.sum}}" style="display: none;">
|
||||
<div class="note margin-bottom-small margin-end-small text-align-end text-size-small"><span data-ls-bind="{{project-teams.sum}}"></span> results found</div>
|
||||
|
||||
<div class="box margin-bottom">
|
||||
<table class="vertical">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="180">Name</th>
|
||||
<th>Members</th>
|
||||
<th width="150">Created</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-ls-loop="project-teams.teams" data-ls-as="team">
|
||||
<tr>
|
||||
<td data-title="Name: ">
|
||||
<div data-ui-modal class="modal close" data-button-text="{{team.name}}" data-button-class="link">
|
||||
<h1>Update Team</h1>
|
||||
|
||||
<form
|
||||
data-service="teams.updateTeam"
|
||||
data-scope="sdk"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger"
|
||||
data-success-param-alert-text="Updated team successfully"
|
||||
data-success-param-trigger-events="team-update,modal-close"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to update team"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<label for="name">UID</label>
|
||||
<div class="input-copy">
|
||||
<input name="teamId" data-forms-copy type="text" disabled data-ls-bind="{{team.$uid}}" />
|
||||
</div>
|
||||
|
||||
<label for="name">Name</label>
|
||||
<input name="name" id="name" type="text" autocomplete="off" data-ls-bind="{{team.name}}">
|
||||
|
||||
<button>Update</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
<td data-title="Members: "><span data-ls-bind="{{team.sum}} Users"></span></td>
|
||||
<td data-title="Date Created: "><span data-ls-bind="{{team.dateCreated|date-text}}" class="note"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="zone xl"
|
||||
data-service="teams.listTeams"
|
||||
data-scope="sdk"
|
||||
data-name="project-teams"
|
||||
data-event="load,team-update,team-create,filter-teams-changed"
|
||||
data-param-search="{{filter-teams.keys.search}}"
|
||||
data-param-limit="{{filter-teams.keys.limit}}"
|
||||
data-param-offset="{{filter-teams.keys.offset}}"
|
||||
data-success="trigger"
|
||||
data-success-param-trigger-events="teams-load">
|
||||
<div class="clear text-align-center paging">
|
||||
<form
|
||||
data-service="teams.listTeams"
|
||||
data-event="submit"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-teams"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search,offset">
|
||||
<button name="offset" data-paging-back data-offset="{{router.params.offset}}" data-sum="{{project-teams.sum}}" class="margin-end round small" aria-label="Back"><i class="icon-left-open"></i></button>
|
||||
</form>
|
||||
|
||||
<div data-ls-if="0 == {{project-teams.sum}}" class="box margin-bottom" style="display: none;">
|
||||
<h3 class="margin-bottom">No Teams Found</h3>
|
||||
<span data-ls-bind="{{router.params.offset|pageCurrent}} / {{project-teams.sum|pageTotal}}"></span>
|
||||
|
||||
<p class="margin-bottom-no">Create your first team to get started</p>
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 != {{project-teams.sum}}" style="display: none;">
|
||||
|
||||
<div class="box margin-bottom">
|
||||
<table class="vertical">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Members</th>
|
||||
<th width="150">Created</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody data-ls-loop="project-teams.teams" data-ls-as="team">
|
||||
<tr>
|
||||
<td data-title="Name: ">
|
||||
<div data-ui-modal class="modal close" data-button-text="{{team.name}}" data-button-class="link">
|
||||
<h1>Update Team</h1>
|
||||
|
||||
<form
|
||||
data-service="teams.updateTeam"
|
||||
data-scope="sdk"
|
||||
data-event="submit"
|
||||
data-success="alert,trigger"
|
||||
data-success-param-alert-text="Updated team successfully"
|
||||
data-success-param-trigger-events="team-update,modal-close"
|
||||
data-failure="alert"
|
||||
data-failure-param-alert-text="Failed to update team"
|
||||
data-failure-param-alert-classname="error">
|
||||
|
||||
<label for="name">UID</label>
|
||||
<div class="input-copy">
|
||||
<input name="teamId" data-forms-copy type="text" disabled data-ls-bind="{{team.$uid}}" />
|
||||
</div>
|
||||
|
||||
<label for="name">Name</label>
|
||||
<input name="name" id="name" type="text" autocomplete="off" data-ls-bind="{{team.name}}">
|
||||
|
||||
<button>Update</button> <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
<td data-title="Members: "><span data-ls-bind="{{team.sum}}"></span></td>
|
||||
<td data-title="Date Created: "><span data-ls-bind="{{team.dateCreated|date-text}}" class="note"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="clear">
|
||||
<span class="pull-end paging" data-ls-ui-paging="" data-sum="{{project-teams.sum}}" data-offset="{{filter-teams.keys.offset}}" data-limit="{{filter-teams.keys.limit}}"></span>
|
||||
|
||||
<span data-ls-if="{{filter-teams.backward}} >= 0" style="display: none;">
|
||||
<button type="button" class="margin-end round" data-forms-filter="filter-teams" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-teams.backward}}'])); ?>" aria-label="Back"><i class="icon-left-open"></i></button>
|
||||
</span>
|
||||
<span data-ls-if="{{filter-teams.backward}} < 0" style="display: none;">
|
||||
<button type="button" class="disabled margin-end round" disabled aria-label="Back"><i class="icon-left-open"></i></button>
|
||||
</span>
|
||||
|
||||
<span data-ls-if="{{filter-teams.forward}} < {{project-teams.sum}}" style="display: none;">
|
||||
<button type="button" class="margin-end round" data-forms-filter="filter-teams" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-teams.forward}}'])); ?>" aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</span>
|
||||
<span data-ls-if="{{filter-teams.forward}} >= {{project-teams.sum}}" style="display: none;">
|
||||
<button type="button" class="disabled margin-end round" disabled aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<form
|
||||
data-service="teams.listTeams"
|
||||
data-event="submit"
|
||||
data-param-search="{{router.params.search}}"
|
||||
data-param-limit="<?php echo $limit; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-teams"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search,offset">
|
||||
<button name="offset" data-paging-next data-offset="{{router.params.offset}}" data-sum="{{project-teams.sum}}" class="margin-start round small" aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
|
10
public/dist/scripts/app-all.js
vendored
10
public/dist/scripts/app-all.js
vendored
|
@ -2454,8 +2454,8 @@ document.dispatchEvent(new CustomEvent('project-load'));}
|
|||
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
|
||||
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}
|
||||
if(element.value&&element.value!==project){if(debug){console.log('Changed: selected project from list');}
|
||||
return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());console.log('back',offset-limit);if((offset-limit)<0){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-next',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());console.log('next',(offset+limit));if((offset+limit)>sum){element.disabled=true;}
|
||||
return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-next',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset+limit)>=sum){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-highlight',controller:function(element,expression,document){let check=function(){let links=element.getElementsByTagName('a');let selected=null;let list=[];for(let i=0;i<links.length;i++){links[i].href=links[i].href||expression.parse(links[i].dataset['lsHref']||'');list.push(links[i]);}
|
||||
list.sort(function(a,b){return a.pathname.length-b.pathname.length;});for(let i=0;i<list.length;i++){let href=list[i].href||expression.parse(list[i].dataset['lsHref']||'');if(list[i].pathname===window.location.pathname.substring(0,list[i].pathname.length)){list[i].classList.add('selected');if(selected!==null){list[selected].classList.remove('selected');}
|
||||
selected=i;}
|
||||
|
@ -2476,6 +2476,6 @@ return null;};if(blur){button.addEventListener('blur',closeDelay);}
|
|||
element.addEventListener('click',function(event){let target=findParent('a',event.target);if(!target){return false;}
|
||||
if(!target.href){return false;}
|
||||
closeDelay();});element.insertBefore(button,element.firstChild);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-paging',repeat:true,controller:function(document,element,expression){var sum=expression.parse(element.dataset['sum'])||0;var offset=expression.parse(element.dataset['offset'])||0;var limit=expression.parse(element.dataset['limit'])||0;if(offset===0||limit===0){element.innerHTML='1 / 1';return true;}
|
||||
var total=Math.ceil(sum/limit);var current=Math.ceil(offset/limit)+1;element.innerHTML=(total>0)?current+' / '+total:'';}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-phases',controller:function(element,window,document,expression){var tabs=document.createElement('ul');var container=document.createElement('div');var titles=Array.prototype.slice.call(element.getElementsByTagName('h2'));var next=Array.prototype.slice.call(element.querySelectorAll('[data-next]'));var previous=Array.prototype.slice.call(element.querySelectorAll('[data-previous]'));var position=0;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset['state']||'');if(tabState===window.location.pathname+window.location.search){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset['state']||'');if((tabState!=='')&&(tabState!==window.location.pathname+window.location.search)){var parser=document.createElement('a');parser.href=tabState;if(position!=index){window.history.pushState({},'',parser.pathname+window.location.search);}}
|
||||
element.children[position].classList.remove('selected');element.children[index].classList.add('selected');tabs.children[position].classList.remove('selected');tabs.children[index].classList.add('selected');position=index;document.dispatchEvent(new CustomEvent('tab-changed'));};tabs.classList.add('tabs');container.classList.add('container');container.classList.add('close');container.dataset['lsUiOpen']='';container.dataset['buttonClass']='icon icon-down-dir';titles.map(function(obj,i){var title=document.createElement('li');title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener('click',function(){setTab(i);});title.addEventListener('keyup',function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener('click',function(){setTab(position+1)});});previous.map(function(obj){obj.addEventListener('click',function(){setTab(position-1)});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-trigger',repeat:false,controller:function(element,document){let trigger=element.dataset['lsUiTrigger'];let event=element.dataset['event']||'click';element.addEventListener(event,function(){console.log(element,trigger);document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
||||
var total=Math.ceil(sum/limit);var current=Math.ceil(offset/limit)+1;element.innerHTML=(total>0)?current+' / '+total:'';}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-phases',controller:function(element,window,document,expression,router){var tabs=document.createElement('ul');var container=document.createElement('div');var titles=Array.prototype.slice.call(element.getElementsByTagName('h2'));var next=Array.prototype.slice.call(element.querySelectorAll('[data-next]'));var previous=Array.prototype.slice.call(element.querySelectorAll('[data-previous]'));var position=0;var init=false;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset['state']||'');if(tabState===(window.location.pathname+window.location.search).substring(0,tabState.length)){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset['state']||'');var url='';if((tabState!=='')&&(tabState!==window.location.pathname+window.location.search)){var parser=document.createElement('a');parser.href=tabState;url=(!init)?parser.pathname+window.location.search:tabState;console.log(parser.pathname+window.location.search,tabState);if(position!=index){window.history.pushState({},'',url);router.reset();}}
|
||||
element.children[position].classList.remove('selected');element.children[index].classList.add('selected');tabs.children[position].classList.remove('selected');tabs.children[index].classList.add('selected');position=index;document.dispatchEvent(new CustomEvent('tab-changed'));init=true;};tabs.classList.add('tabs');container.classList.add('container');container.classList.add('close');container.dataset['lsUiOpen']='';container.dataset['buttonClass']='icon icon-down-dir';titles.map(function(obj,i){var title=document.createElement('li');title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener('click',function(){setTab(i);});title.addEventListener('keyup',function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener('click',function(){setTab(position+1)});});previous.map(function(obj){obj.addEventListener('click',function(){setTab(position-1)});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-trigger',repeat:false,controller:function(element,document){let trigger=element.dataset['lsUiTrigger'];let event=element.dataset['event']||'click';element.addEventListener(event,function(){console.log(element,trigger);document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
10
public/dist/scripts/app.js
vendored
10
public/dist/scripts/app.js
vendored
|
@ -361,8 +361,8 @@ document.dispatchEvent(new CustomEvent('project-load'));}
|
|||
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
|
||||
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}
|
||||
if(element.value&&element.value!==project){if(debug){console.log('Changed: selected project from list');}
|
||||
return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());console.log('back',offset-limit);if((offset-limit)<0){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-next',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());console.log('next',(offset+limit));if((offset+limit)>sum){element.disabled=true;}
|
||||
return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-next',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset+limit)>=sum){element.disabled=true;}
|
||||
else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i<paths.length;i++){let path=paths[i].split('.');while(path.length){container.bind(element,path.join('.'),check);path.pop();}}}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-highlight',controller:function(element,expression,document){let check=function(){let links=element.getElementsByTagName('a');let selected=null;let list=[];for(let i=0;i<links.length;i++){links[i].href=links[i].href||expression.parse(links[i].dataset['lsHref']||'');list.push(links[i]);}
|
||||
list.sort(function(a,b){return a.pathname.length-b.pathname.length;});for(let i=0;i<list.length;i++){let href=list[i].href||expression.parse(list[i].dataset['lsHref']||'');if(list[i].pathname===window.location.pathname.substring(0,list[i].pathname.length)){list[i].classList.add('selected');if(selected!==null){list[selected].classList.remove('selected');}
|
||||
selected=i;}
|
||||
|
@ -383,6 +383,6 @@ return null;};if(blur){button.addEventListener('blur',closeDelay);}
|
|||
element.addEventListener('click',function(event){let target=findParent('a',event.target);if(!target){return false;}
|
||||
if(!target.href){return false;}
|
||||
closeDelay();});element.insertBefore(button,element.firstChild);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-paging',repeat:true,controller:function(document,element,expression){var sum=expression.parse(element.dataset['sum'])||0;var offset=expression.parse(element.dataset['offset'])||0;var limit=expression.parse(element.dataset['limit'])||0;if(offset===0||limit===0){element.innerHTML='1 / 1';return true;}
|
||||
var total=Math.ceil(sum/limit);var current=Math.ceil(offset/limit)+1;element.innerHTML=(total>0)?current+' / '+total:'';}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-phases',controller:function(element,window,document,expression){var tabs=document.createElement('ul');var container=document.createElement('div');var titles=Array.prototype.slice.call(element.getElementsByTagName('h2'));var next=Array.prototype.slice.call(element.querySelectorAll('[data-next]'));var previous=Array.prototype.slice.call(element.querySelectorAll('[data-previous]'));var position=0;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset['state']||'');if(tabState===window.location.pathname+window.location.search){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset['state']||'');if((tabState!=='')&&(tabState!==window.location.pathname+window.location.search)){var parser=document.createElement('a');parser.href=tabState;if(position!=index){window.history.pushState({},'',parser.pathname+window.location.search);}}
|
||||
element.children[position].classList.remove('selected');element.children[index].classList.add('selected');tabs.children[position].classList.remove('selected');tabs.children[index].classList.add('selected');position=index;document.dispatchEvent(new CustomEvent('tab-changed'));};tabs.classList.add('tabs');container.classList.add('container');container.classList.add('close');container.dataset['lsUiOpen']='';container.dataset['buttonClass']='icon icon-down-dir';titles.map(function(obj,i){var title=document.createElement('li');title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener('click',function(){setTab(i);});title.addEventListener('keyup',function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener('click',function(){setTab(position+1)});});previous.map(function(obj){obj.addEventListener('click',function(){setTab(position-1)});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-trigger',repeat:false,controller:function(element,document){let trigger=element.dataset['lsUiTrigger'];let event=element.dataset['event']||'click';element.addEventListener(event,function(){console.log(element,trigger);document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
||||
var total=Math.ceil(sum/limit);var current=Math.ceil(offset/limit)+1;element.innerHTML=(total>0)?current+' / '+total:'';}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ui-phases',controller:function(element,window,document,expression,router){var tabs=document.createElement('ul');var container=document.createElement('div');var titles=Array.prototype.slice.call(element.getElementsByTagName('h2'));var next=Array.prototype.slice.call(element.querySelectorAll('[data-next]'));var previous=Array.prototype.slice.call(element.querySelectorAll('[data-previous]'));var position=0;var init=false;for(var i=0;i<element.children.length;i++){var tabState=expression.parse(element.children[i].dataset['state']||'');if(tabState===(window.location.pathname+window.location.search).substring(0,tabState.length)){position=i;}}
|
||||
var setTab=function(index){var tabState=expression.parse(element.children[index].dataset['state']||'');var url='';if((tabState!=='')&&(tabState!==window.location.pathname+window.location.search)){var parser=document.createElement('a');parser.href=tabState;url=(!init)?parser.pathname+window.location.search:tabState;console.log(parser.pathname+window.location.search,tabState);if(position!=index){window.history.pushState({},'',url);router.reset();}}
|
||||
element.children[position].classList.remove('selected');element.children[index].classList.add('selected');tabs.children[position].classList.remove('selected');tabs.children[index].classList.add('selected');position=index;document.dispatchEvent(new CustomEvent('tab-changed'));init=true;};tabs.classList.add('tabs');container.classList.add('container');container.classList.add('close');container.dataset['lsUiOpen']='';container.dataset['buttonClass']='icon icon-down-dir';titles.map(function(obj,i){var title=document.createElement('li');title.innerHTML=obj.innerHTML;title.className=obj.className;title.tabIndex=0;tabs.appendChild(title);title.addEventListener('click',function(){setTab(i);});title.addEventListener('keyup',function(){if(event.which===13){setTab(i);}});});next.map(function(obj){obj.addEventListener('click',function(){setTab(position+1)});});previous.map(function(obj){obj.addEventListener('click',function(){setTab(position-1)});});setTab(position);container.appendChild(tabs);element.parentNode.insertBefore(container,element);}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-ls-ui-trigger',repeat:false,controller:function(element,document){let trigger=element.dataset['lsUiTrigger'];let event=element.dataset['event']||'click';element.addEventListener(event,function(){console.log(element,trigger);document.dispatchEvent(new CustomEvent(trigger));});}});})(window);
|
2
public/dist/styles/default-ltr.css
vendored
2
public/dist/styles/default-ltr.css
vendored
File diff suppressed because one or more lines are too long
|
@ -14,8 +14,6 @@
|
|||
|
||||
paths = paths.concat(expression.getPaths());
|
||||
|
||||
console.log('back', offset - limit);
|
||||
|
||||
if((offset - limit) < 0) {
|
||||
element.disabled = true;
|
||||
}
|
||||
|
|
|
@ -10,13 +10,11 @@
|
|||
|
||||
paths = paths.concat(expression.getPaths());
|
||||
|
||||
let sum = parseInt(expression.parse(element.dataset['sum']) || '0');
|
||||
let sum = parseInt(expression.parse(element.dataset['sum']) || '0');
|
||||
|
||||
paths = paths.concat(expression.getPaths());
|
||||
|
||||
console.log('next', (offset + limit));
|
||||
|
||||
if((offset + limit) > sum) {
|
||||
if((offset + limit) >= sum) {
|
||||
element.disabled = true;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -2,31 +2,37 @@
|
|||
window.ls.container.get('view').add(
|
||||
{
|
||||
selector: 'data-ui-phases',
|
||||
controller: function(element, window, document, expression) {
|
||||
controller: function(element, window, document, expression, router) {
|
||||
var tabs = document.createElement('ul');
|
||||
var container = document.createElement('div');
|
||||
var titles = Array.prototype.slice.call(element.getElementsByTagName('h2'));
|
||||
var next = Array.prototype.slice.call(element.querySelectorAll('[data-next]'));
|
||||
var previous = Array.prototype.slice.call(element.querySelectorAll('[data-previous]'));
|
||||
var position = 0;
|
||||
var init = false;
|
||||
|
||||
for (var i = 0; i < element.children.length; i++) {
|
||||
var tabState = expression.parse(element.children[i].dataset['state'] || '');
|
||||
|
||||
if(tabState === window.location.pathname + window.location.search) {
|
||||
if(tabState === (window.location.pathname + window.location.search).substring(0, tabState.length)) {
|
||||
position = i;
|
||||
}
|
||||
}
|
||||
|
||||
var setTab = function (index) {
|
||||
var tabState = expression.parse(element.children[index].dataset['state'] || '');
|
||||
|
||||
var url = '';
|
||||
|
||||
if((tabState !== '') && (tabState !== window.location.pathname + window.location.search)) {
|
||||
var parser = document.createElement('a');
|
||||
var parser = document.createElement('a');
|
||||
parser.href = tabState;
|
||||
url = (!init) ? parser.pathname + window.location.search : tabState;
|
||||
|
||||
console.log(parser.pathname + window.location.search, tabState);
|
||||
|
||||
if(position != index) { // When tab has changed add state to history
|
||||
window.history.pushState({}, '', parser.pathname + window.location.search);
|
||||
window.history.pushState({}, '', url);
|
||||
router.reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,6 +43,8 @@
|
|||
position = index;
|
||||
|
||||
document.dispatchEvent(new CustomEvent('tab-changed'));
|
||||
|
||||
init = true;
|
||||
};
|
||||
|
||||
tabs.classList.add('tabs');
|
||||
|
|
|
@ -35,6 +35,13 @@ button,
|
|||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.fly {
|
||||
position: fixed;
|
||||
z-index: 2;
|
||||
bottom: 30px;
|
||||
.func-end(30px);
|
||||
}
|
||||
|
||||
&.fill {
|
||||
display: block;
|
||||
width: 100%;
|
||||
|
|
Loading…
Reference in a new issue