2020 c.goHome = function(){
2121 top.window.location = "?id=library&display=" + c.data.display;
2222 }
23+
24+ c.goToLogin = function(){
25+ top.window.location = "?id=login";
26+ }
2327
2428 c.goToProfile = function(){
2529 top.window.location = "?id=user_profile&sys_id=" + c.data.userId;
@@ -309,6 +313,34 @@ For example: [INPUT YOUR NAME HERE]`;*/
309313
310314.ai-sd{
311315 padding-bottom: 0.5rem;
316+ }
317+
318+ .ng-click-element {
319+ position: relative;
320+ //display: inline-block;
321+ cursor: pointer;
322+ }
323+
324+ .hover-text {
325+ visibility: hidden;
326+ width: 100px;
327+ background-color: black;
328+ color: #fff;
329+ text-align: center;
330+ border-radius: 6px;
331+ padding: 5px 0;
332+ position: absolute;
333+ z-index: 1;
334+ bottom: 100%; /* Position above the element */
335+ left: 50%;
336+ margin-left: -50px;
337+ opacity: 0;
338+ transition: opacity 0.3s;
339+ }
340+
341+ .ng-click-element:hover .hover-text {
342+ visibility: visible;
343+ opacity: 1;
312344}</css >
313345 <data_table >sp_instance</data_table >
314346 <demo_data />
@@ -321,15 +353,15 @@ For example: [INPUT YOUR NAME HERE]`;*/
321353 <link ><![CDATA[ function link(scope, element, attrs, controller) { }]]> </link >
322354 <name >library</name >
323355 <option_schema />
324- <public >false </public >
356+ <public >true </public >
325357 <roles />
326358 <script ><![CDATA[ (function() {
327359
328360 //todo: category winners
329361 //see all posts for this form
330-
331362 //configuration
332363 data.debug = false;
364+ data.loggedIn = gs.getSession().isLoggedIn();
333365 data.userId = gs.getUserID();
334366 data.isMod = gs.hasRole('x_snc_ehd_servic_0.moderator');
335367 data.thisUrl = gs.getProperty('glide.servlet.uri');
@@ -583,22 +615,25 @@ For example: [INPUT YOUR NAME HERE]`;*/
583615 <sys_created_by >earl.duque</sys_created_by >
584616 <sys_created_on >2024-06-07 18:15:31</sys_created_on >
585617 <sys_id >0182c9d793ea0a10b653ffbd1dba10b1</sys_id >
586- <sys_mod_count >689 </sys_mod_count >
618+ <sys_mod_count >735 </sys_mod_count >
587619 <sys_name >library</sys_name >
588620 <sys_package display_value =" ServiceNow GenAI Prompt Library" source =" x_snc_ehd_servic_0" >ff61a00ac32a8610c9bcbe2bb00131da</sys_package >
589621 <sys_policy />
590622 <sys_scope display_value =" ServiceNow GenAI Prompt Library" >ff61a00ac32a8610c9bcbe2bb00131da</sys_scope >
591623 <sys_update_name >sp_widget_0182c9d793ea0a10b653ffbd1dba10b1</sys_update_name >
592624 <sys_updated_by >earl.duque</sys_updated_by >
593- <sys_updated_on >2024-06-28 07:18:24 </sys_updated_on >
625+ <sys_updated_on >2024-06-28 16:57:45 </sys_updated_on >
594626 <template ><![CDATA[ <div class="page-intro">
595627 <div ng-if="data.query || data.sort">
596628 <span class="icon-home home-button" ng-click="c.goHome()"> Go to Library home</span>
597629 </div>
598630 <div class="h1">
599- <div class="my-profile" ng-click="c.goToProfile()">
631+ <div class="my-profile" ng-click="c.goToProfile()" ng-if="data.loggedIn === true" >
600632 <span class="author-block-avatar"><sn-avatar class="avatar-medium" primary="data.userId"></sn-avatar></span>
601633 </div>
634+ <a href="?id=login" target="_self"ng-click="c.goToHome()" ng-if="data.loggedIn === false" class="h4 my-profile">
635+ Login
636+ </a>
602637 ServiceNow Generative AI Prompt Library
603638 </div>
604639 <div>
@@ -671,13 +706,21 @@ For example: [INPUT YOUR NAME HERE]`;*/
671706 <span ng-if="prompt.children.length > 0"> {{prompt.children.length}} fork{{prompt.children.length == 1 ? '' : 's'}} from this.</span>
672707 </div>
673708 <div class="engagement">
674- <div class="icon-tree-right fork" ng-click="c.addPrompt(prompt, true, $event)">
709+ <div class="icon-tree-right fork" ng-click="c.addPrompt(prompt, true, $event)" ng-if="data.loggedIn === true" >
675710 Fork
676711 </div>
712+ <div class="icon-tree-right fork ng-click-element" ng-click="c.goToHome()" ng-if="data.loggedIn === false">
713+ Fork<span class="hover-text">Login to fork</span>
714+ </div>
677715 <div class="icon-cross-circle fork" ng-click="c.modDelete(prompt.sys_id, $event)" ng-if="data.isMod === true">
678716 Delete (Mod)
679717 </div>
680- <span class="icon-arrow-up engagement-button" ng-class="{'voted': prompt.voted == true}" ng-click="c.vote(prompt.sys_id, $event)"></span>
718+ <span ng-if="data.loggedIn === true">
719+ <span class="icon-arrow-up engagement-button" ng-class="{'voted': prompt.voted == true}" ng-click="c.vote(prompt.sys_id, $event)"></span>
720+ </span>
721+ <span ng-if="data.loggedIn === false">
722+ <span class="icon-arrow-up engagement-button ng-click-element" ng-click="c.goToLogin()"><span class="hover-text">Login to vote</span></span>
723+ </span>
681724 <span class="engagement-button" ng-click="c.addComment(prompt, $event)"><span class="comment-count">{{prompt.comments.length}} comment{{prompt.comments.length == 1 ? '' : 's'}} </span><span class="icon-comment-add"></span></span>
682725 <span class="engagement-button" ng-click="c.copyToClipboard(prompt.prompt, $event)">Copy Prompt <span class="icon-document"></span></span>
683726 <span class="engagement-button" ng-click="c.copyToClipboard(data.thisUrl + 'ai?id=prompt&sys_id=' + prompt.sys_id, $event)">Copy Link <span class="icon-document"></span></span>
@@ -694,9 +737,12 @@ For example: [INPUT YOUR NAME HERE]`;*/
694737 </div>
695738 <div class="col-sm-3">
696739 <div class="section-block" ng-click="c.addPrompt({},false)">
697- <div class="block-main prompt-block submit-button">
740+ <div class="block-main prompt-block submit-button" ng-if="data.loggedIn === true" >
698741 Submit a new prompt
699742 </div>
743+ <div class="block-main prompt-block submit-button ng-click-element" ng-if="data.loggedIn === false">
744+ Submit a new prompt<span class="hover-text">Login to submit</span>
745+ </div>
700746 </div>
701747 <div class="section-block">
702748 <div class="block-main prompt-block">
@@ -846,11 +892,14 @@ For example: [INPUT YOUR NAME HERE]`;*/
846892 </div>
847893 <hr class="dashed">
848894 </div>
849- <div class="form-group" ng-if="!hideCommentsPrompt">
895+ <div class="form-group" ng-if="!hideCommentsPrompt && data.loggedIn === true ">
850896 <label for="multiLineTextBox">Add a comment:</label>
851- <textarea id="multiLineTextBox" class="form-control" rows="5" ng-model="userInput"></textarea>
897+ <textarea id="multiLineTextBox" class="form-control" rows="5" ng-model="data. userInput"></textarea>
852898 </div>
853- <button class="btn btn-primary" ng-click="c.submitComment(sys_id, userInput)" ng-if="!hideCommentsPrompt" ng-class="{disabled: !userInput}">Submit</button>
899+ <button class="btn btn-primary" ng-click="c.submitComment(sys_id, userInput)" ng-if="!hideCommentsPrompt && data.loggedIn === true" ng-class="{disabled: !data.userInput}">Submit</button>
900+ <button ng-if="data.loggedIn === false" class="btn btn-info" ng-click="c.goToLogin()">
901+ Login to comment
902+ </button>
854903 </div>
855904 <div class="panel-footer text-right">
856905 <button class="btn btn-primary" ng-click="c.closeModal()">${Close Comments}</button>
0 commit comments