From: Olivier Lamy Date: Fri, 9 Dec 2011 12:24:11 +0000 (+0000) Subject: start adding resources: archiva js template files X-Git-Tag: archiva-1.4-M2~37 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=77f9b28670888dc438322131885cb49bf9810b08;p=archiva.git start adding resources: archiva js template files git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1212365 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/index.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/index.html new file mode 100644 index 000000000..ede86f14c --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/index.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+
+
+ + + + +
+ + + + + + + + diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main-tmpl.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main-tmpl.js new file mode 100644 index 000000000..43591b5ff --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main-tmpl.js @@ -0,0 +1,25 @@ +/* + * Copyright 2011 The Codehaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +require(["text!templates/menu.html","text!templates/topbar.html","text!templates/message.html"], + function(menu,topbar,message) { + + // template loading + $.tmpl( menu, $.i18n.map ).appendTo("#html-fragments"); + $.tmpl( topbar, $.i18n.map ).appendTo("#html-fragments"); + $("#html-fragments").append(message); + $.log("main-tmpl.js menu loaded"); + } +); \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js new file mode 100644 index 000000000..8d65cd92e --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js @@ -0,0 +1,219 @@ +/* + * Copyright 2011 The Codehaus. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +require( ["order!jquery" ,"order!redback/redback"], +function($) { + + $(function() { + + //$LAB.script("main-tmpl.js").wait(function(){ + $.log("main karma"); + customShowError=function(validator, errorMap, errorList) { + $( "div.clearfix" ).removeClass( "error" ); + $( "span.help-inline" ).remove(); + for ( var i = 0; errorList[i]; i++ ) { + var error = errorList[i]; + var field = $("#"+error.element.id); + field.parents( "div.clearfix" ).addClass( "error" ); + field.parent().append( "" + error.message + "" ) + } + } + + /** + * return a user see user.js if user logged otherwise null + */ + userLogged=function() { + // call /restServices/redbackServices/loginService/isLogged to know + // if a session exists and check the cookie + var userLogged = true; + $.ajax("/restServices/redbackServices/loginService/isLogged", { + type: "GET", + async: false, + success: function(data) { + userLogged = JSON.parse(data); + } + }); + if (userLogged == false) + { + return null; + } + return jQuery.parseJSON($.cookie('redback_login')); + } + + /** + * reccord a cookie for session with the logged user + * @param user see user.js + */ + reccordLoginCookie=function(user) { + $.cookie('redback_login', ko.toJSON(user)); + } + + getUserFromLoginCookie=function(){ + return $.parseJSON($.cookie('redback_login')); + } + + deleteLoginCookie=function(){ + $.cookie('redback_login', null); + } + + logout=function(){ + deleteLoginCookie(); + $("#login-link").show(); + $("#register-link").show(); + $("#logout-link").hide(); + $("#change-password-link").hide(); + hideElementWithKarma(); + screenChange(); + $("#main-content").html(""); + $.ajax({ + url: '/restServices/redbackServices/loginService/logout' + }); + } + + decorateMenuWithKarma=function(user) { + var username = user.username; + // we can receive an observable user so take if it's a function or not + if ($.isFunction(username)){ + username = user.username(); + } + var url = '/restServices/redbackServices/userService/getCurrentUserOperations'; + $.ajax({ + url: url, + success: function(data){ + var mappedOperations = $.map(data.operation, function(item) { + return mapOperation(item); + }); + window.redbackModel.operatioNames = $.map(mappedOperations, function(item){ + return item.name; + }); + + $("[redback-permissions]").each(function(element){ + var bindingValue = $(this).attr("redback-permissions"); + $(this).hide(); + var neededKarmas = $(eval(bindingValue)).toArray(); + var karmaOk = false; + $(neededKarmas).each(function(value){ + //alert(neededKarmas[value]); + if ($.inArray(neededKarmas[value],window.redbackModel.operatioNames)>=0) { + karmaOk = true; + } + }); + if (karmaOk == false) { + $(this).hide(); + } else { + $(this).show(); + } + }); + } + }); + } + + hideElementWithKarma=function(){ + $("[redback-permissions]").each(function(element){ + $(this).hide(); + }); + } + + + $('#topbar-menu-container').html($("#topbar-menu")); + $('#sidebar-content').html($("#main-menu")); + + + $.ajax("/restServices/redbackServices/userService/isAdminUserExists", { + type: "GET", + dataType: 'json', + success: function(data) { + var adminExists = JSON.parse(data); + if (adminExists == false) { + $("#create-admin-link").show(); + } + } + }); + + hideElementWithKarma(); + + var user = userLogged(); + if (!user) { + $("#login-link").show(); + $("#register-link").show(); + $("#change-password-link").hide(); + } else { + $("#change-password-link").show(); + $("#logout-link").show(); + decorateMenuWithKarma(user); + } + + + + /** + * display a success message + * @param text the success text + * @param idToAppend the id to append the success box + */ + displaySuccessMessage=function(text,idToAppend){ + var textId = idToAppend ? $("#"+idToAppend) : $("#user-messages"); + $.tmpl($("#alert-message-success").html(), { "message" : text }).appendTo( textId ); + $(textId).focus(); + } + + clearUserMessages=function(idToAppend){ + var textId = idToAppend ? $("#"+idToAppend) : $("#user-messages"); + $(textId).html(''); + } + + /** + * display an error message + * @param text the success text + * @param idToAppend the id to append the success box + */ + displayErrorMessage=function(text,idToAppend){ + var textId = idToAppend ? $("#"+idToAppend) : $("#user-messages"); + $.tmpl($("#alert-message-error").html(), { "message" : text }).appendTo( textId ); + $(textId).focus(); + } + + /** + * display a warning message + * @param text the success text + * @param idToAppend the id to append the success box + */ + displayWarningMessage=function(text,idToAppend){ + var textId = idToAppend ? $("#"+idToAppend) : $("#user-messages"); + $.tmpl($("#alert-message-warning").html(), { "message" : text }).appendTo( textId ); + $(textId).focus(); + } + + screenChange=function(){ + clearUserMessages(); + } + + /** + * clear all input text and password found in the the selector + * @param selectorStr + */ + clearForm=function(selectorStr){ + $(selectorStr+" input[type='text']").each(function(ele){ + $(this).val(""); + }); + $(selectorStr+" input[type='password']").each(function(ele){ + $(this).val(""); + }); + + } + }); + //}); + +}); + diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/menu.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/menu.html new file mode 100644 index 000000000..79a633ee5 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/menu.html @@ -0,0 +1,7 @@ + + diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/message.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/message.html new file mode 100644 index 000000000..e179c3947 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/message.html @@ -0,0 +1,19 @@ + + + + diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/topbar.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/topbar.html new file mode 100644 index 000000000..704f53063 --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/topbar.html @@ -0,0 +1,37 @@ +
+ +
\ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js new file mode 100644 index 000000000..b3b0cdccc --- /dev/null +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js @@ -0,0 +1,15 @@ +$.log = (function(message) { + if (typeof window.console != 'undefined' && typeof window.console.log != 'undefined') { + console.log(message); + } else { + // do nothing no console + } +}); + +$.urlParam = function(name){ + var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); + if (results) { + return results[1] || 0; + } + return null; +} \ No newline at end of file